wai-quantum 0.6.4: Pauli frames, the GPU state vector, the density matrix to 16 qubits, an OpenQASM writer that keeps every gate; the service for agents and browsers #320
Loading…
Reference in a new issue
No description provided.
Delete branch "wai/quantum-0.6.4-pr"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
wai-quantum 0.6.4 and the job service's usability round. Additive: every pinned digest is unchanged, and the state vector, the trajectories and the sparse-Pauli engine give the same bits as before. The CHANGELOG entry has the measurements.
wai-quantum
quantum_tableau::frame_counts,frame_expectations): one noiseless reference outcome, frames sampled 64 shots to a word with a random-Z gauge. 10,000 qubits, 100,000 gates and 100,000 shots in 1.6 s. Mutants (a dropped two-qubit partner, a dropped gauge) are caught.quantum_sv_metal, macOS): single precision, tiled in threadgroup memory, one pipeline per group size up to sixteen members; checked against the CPU state vector.DensityMatrix::evolve) to 16 qubits: 12 qubits in 0.53 s against 158 s forrun, which stays as the referee.quantum_spd::expectation_capped: a term cap that doubles the threshold and keeps the bound.ctrl(n) @ g, andfrom_qasmreads the modifiers back.wai-quantum-service (not published; live at
/quantum-jobs/)cxand as manyp), checked amplitude by amplitude against the gate applied directly.statevector_singleon the GPU;density_matrixto 16 qubits; the pauli method held to the job's memory by a term cap; fix-it hints on the commonest program errors.The live IDE's package is already built from this branch's rehearsal (
fbaa1cda); its row moves to the merge commit when this lands.🤖 Generated with Claude Code
A browser's JSON.parse and JSON.stringify turn 1.0 into 1, so a receipt over serde_json's own text could not be checked from JavaScript (the console, or any JS agent). The digest now covers the canonical text of the request and the result: keys sorted by UTF-16 code units, no whitespace, every number as ECMAScript's Number::toString writes the double, ties between equally near shortest digits going to the even one, as the standard asks. The receipt names the form ("canon": "rfc8785"); receipts issued before it still verify. serde_json reads numbers correctly rounded (float_roundtrip), and a request whose whole numbers a double cannot hold is refused. Checked against a JavaScript engine: RFC 8785's appendix B and 3,385 vectors in the tests, and 2 million random doubles in an opt-in test. Co-Authored-By: Claude Opus 5.5 <[email protected]>