MethodLayer 1
Quantum LDPC codes (bivariate bicycle family)
Trade the surface code's strictly planar layout for slightly richer connectivity, in exchange for a much better encoding rate. Many logical qubits live in one code block instead of one per patch.
A physical error rate and noise model; a target logical error rate ; a connectivity constraint; a measurement and feedback cycle time.
Logical qubits, together with the code and code distance that were chosen for them, a physical-qubits-per-logical-qubit figure, and a decoding latency requirement.
Same contract as the slot it fills.
This one, drawn
From Physical qubits to Logical qubits
A circle is an object you are holding. This method is drawn heavier, opened into its own steps; the other lines between the same two ends are the alternatives recorded for the same slot. Circles are named on hover, and each one is a link.
Nothing drawn here has a recorded way through it that this figure leaves shut. See it on the map
What it fills
- Build logical qubits at a target logical error rate
Encode physical qubits whose error rate sits below a code- and decoder-specific threshold into logical qubits meeting a target logical error rate per round, by spending qubits and time on redundancy and decoding syndromes in real time. Which code sits underneath reaches the layers above only as a physical-qubit count and a demand on connectivity.
When it applies
Requires a degree-6 qubit connectivity graph decomposable into two edge-disjoint planar subgraphs — strictly more than the surface code's 2D nearest-neighbour grid, and the binding practical constraint. The headline result is a fault-tolerant MEMORY; performing logical operations on these codes is substantially less developed than lattice surgery on surface codes, so this is not yet a drop-in replacement for a full computation. Syndrome decoding remains a separate real-time problem, and matching decoders built for surface codes do not transfer directly.
Requires
Every step this method names moves its route along, so there is nothing it needs alongside them.
Example
given a physical error rate p and noise model, a target logical error rate
P_L, a connectivity constraint, and a measurement and feedback cycle
time
require a degree-6 qubit connectivity graph decomposable into two
edge-disjoint planar subgraphs
# strictly more than the surface code's 2D nearest-neighbour grid, and the
# binding practical constraint
encode many logical qubits into one code block, rather than one per patch
# the trade: give up the surface code's strictly planar layout for slightly
# richer connectivity, in exchange for a much better encoding rate
repeat each syndrome cycle:
for a length-n code, use n ancillary qubits and a depth-7
nearest-neighbour CNOT circuit
decode the syndromes in real time
# syndrome decoding remains a separate real-time problem, and matching
# decoders built for surface codes do not transfer directly
return the block's logical qubits and the physical qubits they cost
# error threshold 0.8% under the standard circuit-based noise model, on par
# with the surface code
# Bravyi et al. preserve 12 logical qubits for nearly a million syndrome
# cycles using 288 total physical qubits at physical error rate 0.1%,
# against an argued nearly 3000 physical qubits for equivalent surface-code
# suppression
# the headline result is a fault-tolerant MEMORY: performing logical
# operations on these codes is substantially less developed than lattice
# surgery on surface codes, so this is not yet a drop-in replacement for a
# full computationCost, as the source states it
Error threshold 0.8% under the standard circuit-based noise model, on par with the surface code. A syndrome cycle for a length- code uses ancillary qubits and a depth-7 nearest-neighbour CNOT circuit. Bravyi et al. preserve 12 logical qubits for nearly a million syndrome cycles using 288 total physical qubits at physical error rate 0.1%, against an argued nearly 3000 physical qubits for equivalent surface-code suppression.
Implementations
BP-OSD decoder (ldpc package)
Belief propagation combined with ordered-statistics post-processing (BP-OSD), presented as a general decoder for quantum LDPC codes built from the hypergraph product; the paper reports a measured Toric-code threshold of and evaluates two further hypergraph-product families, fixed-rate random codes and a new semi-topological family.
The paper this method's threshold and memory-lifetime figures come from states that its circuit-based-noise-model numerical experiments were run using "the publicly available BP-OSD software developed by Roffe et al.", after extending BP-OSD from the memory-only noise model it was originally described for to the circuit-based noise model those figures were measured under.
Package `ldpc` (`pip install ldpc`), github.com/quantumgizmos/ldpc, MIT-licensed, C++ with Cython/Python bindings. The BP-OSD decoder is the `BpOsdDecoder` class at `ldpc.bposd_decoder`, constructed from an arbitrary parity check matrix (`pcm`) with a belief-propagation method of either `product_sum` or `minimum_sum` and an Ordered-Statistics-Decoding fallback (`osd_method`, `osd_order`) used when belief propagation does not converge — general enough to take either or from a qLDPC construction, not specific to the bivariate bicycle family.
Reference simulator for the bivariate bicycle memory
Simulation software released by the paper's lead author, whose own README states it was "used to generate data reported on Figure 3" of the paper this method's cost figures are drawn from.
Two stages: an offline `decoder_setup.py` that builds check matrices, syndrome measurement circuits and decoding matrices for a given code (run once per code, error rate and cycle-count combination), and an online `decoder_run.py` that simulates the noisy error-correction circuit followed by a noiseless syndrome measurement, decoding and correction, recording a Monte Carlo trial as failed when it produces a non-identity logical Pauli error. A separate `distance_test.py` calculates code distance by solving an integer linear program.
Repository github.com/sbravyi/BivariateBicycleCodes (Apache-2.0): `decoder_setup.py`, `decoder_run.py` and `distance_test.py`; `decoder_run.py`'s own README states it relies on "the software implementation of the Belief Propagation with the Ordered Statistics Decoder" from the `ldpc` package.
What it needs
Nobody has taken this apart yet. That is a gap in this graph, not a claim that the method has no parts.
Other ways to fill the same slot
Different approaches
- Surface code
Encode a logical qubit in the homology of a two-dimensional lattice of physical qubits, with weight-4 stabilizers measured by nearest-neighbour circuits. It is the dominant fault-tolerant code because it needs only a 2D nearest-neighbour grid and tolerates a comparatively high physical error rate.
In the Atlas
No record in the Atlas covers this yet. The catalogue is circuits and primitives; this part of the literature is not in it.