About this map
Sections
What this is
Quantum algorithms are not written from scratch. They are assembled from a small number of reusable steps, and almost every published method is a different route through the same handful of them.
This is a map of those routes. Circles are the things an algorithm can be holding. Lines are the steps that carry you from one to the next. A method is a path across.
Nothing here is generated. Every line was read out of a paper and checked against it.
How to read it
- Something you can hold — a state, a matrix, a circuit, an answer.
- The same, in the middle of a step you have opened.
- A step. Someone has published a way through it.
- A step whose way through has not been pinned to one method.
- A step nothing published fills yet.
- A step you have opened. What is drawn inside it is how it was done.
- There is a record in the repository for this one.
How to move around
- Two fingers move the map. Pinch to zoom, or hold ctrl and scroll.
- Click a step to open it in place — everything else stays where it is.
- Click a name to read the full record without leaving the map.
- Arrow keys move, plus and minus zoom, zero puts it back.
What a line is claiming
A solid line means a paper puts those two steps together and we have the citation. A long-dashed line means the route is recorded but no single method has been named for that step. A short-dashed line means nothing published fills it — the step is real, the way through is not written yet.
A count after a step's name — ×T/h, ×O(κ) — means the route walks that step that many times rather than once. It is the source's own symbol, and the card says what it stands for and what one turn costs. A step with no count is a step no source we read said is repeated, which is not the same as one taken once.
A line drawn nested under another, on the soft shaded band behind it, is a narrower version of the line above it: the same construction, re-analysed or re-tuned, filling the same step. It is why two lines can draw the identical interior and still be two entries. Lines outside the band are alternatives to their neighbours, not versions of them.
The map does not hide the gaps. An empty step is drawn as an empty step.
What is not here yet
The map covers the algorithm literature. The repository covers circuits and primitives. They overlap less than you would expect, and where a method has no record we say so on its page rather than leaving the space blank.
Where something named here does have a record, its name links straight to it.
Method
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.
Open the full recordFills the slot: Build logical qubits at a target logical error rate
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.
A physical error rate and noise model; a target logical error rate ; a connectivity constraint; a measurement and feedback cycle time.
Physical qubits → Logical qubitspack many logical qubits per code block
Two commuting shift matrices and , satisfying and , generate two GF(2) polynomials and , each term a power of or assumption: the three A_i are chosen distinct and the three B_j are chosen distinct so no terms cancel mod 2, and xy=yx so AB=BA and the X- and Z-checks commute. These build check matrices and on qubits, a CSS code with logical qubits and distance . The specific polynomials come from a numerical search over small ; e.g. with , yields a 144-qubit code with 12 logical qubits and distance 12 approximation: for larger examples such as the 360-qubit code the mixed-integer-programming distance is only a verified upper bound, not confirmed exact. By construction every check has weight 6, giving the Tanner graph vertex-degree 6; it does not embed in a 2D grid like the surface code but decomposes into two edge-disjoint planar degree-3 subgraphs, i.e. thickness assumption: this rate advantage over the surface code requires hardware supplying degree-6, thickness-2 non-planar connectivity, not a nearest-neighbor grid.
approximationassumption
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.
None found yet.
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 computationError 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.
None found yet.
None found yet.
BP-OSD decoder (ldpc package)
- Decoding Across the Quantum LDPC Code Landscape
Joschka Roffe, David R. White, Simon Burton, Earl T. Campbell · 2020
About
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.
Methods
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.
Data
None found yet.
Code
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.
Results
None found yet.
- Decoding Across the Quantum LDPC Code Landscape
Reference simulator for the bivariate bicycle memory
- High-threshold and low-overhead fault-tolerant quantum memory
Sergey Bravyi, Andrew W. Cross, Jay M. Gambetta, Dmitri Maslov, Patrick Rall, Theodore J. Yoder · 2023
About
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.
Methods
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.
Data
None found yet.
Code
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.
Results
None found yet.
- High-threshold and low-overhead fault-tolerant quantum memory
None found yet.
References
- High-threshold and low-overhead fault-tolerant quantum memory
Sergey Bravyi, Andrew W. Cross, Jay M. Gambetta, Dmitri Maslov, Patrick Rall, Theodore J. Yoder · 2023
Where the routes meet
Every circle is drawn once. This step has no smaller object recorded inside it, so the strands between its two circles are the recorded ways of taking it — one strand per method.
2 recorded ways of doing Build logical qubits at a target logical error rate. Nothing smaller is recorded inside it, so there is no object in the middle to draw.
Everything on this figure that opens is open.
Of the routes that have been taken apart, 15 are built entirely from named slots, 15 hand off part of the work and finish the rest themselves, and 20 are one undivided act. None of the three is a defect; they are different things to reuse.
Every line on this figure, in words
The lines on this figure
- Every line on this figure is one a recorded source takes.
Open the cardRead the full write-up
Where you are
Path
- Compile a circuit to a specific device
- Build logical qubits at a target logical error rate
Ways through: 2
Routes that skip it
No recorded route avoids this step.
Narrower kinds
Nothing recorded is a narrower kind of this.
Every step you can open
1 of these have an object recorded in the middle; the rest open into the methods that fill them.
- Solve a nonlinear ODE dy/dt = F(y)
- Replace a spatial domain with a finite grid
- Discretize a PDE into one linear system
- Embed a nonlinear system into a linear one
- Solve a linear ODE du/dt = A(t)u + b(t)
- Recast a non-Hermitian generator as Hamiltonian evolution
- Choose a time discretization or propagator approximation
- Quantum linear solve
- Matrix function
- QSP phase factors
- Polynomial approximation
- Block-encode a matrix
- Prepare an input state
- Amplify a success branch
- Simulate Hamiltonian evolution
- Estimate an observable
- Compile a circuit to a specific device
- Satisfy the hardware connectivity constraint
- Approximate a continuous rotation in a discrete gate set
- Recover a noiseless expectation value by post-processing
- Build logical qubits at a target logical error rate
- Estimate a Hamiltonian's ground-state energy
- Choose a parameterised trial state
- Minimise the objective over the parameters
- Estimate an excited-state energy
- Measure what the machine can actually do
- Recover the period of a periodic function
- Estimate the eigenphase of a unitary
- Find the item a check accepts
- Walk a graph to the vertex you want
- Search a cost Hamiltonian for the assignment it minimises
What is on this map, counted
What is here, counted
147 nodes — 31 slots and 116 methods.
76 of the 147 link to a record in the Atlas, between them naming 89 records. The rest name papers and nothing else: this graph describes work the catalogue has not got yet, and the nodes with no record are the list of what a corpus pass has to go and read.
0 slots have no method recorded, and 32 methods have not been taken apart. Both are shown as what they are rather than left blank.
Every claim here rests on a source. This graph cites 140 papers; they and the 172 the Atlas cites alone are registered in one place, with what each reports and everywhere it is cited from. Papers