Skip to content

stabilizer-qec 1.4.0

Choose a tag to compare

@Jaspersands Jaspersands released this 04 Oct 11:05
· 993 commits to master since this release

The Python package and the Rust crate both at 1.4.0: window decoding of models too long to
unroll, streaming any circuit with a loop, and circuit diagrams after Stim's.

Added

  • Window decoding of models too long to unroll. WindowMatching takes its windows' graphs
    from a short template of the model's longest loop, whose middle windows serve every window
    away from the model's ends, shifted by whole passes of the loop; shots are fed in layer by
    layer. A d = 11 rotated memory of 10,000 rounds (27.6 million faults) builds its model in
    0.2 s and its decoder in about a second, and decodes from the folded model. It is the
    default for a model of more than a million faults with a loop; template=True (Rust:
    WindowOptions::with_template) asks for it, template=False for the whole model, and both
    give the same predictions (tested on Stim's rotated, unrotated and repetition memories,
    sliding and parallel, with and without correlations). WindowMatching.streamed says which.
  • stream_memory(circuit=...) (Rust: stream_circuit): any circuit with a loop, sampled
    round by round and window-decoded as it streams, its windows from a template of its folded
    model. The template's middle spans a whole number of window periods that is also a whole
    number of the loop's passes, so loops Stim folds two rounds at a time are served.
  • Diagrams, after Stim's diagram: Circuit.diagram(type, tick=...) (Rust:
    Circuit::diagram(DiagramKind)) draws "timeline-text" and "timeline-svg", every
    operation in its column with TICK groups bracketed, loops drawn once with their count and
    measurements numbered; "detslice-text" and "detslice-svg", what each detector compares
    after tick TICKs, its Paulis drawn as shapes over the qubits at their coordinates (the
    same slices as Stim's at every tick of its generated surface, colour and repetition
    codes); and "matchgraph-svg", a decomposed model's matching graph
    (DetectorErrorModel.diagram). The result is a Diagram: it prints as its text, shows as
    a picture in a notebook, and saves to a file. The pictures follow the reader's light or
    dark theme.