Skip to main content
KetQat

Appearance

QEC Lab

Decoder results grouped by what they actually measured. Two decoders benchmarked at different code distances, round counts, error rates, noise models, or stopping rules are not competitors, so they never appear in the same table here.

To see what a decoder is given to work with, the syndrome explorer applies a Pauli error to a small code and shows the syndrome it produces, what the decoder infers from it, and whether the correction restored the logical state.

Three independent decoders, one hashed sample

Surface code d=3, 3 rounds, p=0.02, 20,000 shots — one shared Stim sample (SHA-256 2bac07a88b02), which every decoder provably consumed. Execution class SIMULATION; produced by ketqat/ketqat-benchmarks@4b77286a.

Per-decoder results. Rank uses unconditional risk (failures plus abstentions over all shots), so a decoder cannot climb the table by declining hard shots. Latency is single-shot with warm-up; throughput is the library batch API — different experiments, reported separately.
DecoderRankUncond. riskWilson 95%p50 / p99 (µs)Batch (shots/s)
tesseract vunknown10.13020[0.1256, 0.1349]355 / 24581,562
beliefmatching vunknown20.13465[0.1300, 0.1395]148 / 7436,134
pymatching-mwpm v2.4.030.14185[0.1371, 0.1468]4 / 71,389,754
Paired per-shot inference. All decoders saw the same shots, so the discordant counts (A wrong where B right, and conversely) decide what overlapping marginal intervals cannot: an exact McNemar test with Bonferroni correction across the three pairs.
PairRisk diff.Paired 95% CIb01 / b10McNemar pSignificant
pymatching-mwpmbeliefmatching+0.00720[0.00487, 0.00953]355 / 2111.52e-9yes(α=0.0167)
pymatching-mwpmtesseract+0.01165[0.00837, 0.01493]679 / 4464.62e-12yes(α=0.0167)
beliefmatchingtesseract+0.00445[0.00186, 0.00704]394 / 3058.61e-4yes(α=0.0167)

The finding is a tradeoff, not a winner: the most accurate decoder here has roughly a thousandth of the fastest one’s batch throughput. Marginal intervals overlap for two of the three pairs at this shot count — the paired test on shared shots is what separates all three, which is why both tables are shown.

Decoder comparison

No comparable decoder runs yet

A comparison needs at least two decoders measured under identical conditions. Run the packaged example to produce one:

ketqat run decoder-comparison --output result.json

It benchmarks two decoders against the same syndrome samples at the same seed, which is what makes the comparison fair, then import the result.

Codes and hardware

QEC codes and hardware

Each cell is derived from the device snapshot’s capability fields, so the claim can be checked against the snapshot it came from. This is a capability match, not a recommendation and not an experimental result: only a recorded run could raise a pairing to simulated or demonstrated, and none of these are backed by a run.

The devices below are synthetic topologies used for exploring routing, not observations of any physical hardware.

QEC code and device capability matches, derived from device capability fields
CodeLine, 5 qubitsGrid, 3x3All-to-all, 6 qubitsLine, 5 qubits, no feed-forward
Rotated surface code (X memory)
STABILIZER
CSS
TOPOLOGICAL
THEORETICALLY_SUITABLECapabilities matchTHEORETICALLY_SUITABLECapabilities matchTHEORETICALLY_SUITABLECapabilities matchINCOMPATIBLE_UNDER_ASSUMPTIONSMissing a required capability
  • mid-circuit measurement is required for syndrome extraction
Rotated surface code (Z memory)
STABILIZER
CSS
TOPOLOGICAL
THEORETICALLY_SUITABLECapabilities matchTHEORETICALLY_SUITABLECapabilities matchTHEORETICALLY_SUITABLECapabilities matchINCOMPATIBLE_UNDER_ASSUMPTIONSMissing a required capability
  • mid-circuit measurement is required for syndrome extraction
Unrotated surface code (X memory)
STABILIZER
CSS
TOPOLOGICAL
THEORETICALLY_SUITABLECapabilities matchTHEORETICALLY_SUITABLECapabilities matchTHEORETICALLY_SUITABLECapabilities matchINCOMPATIBLE_UNDER_ASSUMPTIONSMissing a required capability
  • mid-circuit measurement is required for syndrome extraction
Repetition code (memory)
STABILIZER
CSS
THEORETICALLY_SUITABLECapabilities matchTHEORETICALLY_SUITABLECapabilities matchTHEORETICALLY_SUITABLECapabilities matchINCOMPATIBLE_UNDER_ASSUMPTIONSMissing a required capability
  • mid-circuit measurement is required for syndrome extraction
Color code (XYZ memory)
STABILIZER
CSS
TOPOLOGICAL
THEORETICALLY_SUITABLECapabilities matchTHEORETICALLY_SUITABLECapabilities matchTHEORETICALLY_SUITABLECapabilities matchINCOMPATIBLE_UNDER_ASSUMPTIONSMissing a required capability
  • mid-circuit measurement is required for syndrome extraction

Code catalog

  • Rotated surface code (X memory)
    STABILIZER
    CSS
    TOPOLOGICAL
    SURFACE

    Planar topological code on a rotated lattice, preserving one logical qubit through repeated rounds of syndrome extraction.

    • Nearest-neighbour connectivity on a two-dimensional grid is sufficient.

    Runnable distances: 3, 5, 7, 9 · reference

  • Rotated surface code (Z memory)
    STABILIZER
    CSS
    TOPOLOGICAL
    SURFACE

    Rotated surface code memory experiment in the Z basis.

    Runnable distances: 3, 5, 7, 9 · reference

  • Unrotated surface code (X memory)
    STABILIZER
    CSS
    TOPOLOGICAL
    SURFACE

    Unrotated surface code memory; uses more physical qubits per distance than the rotated layout.

    Runnable distances: 3, 5, 7 · reference

  • Repetition code (memory)
    STABILIZER
    CSS

    One-dimensional classical repetition code protecting against a single error type. Useful as a control: it is not a full quantum code.

    • Protects against one error type only, so a low logical error rate here is not evidence of quantum error correction.

    Runnable distances: 3, 5, 7, 9, 11 · reference

  • Color code (XYZ memory)
    STABILIZER
    CSS
    TOPOLOGICAL
    COLOR

    Triangular color code memory, admitting transversal Clifford gates.

    • Syndrome extraction uses weight-six stabilizers on a three-colorable lattice.

    Runnable distances: 3, 5, 7 · reference