Skip to content

2.0.0 — parity with every other QEC tool, and Clifford+T under coherent noise

Choose a tag to compare

@Jaspersands Jaspersands released this 18 Oct 13:28
· 800 commits to master since this release

The Python package and the Rust crate both at 2.0.0.

Parity with the other QEC tools, and one thing none of them has. The features of
twenty-five other QEC tools — Stim, PyMatching, sinter, ldpc, Tsim, tqec, Loom, Deltakit, PECOS,
PanQEC, QUITS, qLDPC, qecsim, MQT QECC, Chromobius, Tesseract, Relay-BP, beliefmatching,
Fusion Blossom, MWPF, CUDA-Q QEC, qsample, qec-util, Qualtran's and Azure's resource estimators
— under the names those tools use, each port checked against its original (the inventory in
docs/superpowers/notes/2026-10-09-parity-inventory.md says what is here and what is not); and
Clifford+T circuits with a coherent error on every gate, sampled at sizes no state vector
reaches.

  • Stim's objects and text. str(circuit) is Stim's text exactly, instructions fuse as Stim
    fuses them, Circuit.generated, diagrams character for character, any number of observables,
    Crumble URLs, gate_data, the reference sample as Stim's.
  • PyMatching's graph API on the matcher; sinter whole without Stim; qec-util's and
    deltakit's analysis (Λ fits, p_ij, error budgets); subset sampling (qsample).
  • Decoders. ldpc whole (BP, BP+OSD, BP+LSD, union-find, belief-find, flip), bit for bit;
    Relay-BP, Tesseract, Chromobius, qLDPC, CUDA-Q QEC's decoders, MQT QECC, qecsim, bposd,
    Fusion Blossom and MWPF ports; the clustering decoders; a CNN pre-decoder; every decoder of a
    detector error model with decode_async.
  • Codes and code tools. PECOS, PanQEC and QUITS whole; Deltakit whole on Deltakit's Stim;
    tqec's block graphs and Loom's lattice surgery, compiled through this package's surgery
    engine; QuantumClifford's canonical forms and entropies.
  • Noise and hardware. Density matrices and process matrices, amplitude and phase damping,
    Quantumsim's perturbative expansion, leakage with heralds, Deltakit's leakage model exactly.
  • Clifford+T. A stabilizer-rank sampler for T gates and rotations at any qubit count
    (checked against the state vector and against Tsim), Tsim's circuit surface, and the joint
    coherent sampler: the non-Clifford gates exact, the coherent errors around them twirled and
    reweighted. Magic-state injection and distillation under over-rotation on every gate, where
    the twirl under-reads the encoded state's infidelity two to three times and turns a working
    distillation into a broken one.
  • Resource estimates. Qualtran's surface-code model and Azure's Resource Estimator ported,
    bit for bit on 100 recorded QDK cases.
  • Real time and the GPU. Decoding in the background, a decoder queue with latency
    statistics, a decoder server over TCP or pipes, CUDA-Q QEC's host API; frame sampling and
    min-sum BP on any GPU wgpu drives (Metal, Vulkan, DX12, in every wheel), each bit for bit its
    CPU reference's.
  • The site edits circuits: section 17, Crumble's job in the page, markers propagated to the
    detectors they flip, checked against the package and the engine.

Breaking changes (see the CHANGELOG's Changed): str(circuit) and the decoders' defaults
are now Stim's and ldpc's; the reference sample takes every random measurement as 0; Matching
is PyMatching's Matching. Everything deprecated in 1.x is gone.

Two adversarial reviews before tagging (fifteen independent reviews in all, the
CHANGELOG's review paragraph lists every fix): among them the 1.9 coherent sampler's reference
run, which complemented detection events on nondeterministic measurements; a first-order bias
in the joint sampler's truncation; Clifford-angle tagged gates that the frame engines read as
nothing; a lattice-surgery observable that cancelled across two seams; the GPU pacer, the
dropped-dispatch sentinel and the per-word generator; and the estimate port's formula
evaluator, now fasteval's grammar.

Nine tutorials, the technical report's 2.0 section, the API docs with the 2.0 subpackages, and
benchmarks re-recorded with every reference installed.