qoqo logo

qoqo

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

Crates.io GitHub Workflow Status docs.rs Crates.io codecov

roqoqo provides:

This software is still in the beta stage. Functions and documentation are not yet complete and breaking changes can occur.

Installation

To use roqoqo in a Rust project simply add

TOML roqoqo = {version="0.8"}

to the [dependencies] section of the project Cargo.toml.

qoqo

Documentation Status GitHub Workflow Status PyPI PyPI - Format Crates.io Crates.io

qoqo provides a full python interface to the underlying roqoqo library, including:

Installation

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.

Examples

For an expanded collection of Examples see the jupyter notebooks in qoqo/examples. The examples require the qoqoquest and qoqomock interfaces.

Contributing

We welcome contributions to the project. If you want to contribute code, please have a look at CONTRIBUTE.md for our code contribution guidelines.