Quantum Operation Quantum Operation
Yes we use reduplication
qoqo is a toolkit to represent quantum circuits by HQS Quantum Simulations.
This repository contains two components:
What roqoqo/qoqo is:
What roqoqo/qoqo is not:
roqoqo provides:
To use roqoqo in a Rust project simply add
TOML
roqoqo = {version="0.8"}
to the [dependencies]
section of the project Cargo.toml.
qoqo provides a full python interface to the underlying roqoqo library, including:
On Linux and macOS on x86 precompiled packages can be found on PyPi and installed via
shell
pip install qoqo
For other platforms we recommend using the source distribution from PyPi to build a python package for qoqo locally via pip. The install requires the maturin tool (also available via pip) and a working rust toolchain. Specifically for macOS on Apple Silicon the following build command should be used:
shell
RUSTFLAGS="-C link-arg=-undefined -C link-arg=dynamic_lookup" pip install qoqo
Alternatively one can check out the latest tagged version from github and use the maturin tool to build a python package for qoqo locally and install it via pip.
Please note that the package should be built from the top level directory of the workspace selecting the qoqo package with the -m qoqo/Cargo.toml
option.
Specifically for macOS on Apple Silicon the following build command should be used.
shell
RUSTFLAGS="-C link-arg=-undefined -C link-arg=dynamic_lookup" maturin build -m qoqo/Cargo.toml --release
pip install target/wheels/$NAME_OF_WHEEL
When using qoqo in a rust project providing a python interface add
TOML
qoqo = {version="0.9", default-features=false}
to the [dependencies]
section of the project Cargo.toml.
A source distribution now exists but requires a Rust install with a rust version > 1.47 and a maturin version { >= 0.12, <0.13 } in order to be built.
Since qoqo provides a full python interface to the underlying roqoqo library, there are examples for python users and for Rust users.
For an expanded collection of examples please see the jupyter notebooks in the extra repository qoqoexamples. The qoqo examples require the qoqoquest and qoqo_mock interfaces.
We welcome contributions to the project. If you want to contribute code, please have a look at CONTRIBUTE.md for our code contribution guidelines.