Latest Results
Add ZBasisEnsemble type and batch decode method (#168)
* Add ZBasisEnsemble type and batch decode method
Introduces `ZBasisEnsemble` (Array2<bool> states + Array1<Complex64>
coefficients) and `MajoranaEncoding::decode_zbasis_ensemble`, which
decodes all rows of the ensemble in one pass per mode — applying each
annihilation operator across every row in-place via Rayon before
advancing to the next mode, avoiding per-state array clones.
Adds criterion benchmarks comparing batch vs sequential decode at
ensemble sizes 10, 100 and 1000, and proptest/unit tests asserting
batch results match single-state decode for all standard encodings.
https://claude.ai/code/session_013szAhdyfQpAKcDhcKAGUKS
* Expose decode to Python and add codspeed benchmark
Adds a `decode` PyO3 binding (`wrap_decode`) in `src/lib.rs` that accepts
a (n_states × n_qubits) bool array plus encoding parameters, calls
`decode_zbasis_ensemble`, and returns a (n_states × n_modes) occupation
array. Raises `ValueError` for any undecodable state.
Surfaces this as `FermionQubitEncoding.decode(states)` in `base.py` so it
is available on all encodings, and adds the corresponding `core.pyi` stub.
Adds `test_benchmark_decode_zbasis_ensemble` parameterised over all four
standard encodings × three system sizes (32 / 64 / 128 modes), which is
picked up by the existing codspeed CI job.
https://claude.ai/code/session_013szAhdyfQpAKcDhcKAGUKS
* Test all four standard encodings in ensemble decode unit test
Extends test_decode_ensemble_matches_single_decode to iterate over
Jordan-Wigner, Parity, Bravyi-Kitaev and JKMN, covering all 16
four-mode states for each encoding.
https://claude.ai/code/session_013szAhdyfQpAKcDhcKAGUKS
* Fix rustfmt formatting
https://claude.ai/code/session_013szAhdyfQpAKcDhcKAGUKS
---------
Co-authored-by: Claude <noreply@anthropic.com> Latest Branches
-5%
0%
claude/batch-zbasis-decoding-7pVQC 0%
claude/add-zbasis-decoder-2HBfC © 2026 CodSpeed Technology