40 releases (8 stable)
1.2.5 | Feb 15, 2023 |
---|---|
1.2.0 | Jan 9, 2023 |
1.2.0-alpha.2 | Dec 9, 2022 |
1.2.0-alpha.1 | Nov 3, 2022 |
0.5.1 | Jul 29, 2021 |
#13 in Science
2,840 downloads per month
Used in 11 crates
500KB
8K
SLoC
roqoqo
roqoqo is a toolkit to represent quantum circuits by HQS Quantum Simulations.
For a detailed introduction see the user documentation and the qoqo examples repository
What roqoqo is:
- A toolkit to represent quantum programs including circuits and measurement information
- A thin runtime to run quantum measurements
- A way to serialize quantum circuits and measurement information
- A set of optional interfaces to devices, simulators and toolkits (e.g. qoqo_quest, qoqo_mock, qoqo_qasm)
What roqoqo is not:
- A decomposer translating circuits to a specific set of gates
- A quantum circuit optimizer
- A collection of quantum algorithms
roqoqo
roqoqo provides:
- A
Circuit
struct to represent quantum circuits - A
QuantumProgram
enum to represent quantum programs using different measurement methods - Structs representing single-qubit, two-qubit, multi-qubit and measurement operations that can be executed (decomposed) on any universal quantum computer
- Structs representing so-called PRAGMA operations that only apply to certain hardware, simulators or annotate circuits with additional information
- Enums that group operations based on the properties of operations (e.g.
Operation
for all operations orSingleQubitGateOperation
for all unitary operations acting on a single qubit) - Support for symbolic variables
- Readout based on classical registers
- Measurement structs for evaluating observable measurements based on raw readout date returned by quantum computer backends
- An
EvaluatingBackend
trait defining a standard for interfacing from qoqo to hardware and simulators that can return measured values - A
Device
trait defining a standard to obtain connectivity information and a noise model for quantum computing devices - Serialize and deserialize support for
Circuit
andQuantumProgram
via the serde crate.
This software is still in the beta stage. Functions and documentation are not yet complete and breaking changes can occur.
This project is partly supported by PlanQK.
Installation
To use roqoqo in a Rust project simply add
roqoqo = {version="1.0"}
to the [dependencies]
section of the project Cargo.toml.
Dependencies
~6MB
~127K SLoC