| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
Some checks failed
WAI operation catalogue / does this change touch it (push) Successful in 13s
wai-quantum contract / does this change touch it (push) Successful in 24s
wai-audit collector and player integration / does this change touch it (push) Successful in 29s
wai-quantum command line / does this change touch it (push) Successful in 26s
wai-quantum resource estimation / does this change touch it (push) Successful in 23s
wai-quantum other formats / does this change touch it (push) Successful in 19s
wai-quantum pulse and dynamics / does this change touch it (push) Successful in 14s
wai-quantum editors / does this change touch it (push) Successful in 42s
wai-quantum error correction and mitigation / does this change touch it (push) Successful in 15s
wai-quantum for JavaScript / does this change touch it (push) Successful in 45s
wai-quantum docs, course and locales / does this change touch it (push) Successful in 58s
wai-quantum OpenQASM reader / does this change touch it (push) Successful in 44s
wai-quantum for Python / does this change touch it (push) Successful in 41s
wai-quantum verdicts and repairs / does this change touch it (push) Successful in 16s
wai-quantum views in agent hosts / does this change touch it (push) Successful in 16s
wai-sink-android native sink library / does this change touch it (push) Successful in 17s
wai-sink-swift native sink package / does this change touch it (push) Successful in 16s
wai-quantum variational and algorithm library / does this change touch it (push) Successful in 43s
WAI Studio / does this change touch it (push) Successful in 38s
wai-quantum studio and desktop / does this change touch it (push) Successful in 1m10s
wai-quantum service / does this change touch it (push) Successful in 1m12s
wai-quantum extension points / does this change touch it (push) Successful in 1m20s
wai-quantum service / service energy · linux packages (push) Successful in 2m14s
wai-quantum variational and algorithm library / parameters, gradients, optimisers, VQE, QAOA and builders · linux-arm64, release (push) Successful in 2m37s
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (push) Successful in 5m11s
wai-quantum pulse and dynamics / the same bits · linux-arm64 (push) Successful in 3m58s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (push) Successful in 5m21s
wai-quantum extension points / the registry and the example · linux-arm64 (push) Successful in 6m18s
WAI breaking changes and the conformance runner / WAI breaking · does this change touch WAI (push) Successful in 13s
wai-quantum contract / the policy is linked, and the deprecations page reads (push) Successful in 14s
wai-quantum wasmQ / does this change touch it (push) Successful in 19s
wai-quantum contract / API compatibility · linux (push) Successful in 5m15s
wai-quantum other formats / the set under wasm32-wasip2 (wasmtime) (push) Successful in 2m56s
wai-quantum pulse and dynamics / reader, simulator and pulse jobs under wasm32-wasip2 (wasmtime) (push) Successful in 1m44s
wai-audit collector and player integration / collector · linux (push) Successful in 5m35s
wai-quantum other formats / readers, writers and the set · linux (push) Successful in 4m39s
wai-quantum docs, course and locales / the Studio's words in every locale · linux (push) Successful in 18s
wai-quantum pulse and dynamics / reader, simulator and pulse jobs · linux, release (push) Successful in 4m5s
wai-quantum editors / editors · linux (push) Successful in 3m23s
WAI operation catalogue / the catalogue and every door · linux (push) Successful in 10m7s
wai-quantum OpenQASM reader / corpus under wasm32-wasip2 (wasmtime) (push) Successful in 1m2s
wai-quantum for JavaScript / javascript · linux (push) Successful in 3m54s
wai-quantum for Python / python · linux (push) Successful in 4m10s
wai-quantum verdicts and repairs / the intent set and the verdict under wasm32-wasip2 (wasmtime) (push) Successful in 1m47s
wai-quantum verdicts and repairs / verdicts, repairs and the intent set · linux (push) Successful in 2m33s
wai-quantum resource estimation / estimation and calibration · linux, release (push) Successful in 11m12s
wai-quantum docs, course and locales / the course and the command line's languages · linux (push) Successful in 6m33s
wai-quantum OpenQASM reader / reader and corpus · linux (push) Successful in 5m0s
wai-quantum error correction and mitigation / codes, decoders, texts and mitigation · linux, release (push) Successful in 7m55s
WAI Studio / the catalogue's actions, the unit tests and the core · linux (push) Successful in 1m1s
wai-quantum variational and algorithm library / parameters, gradients, optimisers, VQE, QAOA and builders · linux, release (push) Successful in 2m14s
wai-quantum contract / schemas and the committed tool lists · linux (push) Successful in 14m42s
wai-quantum views in agent hosts / views · the page and its engine (push) Successful in 4m29s
wai-quantum extension points / the registry under wasm32-wasip2 (wasmtime) (push) Successful in 2m10s
wai-quantum views in agent hosts / views · a scripted host (push) Successful in 4m21s
wai-quantum extension points / the registry and the example · linux (push) Successful in 6m25s
wai-quantum studio and desktop / studio · browser (push) Successful in 6m12s
wai-quantum service / service · linux (push) Successful in 8m55s
wai-quantum studio and desktop / desktop app · linux (push) Successful in 12m2s
wai-quantum docs, course and locales / every command and snippet in the docs · linux (push) Successful in 24m28s
wai-audit collector and player integration / collector, player integration and the browser end to end · macos (push) Successful in 3m14s
wai-quantum pulse and dynamics / the same bits · macos (push) Successful in 1m28s
wai-quantum command line / command line · macos (push) Successful in 2m16s
wai-quantum editors / editors · macos (push) Successful in 1m54s
wai-quantum for Python / python · macos (push) Successful in 3m12s
WAI Studio / Studio in WebKit · linux (push) Successful in 29m22s
WAI breaking changes and the conformance runner / WAI breaking · wire, record and API against main · linux (push) Failing after 1m52s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (push) Successful in 5m17s
wai-quantum studio and desktop / desktop app · windows (push) Successful in 10m14s
wai-quantum wasmQ / the reference modules rebuild to their modules of record · linux (push) Failing after 32s
wai-quantum studio and desktop / desktop app · macos (push) Successful in 5m50s
WAI Studio / Studio in Chromium and Firefox · macos (push) Successful in 8m5s
wai-quantum wasmQ / profile, engines, reference modules, adversarial, vectors · linux (push) Successful in 4m5s
wai-quantum service / service · macos (push) Successful in 6m20s
wai-quantum wasmQ / interpreter and vectors under wasm32-wasip2 (wasmtime) (push) Successful in 5m13s
WAI breaking changes and the conformance runner / WAI breaking and conform · their tests, and the independent verifiers through wai conform · linux (push) Successful in 9m42s
wai-quantum command line / command line · linux (push) Successful in 53m22s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (push) Successful in 17m49s
wai-quantum wasmQ / profile, engines, reference modules, adversarial, vectors · macos (push) Successful in 2m6s
qelib1.inc's gates past the table of standard gates (u0, csx, c3x, c3sqrtx, c4x, rccx, rc3x), which OpenQASM 2 programs call without defining, were refused as unknown (Q103). They are built in as qelib1.inc defines them: u0 an idle; csx, c3x, c3sqrtx and c4x sx and x under that many controls; rccx and rc3x the relative-phase Toffoli gates by their definitions, each u2(0,π) there a Hadamard. A program's own definition of one still runs instead. qasm::spec_tests::qelib1_s_gates_past_the_table_are_its_gates holds each to its gate (rccx entry by entry; rc3x to c3x's moves). quantum-conformance/qasm3/import/: 13 programs written as the common toolkits export them (generated gate definitions, physical qubits, if and switch blocks on measured bits, untyped loop variables, OpenQASM 2 with qelib1.inc) and textbook algorithms (phase estimation through ctrl @ pow(2 ** j) @ and inv @ on the program's own gates, Bernstein-Vazirani through a subroutine, Grover, teleportation, repeat until success, stdgates.inc's definitions written out under ctrl @), each with its outcome probabilities derived by hand in its comments and its bit-exact expectation; and 8 refusal vectors with their codes. The corpus goes from 59 cases to 80. Its runner now holds a program that branches on what it measured to a distribution too, following every branch of every measurement and reset with its probability. Co-Authored-By: Claude Opus 5.5 <[email protected]> |
||
| .. | ||
| import | ||
| lang | ||
| spec | ||
| bundle.json | ||
| manifest.json | ||
| README.md | ||
OpenQASM 3 conformance
OpenQASM 3 programs, each with what the reader (wai_quantum::qasm) must do
with it: read it to an exact result, read it to the unitary of a reference
program, or refuse it with a given diagnostic code.
| Path | What |
|---|---|
spec/ |
The OpenQASM 3 specification's example programs, unchanged (Apache-2.0, as the specification is published). Those that run are held to their results; those that cannot be run exactly are held to the code the reader refuses them with, which names the first construct it cannot hold (an extern, durationof, a while on measured bits with no bound) or the example's own error (arrays.qasm indexes past its array; cphase.qasm and defcal.qasm are fragments that declare no qubits). |
lang/ |
A program for each construct the reader lowers, carries, preserves or refuses, and *.ref.qasm references written without the construct. stdgates.qasm applies every standard gate once; its reference writes each in U and CX alone. |
import/ |
Programs written as the common toolkits export them (OpenQASM 3 and 2: generated gate definitions, physical qubits, if and switch blocks on measured bits, untyped loop variables, qelib1.inc's gates) and textbook algorithms (phase estimation, Bernstein–Vazirani, Grover, teleportation, repeat until success), each with its outcome probabilities derived by hand in its comments; and refuse_*.qasm, a program for each refusal such a program meets, with its code. |
manifest.json |
Each case: its file, what it covers, and its expectations (the manifest's expectations says what each kind means). |
bundle.json |
The manifest's cases with each program's text inline, for builds that read no files. |
An expectation is one or more of: refused (a code), warns (the codes of
every warning and note, sorted), deterministic (every shot's outcome),
distribution (exact outcome probabilities, within 1e-9; for a program that branches on what it measured, every branch followed with its probability), expectations
(exact Pauli expectation values), equivalent (the reference's unitary, up to a
global phase, within 1e-9), exact (the bit-exact circuit takes it, or refuses
it with a code), outputs, timing and calibrations.
Native
cd wai/wai-quantum
cargo test --release --features full --test qasm3_conformance
Two tests: every case against its expectations, and the bundle held equal to the files. After changing a program or the manifest, write the bundle:
WAI_QASM3_BUNDLE_WRITE=1 cargo test --release --features full --test qasm3_conformance the_bundle_is_the_corpus
WASI (the edge)
CARGO_TARGET_WASM32_WASIP2_RUNNER='wasmtime run -W nan-canonicalization=y -W relaxed-simd-deterministic=y' \
cargo test --target wasm32-wasip2 --features full --test qasm3_conformance
The cases come from the bundle compiled into the test.
Browser
wai-web's wasm32 tests (--features quantum_engine, under
wasm-bindgen-test-runner) read every case of the bundle through the page's
engine: each refusal's code, each program's warnings, and each program with one
outcome run to it.
CI: wai-quantum-lang.yml (native and wasm32-wasip2) and wai-web-wasm.yml
(the browser build).