Releases: DennisWayo/lidmas_cpp
v1.2.0 — Stable Release
v1.2.0 is the first stable release of the new hardware integration flow.
- Moved hardware integration to top-level:
hardware_integration/xanadu/ - Added one-command real-data workflow:
xandau_hardware_data.sh - Supports Xanadu dataset conversion (Aurora, QCA, GKP, legacy job JSON) to
decoder_ioNDJSON - Keeps outputs centralized in
examples/results/hardware_integration/ - Includes replay workflow and updated documentation across README and docs
v1.2.0-rc.2 – Streaming Xanadu Data Integration RC2
This release candidate focuses on Xanadu hardware-data integration and large-dataset conversion reliability.
Highlights
- Added multi-format Xanadu data conversion into
decoder_ioNDJSON:- legacy job JSON (
output/samples) - Aurora decoder-demo switch-setting batches
- QCA/Borealis shot matrices (
.json,.npy,.npz) - count-compressed outcome tables (GKP-style exports)
- legacy job JSON (
- Added C++ replay workflow integration for converted NDJSON requests.
- Added streaming/chunked conversion controls for heavy datasets:
--stream--shot-start--max-shots--append-out--progress-every
- Added runnable fixtures/scripts for Aurora/QCA/GKP conversion and replay validation.
Included Changes Since v1.1.4
feat(hardware): add decoder_io NDJSON replay CLI and Xanadu integration example(431b0c9)feat(hardware): add streaming Xanadu dataset integration(a544e2b)
Comparison:
https://github.com/DennisWayo/lidmas_cpp/compare/v1.1.4...v1.2.0-rc.2
Validation Performed
- Python compile check:
python3 -m py_compile examples/hardware_integration/convert_xanadu_job_to_decoder_io.py
- Fixture conversions:
bash examples/hardware_integration/run.shbash examples/hardware_integration/run_public_datasets.sh
- Replay checks:
bash examples/hardware_integration/replay.sh examples/results/hardware_integration/decoder_requests_aurora.ndjsonbash examples/hardware_integration/replay.sh examples/results/hardware_integration/decoder_requests_qca.ndjsonbash examples/hardware_integration/replay.sh examples/results/hardware_integration/decoder_requests_gkp.ndjson
- Result: replay completed with
errors=0on fixture datasets.
Notes
.npy/.npzconversion paths require NumPy (pip install numpy).- This is an RC intended for real-data validation at scale before final
v1.2.0. - No breaking changes are expected for existing workflows.
Upgrade / Usage
- Use this RC tag for validation runs:
git checkout v1.2.0-rc.2
- For large QCA/Aurora inputs, prefer streaming/chunking:
--stream --shot-start <N> --max-shots <K> [--append-out]
v1.1.0 — Native GKP Pipeline + CUDA Sampling
- Native GKP mode with digitizer, gate/idle/meas errors, and loss map support.
- CUDA-accelerated Pauli surface_threshold sampling (CPU decoders unchanged).
- GPU self‑test and CPU vs GPU benchmark presets.
- Paper workflows split into paper_01 (frozen) and paper_02 (current).
- Surface demo improvements and extended CLI controls
v1.0.0 – Hybrid CV + Discrete QEC + Example Suite
Major Features
- Hybrid Continuous-Variable (Gaussian σ-noise) and Discrete Pauli noise support
- Surface-code threshold estimation
- Finite-size scaling collapse fitting
- Neural-assisted MWPM decoder integration
- Deterministic reproducibility with fixed seed
- Examples
v0.9 — Stable scaling & threshold extraction release
This release marks the first stable implementation of surface-code scaling and logical error rate (LER) threshold extraction using MWPM decoding.
Highlights
- Deterministic surface-code simulations for distances d = 3, 5, 7
- Stable logical error rate (LER) estimation with confidence intervals
- Reproducible results via fixed RNG seeds
- Batched trial execution with live progress logging
- Non-monotonic LER detection warning (finite-trial variance)
- Automatic CSV export for threshold analysis
Verified Capabilities
- Reliable large-scale runs (≥2000 trials)
- Consistent cross-run reproducibility
- No hang at higher distances (d=7 stress-tested)
This release establishes a stable foundation for upcoming hybrid CV + discrete QEC development in v1.0.
v0.8: Full syndrome graph MWPM
- Build complete defect + boundary graph
- Add all-pairs defect edges
- Add defect-to-boundary edges
- Route corrections along lattice shortest paths
- Ensure syndrome reproduction correctness
- Integrate with shared weight interface (uniform|neural|llr)
- Add smoke tests for boundary and pair cases
- Preserve threshold runner and metadata logging
This release upgrades MWPM to a full syndrome graph implementation
suitable for research-grade surface code threshold studies."
v0.7.1 – LLR Physical Weight Formalism
Highlights
- Physically grounded LLR weight formalism
- Shared weight interface (uniform | neural | llr)
- Separate noise channel support (data / meas / idle)
- Weighted Union-Find support
- Metadata-rich threshold CSV logging
- OpenMP-parallel threshold runner
Scientific Impact
This release introduces a physically motivated log-likelihood ratio
weight model for surface-code decoding, enabling realistic modeling
of heterogeneous noise channels and improved reproducibility.
Compatibility
Backward compatible with v0.7.0 CLI interface.
v0.7 – Thread-Safe Union-Find Parity + Neural-Guided Weight Interface
This release introduces a major architectural upgrade to the Surface Code decoding framework.
New Features
- Thread-safe Union-Find decoder
- Eliminated shared mutable state
- Stable under OpenMP multi-threading
- Reentrant decode() implementation
- WeightField abstraction layer
- Pluggable edge-weight interface
- Uniform (baseline) weight mode
- Neural-guided weight mode (deterministic mock implementation)
- CLI support
- --weight_mode=uniform
- --weight_mode=neural
Architectural Impact
This release establishes a shared weight-field interface that will support:
- Neural-guided MWPM (v0.8)
- Log-likelihood reweighting
- Hybrid CV + discrete QEC roadmap
Stability
- Verified under --threads=8
- No decoder_fail_rate
- Regression-tested against v0.6
- Stable up to 5000 trials
v0.6 — Surface MWPM Decoder + Parallel Threshold Engine
LiDMaS+ v0.6
This release introduces a stabilized Surface Code MWPM decoder together with a fully parallelized threshold estimation engine.
Core Additions
- OpenMP-enabled Monte Carlo threshold trials
- Thread-safe surface code simulation harness
- Wilson confidence intervals for logical error rate
- Automatic threshold estimation via curve crossing detection
- Preliminary finite-size scaling fit extraction (p_c and ν)
- Decoder failure detection and diagnostic dump system
Stability Improvements
- Fixed OpenMP race conditions in MWPM integration
- Thread-safe random seeding per trial
- Graceful decoder failure handling (no global abort)
- Optional failure diagnostics (
surface_decoder_failure_dump.txt)
Threshold Harness Features
- Parallel execution via
--threads - Automatic crossing estimation via
--estimate_threshold - Scaling-fit extraction via
--scaling_fit - CSV export of all surface threshold data
Example Usage
./lidmas --surface_threshold \
--decoder=mwpm \
--threads=8 \
--trials=5000 \
--estimate_threshold \
--scaling_fitv0.2 – Validated LDPC Belief Propagation Engine
Research-grade C++ implementation of LDPC belief propagation (sum-product and normalized min-sum) with validated monotonic FER waterfall behavior.
Features:
- PEG-generated (n=1000, m=500) regular LDPC codes
- Sum-product and normalized min-sum decoding
- Monotonic FER waterfall validation
- Sanity checks at p=0 and p=0.001
- Diagnostics: parity satisfaction rate, max-iteration hit rate
- OpenMP parallel Monte Carlo sweeps
- Reproducible CMake build
Validated FER curve:
p=0.06 → FER=0.01
p=0.07 → FER=0.115
p=0.08 → FER=0.355
p=0.09 → FER=0.755
p=0.10 → FER=0.965
Build:
mkdir build
cd build
cmake ..
make
./lidmas --bp=sum-productReproducibility Metadata
Tested on:
- macOS (Apple Silicon, Clang + Homebrew OpenMP)
- Expected to build on Linux (GCC/Clang) with OpenMP
- CMake >= 3.16
- C++17 standard
- OpenMP enabled for parallel Monte Carlo