7 releases
new 0.0.8 | Oct 8, 2024 |
---|---|
0.0.7 | Sep 19, 2024 |
0.0.6 | Aug 13, 2024 |
0.0.2 | Jul 5, 2024 |
#812 in Algorithms
291 downloads per month
210KB
5.5K
SLoC
A rust based quantum circuit synthesis library
If you want a quick way to use those algorithms, you might want to check the python wrapper around this library.
lib.rs
:
rustiq-core
is a quantum circuit synthesis library.
It contains data structures representing various mathematical objects together with synthesis methods able to generate efficient circuits targeting 2-qubit gate count or depth.
Data structures
- CliffordCircuit and CliffordGate - Data structures used to represent Clifford gates and circuits.
- PauliSet - A data structure used to store a list of Pauli operators. The list can be efficiently conjugated by
CliffordGate
orCliffordCircuit
objects. - Tableau - A Clifford Tableau implementation built on top of
PauliSet
. - IsometryTableau - An extension of the Tableau data structure that describes a Clifford operator applied to a partially stabilized input.
- GraphState - A data structure representing a graph state
Synthesis algorithms
All synthesis algorithms are located in the [synthesis] submodule.
- Synthesis of Clifford operators are handled by the isometry_synthesis method.
This method can handle synthesis of
IsometryTableau
objects intoCliffordCircuit
. - Graph states and stabilizer states can be synthesized using synthesize_graph_state and synthesize_stabilizer_state.
- Method codiagonalize can be used to produce a
CliffordCircuit
that codiagonalizes a given set of pairwise commuting Pauli operators. - Method greedy_pauli_network can be used to implement a sequence of Pauli rotations.
Dependencies
~3MB
~43K SLoC