### 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

**Custom license**

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`

:

is a quantum circuit synthesis library.`rustiq-core`

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

or`CliffordGate`

objects.`CliffordCircuit` - 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

objects into`IsometryTableau`

.`CliffordCircuit` - Graph states and stabilizer states can be synthesized using synthesize_graph_state and synthesize_stabilizer_state.
- Method codiagonalize can be used to produce a

that codiagonalizes a given set of pairwise commuting Pauli operators.`CliffordCircuit` - Method greedy_pauli_network can be used to implement a sequence of Pauli rotations.

#### Dependencies

~3MB

~43K SLoC