rustiq_core/
lib.rs

1//! `rustiq-core` is a quantum circuit synthesis library.
2//!
3//! It contains data structures representing various mathematical objects together with synthesis methods able to generate
4//! efficient circuits targeting 2-qubit gate count or depth.
5//!
6//! # Data structures
7//!
8//! * [CliffordCircuit](crate::structures::CliffordCircuit) and [CliffordGate](crate::structures::CliffordGate) - Data structures used to represent Clifford gates and circuits.
9//! * [PauliSet](crate::structures::PauliSet) - A data structure used to store a list of Pauli operators. The list can be efficiently conjugated by `CliffordGate` or `CliffordCircuit` objects.
10//! * [Tableau](crate::structures::Tableau) - A Clifford Tableau implementation built on top of `PauliSet`.
11//! * [IsometryTableau](crate::structures::IsometryTableau) - An extension of the Tableau data structure that describes a Clifford operator applied to a partially stabilized input.
12//! * [GraphState](crate::structures::GraphState) - A data structure representing a graph state
13//!
14//! # Synthesis algorithms
15//!
16//! All synthesis algorithms are located in the [synthesis] submodule.
17//!
18//! * Synthesis of Clifford operators are handled by the [isometry_synthesis](crate::synthesis::clifford::isometry::isometry_synthesis) method.
19//!   This method can handle synthesis of `IsometryTableau` objects into `CliffordCircuit`.
20//! * Graph states and stabilizer states can be synthesized using [synthesize_graph_state](crate::synthesis::clifford::graph_state::synthesize_graph_state)
21//!   and [synthesize_stabilizer_state](crate::synthesis::clifford::graph_state::synthesize_stabilizer_state).
22//! * Method [codiagonalize](crate::synthesis::clifford::codiagonalization::codiagonalize) can be used to produce a
23//!   `CliffordCircuit` that codiagonalizes a given set of pairwise commuting Pauli operators.
24//! * Method [greedy_pauli_network](crate::synthesis::pauli_network::greedy_pauli_network()) can be used to implement a sequence of Pauli rotations.
25//!
26
27pub mod routines;
28pub mod structures;
29pub mod synthesis;