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