Skip to content

Surf dems#293

Merged
ciaranra merged 41 commits intodevfrom
surf-dems
Apr 15, 2026
Merged

Surf dems#293
ciaranra merged 41 commits intodevfrom
surf-dems

Conversation

@qciaran
Copy link
Copy Markdown
Collaborator

@qciaran qciaran commented Apr 15, 2026

Summary

Surface-code DEM work plus a set of loosely-grouped improvements that accumulated on the branch. The five themes:

  • Surface DEM tooling: ancilla-budget-aware circuit building, batched stabilizer scheduling that mirrors Guppy's ordering, and a native-DEM threshold-sweep example (examples/surface/native_dem_threshold_sweep.py).
  • Decomposed DEM with source tracking: pecos-qec::dem_builder now emits per-error-source metadata (direct vs decomposed forms, graphlike-decomposable counts) and DetectorErrorModel renders both Stim-compatible non-decomposed and decomposed outputs.
  • QIS/Selene integration: implicit static qubit handles, operation-trace capture (capture_operation_trace() programmatic path plus trace_operations() JSON dump), and a physical-slot allocator in QisEngine that recycles freed slots.
  • Hot-path cleanups: scratch-buffer reuse in byte_message::builder, fast single-pair path in quantum::with_flat_pairs, and reusable per-shot buffers in noise/QIS dispatch.
  • Test infra: new slow marker (with a dedicated just pytest-slow lane and CI step), decomposed-DEM invariant suite, surface metadata descriptors pinned by tests, Selene parity checks across DEM/sampler/decoder paths.

@qciaran qciaran requested a review from ciaranra as a code owner April 15, 2026 00:50
@ciaranra ciaranra merged commit 00f889e into dev Apr 15, 2026
89 checks passed
@ciaranra ciaranra deleted the surf-dems branch April 15, 2026 15:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants