Sign outOpen workspaceSign in

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.

Takes

A physical error rate pp and noise model; a target logical error rate PLP_L; a connectivity constraint; a measurement and feedback cycle time.

Returns

Logical qubits, together with the code and code distance dd 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

Drag to pan. Pinch, or hold ctrl and scroll, to zoom. Arrow keys pan, plus and minus zoom, zero resets the view.

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 pp 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 computation

Cost, 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-nn code uses nn 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 9.9±0.2%9.9\pm0.2\% 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 HXH^X or HZH^Z 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.

Sources