qbraid-qir 0.2.2

Last updated:

0 purchases

qbraid-qir 0.2.2 Image
qbraid-qir 0.2.2 Images
Add to Cart

Description:

qbraidqir 0.2.2

qBraid-SDK extension providing support for QIR conversions.

Motivation

This project aims to make QIR representations accessible via the qBraid-SDK transpiler, and by doing so, open the door to language-specific conversions from any and all high-level quantum languages supported by qbraid. See QIR Alliance: why do we need it?.
Installation
qBraid-QIR requires Python 3.9 or greater, and can be installed with pip as follows:
pip install qbraid-qir

Optional dependencies
qBraid-QIR offers integrations that require extra (optional) dependencies, which can be installed as follows:
For Cirq to QIR conversions, install the cirq extra:
pip install 'qbraid-qir[cirq]'

For OpenQASM 3 to QIR conversions, install the qasm3 extra:
pip install 'qbraid-qir[qasm3]'

Install from source
You can also install from source by cloning this repository and running a pip install command
in the root directory of the repository:
git clone https://github.com/qBraid/qbraid-qir.git
cd qbraid-qir
pip install .

To include optional dependencies when installing from source, use the same "extras_require" format, e.g.
pip install '.[cirq,qasm3]'

Check version
You can view the version of qbraid-qir you have installed within a Python shell as follows:
In [1]: import qbraid_qir

In [2]: qbraid_qir.__version__

Resources

User Guide
API Reference
Example Notebooks
Test Containers

Usage examples
Cirq conversions
import cirq
from qbraid_qir.cirq import cirq_to_qir

q0, q1 = cirq.LineQubit.range(2)

circuit = cirq.Circuit(
cirq.H(q0),
cirq.CNOT(q0, q1),
cirq.measure(q0, q1)
)

module = cirq_to_qir(circuit, name="my-circuit")

ir = str(module)

OpenQASM 3 conversions
from qbraid_qir.qasm3 import qasm3_to_qir

program = """
OPENQASM 3;
include "stdgates.inc";

qubit[2] q;
bit[2] c;

h q[0];
cx q[0], q[1];

measure q[0] -> c[0];
measure q[1] -> c[1];
"""

module = qasm3_to_qir(program, name="my-program")

ir = str(module)

Add QIR node to qBraid conversion graph
from qbraid_qir.cirq import cirq_to_qir
from qbraid.transpiler import Conversion, ConversionGraph

graph = ConversionGraph()

conversion = Conversion("cirq", "qir", cirq_to_qir)

graph.add_conversion(conversion)

graph.plot()

Architecture diagram
qBraid-SDK transpiler hub-and-spokes architecture with qbraid-qir integration (left) mapped to language specific conversion step in QIR abstraction layers (right).

Contributing

Interested in contributing code, or making a PR? See
CONTRIBUTING.md
For feature requests and bug reports:
Submit an issue
For discussions, and specific questions about the qBraid-SDK, qBraid-QIR, or
other topics, join our discord community
For questions that are more suited for a forum, post to
QCSE
with the qbraid tag.
By participating, you are expected to uphold our code of conduct.

Citation
If you use qBraid-QIR in your research, we kindly request that you cite it appropriately.
The BibTeX entry below is aligned with the latest stable release. For the most up-to-date
citation details, please refer to CITATION.cff.
@software{Gupta_qBraid-QIR_Python_package_2024,
author = {Gupta, Harshit and Kushnir, Samuel and Jain, Rohan and Parakh, Priyansh and Hill, Ryan James},
license = {GPL-3.0},
month = jun,
title = {{qBraid-QIR: Python package for QIR conversions, integrations, and utilities.}},
url = {https://github.com/qBraid/qbraid-qir},
version = {0.2.1},
year = {2024}
}

Acknowledgements
This project was conceived in cooperation with the Quantum Open Source Foundation (QOSF).

License
GNU General Public License v3.0

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.