QuantumClifford.jl

A Julia package for working with quantum stabilizer states and Clifford circuits that act on them. It uses the tableaux formalism[1] with the destabilizer improvments[2].

Works efficiently with pure and mixed stabilizer states of thousands of qubits as well as sparse or dense Clifford operations acting upon them. It supports graph states.

Provides canonicalization, projection, and generation operations, as well as partial traces. The operations are generally vectorized and multithreaded.

See the manual or the curated list of useful functions.

julia> P"X" * P"Z"
-iY

julia> P"X" ⊗ P"Z"
+ XZ

julia> S"-XX
         +ZZ"
- XX
+ ZZ

julia> tCNOT * S"-XX
                 +ZZ"
- X_
+ _Z