wai-quantum 0.3.32: union-find decoding in near-linear time #155
Merged
dcharlot
merged 2 commits from 2026-10-05 10:56:33 -04:00
wai-quantum-uf into main 2026-10-05
wai-quantum 0.3.32: close the optimisation pin's test function
All checks were successful
standards workspaces build + test / smart-byte-rs (pull_request) Successful in 3m36s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 4m28s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 13s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 2m11s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 23s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 43s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 1m22s
WAI JPEG-AI whole decode (pinned inputs, required) / fetch pinned JPEG-AI inputs → whole decode + pixel hash, required (pull_request) Successful in 58s
WAI neural sink gates / model-free refusals of the neural sink (pull_request) Successful in 1m4s
WAI mbt2018_mean integer decode (regenerated vectors) / regenerate mbt2018_mean integer vectors → Rust decode, required (pull_request) Successful in 3m52s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 1m45s
standards workspaces build + test / jouleclaw-rs (pull_request) Successful in 9m19s
standards workspaces build + test / aac-rs (pull_request) Successful in 4m15s
standards workspaces build + test / joule-code-rs (pull_request) Successful in 3m39s
standards workspaces build + test / joulecontract-rs (pull_request) Successful in 2m6s
standards workspaces build + test / map-rs (pull_request) Successful in 2m37s
standards workspaces build + test / mesh-rs (pull_request) Successful in 1m32s
standards workspaces build + test / openpay (pull_request) Successful in 6m10s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 6m46s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 44s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 2m7s
standards workspaces build + test / arl-rs (pull_request) Successful in 37m41s
standards workspaces build + test / joule-ui-rs (pull_request) Successful in 11m41s
standards workspaces build + test / jouledesk-rs (pull_request) Successful in 9m54s
standards workspaces build + test / joulehook-rs (pull_request) Successful in 13m55s
standards workspaces build + test / sense-rs (pull_request) Successful in 5m58s
standards workspaces build + test / macOS energy backends (pull_request) Successful in 7m6s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 9m40s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 42s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 2m55s
The restack onto 0.3.31 left tests/bit_identity.rs with an unclosed function, so the integration tests did not compile (the linux energy-receipts job). The fix was staged after the commit by mistake. Also trims the union-find vs exact matching comparison to 6,000 shots per distance (about 25 s in debug). Co-Authored-By: Claude Opus 5.5 <[email protected]>
wai-quantum 0.3.32: union-find decoding in near-linear time
Some checks failed
standards workspaces build + test / smart-byte-rs (pull_request) Successful in 3m39s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 4m28s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 12s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 2m10s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 26s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 48s
WAI energy receipts / energy receipts · linux (pull_request) Failing after 57s
WAI JPEG-AI whole decode (pinned inputs, required) / fetch pinned JPEG-AI inputs → whole decode + pixel hash, required (pull_request) Successful in 1m2s
WAI neural sink gates / model-free refusals of the neural sink (pull_request) Successful in 1m2s
WAI mbt2018_mean integer decode (regenerated vectors) / regenerate mbt2018_mean integer vectors → Rust decode, required (pull_request) Successful in 3m51s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 1m48s
standards workspaces build + test / aac-rs (pull_request) Has been cancelled
standards workspaces build + test / arl-rs (pull_request) Has been cancelled
standards workspaces build + test / joule-code-rs (pull_request) Has been cancelled
standards workspaces build + test / joule-ui-rs (pull_request) Has been cancelled
standards workspaces build + test / joulecontract-rs (pull_request) Has been cancelled
standards workspaces build + test / jouledesk-rs (pull_request) Has been cancelled
standards workspaces build + test / joulehook-rs (pull_request) Has been cancelled
standards workspaces build + test / map-rs (pull_request) Has been cancelled
standards workspaces build + test / mesh-rs (pull_request) Has been cancelled
standards workspaces build + test / openpay (pull_request) Has been cancelled
standards workspaces build + test / sense-rs (pull_request) Has been cancelled
standards workspaces build + test / macOS energy backends (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · macos (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · macos (pull_request) Has been cancelled
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Has been cancelled
WAI energy receipts / energy receipts · macos (pull_request) Has been cancelled
standards workspaces build + test / jouleclaw-rs (pull_request) Has been cancelled
A fault-tolerant machine must decode each syndrome round before the next arrives. Exact matching (quantum_match) is the accuracy reference; quantum_uf is the fast decoder over the same matching graph: - Grow: every fired detector starts a cluster; odd clusters (not on the boundary) grow all frontier edges at once, on the graph's integer weights, an edge between two growing clusters at double speed. - Merge: a filled edge joins its clusters; a cluster on the boundary stops. - Peel: each cluster's filled edges as a spanning tree, rooted at the boundary when it holds it, peeled leaves-first into a correction. - Growth is event-driven: each frontier edge carries a fill time, and a merge reschedules only the frontier of a side whose growth changed. Fill times never run backwards, so events sit in a radix heap at amortised O(1). Profiling put 45% of the time in a binary heap before; the radix heap halved the time per shot at d = 21. Time now grows linearly with fired detectors, about 1.1-1.5 us each from d = 9 to d = 21. - A reusable workspace resets in time proportional to the last shot. Checked: - every single edge of d = 3 and d = 5 graphs is corrected exactly; - the event-driven schedule agrees with a round-by-round one (kept in the tests) on 2,000 shots at each of three distances, up to tie order; - on the same 20,000 shots, union-find fails 0.92-1.18x as often as exact matching (d = 3-9, p = 0.003-0.007), 77x faster at d = 11; its threshold sits a little lower (at p = 0.007 its failures stop falling with distance). CLI: wai-quantum qec --decoder uf|exact. Example: uf_bench. Pinned bit for bit natively and under wasm32-wasip2 (17 pins); CLI output byte-identical. Co-Authored-By: Claude Opus 5.5 <[email protected]>