# ![Open Quantum Design](https://raw.githubusercontent.com/OpenQuantumDesign/oqd-compiler-infrastructure/main/docs/img/oqd-logo-text.png)
<h2 align="center">
Open Quantum Design: Compiler Infrastructure
</h2>
[![doc](https://img.shields.io/badge/documentation-lightblue)](https://docs.openquantumdesign.org/open-quantum-design-compiler-infrastructure)
[![PyPI Version](https://img.shields.io/pypi/v/oqd-compiler-infrastructure)](https://pypi.org/project/oqd-compiler-infrastructure)
[![CI](https://github.com/OpenQuantumDesign/oqd-compiler-infrastructure/actions/workflows/pytest.yml/badge.svg)](https://github.com/OpenQuantumDesign/oqd-compiler-infrastructure/actions/workflows/pytest.yml)
![versions](https://img.shields.io/badge/python-3.10%20%7C%203.11%20%7C%203.12-blue)
[![black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)
[![License: Apache 2.0](https://img.shields.io/badge/license-Apache%202.0-brightgreen.svg)](https://opensource.org/licenses/Apache-2.0)
### What's here:
This repository contains the supporting infrastructure, base classes, and abstractions
for creating custom compiler analysis, verification, and transformation passes.
The modules in the repository are utilized for, e.g., lowering from the analog to atomic
intermediate representations, and the atomic representation to bare metal descriptions of
quantum programs.
## Installation
Install with `pip`:
```bash
pip install oqd-compiler-infrastructure
```
or alternatively from `git`:
```bash
pip install git+https://github.com/OpenQuantumDesign/oqd-compiler-infrastructure.git
```
For development, clone the repository locally:
```bash
git clone https://github.com/OpenQuantumDesign/oqd-compiler-infrastructure.git
```
## Documentation
To deploy the documentation locally, implemented with [mkdocs](https://www.mkdocs.org/), run the following commands:
```bash
pip install .[docs]
mkdocs serve
```
```mermaid
block-beta
columns 3
block:Interface
columns 1
InterfaceTitle("<i><b>Interfaces</b><i/>")
InterfaceDigital["<b>Digital Interface</b>\nQuantum circuits with discrete gates"]
space
InterfaceAnalog["<b>Analog Interface</b>\n Continuous-time evolution with Hamiltonians"]
space
InterfaceAtomic["<b>Atomic Interface</b>\nLight-matter interactions between lasers and ions"]
space
end
block:IR
columns 1
IRTitle("<i><b>IRs</b><i/>")
IRDigital["Quantum circuit IR\nopenQASM, LLVM+QIR"]
space
IRAnalog["openQSIM"]
space
IRAtomic["openAPL"]
space
end
block:Emulator
columns 1
EmulatorsTitle("<i><b>Classical Emulators</b><i/>")
EmulatorDigital["Pennylane, Qiskit"]
space
EmulatorAnalog["QuTiP, QuantumOptics.jl"]
space
EmulatorAtomic["TrICal, QuantumIon.jl"]
space
end
space
block:RealTime
columns 1
RealTimeTitle("<i><b>Real-Time</b><i/>")
space
RTSoftware["ARTIQ, DAX, OQDAX"]
space
RTGateware["Sinara Real-Time Control"]
space
RTHardware["Lasers, Modulators, Photodetection, Ion Trap"]
space
RTApparatus["Trapped-Ion QPU (<sup>171</sup>Yt<sup>+</sup>, <sup>133</sup>Ba<sup>+</sup>)"]
space
end
space
InterfaceDigital --> IRDigital
InterfaceAnalog --> IRAnalog
InterfaceAtomic --> IRAtomic
IRDigital --> IRAnalog
IRAnalog --> IRAtomic
IRDigital --> EmulatorDigital
IRAnalog --> EmulatorAnalog
IRAtomic --> EmulatorAtomic
IRAtomic --> RealTimeTitle
RTSoftware --> RTGateware
RTGateware --> RTHardware
RTHardware --> RTApparatus
classDef title fill:#d6d4d4,stroke:#333,color:#333;
classDef digital fill:#E7E08B,stroke:#333,color:#333;
classDef analog fill:#E4E9B2,stroke:#333,color:#333;
classDef atomic fill:#D2E4C4,stroke:#333,color:#333;
classDef realtime fill:#B5CBB7,stroke:#333,color:#333;
classDef highlight fill:#f2bbbb,stroke:#333,color:#333,stroke-dasharray: 5 5;
class InterfaceTitle,IRTitle,EmulatorsTitle,RealTimeTitle title
class InterfaceDigital,IRDigital,EmulatorDigital digital
class InterfaceAnalog,IRAnalog,EmulatorAnalog analog
class InterfaceAtomic,IRAtomic,EmulatorAtomic atomic
class RTSoftware,RTGateware,RTHardware,RTApparatus realtime
```
The lowering and compilation passes, used in the vertical lines connecting
abstraction layers, are based on the compiler infrastructure components contained
in this repository.
Raw data
{
"_id": null,
"home_page": null,
"name": "oqd-compiler-infrastructure",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "quantum, computing, compiler, transpilation",
"author": null,
"author_email": null,
"download_url": null,
"platform": null,
"description": "# ![Open Quantum Design](https://raw.githubusercontent.com/OpenQuantumDesign/oqd-compiler-infrastructure/main/docs/img/oqd-logo-text.png)\n\n<h2 align=\"center\">\n Open Quantum Design: Compiler Infrastructure\n</h2>\n\n[![doc](https://img.shields.io/badge/documentation-lightblue)](https://docs.openquantumdesign.org/open-quantum-design-compiler-infrastructure)\n[![PyPI Version](https://img.shields.io/pypi/v/oqd-compiler-infrastructure)](https://pypi.org/project/oqd-compiler-infrastructure)\n[![CI](https://github.com/OpenQuantumDesign/oqd-compiler-infrastructure/actions/workflows/pytest.yml/badge.svg)](https://github.com/OpenQuantumDesign/oqd-compiler-infrastructure/actions/workflows/pytest.yml)\n![versions](https://img.shields.io/badge/python-3.10%20%7C%203.11%20%7C%203.12-blue)\n[![black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)\n[![License: Apache 2.0](https://img.shields.io/badge/license-Apache%202.0-brightgreen.svg)](https://opensource.org/licenses/Apache-2.0)\n\n\n\n### What's here:\nThis repository contains the supporting infrastructure, base classes, and abstractions \nfor creating custom compiler analysis, verification, and transformation passes.\nThe modules in the repository are utilized for, e.g., lowering from the analog to atomic\nintermediate representations, and the atomic representation to bare metal descriptions of\nquantum programs.\n\n## Installation\n\nInstall with `pip`:\n```bash\npip install oqd-compiler-infrastructure\n```\n\nor alternatively from `git`:\n```bash\npip install git+https://github.com/OpenQuantumDesign/oqd-compiler-infrastructure.git\n```\n\nFor development, clone the repository locally:\n\n```bash\ngit clone https://github.com/OpenQuantumDesign/oqd-compiler-infrastructure.git\n```\n\n## Documentation\n\nTo deploy the documentation locally, implemented with [mkdocs](https://www.mkdocs.org/), run the following commands:\n\n```bash\npip install .[docs]\nmkdocs serve\n```\n\n```mermaid\nblock-beta\n columns 3\n \n block:Interface\n columns 1\n InterfaceTitle(\"<i><b>Interfaces</b><i/>\")\n InterfaceDigital[\"<b>Digital Interface</b>\\nQuantum circuits with discrete gates\"] \n space\n InterfaceAnalog[\"<b>Analog Interface</b>\\n Continuous-time evolution with Hamiltonians\"] \n space\n InterfaceAtomic[\"<b>Atomic Interface</b>\\nLight-matter interactions between lasers and ions\"]\n space\n end\n \n block:IR\n columns 1\n IRTitle(\"<i><b>IRs</b><i/>\")\n IRDigital[\"Quantum circuit IR\\nopenQASM, LLVM+QIR\"] \n space\n IRAnalog[\"openQSIM\"]\n space\n IRAtomic[\"openAPL\"]\n space\n end\n \n block:Emulator\n columns 1\n EmulatorsTitle(\"<i><b>Classical Emulators</b><i/>\")\n \n EmulatorDigital[\"Pennylane, Qiskit\"] \n space\n EmulatorAnalog[\"QuTiP, QuantumOptics.jl\"]\n space\n EmulatorAtomic[\"TrICal, QuantumIon.jl\"]\n space\n end\n \n space\n block:RealTime\n columns 1\n RealTimeTitle(\"<i><b>Real-Time</b><i/>\")\n space\n RTSoftware[\"ARTIQ, DAX, OQDAX\"] \n space\n RTGateware[\"Sinara Real-Time Control\"]\n space\n RTHardware[\"Lasers, Modulators, Photodetection, Ion Trap\"]\n space\n RTApparatus[\"Trapped-Ion QPU (<sup>171</sup>Yt<sup>+</sup>, <sup>133</sup>Ba<sup>+</sup>)\"]\n space\n end\n space\n \n InterfaceDigital --> IRDigital\n InterfaceAnalog --> IRAnalog\n InterfaceAtomic --> IRAtomic\n \n IRDigital --> IRAnalog\n IRAnalog --> IRAtomic\n \n IRDigital --> EmulatorDigital\n IRAnalog --> EmulatorAnalog\n IRAtomic --> EmulatorAtomic\n \n IRAtomic --> RealTimeTitle\n \n RTSoftware --> RTGateware\n RTGateware --> RTHardware\n RTHardware --> RTApparatus\n \n classDef title fill:#d6d4d4,stroke:#333,color:#333;\n classDef digital fill:#E7E08B,stroke:#333,color:#333;\n classDef analog fill:#E4E9B2,stroke:#333,color:#333;\n classDef atomic fill:#D2E4C4,stroke:#333,color:#333;\n classDef realtime fill:#B5CBB7,stroke:#333,color:#333;\n\n classDef highlight fill:#f2bbbb,stroke:#333,color:#333,stroke-dasharray: 5 5;\n \n class InterfaceTitle,IRTitle,EmulatorsTitle,RealTimeTitle title\n class InterfaceDigital,IRDigital,EmulatorDigital digital\n class InterfaceAnalog,IRAnalog,EmulatorAnalog analog\n class InterfaceAtomic,IRAtomic,EmulatorAtomic atomic\n class RTSoftware,RTGateware,RTHardware,RTApparatus realtime\n \n```\nThe lowering and compilation passes, used in the vertical lines connecting\nabstraction layers, are based on the compiler infrastructure components contained \nin this repository.\n",
"bugtrack_url": null,
"license": "Apache 2.0",
"summary": null,
"version": "0.1.0",
"project_urls": {
"Homepage": "https://github.com/OpenQuantumDesign/oqd-compiler-infrastructure",
"Issues": "https://github.com/OpenQuantumDesign/oqd-compiler-infrastructure/issues",
"Repository": "https://github.com/OpenQuantumDesign/oqd-compiler-infrastructure.git"
},
"split_keywords": [
"quantum",
" computing",
" compiler",
" transpilation"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "3cda4074a6de600dffc70dac471035725853e455e89e0390acdf7800ac96afcd",
"md5": "ae42350c425ec3329c5220ba8595fb88",
"sha256": "8b4a159f955857cebb76571fa33acf129b6edf698774aeedfb5296555aef84c0"
},
"downloads": -1,
"filename": "oqd_compiler_infrastructure-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ae42350c425ec3329c5220ba8595fb88",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 14702,
"upload_time": "2024-11-12T18:35:19",
"upload_time_iso_8601": "2024-11-12T18:35:19.626902Z",
"url": "https://files.pythonhosted.org/packages/3c/da/4074a6de600dffc70dac471035725853e455e89e0390acdf7800ac96afcd/oqd_compiler_infrastructure-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-12 18:35:19",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "OpenQuantumDesign",
"github_project": "oqd-compiler-infrastructure",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "oqd-compiler-infrastructure"
}