SurfaceCode Class
This class models the gate-based rotated surface code.
Hyper parameters: distance: int The code distance of the surface code.
References:
Dominic Horsman, Austin G. Fowler, Simon Devitt, Rodney Van Meter: Surface code quantum computing by lattice surgery, arXiv:1111.4022
Austin G. Fowler, Matteo Mariantoni, John M. Martinis, Andrew N. Cleland: Surface codes: Towards practical large-scale quantum computation, arXiv:1208.0928
David S. Wang, Austin G. Fowler, Lloyd C. L. Hollenberg: Quantum computing with nearest neighbor interactions and error rates over 1%, arXiv:1009.3686
Constructor
SurfaceCode(crossing_prefactor: float = 0.03, error_correction_threshold: float = 0.01, one_qubit_gate_depth: int = 1, two_qubit_gate_depth: int = 4, code_cycle_override: int | None = None, code_cycle_offset: int = 0, *, distance: int = 3)
Parameters
| Name | Description |
|---|---|
|
crossing_prefactor
|
Default value: 0.03
|
|
error_correction_threshold
|
Default value: 0.01
|
|
one_qubit_gate_depth
|
Default value: 1
|
|
two_qubit_gate_depth
|
Default value: 4
|
|
code_cycle_override
|
Default value: None
|
|
code_cycle_offset
|
Default value: 0
|
Keyword-Only Parameters
| Name | Description |
|---|---|
|
distance
|
Default value: 3
|
Methods
| provided_isa | |
| required_isa |
provided_isa
provided_isa(impl_isa: ISA, ctx: ISAContext) -> Generator[ISA, None, None]
Parameters
| Name | Description |
|---|---|
|
impl_isa
Required
|
|
|
ctx
Required
|
|
required_isa
static required_isa() -> ISARequirements
Attributes
crossing_prefactor
float The prefactor for logical error rate due to error correction crossings. (Default is 0.03, see Eq. (11) in arXiv:1208.0928)
crossing_prefactor: float = 0.03
error_correction_threshold
float The error correction threshold for the surface code. (Default is 0.01 (1%), see arXiv:1009.3686)
error_correction_threshold: float = 0.01
one_qubit_gate_depth
int The depth of one-qubit gates in each syndrome extraction cycle. (Default is 1, see Fig. 2 in arXiv:1009.3686)
one_qubit_gate_depth: int = 1
two_qubit_gate_depth
int The depth of two-qubit gates in each syndrome extraction cycle. (Default is 4, see Fig. 2 in arXiv:1009.3686)
two_qubit_gate_depth: int = 4
code_cycle_override
Optional[int] If provided, this value will be used as the time for each syndrome extraction cycle instead of the default calculation based on gate times and depths. (Default is None)
code_cycle_override: int | None = None
code_cycle_offset
int An additional time offset to add to the syndrome extraction cycle time. (Default is 0)
code_cycle_offset: int = 0
distance
distance: int = 3