1 unstable release
| 0.1.0 | Jul 31, 2025 |
|---|
#234 in Science
63 downloads per month
Used in 5 crates
17KB
285 lines
bicycle_common
This crate implements common functionality of the Bicycle Architecture Compiler. Its main contribution are the logical instruction of bivariate bicycle codes. It supports instantiating instructions and some methods for manipulation, random sampling, etc.
Pauli is also defined in this crate.
Summary of the logical instructions
We list
type
display namedescription
of the bicycle instructions used in Tour de Gross arXiv:2506.03094:
- SyndromeCycle
scIdle operation. Not used explicitly by the compiler, only inferred with timing information in the numerics. - Automorphism
aut(_,_)Perform a unitary automorphism gate, see Section 9.2 of arXiv:2308.07915. - Measure
meas(_,_)Measure the first and/or seventh qubit. - JointMeasure
jMeas(_,_)One half of a joint measurement between code modules. Measure the first and/or seventh qubit of each module. - TGate
T(_,_,_)Apply $exp(i P\pi/8)$ for $P \in \set{X,Z,Y}$ on the first or seventh qubit.
Note that we also define other logical instructions of bivariate bicycle codes that are not used (explicitly) by the compiler:
- CSSInitZero
init0Initialize all logical qubits in a code module to|0>. - CSSInitPlus
init+Initialize all logical qubits in a code module to|+>. - DestructiveZ
measZMeasure all logical qubits in a code module in Z basis. - DestructiveX
measXMeasure all logical qubits in a code module in X basis. - ParallelMeasure
pMeas(_)Measure the first and seventh qubit independently. - JointBellInit
jBellOne half of an instruction acting on two code modules. Initialize 12 Bell pairs using transversal CX. - JointTransversalCX
jCnotOne half of an instruction acting on two code modules. Perform 12 CX gates via transversal CX. - InitT
initTInitialize all logical qubits in a code module to|T>, at physical noise rate.
Dependencies
~0.7–1.4MB
~29K SLoC