diff --git a/.github/workflows/wai-quantum-cli.yml b/.github/workflows/wai-quantum-cli.yml index b69092227..83dbfb69f 100644 --- a/.github/workflows/wai-quantum-cli.yml +++ b/.github/workflows/wai-quantum-cli.yml @@ -8,7 +8,12 @@ name: wai-quantum command line # include the model harness (src/eval.rs): every task's reference solved and an # empty program not, a scripted run, a model server on this machine asked and one # elsewhere refused, and the corpus (wai/quantum-conformance/eval/) held to the -# task set. And job receipts by two verifiers (wai/quantum-conformance/receipts/): +# task set. On Linux, also the cross-simulator corpus's CI tier +# (wai/quantum-cross-simulator/: the engine against pinned third-party +# simulators and integer references, each answer within its stated tolerance), its +# self-test (every injected fault caught), and its provider template held to the +# provider protocol's conformance vectors through `providers test` and `run --provider`. +# And job receipts by two verifiers (wai/quantum-conformance/receipts/): # `verify` and receipt_verify.py, written from the provider protocol's section 8 # alone, each held to the corpus's manifest and to the other on every receipt and # every one-member change of each valid one, and each planted defect caught. @@ -28,6 +33,7 @@ on: # The writer's model runs on this crate, which it path-depends on. - 'jouleclaw/jouleclaw-rs/crates/jouleclaw-loader-gguf/**' - 'wai/quantum-conformance/eval/**' + - 'wai/quantum-cross-simulator/**' - 'wai/quantum-conformance/receipts/**' - 'wai/quantum-conformance/tools/receipt_verify.py' - 'wai/quantum-conformance/tools/receipt_differential.py' @@ -44,6 +50,7 @@ on: # The writer's model runs on this crate, which it path-depends on. - 'jouleclaw/jouleclaw-rs/crates/jouleclaw-loader-gguf/**' - 'wai/quantum-conformance/eval/**' + - 'wai/quantum-cross-simulator/**' - 'wai/quantum-conformance/receipts/**' - 'wai/quantum-conformance/tools/receipt_verify.py' - 'wai/quantum-conformance/tools/receipt_differential.py' @@ -147,6 +154,24 @@ jobs: set -euo pipefail cargo build --locked --release bash smoke.sh ./target/release/wai-quantum + # The cross-simulator corpus's CI tier: the circuits marked `ci` in its manifest, a few + # seconds of work each, on the engine, pinned third-party simulators (wheels checked + # against their hashes) and the integer references. Every kind of check runs on at least + # one circuit but the pairwise comparison of wide circuits (`wide_pairwise`, 26 qubits), + # which only the full tier makes. A crash, time-out or unlisted refusal of the engine + # under test fails it. Then each fault compare.py can inject must fail its own check on + # its own engine; then the provider template end to end. The full corpus is + # `reproduce.sh --tier full`, run by hand (its README). referee.py is on the paths above + # because the corpus imports it. + - name: The cross-simulator corpus (CI tier), its self-test, and the provider template + shell: bash + run: | + set -euo pipefail + export QCORPUS_CACHE="$HOME/.cache/wai-quantum-cross-simulator" + bash wai/quantum-cross-simulator/reproduce.sh --tier ci --jobs 2 --out "$RUNNER_TEMP/cross-simulator.json" + bash wai/quantum-cross-simulator/reproduce.sh --self-test --jobs 2 + # The page's results section is what the committed results files say. + python3 -I wai/quantum-cross-simulator/tools/report.py --check # Job receipts, judged by two verifiers that share no code: this binary's `verify`, and # receipt_verify.py, written in Python from wai/extensions/quantum-providers.md section 8 # alone (standard library only, its BLAKE3 and Ed25519 its own). The corpus's crafted half diff --git a/.github/workflows/wai-quantum-dsp.yml b/.github/workflows/wai-quantum-dsp.yml index ca777d704..a7f976f54 100644 --- a/.github/workflows/wai-quantum-dsp.yml +++ b/.github/workflows/wai-quantum-dsp.yml @@ -198,7 +198,7 @@ jobs: grep -qE '^ *Compiling wai-quantum v[0-9]' "$logs/bit_identity.log" || { echo "::error::the build compiled no wai-quantum: its tests ran a binary already in the cache"; exit 1; } grep -qE '^test result: ok\. 23 passed; 0 failed' "$logs/bit_identity.log" || { echo "::error::the 23 bit-identity digests did not all pass"; exit 1; } t frame --test frame_reference -- --test-threads=1 - grep -qE '^test result: ok\. 2 passed; 0 failed' "$logs/frame.log" || { echo "::error::the fixtures did not pass"; exit 1; } + grep -qE '^test result: ok\. 3 passed; 0 failed' "$logs/frame.log" || { echo "::error::the fixtures did not pass"; exit 1; } # The library's tests with the features their modules need, not full: the # whole engine's test binary is past the processor's direct-call reach # (R_HEX_B22_PCREL, ±8 MiB), and these modules need none of the rest. diff --git a/.github/workflows/wai-quantum-processors.yml b/.github/workflows/wai-quantum-processors.yml index 8f514c22a..498795d9e 100644 --- a/.github/workflows/wai-quantum-processors.yml +++ b/.github/workflows/wai-quantum-processors.yml @@ -142,7 +142,7 @@ jobs: grep -qE '^ *Compiling wai-quantum v[0-9]' "$logs/bit_identity.log" || { echo "::error::$t: the build compiled no wai-quantum: its tests ran a binary already in the cache"; exit 1; } grep -qE '^test result: ok\. 23 passed; 0 failed' "$logs/bit_identity.log" || { echo "::error::$t: the 23 bit-identity digests did not all pass"; exit 1; } run frame --test frame_reference - grep -qE '^test result: ok\. 2 passed; 0 failed' "$logs/frame.log" || { echo "::error::$t: the fixtures did not pass"; exit 1; } + grep -qE '^test result: ok\. 3 passed; 0 failed' "$logs/frame.log" || { echo "::error::$t: the fixtures did not pass"; exit 1; } run lib --lib -- quantum:: quantum_fabric:: ijson:: quantum_receipt quantum_energy quantum_qbom merkle grep -qE '^test result: ok\. [1-9][0-9]+ passed; 0 failed' "$logs/lib.log" || { echo "::error::$t: the byte-pinning library tests did not pass"; exit 1; } - echo "processor: $t (${{ matrix.how }}) bit_identity 23/23, fixtures 2/2, $(grep -E '^test result' "$logs/lib.log" | tail -1)" + echo "processor: $t (${{ matrix.how }}) bit_identity 23/23, fixtures 3/3, $(grep -E '^test result' "$logs/lib.log" | tail -1)" diff --git a/wai/CONTRIBUTING.md b/wai/CONTRIBUTING.md index bdeee0946..d84f95932 100644 --- a/wai/CONTRIBUTING.md +++ b/wai/CONTRIBUTING.md @@ -164,6 +164,12 @@ the CHANGELOG state what WAI does, plainly: - make no comparisons with other products or approaches; - give no counts that drift (crate counts, test counts, line counts). +The cross-simulator corpus (`quantum-cross-simulator/`) runs the engine beside +open-source simulators and publishes what each one gave, as data: every check +with its measured value and tolerance, and each engine's timings and memory on +named hosts. Its page names those projects only in lines marked `allow-name:`, +and states no ranking: no prose on which engine is faster, smaller or better. + Three checks enforce this. `scripts/check-no-vanity-metrics.sh` (opt-out marker `allow-vanity: `) and `scripts/check-comparative-prose.sh` (opt-out `allow-phrase: `, for an identifier or a quotation) run on every change. diff --git a/wai/changes/2026-11-05-noiseless-surface-code-text.md b/wai/changes/2026-11-05-noiseless-surface-code-text.md new file mode 100644 index 000000000..12ecde0d5 --- /dev/null +++ b/wai/changes/2026-11-05-noiseless-surface-code-text.md @@ -0,0 +1,9 @@ +### wai-quantum: the surface-code memory experiment at p = 0 writes the reference generator's text + +- **Fixed** (`quantum_frame::surface_code_memory`). Its text is meant to match the ecosystem's reference generator + byte for byte, and did for every p > 0. At p = 0 it wrote every noise instruction with probability 0 + (`DEPOLARIZE1(0) …`, `X_ERROR(0) …`) and the first round's two resets on two lines, where the reference writes no + noise instruction and one reset line. The circuits meant the same, and gave the same model and samples; only the + text differed. It now writes no noise instruction of probability zero, and the two resets as one. + `tests/frame_reference.rs` holds it to the reference's text at d = 5, four rounds + (`data/memory_z_d5_noiseless.circuit`). Found by the cross-simulator corpus (entry `surface_z_d5_noiseless`). diff --git a/wai/changes/2026-11-05-quantum-cross-simulator-corpus.md b/wai/changes/2026-11-05-quantum-cross-simulator-corpus.md new file mode 100644 index 000000000..df52c1f38 --- /dev/null +++ b/wai/changes/2026-11-05-quantum-cross-simulator-corpus.md @@ -0,0 +1,40 @@ +### wai-quantum: a cross-simulator conformance corpus, reproducible with one command + +- **The corpus** ([quantum-cross-simulator/](quantum-cross-simulator/README.md)). Circuits + in families, each with its parameters, the reason it is there and what it must give: bit order and named bits, + GHZ, the QFT, Grover, phase estimation (dyadic and not), random Clifford+T, dyadic and arbitrary-angle circuits, + mirror circuits, angles at and below the fixed-point table's resolution, every gate of OpenQASM 3's standard + library on a state with no symmetry, measurement in the middle with reset and feedback, stabilizer circuits to + 5000 qubits, noise in closed form, wide circuits by matrix product states and contraction, and error-correction + memory experiments to distance 15. `corpus/manifest.json` pins each program's SHA-256; programs up to 16 KiB are + committed as OpenQASM 3. +- **The references** (`tools/exact.py`, standard library only): a state vector in integers at scale 2^-256, which + every run checks against the extension's phase table, entry for entry, and against the closed forms of the QFT, + GHZ, Grover and phase estimation; the exact distribution of a program with measurements in the middle, by walking + every branch; an integer stabilizer tableau and the reduced form of a group. Where engines disagree, these say + which is right. +- **The comparison** (`tools/compare.py`). The engine (bit-exact, state vector, stabilizer, matrix product state, + tensor network, density matrix, error-correction frames, and the job path with method `auto`) against pinned + third-party simulators, each run in a process of its own. Every tolerance is derived from the engine's arithmetic + (`tools/tolerance.py`): the bit-exact method's from the extension's published bound (quantum-sim.md §5) summed + over the op-log it ran, which the referee also reruns bit for bit, and whose ideal state must be the circuit's; + double and single precision from a stated per-gate rounding model; matrix product states charged what each + engine reports it truncated; sampled counts per outcome by Bernstein's inequality and as a whole in L1 distance, + at a family-wise error rate of 10^-6. Each small-angle gate is checked held or dropped, exactly. A crash, time-out + or unlisted refusal of the engine under test fails the run (`corpus/expected-refusals.json` lists the refusals it + must or may give, with their words), and so does an answer to a circuit it must refuse. +- **One command** (`reproduce.sh`): the pinned uv, CPython and wheels (each against its hash), the engine built with + `--locked`, every check printed with PASS or FAIL. `--self-test` injects each fault `compare.py` can (into another + engine's answers, or as the engine under test refusing, crashing, hanging or accepting what it must refuse) and + passes only when each fails its own check on its own engine and no other. `--perf` measures run time and the peak + memory of the process that ran each engine, with the threads each was given and where each one's timer runs. + Committed results name the host, every version, and the trees as they were on disk. +- **A provider template** (`provider/seeded_statevector_provider.py`): a third-party simulator as a `process` + provider of `wai.quantum.provider/1`. It passes `wai-quantum providers test`, and `run --provider` seals its + counts in a receipt that `verify` accepts. +- **The driver** (`wai-quantum-cli/examples/cross_simulator.rs`): one job in, one answer out, through the same + engine calls the command line and the job service make. +- **Another engine's disagreements** (`corpus/known-disagreements.json`) each have a reproducer committed beside them + (`corpus/reproducers/`), rerun with the circuit. +- **CI** (`wai-quantum-cli.yml`, Linux): the CI tier, which holds every kind of check but the pairwise comparison + of wide circuits, the self-test and the provider template. diff --git a/wai/quantum-cross-simulator/README.md b/wai/quantum-cross-simulator/README.md new file mode 100644 index 000000000..66babd902 --- /dev/null +++ b/wai/quantum-cross-simulator/README.md @@ -0,0 +1,670 @@ +# Cross-simulator conformance corpus + +WAI Quantum's engine, run beside other simulators on a published set of circuits, every answer +held to a reference within a tolerance derived from the arithmetic that produced it. One +command regenerates every result here on a clean machine. + +```sh +bash wai/quantum-cross-simulator/reproduce.sh --tier full # the whole corpus: 35 to 45 minutes on the hosts below +bash wai/quantum-cross-simulator/reproduce.sh # the CI tier, a few minutes +bash wai/quantum-cross-simulator/reproduce.sh --self-test # every injected fault must be caught +bash wai/quantum-cross-simulator/reproduce.sh --perf --out perf.json +``` + +It needs macOS on arm64 or Linux on x86_64, `curl`, `tar`, a C compiler and rustup; no account +and no key. It fetches the pinned +uv release (by SHA-256), CPython 3.12.16 through it, and the engines of +[`env/requirements.lock`](env/requirements.lock), every wheel checked against its hash. It builds +the engine from this checkout with `--locked`, runs every check, prints each failure with its +measured value and tolerance, and ends with `PASS` or `FAIL` (exit 0 or 1). `QCORPUS_CACHE` says +where the downloads go. + +## What is compared + +| engine | version | methods compared here | +|---|---|---| +| wai-quantum (this repository) | the checkout | bit-exact fixed point (`exact`), double-precision state vector, stabilizer tableau, matrix product state, tensor network, density matrix, error-correction frames and models, and the whole job path with method `auto` | +| Qiskit Aer | 0.18.2, with Qiskit 2.6.2 | state vector (built in code, and read from the published OpenQASM 3 text), stabilizer, matrix product state, density matrix | +| Stim | 1.16.0 | tableau, sampler, detector error models, the reference generator of the error-correction circuits | +| quimb | 1.15.0 | dense state, tensor network contracted, matrix product state | +| MQT DDSIM | 2.7.0, with mqt.core 3.11.0 | decision-diagram state vector and sampler | +| qsim | qsimcirq 0.22.1, with Cirq 1.7.0 | single-precision state vector and sampler | + +Each engine runs every job in a process of its own ([`tools/engines.py`](tools/engines.py)). A +third-party engine takes each gate by its own name for it where it has one, so a gate it +defines differently shows; where it has none, the adapter says so in the result and gives it the +gate's matrix. The engine under test is driven through +[`wai-quantum-cli/examples/cross_simulator.rs`](../wai-quantum-cli/examples/cross_simulator.rs), +which calls what the command line and the job service call. + +## The corpus + +[`corpus/manifest.json`](corpus/manifest.json) lists every circuit with its parameters, the +reason it is there, what it is held to and the SHA-256 of its OpenQASM 3 text; +[`tools/corpus.py`](tools/corpus.py) writes it, and a run fails if the generator no longer gives +those bytes. Programs up to 16 KiB are committed in [`corpus/qasm/`](corpus/qasm/), and the +error-correction circuits, which are the pinned reference generator's, in +[`corpus/qec/`](corpus/qec/); a run checks that the generator still writes them. Random +circuits draw from SHA-256 in counter mode, and every angle is written exactly: `m/2^k` of a +turn, a rational fraction of a turn, or a decimal number of radians. + +| family | what it exposes | +|---|---| +| bit order | which index an X on qubit 0 reads as; named classical bits out of order; a state whose every amplitude differs, so any exchange of qubits shows; an empty register; index bit 19 | +| GHZ, QFT, Grover, phase estimation | closed forms: two amplitudes of 1/√2; e^{2πixy/2^n}/2^(n/2) with every controlled phase to 2π/2^n; sin²((2k+1)θ); an outcome of probability 1, and for a phase of 1/3 the closed law, which the bit-exact method must refuse to round | +| random Clifford+T, dyadic, arbitrary angles | universal circuits in the table's gates, rotations that become many table phases in fixed point, and decimal angles no dyadic grid holds | +| mirror | U then U†, at widths past the integer reference: the answer is \|0…0⟩ exactly | +| small angles | phases of 2π/2^k for k up to 32, the table's last entry, and below it to k = 60, each with a check of whether the engine held the phase or dropped it; p(2π/2^19) applied 2^18 times (a half turn, whose fixed-point result the extension states) and 2^17 times (a quarter turn), each held to the state with its phase | +| gate conventions | every gate of OpenQASM 3's standard library, and modifiers, on a state with no symmetry; rotations by whole turns, whose sign is the convention; a controlled global phase | +| measurement in the middle | teleportation, reset of an entangled qubit, measuring twice, feedback, a GHZ state by fusion, repeat-until-success: exact laws from every branch | +| stabilizer circuits | GHZ and cluster states to 5000 qubits; random Clifford layers at 63, 64, 65, 127, 128 and 129 qubits (either side of a machine word) and to 2000; a Clifford circuit as a state vector and a tableau; outcomes at 40 qubits | +| noise | depolarizing channels after X and cx chains, whose expectation values are closed forms | +| wide circuits | GHZ to 100 qubits and the QFT at 30 and 40 by matrix product states and contraction; a shallow brickwork at 26; a 40-qubit mirror | +| error correction | the rotated surface-code memory experiment in Z (d = 3 … 15) and X, the unrotated layout, repetition codes to d = 25, a noiseless run, a colour code, and hand-written circuits for inverted targets, tags, flip noise, merging, Pauli observables, and three instructions that must be refused | + +## How a result is judged + +The references are exact or as good as exact, and share no code with any engine +([`tools/exact.py`](tools/exact.py), standard library only): + +- **A state vector in integers.** Amplitudes are integers at scale 2^-256; sine and cosine come + from an integer π and an integer series. Every run checks that it gives the extension's phase + table, P(1) … P(32) rounded to the nearest 2^-30, entry for entry against the referee's, and + that its states meet the closed forms within 2^40 units of 2^-256: the QFT's amplitudes, GHZ's, + Grover's sin²((2k+1)θ) (computed in integers), phase estimation's outcome of probability 1, and + its law for a phase of 1/3. +- **Exact distributions.** A program that measures in the middle is walked branch by branch. +- **An integer stabilizer tableau**, and the reduced row echelon form of a group with its signs, so + that two descriptions of a stabilizer state compare as bytes. +- **The referee** ([`../quantum-conformance/tools/referee.py`](../quantum-conformance/tools/referee.py)) reruns the bit-exact method's + op-log in its own integer arithmetic and must give the engine's integers and hash, on every + circuit of up to 14 qubits the method runs. Beside it, the op-log run in double precision must + give the circuit's exact state, modulo a global phase, within that run's rounding and the + distance the reader's rule moves angles: so the integers are tied to the op-log, and the op-log + to the circuit. + +Each tolerance comes from [`tools/tolerance.py`](tools/tolerance.py), and none is fitted to a +result: + +- **The bit-exact method**: the extension's published bound (quantum-sim.md §5, at most 1 + √2/2 + units of 2^-30 per component per inexact gate), summed over the op-log the engine ran. +- **Floating point**: a gate of width w costs C(w)·u in the Euclidean norm, C(w) = (2√2 + (2^w − 1) + + 2 + π)·2^(w/2), from the complex products, the row sum, the matrix entries and the angle's + rounding; u = 2^-53 in double and 2^-24 in single precision; widths are each engine's fusion. + Contractions, decision diagrams (whose merging tolerance, 2^-42, is read from mqt.core's header) + and matrix product states (with LAPACK's unstated SVD constant taken as 16·m, and the weight + their truncation can drop) are stated in the same file. +- **Matrix product states**: the rounding of each two-site update's SVD (a gate on qubits d apart + takes 2d − 1 of them, its routing swaps included), and 2√w for each truncation of weight w, as + each engine reports what it dropped: the engine under test its summed weight over its + truncations, Aer every truncation from its log, and quimb run with an absolute cutoff whose + most per update is known. A row whose bound is not below half the amplitudes it checks is + recorded and not judged. +- **Sampled counts**: every outcome's count against its exact probability by Bernstein's + inequality, and the whole distribution against the exact one in L1 distance, twice the total + variation (the bound of Weissman and others, 2003, which holds for any number of outcomes); an + outcome of probability 0 + that appears at all fails. A Clifford circuit's outcomes at 40 qubits: every shot inside the + affine space its stabilizers fix, no outcome more often than its probability allows, and each + bit the space leaves free reading 1 half the time. +- **Error-correction models**: the same symptom sets, probabilities within 16u per noise site of + the circuit; detection rates against the rates the model gives, by Bernstein's inequality. +- Every sampled test of a run (counts, stabilizer outcomes, detection rates) takes a share of one + family-wise error rate of 10^-6, so a correct engine fails a run on sampling with probability + at most 10^-6. + +A state is held to its reference modulo a global phase, which no measurement sees; the +distance with the phase is recorded beside it (`strict`). Where the phase is the result (the +repeated phases), the verdict is the distance with it. The bounds are worst cases and so are +loose: each result records how far inside its bound an engine is, and the table below gives the +largest such ratio. Below an engine's bound a distance cannot tell a small-angle gate from its +absence, so each small-angle circuit also asks of every engine whether it held the gate's phase +or dropped it, exactly, in integers. + +The engine under test is held to answering. A crash, a time-out, or a refusal that +[`corpus/expected-refusals.json`](corpus/expected-refusals.json) does not list for that circuit in +those words fails the run; an answer to a circuit that file says it must refuse fails it too. The +file lists the bit-exact method's refusals by its reader's rule (an angle no grid of 2^32 holds +within 10^-14 of a turn), computed from the circuits' exact angles, and four error-correction +circuits. Another engine's refusal or crash is recorded as `not run`, with its words. + +A run can be seen to fail. `--self-test` runs one circuit for each fault `compare.py` can inject, +and passes only if each fails the run on the check it breaks, on the engine it was put into, and +on no other engine: + +- an amplitude moved by 10^-9; the qubits of a state reversed; one fixed-point bit flipped; a + stabilizer's sign flipped; a mechanism's probability raised by one part in 10^6; +- 5% of an outcome's shots moved to another that can occur (caught by the per-outcome test, on a + distribution with variance); every outcome's count moved by a tenth of itself, up and down in + turn (caught only by the L1 distance); every shot of a 40-qubit Clifford sampler given to one + outcome; a detector's count raised by a quarter; a sampler's answer with no observable; +- a phase dropped from the bit-exact op-log, its integers and hash made again to match (caught + only by the op-log against the circuit); a small-angle gate dropped from a double-precision + state, inside its bound (caught only by the held-or-dropped check); a half turn on a repeated + phase (caught only by the distance with the phase); a global phase on the bit-exact state + (caught by the closed-form amplitudes, which it was once exempt from); a phase of 0.5 rad on a + matrix-product amplitude (caught by a bound charged what that engine truncated); +- the engine under test refusing, crashing on a job or on a model, hanging, taking an angle it + must refuse, or refusing in words no list holds, or in other words than its list's. + +## Results + +The committed runs, one file per host, are in [`results/`](results/): every check with its +measured value and tolerance, the host and every version. Each file names the git trees of the +engine and of the tools that produced it, as they were on disk (`git rev-parse +:wai/wai-quantum` gives the same id for any commit holding the same engine). A cell +below is checks passed of those made, with the largest ratio of measured value to tolerance +among the passes in brackets. + +### What agreed + +On both hosts, every engine met its reference within its tolerance on every circuit it ran, with +the exceptions listed next. That covers eight methods of the engine under test and eleven of the +others, on states, sampled counts, stabilizer groups to 5000 qubits, amplitudes to 100 qubits, noisy +expectation values, and detector error models and detection rates to distance 15. The engine under +test answered every circuit, and refused only those +[`corpus/expected-refusals.json`](corpus/expected-refusals.json) lists, in the words it lists. + +The bit-exact method's integers were reproduced bit for bit by the referee on every circuit of up +to 14 qubits it ran; its op-log, run in double precision, gave each circuit's exact state; and its +distance from the ideal state stayed inside the extension's published bound everywhere. On +`repeated_phase_k19`, p(2π/2^19) applied 2^18 times to |1⟩, its amplitude ends with modulus +1.0000188705 and 8.99·10^-6 rad from the half turn (a distance of 2.09·10^-5 from −|1⟩), where the +extension states modulus 1.0000189 and within 10^-5 rad. These are integers, the same on both hosts. + +### Disagreements with the references + +- **The engine under test, wrong; fixed.** `quantum_frame::surface_code_memory` documents that + its text is the reference generator's, byte for byte. At p = 0 it was not: it wrote every noise + instruction with probability 0 and the first round's resets on two lines, where the reference + writes no noise instruction and one reset line (`surface_z_d5_noiseless`). The two circuits + meant the same, so models and samples agreed; the text did not. Fixed in the engine, with a + test against the reference's text (`wai-quantum/tests/frame_reference.rs`). +- **Another engine.** `ddsim.statevector` on `measure_twice` (h, then the same qubit measured + into two bits) returns 00 and 10, where a repeated measurement repeats: 00 and 11. On + `repeat_until_success` it raises an error and gives no counts. Each claim about it, with the + smaller programs that show what the error needs, is a case of a reproducer committed beside + [`corpus/known-disagreements.json`](corpus/known-disagreements.json) + ([`corpus/reproducers/`](corpus/reproducers/)), which every run that holds the circuit reruns; + the two checks are reported as `known`. Only other engines may be listed there. +- **The reference, wrong once.** While this corpus was written, the integer reference's `ryy` + used the wrong fixed rotation. It showed as every engine agreeing with every other and none + with the reference, and was corrected before any result here was recorded. A reference is + examined first when that pattern appears. + +### Conventions the corpus shows + +- **Global phase.** Every engine keeps OpenQASM 3's global phases except the bit-exact method, + which lowers `rz`, `rx`, `ry` and `U` through phase gates and so differs from the standard's + matrices by a global phase (a `strict` distance of up to 1.97 on a rotation by a whole turn). + No measurement sees it, and under a control the method is right (`controlled_rz_full_turn`, + `gate_crz`, `gate_cu`). The amplitudes a job answers with this method carry that phase, and the + result does not say so. +- **Angles below the table.** The bit-exact method reads an angle within 10^-14 of a turn of a + dyadic one as that dyadic. A phase of 2π/2^k is therefore refused for k = 33 … 46 (`[Q500]`), + and for k ≥ 47 runs as no phase at all, labelled bit-exact: its op-log is the circuit's with the + angle moved by 2^-k of a turn, which the op-log check allows by the reader's rule, and its state + is within 2.3·10^-14 of the ideal one, far inside the method's resolution. Method `auto` sends + k = 33 … 46 to double precision. +- **Held or dropped.** Every double- and single-precision engine here held the phase at every k + where its answer can say. The decision-diagram engine dropped it at k = 47, 48, 52 and 60, each + an angle below its parameter tolerance of 10^-13 rad, and held it at k ≤ 40. At k = 60 the phase + moves the state by 2.7·10^-18, less than half of most answers' own rounding: those are recorded + as unable to say, and the single-precision engine's answer, whose rounding there was smaller, + held it. +- **Bit order.** Every engine's answers were brought to one convention (qubit 0 the lowest bit of + an index, classical bit 0 the last character of an outcome) by its adapter, and the bit-order + family holds each adapter to it; the self-test's reversed state fails there. + +### Run time and memory + +The performance tables below are one shared host each, on one day; read the Limits before any +figure. Each row is one engine on one case, as data: + +- **threads**: what the engine was given. `all (32)` is every CPU the process may run on, which + the engine under test's state vector and tensor network use; `1 (no threads)` a method with no + threads of its own (the engine under test's bit-exact, stabilizer, matrix-product-state and + error-correction methods); a number, the count passed in the engine's own setting; `not set`, + an engine the adapter gives no thread setting; `1 (pinned)`, the process held to one CPU + (Linux only). +- **ops**: the operations the engine ran, where it reports them: the driver's count for the + engine under test, and the gates of Aer's circuit after its conversion. +- **seconds**: the engine's own call, the median of the runs with the minimum in brackets. The + list above each table says where each engine's timer starts and stops. +- **peak MiB**: the peak resident set of the process that ran the engine (the driver for the + engine under test; for another engine, its adapter, which holds the interpreter and its + packages), as the system counts it for that process alone; the baseline beside it is the same + measure given a two-qubit job. + + + +### `conformance-linux-x86_64.json` + +Host: AMD RYZEN AI MAX+ 395 w/ Radeon 8060S, Ubuntu 26.04.1 LTS, 32 logical CPUs, 123 GiB, x86_64. Tier full, 2705.1 s. Checks: info 12, known 11, not run 12, pass 1637, refused 12. + +| family | `wai.exact` | `wai.statevector` | `wai.stabilizer` | `wai.auto` | `wai.mps` | `wai.tensor_network` | `wai.density_matrix` | `wai.qec` | `aer.statevector` | `aer.qasm_import` | `aer.stabilizer` | `aer.mps` | `aer.density_matrix` | `stim.tableau` | `quimb.dense` | `quimb.tensor_network` | `quimb.mps` | `ddsim.statevector` | `qsim.statevector` | `pairs and references` | `references` | +|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---| +| bit_order | 18/18 (0.068) | 8/8 (0.015) | 12/12 | 8/8 (0.0055) | | | | | 8/8 (0.016) | 6/6 (0.016) | 5/5 | | | 7/7 | 6/6 (0.019) | 6/6 (0.031) | | 8/8 (0.00015) | 8/8 (0.013) | 15/15 (0.0084) | 5/5 | +| clifford_large | 3/3 (0.012) | 1/1 (0.00077) | 34/34 (0.43) | 1/1 (7.8e-05) | | | | | 1/1 (0.00084) | 1/1 (0.00084) | 16/16 (0.51) | | | 19/19 (0.3) | 1/1 (0.0017) | 1/1 (4.3e-08) | | 1/1 (2.4e-07) | 1/1 (0.00052) | | 15/15 | +| dynamic | | 12/12 (0.29) | 8/8 (0.21) | 12/12 (0.29) | | | | | 12/12 (0.36) | | | | | 8/8 (0.29) | | | | 8/8 (0.22) · 11 known | 6 not run | | | +| gate_conventions | 141/141 (0.066) | 47/47 (0.017) | | 47/47 (0.065) | | | | | 47/47 (0.018) | 47/47 (0.018) | | | | | 46/46 (0.017) · 1 not run | 46/46 (0.032) · 1 not run | | 47/47 (0.00015) | 46/46 (0.026) · 1 not run | | | +| ghz | 15/15 (0.042) | 7/7 (0.21) | 2/2 (0.022) | 7/7 (0.022) | | | | | 7/7 (0.059) | 5/5 (0.011) | | | | 2/2 (0.29) | 5/5 (0.0094) | 5/5 (0.041) | | 7/7 (0.13) | 7/7 (0.14) | | 5/5 | +| grover | 12/12 (0.029) | 6/6 (0.17) | | 6/6 (0.14) | | | | | 6/6 (0.25) | 4/4 (0.0043) | | | | | 4/4 (0.0079) | 4/4 (0.00029) | | 6/6 (0.25) | 6/6 (0.27) | | 4/4 | +| mirror | 7/7 (0.007) | 3/3 (0.00036) | | | | | | | 3/3 (0.00068) | | | | | | 3/3 (0.00036) | | | 2/2 (7e-05) · 1 not run | 3/3 (0.00057) | | | +| noise | | | | | | | 3/3 (0.00093) | | | | | | 3/3 (0.00093) | | | | | | | | | +| other | | | | | | | | | | | | | | | | | | | | | 3/3 | +| qec | | | | | | | | 26/26 (0.61) · 4 refused as listed | | | | | | 19/19 (0.53) · 1 not run | | | | | | 38/38 (0.0031) | | +| qft | 19/19 (0.042) | 9/9 (0.58) | | 8/8 (0.66) | | | | | 9/9 (0.61) | 6/6 (0.009) | | | | | 7/7 (0.0062) | 5/5 (0.0057) | | 9/9 (0.61) | 9/9 (0.63) | 15/15 (0.0027) | 5/5 | +| qpe | 9/9 (0.016) · 2 refused as listed | 5/5 (0.0091) | | 5/5 (0.013) | | | | | 5/5 (0.0058) | 5/5 (0.0075) | | | | | 5/5 (0.0071) | 4/4 (0.0014) | | 5/5 (4.8e-06) | 5/5 (0.0034) | | 5/5 | +| random_clifford_t | 9/9 (0.036) | 3/3 (0.0047) | | 3/3 (0.0064) | | | | | 3/3 (0.0042) | 3/3 (0.0042) | | | | | 3/3 (0.003) | 3/3 (0.00019) | | 3/3 (3e-05) | 3/3 (0.001) | | | +| random_dyadic | 6/6 (0.0067) | 2/2 (0.0018) | | 2/2 (0.0016) | | | | | 2/2 (0.0027) | 2/2 (0.0036) | | | | | 2/2 (0.0019) | 2/2 (0.00016) | | 2/2 (6.8e-06) | 2/2 (0.004) | | | +| random_rotations | 3 refused as listed | 5/5 (0.48) | | 5/5 (0.48) | | | | | 5/5 (0.5) | 3/3 (0.0034) | | | | | 3/3 (0.0018) | 3/3 (0.00014) | | 5/5 (0.52) | 5/5 (0.4) | 10/10 (0.0017) | | +| small_angle | 47/47 (0.9) · 3 refused as listed | 32/32 (0.016) | 2/2 | 18/18 (0.098) | | | | | 32/32 (0.018) | 29/29 (0.016) | 1/1 | | | 1/1 | 30/30 (0.019) | 29/29 (0.016) | | 29/29 (0.15) | 33/33 (0.0075) | | 1/1 | +| wide_mps | | | | | 5/5 (0.00017) | 5/5 (0.00057) | | | | | | 4/4 (0.00023) · 1 not run | | | | 5/5 (0.043) | 5/5 (7.3e-05) | | | | | +| wide_tn | | | | | 1/1 (0.00093) | 1/1 (6.4e-07) | | | | | | 1/1 (0.0021) | | | | 1/1 (0.02) | 1/1 (0.0011) | | | 21/21 (0.02) | | + +Known disagreements of other engines with the exact reference (`corpus/known-disagreements.json`): + +- `repeat_until_success`, `ddsim.statevector`: ValueError: [changePermutation] Target must be an injective mapping using only keys and logical qubits from the source permutation. | known: MQT DDSIM 2.7.0's qasm_simulator raises ValueError [changePermutation] on this program (two qubits; qubit 1 measured three times in the middle, with gates between and an x conditioned on each reading; four classical bits) and gives no counts. It raises the same without the conditioned x, and on qubit 1 measured, h, measured again, then qubit 0 measured into a third bit; with no third bit it gives counts. Each is a case of the reproducer. +- `measure_twice`, `ddsim.statevector`: 10: 49902 shots, probability 0; 11: 0 shots, expected 50000.0 ± 1084.8 | known: MQT DDSIM 2.7.0's qasm_simulator, given h q[0]; c[0] = measure q[0]; c[1] = measure q[0]; with nothing between the two measurements, returns 00 and 10: c[0] is never set. With x in place of h it gives 10 on every shot; with a barrier between the measurements, 00 and 11; with c[1] measured first and c[0] second, ValueError [changePermutation]. Each is a case of the reproducer, with the circuit built in Qiskit 2.6.2. +- `measure_twice`, `ddsim.statevector`: known: MQT DDSIM 2.7.0's qasm_simulator, given h q[0]; c[0] = measure q[0]; c[1] = measure q[0]; with nothing between the two measurements, returns 00 and 10: c[0] is never set. With x in place of h it gives 10 on every shot; with a barrier between the measurements, 00 and 11; with c[1] measured first and c[0] second, ValueError [changePermutation]. Each is a case of the reproducer, with the circuit built in Qiskit 2.6.2. +- `measure_twice`, `ddsim.statevector`, reproducer (corpus/reproducers/ddsim_repeated_measurement.py): h, then c[0] and c[1] measured from the qubit with nothing between: only 00 and 10 come — saw ['00', '10'] +- `measure_twice`, `ddsim.statevector`, reproducer (corpus/reproducers/ddsim_repeated_measurement.py): x, then the same two measurements: 10 on every shot — saw ['10'] +- `measure_twice`, `ddsim.statevector`, reproducer (corpus/reproducers/ddsim_repeated_measurement.py): h, the two measurements with a barrier between: 00 and 11 — saw ['00', '11'] +- `measure_twice`, `ddsim.statevector`, reproducer (corpus/reproducers/ddsim_repeated_measurement.py): h, then c[1] measured first and c[0] second: an error naming changePermutation — saw ValueError: [changePermutation] Target must be an injective mapping using only keys and logical qubits from the source permutation. +- `repeat_until_success`, `ddsim.statevector`, reproducer (corpus/reproducers/ddsim_feedback_rounds.py): repeat_until_success: an error naming changePermutation, and no counts — saw ValueError: [changePermutation] Target must be an injective mapping using only keys and logical qubits from the source permutation. +- `repeat_until_success`, `ddsim.statevector`, reproducer (corpus/reproducers/ddsim_feedback_rounds.py): the same three rounds without the conditioned x: the same error — saw ValueError: [changePermutation] Target must be an injective mapping using only keys and logical qubits from the source permutation. +- `repeat_until_success`, `ddsim.statevector`, reproducer (corpus/reproducers/ddsim_feedback_rounds.py): qubit 1 measured, h, measured again, then qubit 0 measured into a third bit: the same error — saw ValueError: [changePermutation] Target must be an injective mapping using only keys and logical qubits from the source permutation. +- `repeat_until_success`, `ddsim.statevector`, reproducer (corpus/reproducers/ddsim_feedback_rounds.py): the same without qubit 0's measurement into a third bit: counts — saw counts over 4 outcomes + +
Refusals by the engine under test, each listed in corpus/expected-refusals.json with its words (12) + +- `qpe_t6_third`, `wai.exact`: the angle 2.0943951023931953 is not a dyadic multiple of 2π (2πm/2^k, k ≤ 32) [Q500] +- `qpe_t10_third`, `wai.exact`: the angle 2.0943951023931953 is not a dyadic multiple of 2π (2πm/2^k, k ≤ 32) [Q500] +- `rotations_n6`, `wai.exact`: the angle 1.6459015101789476 is not a dyadic multiple of 2π (2πm/2^k, k ≤ 32) [Q500] +- `rotations_n10`, `wai.exact`: the angle 0.49840613019150304 is not a dyadic multiple of 2π (2πm/2^k, k ≤ 32) [Q500] +- `rotations_n12`, `wai.exact`: the angle 1.437905822610216 is not a dyadic multiple of 2π (2πm/2^k, k ≤ 32) [Q500] +- `below_grid_k33`, `wai.exact`: the angle 0.0000000007314590396335798 is not a dyadic multiple of 2π (2πm/2^k, k ≤ 32) [Q500] +- `below_grid_k40`, `wai.exact`: the angle 0.000000000005714523747137342 is not a dyadic multiple of 2π (2πm/2^k, k ≤ 32) [Q500] +- `tiny_radians`, `wai.exact`: the angle 0.000000000001 is not a dyadic multiple of 2π (2πm/2^k, k ≤ 32) [Q500] +- `color_d3`, `wai.qec`: line 16: unsupported instruction 'C_XYZ' +- `qec_refused_correlated`, `wai.qec`: line 2: unsupported instruction 'E' +- `qec_refused_pauli_channel`, `wai.qec`: line 2: unsupported instruction 'PAULI_CHANNEL_1' +- `qec_refused_random_detector`, `wai.qec`: a detector or observable is not deterministic (it anticommutes with op 0) + +
+ +
Checks other engines did not make, and why (12) + +- `mirror_n20`, `ddsim.statevector`: did not finish within 900 s +- `gate_gphase_controlled`, `quimb.dense`: no gate gphase +- `gate_gphase_controlled`, `quimb.tensor_network`: no gate gphase +- `gate_gphase_controlled`, `qsim.statevector`: a global phase gate +- `teleport`, `qsim.statevector`: measurement in the middle (or one qubit measured twice) +- `reset_after_superposition`, `qsim.statevector`: measurement in the middle (or one qubit measured twice) +- `measure_twice`, `qsim.statevector`: measurement in the middle (or one qubit measured twice) +- `feedback_flip`, `qsim.statevector`: measurement in the middle (or one qubit measured twice) +- `ghz_by_fusion`, `qsim.statevector`: measurement in the middle (or one qubit measured twice) +- `repeat_until_success`, `qsim.statevector`: measurement in the middle (or one qubit measured twice) +- `mps_ghz_n100`, `aer.mps`: CircuitTooWideForTarget: 'Number of qubits (100) in circuit-46 is greater than maximum (63) in the coupling_map' +- `qec_refused_random_detector`, `stim.tableau`: ValueError: The circuit contains non-deterministic detectors. To make an SVG picture of the problem, you can use the python API like this: your_circuit.diagram('detslice-with-ops-svg', tick=range(0, 5), filter_coords=['D0', ]) or the command line API like this: stim diagram --in your_circui + +
+ +
Recorded and not judged (9) + +- `below_grid_k47`, `ddsim.statevector`: holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it) — measured -4.3e-78. drops it: the angle, 4.46e-14 rad, is below its parameter tolerance of 1e-13 rad, where it may read an angle as 0 +- `below_grid_k48`, `ddsim.statevector`: holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it) — measured -4.3e-78. drops it: the angle, 2.23e-14 rad, is below its parameter tolerance of 1e-13 rad, where it may read an angle as 0 +- `below_grid_k52`, `ddsim.statevector`: holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it) — measured -4.3e-78. drops it: the angle, 1.4e-15 rad, is below its parameter tolerance of 1e-13 rad, where it may read an angle as 0 +- `below_grid_k60`, `wai.statevector`: holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it) — measured 1. neither can be told: its distance from the ideal state, 2.22e-16, is more than half the gate's effect, 2.72e-18 +- `below_grid_k60`, `aer.statevector`: holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it) — measured -21. neither can be told: its distance from the ideal state, 6.12e-17, is more than half the gate's effect, 2.72e-18 +- `below_grid_k60`, `aer.qasm_import`: holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it) — measured -21. neither can be told: its distance from the ideal state, 6.12e-17, is more than half the gate's effect, 2.72e-18 +- `below_grid_k60`, `quimb.dense`: holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it) — measured 1. neither can be told: its distance from the ideal state, 2.22e-16, is more than half the gate's effect, 2.72e-18 +- `below_grid_k60`, `quimb.tensor_network`: holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it) — measured 1. neither can be told: its distance from the ideal state, 1.11e-16, is more than half the gate's effect, 2.72e-18 +- `below_grid_k60`, `ddsim.statevector`: holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it) — measured -4.3e-78. drops it: the angle, 5.45e-18 rad, is below its parameter tolerance of 1e-13 rad, where it may read an angle as 0 + +
+ +Versions: cirq-core 1.7.0, mqt.core 3.11.0, mqt.ddsim 2.7.0, numpy 2.5.4, python 3.12.16, qiskit 2.6.2, qiskit-aer 0.18.2, qsimcirq 0.22.1, quimb 1.15.0, scipy 1.18.1, stim 1.16.0. + +### `conformance-macos-arm64.json` + +Host: Apple M3 Ultra, macOS 27.2, 32 logical CPUs, 256 GiB, arm64. Tier full, 2100.0 s. Checks: info 12, known 11, not run 11, pass 1638, refused 12. + +| family | `wai.exact` | `wai.statevector` | `wai.stabilizer` | `wai.auto` | `wai.mps` | `wai.tensor_network` | `wai.density_matrix` | `wai.qec` | `aer.statevector` | `aer.qasm_import` | `aer.stabilizer` | `aer.mps` | `aer.density_matrix` | `stim.tableau` | `quimb.dense` | `quimb.tensor_network` | `quimb.mps` | `ddsim.statevector` | `qsim.statevector` | `pairs and references` | `references` | +|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---| +| bit_order | 18/18 (0.068) | 8/8 (0.015) | 12/12 | 8/8 (0.0055) | | | | | 8/8 (0.016) | 6/6 (0.016) | 5/5 | | | 7/7 | 6/6 (0.019) | 6/6 (0.031) | | 8/8 (0.00015) | 8/8 (0.013) | 15/15 (0.0084) | 5/5 | +| clifford_large | 3/3 (0.012) | 1/1 (0.00077) | 34/34 (0.43) | 1/1 (7.8e-05) | | | | | 1/1 (0.00084) | 1/1 (0.00084) | 16/16 (0.51) | | | 19/19 (0.34) | 1/1 (0.0017) | 1/1 (5e-08) | | 1/1 (2.4e-07) | 1/1 (0.0024) | | 15/15 | +| dynamic | | 12/12 (0.29) | 8/8 (0.21) | 12/12 (0.29) | | | | | 12/12 (0.36) | | | | | 8/8 (0.32) | | | | 8/8 (0.23) · 11 known | 6 not run | | | +| gate_conventions | 141/141 (0.066) | 47/47 (0.017) | | 47/47 (0.065) | | | | | 47/47 (0.018) | 47/47 (0.018) | | | | | 46/46 (0.017) · 1 not run | 46/46 (0.032) · 1 not run | | 47/47 (0.00015) | 46/46 (0.026) · 1 not run | | | +| ghz | 15/15 (0.042) | 7/7 (0.21) | 2/2 (0.022) | 7/7 (0.022) | | | | | 7/7 (0.059) | 5/5 (0.011) | | | | 2/2 (0.29) | 5/5 (0.0094) | 5/5 (0.041) | | 7/7 (0.11) | 7/7 (0.14) | | 5/5 | +| grover | 12/12 (0.029) | 6/6 (0.17) | | 6/6 (0.14) | | | | | 6/6 (0.25) | 4/4 (0.0043) | | | | | 4/4 (0.0079) | 4/4 (0.00032) | | 6/6 (0.25) | 6/6 (0.27) | | 4/4 | +| mirror | 7/7 (0.007) | 3/3 (0.00036) | | | | | | | 3/3 (0.0011) | | | | | | 3/3 (0.00049) | | | 3/3 (0.00079) | 3/3 (0.00059) | | | +| noise | | | | | | | 3/3 (0.00093) | | | | | | 3/3 (0.00093) | | | | | | | | | +| other | | | | | | | | | | | | | | | | | | | | | 3/3 | +| qec | | | | | | | | 26/26 (0.61) · 4 refused as listed | | | | | | 19/19 (0.52) · 1 not run | | | | | | 38/38 (0.0031) | | +| qft | 19/19 (0.042) | 9/9 (0.58) | | 8/8 (0.66) | | | | | 9/9 (0.61) | 6/6 (0.009) | | | | | 7/7 (0.0062) | 5/5 (0.0093) | | 9/9 (0.63) | 9/9 (0.63) | 15/15 (0.0027) | 5/5 | +| qpe | 9/9 (0.016) · 2 refused as listed | 5/5 (0.0091) | | 5/5 (0.013) | | | | | 5/5 (0.005) | 5/5 (0.0074) | | | | | 5/5 (0.0068) | 4/4 (0.0011) | | 5/5 (7e-06) | 5/5 (0.0037) | | 5/5 | +| random_clifford_t | 9/9 (0.036) | 3/3 (0.0047) | | 3/3 (0.0064) | | | | | 3/3 (0.0042) | 3/3 (0.0042) | | | | | 3/3 (0.003) | 3/3 (0.00022) | | 3/3 (3.7e-05) | 3/3 (0.0012) | | | +| random_dyadic | 6/6 (0.0067) | 2/2 (0.0018) | | 2/2 (0.0016) | | | | | 2/2 (0.0031) | 2/2 (0.0038) | | | | | 2/2 (0.0014) | 2/2 (0.00016) | | 2/2 (8e-06) | 2/2 (0.004) | | | +| random_rotations | 3 refused as listed | 5/5 (0.48) | | 5/5 (0.48) | | | | | 5/5 (0.5) | 3/3 (0.0039) | | | | | 3/3 (0.0019) | 3/3 (0.00014) | | 5/5 (0.56) | 5/5 (0.4) | 10/10 (0.067) | | +| small_angle | 47/47 (0.9) · 3 refused as listed | 32/32 (0.016) | 2/2 | 18/18 (0.098) | | | | | 32/32 (0.018) | 29/29 (0.016) | 1/1 | | | 1/1 | 30/30 (0.019) | 29/29 (0.016) | | 29/29 (0.15) | 33/33 (0.0075) | | 1/1 | +| wide_mps | | | | | 5/5 (0.00017) | 5/5 (0.00057) | | | | | | 4/4 (0.00023) · 1 not run | | | | 5/5 (0.043) | 5/5 (7.3e-05) | | | | | +| wide_tn | | | | | 1/1 (0.00093) | 1/1 (6.4e-07) | | | | | | 1/1 (0.0033) | | | | 1/1 (0.019) | 1/1 (0.0006) | | | 21/21 (0.015) | | + +Known disagreements of other engines with the exact reference (`corpus/known-disagreements.json`): + +- `repeat_until_success`, `ddsim.statevector`: ValueError: [changePermutation] Target must be an injective mapping using only keys and logical qubits from the source permutation. | known: MQT DDSIM 2.7.0's qasm_simulator raises ValueError [changePermutation] on this program (two qubits; qubit 1 measured three times in the middle, with gates between and an x conditioned on each reading; four classical bits) and gives no counts. It raises the same without the conditioned x, and on qubit 1 measured, h, measured again, then qubit 0 measured into a third bit; with no third bit it gives counts. Each is a case of the reproducer. +- `measure_twice`, `ddsim.statevector`: 10: 49971 shots, probability 0; 11: 0 shots, expected 50000.0 ± 1084.8 | known: MQT DDSIM 2.7.0's qasm_simulator, given h q[0]; c[0] = measure q[0]; c[1] = measure q[0]; with nothing between the two measurements, returns 00 and 10: c[0] is never set. With x in place of h it gives 10 on every shot; with a barrier between the measurements, 00 and 11; with c[1] measured first and c[0] second, ValueError [changePermutation]. Each is a case of the reproducer, with the circuit built in Qiskit 2.6.2. +- `measure_twice`, `ddsim.statevector`: known: MQT DDSIM 2.7.0's qasm_simulator, given h q[0]; c[0] = measure q[0]; c[1] = measure q[0]; with nothing between the two measurements, returns 00 and 10: c[0] is never set. With x in place of h it gives 10 on every shot; with a barrier between the measurements, 00 and 11; with c[1] measured first and c[0] second, ValueError [changePermutation]. Each is a case of the reproducer, with the circuit built in Qiskit 2.6.2. +- `measure_twice`, `ddsim.statevector`, reproducer (corpus/reproducers/ddsim_repeated_measurement.py): h, then c[0] and c[1] measured from the qubit with nothing between: only 00 and 10 come — saw ['00', '10'] +- `measure_twice`, `ddsim.statevector`, reproducer (corpus/reproducers/ddsim_repeated_measurement.py): x, then the same two measurements: 10 on every shot — saw ['10'] +- `measure_twice`, `ddsim.statevector`, reproducer (corpus/reproducers/ddsim_repeated_measurement.py): h, the two measurements with a barrier between: 00 and 11 — saw ['00', '11'] +- `measure_twice`, `ddsim.statevector`, reproducer (corpus/reproducers/ddsim_repeated_measurement.py): h, then c[1] measured first and c[0] second: an error naming changePermutation — saw ValueError: [changePermutation] Target must be an injective mapping using only keys and logical qubits from the source permutation. +- `repeat_until_success`, `ddsim.statevector`, reproducer (corpus/reproducers/ddsim_feedback_rounds.py): repeat_until_success: an error naming changePermutation, and no counts — saw ValueError: [changePermutation] Target must be an injective mapping using only keys and logical qubits from the source permutation. +- `repeat_until_success`, `ddsim.statevector`, reproducer (corpus/reproducers/ddsim_feedback_rounds.py): the same three rounds without the conditioned x: the same error — saw ValueError: [changePermutation] Target must be an injective mapping using only keys and logical qubits from the source permutation. +- `repeat_until_success`, `ddsim.statevector`, reproducer (corpus/reproducers/ddsim_feedback_rounds.py): qubit 1 measured, h, measured again, then qubit 0 measured into a third bit: the same error — saw ValueError: [changePermutation] Target must be an injective mapping using only keys and logical qubits from the source permutation. +- `repeat_until_success`, `ddsim.statevector`, reproducer (corpus/reproducers/ddsim_feedback_rounds.py): the same without qubit 0's measurement into a third bit: counts — saw counts over 4 outcomes + +
Refusals by the engine under test, each listed in corpus/expected-refusals.json with its words (12) + +- `qpe_t6_third`, `wai.exact`: the angle 2.0943951023931953 is not a dyadic multiple of 2π (2πm/2^k, k ≤ 32) [Q500] +- `qpe_t10_third`, `wai.exact`: the angle 2.0943951023931953 is not a dyadic multiple of 2π (2πm/2^k, k ≤ 32) [Q500] +- `rotations_n6`, `wai.exact`: the angle 1.6459015101789476 is not a dyadic multiple of 2π (2πm/2^k, k ≤ 32) [Q500] +- `rotations_n10`, `wai.exact`: the angle 0.49840613019150304 is not a dyadic multiple of 2π (2πm/2^k, k ≤ 32) [Q500] +- `rotations_n12`, `wai.exact`: the angle 1.437905822610216 is not a dyadic multiple of 2π (2πm/2^k, k ≤ 32) [Q500] +- `below_grid_k33`, `wai.exact`: the angle 0.0000000007314590396335798 is not a dyadic multiple of 2π (2πm/2^k, k ≤ 32) [Q500] +- `below_grid_k40`, `wai.exact`: the angle 0.000000000005714523747137342 is not a dyadic multiple of 2π (2πm/2^k, k ≤ 32) [Q500] +- `tiny_radians`, `wai.exact`: the angle 0.000000000001 is not a dyadic multiple of 2π (2πm/2^k, k ≤ 32) [Q500] +- `color_d3`, `wai.qec`: line 16: unsupported instruction 'C_XYZ' +- `qec_refused_correlated`, `wai.qec`: line 2: unsupported instruction 'E' +- `qec_refused_pauli_channel`, `wai.qec`: line 2: unsupported instruction 'PAULI_CHANNEL_1' +- `qec_refused_random_detector`, `wai.qec`: a detector or observable is not deterministic (it anticommutes with op 0) + +
+ +
Checks other engines did not make, and why (11) + +- `gate_gphase_controlled`, `quimb.dense`: no gate gphase +- `gate_gphase_controlled`, `quimb.tensor_network`: no gate gphase +- `gate_gphase_controlled`, `qsim.statevector`: a global phase gate +- `teleport`, `qsim.statevector`: measurement in the middle (or one qubit measured twice) +- `reset_after_superposition`, `qsim.statevector`: measurement in the middle (or one qubit measured twice) +- `measure_twice`, `qsim.statevector`: measurement in the middle (or one qubit measured twice) +- `feedback_flip`, `qsim.statevector`: measurement in the middle (or one qubit measured twice) +- `ghz_by_fusion`, `qsim.statevector`: measurement in the middle (or one qubit measured twice) +- `repeat_until_success`, `qsim.statevector`: measurement in the middle (or one qubit measured twice) +- `mps_ghz_n100`, `aer.mps`: CircuitTooWideForTarget: 'Number of qubits (100) in circuit-46 is greater than maximum (63) in the coupling_map' +- `qec_refused_random_detector`, `stim.tableau`: ValueError: The circuit contains non-deterministic detectors. To make an SVG picture of the problem, you can use the python API like this: your_circuit.diagram('detslice-with-ops-svg', tick=range(0, 5), filter_coords=['D0', ]) or the command line API like this: stim diagram --in your_circui + +
+ +
Recorded and not judged (9) + +- `below_grid_k47`, `ddsim.statevector`: holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it) — measured -4.3e-78. drops it: the angle, 4.46e-14 rad, is below its parameter tolerance of 1e-13 rad, where it may read an angle as 0 +- `below_grid_k48`, `ddsim.statevector`: holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it) — measured -4.3e-78. drops it: the angle, 2.23e-14 rad, is below its parameter tolerance of 1e-13 rad, where it may read an angle as 0 +- `below_grid_k52`, `ddsim.statevector`: holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it) — measured -4.3e-78. drops it: the angle, 1.4e-15 rad, is below its parameter tolerance of 1e-13 rad, where it may read an angle as 0 +- `below_grid_k60`, `wai.statevector`: holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it) — measured 1. neither can be told: its distance from the ideal state, 2.22e-16, is more than half the gate's effect, 2.72e-18 +- `below_grid_k60`, `aer.statevector`: holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it) — measured -21. neither can be told: its distance from the ideal state, 6.12e-17, is more than half the gate's effect, 2.72e-18 +- `below_grid_k60`, `aer.qasm_import`: holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it) — measured -21. neither can be told: its distance from the ideal state, 6.12e-17, is more than half the gate's effect, 2.72e-18 +- `below_grid_k60`, `quimb.dense`: holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it) — measured 1. neither can be told: its distance from the ideal state, 2.22e-16, is more than half the gate's effect, 2.72e-18 +- `below_grid_k60`, `quimb.tensor_network`: holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it) — measured 1. neither can be told: its distance from the ideal state, 1.11e-16, is more than half the gate's effect, 2.72e-18 +- `below_grid_k60`, `ddsim.statevector`: holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it) — measured -4.3e-78. drops it: the angle, 5.45e-18 rad, is below its parameter tolerance of 1e-13 rad, where it may read an angle as 0 + +
+ +Versions: cirq-core 1.7.0, mqt.core 3.11.0, mqt.ddsim 2.7.0, numpy 2.5.4, python 3.12.16, qiskit 2.6.2, qiskit-aer 0.18.2, qsimcirq 0.22.1, quimb 1.15.0, scipy 1.18.1, stim 1.16.0. + +### `performance-linux-x86_64.json` + +Host: AMD RYZEN AI MAX+ 395 w/ Radeon 8060S, Ubuntu 26.04.1 LTS, 32 logical CPUs, 123 GiB, x86_64. Each figure is the engine's own call, the median of 5 runs (the minimum in brackets). Memory is the peak resident set of the process that ran the engine, and the baseline the same given a two-qubit job. Ops are the operations the engine ran, where it reports them. + +- `aer.*` seconds: the simulator's own time for the experiment, as its result states it (time_taken); the conversion of the circuit to its own form is outside it. +- `ddsim.*` seconds: the run call, which converts the circuit to its own form inside it. +- `qsim.*` seconds: the simulate call, which converts the circuit to its own form inside it. +- `quimb.*` seconds: the building of the circuit object, which applies each gate as it is added, and the read-out. +- `stim.*` seconds: the tableau's or sampler's run, after the circuit text is parsed. +- `wai.*` seconds: the engine's run, after the program is read and lowered (the driver's own clock). + +| case | engine | threads | ops | seconds, median (min) | peak MiB (baseline) | load average before → after | +|---|---|---|---|---|---|---| +| qft_n20 | `wai.statevector` | all (32) | 230 | 0.205 (0.127) | 26 (5) | 16.6 → 16.6 | +| qft_n20 | `aer.statevector` | 32 | 231 | 0.962 (0.774) | 115 (100) | 16.6 → 21.4 | +| qft_n20 | `qsim.statevector` | 32 | | 1.25 (1.21) | 195 (188) | 21.4 → 19.3 | +| qft_n20 | `ddsim.statevector` | not set | | 0.336 (0.32) | 131 (98) | 20.6 → 20.6 | +| qft_n20 | `wai.exact` | 1 (no threads) | 250 | 0.25 (0.247) | 38 (5) | 20.6 → 19.8 | +| qft_n20 | `quimb.dense` | not set | | 3.6 (3) | 291 (195) | 19.8 → 22.6 | +| qft_n20 | `wai.statevector` | 1 (pinned) | 230 | 0.232 (0.231) | 22 (5) | 22.6 → 22.6 | +| qft_n20 | `aer.statevector` | 1 (pinned) | 231 | 0.25 (0.245) | 116 (100) | 22.6 → 21.0 | +| qft_n20 | `qsim.statevector` | 1 (pinned) | | 0.038 (0.0343) | 195 (188) | 21.0 → 20.4 | +| qft_n20 | `ddsim.statevector` | 1 (pinned) | | 0.368 (0.333) | 132 (98) | 20.4 → 19.8 | +| qft_n20 | `wai.exact` | 1 (pinned) | 250 | 0.287 (0.271) | 38 (5) | 19.8 → 19.8 | +| qft_n20 | `quimb.dense` | 1 (pinned) | | 1.28 (1.27) | 276 (195) | 19.8 → 18.9 | +| qft_n24 | `wai.statevector` | all (32) | 324 | 0.551 (0.545) | 278 (5) | 18.9 → 18.9 | +| qft_n24 | `aer.statevector` | 32 | 325 | 1.74 (1.66) | 355 (100) | 18.9 → 22.8 | +| qft_n24 | `qsim.statevector` | 32 | | 2.7 (2.09) | 316 (188) | 22.8 → 31.0 | +| qft_n24 | `ddsim.statevector` | not set | | 6.15 (5.46) | 612 (98) | 31.0 → 27.0 | +| qft_n24 | `wai.exact` | 1 (no threads) | 348 | 7.04 (6.93) | 518 (5) | 27.0 → 21.2 | +| qft_n24 | `wai.statevector` | 1 (pinned) | 324 | 6.25 (5.71) | 262 (5) | 21.2 → 36.6 | +| qft_n24 | `aer.statevector` | 1 (pinned) | 325 | 8.17 (6.52) | 356 (100) | 36.6 → 24.3 | +| qft_n24 | `qsim.statevector` | 1 (pinned) | | 1.7 (1.69) | 315 (188) | 24.3 → 21.0 | +| qft_n24 | `ddsim.statevector` | 1 (pinned) | | 8.03 (7.72) | 612 (98) | 21.0 → 14.3 | +| qft_n24 | `wai.exact` | 1 (pinned) | 348 | 7.64 (7.44) | 518 (5) | 14.3 → 14.7 | +| qft_n26 | `wai.statevector` | all (32) | 377 | 2.25 (2.15) | 1046 (5) | 14.7 → 19.4 | +| qft_n26 | `aer.statevector` | 32 | 378 | 7.91 (6.86) | 1125 (100) | 19.4 → 32.9 | +| qft_n26 | `qsim.statevector` | 32 | | 4.95 (4.36) | 699 (188) | 32.9 → 36.7 | +| qft_n28 | `wai.statevector` | all (32) | 434 | 13.5 (12.2) | 4118 (5) | 36.7 → 49.4 | +| qft_n28 | `aer.statevector` | 32 | 435 | 17.3 (15.4) | 4198 (100) | 49.4 → 43.1 | +| qft_n28 | `qsim.statevector` | 32 | | 16.5 (13) | 2234 (188) | 43.1 → 47.7 | +| rotations_n20 | `wai.statevector` | all (32) | 590 | 0.161 (0.114) | 27 (5) | 47.7 → 47.7 | +| rotations_n20 | `aer.statevector` | 32 | 591 | 1.29 (1.26) | 120 (100) | 47.7 → 47.8 | +| rotations_n20 | `qsim.statevector` | 32 | | 1.99 (1.79) | 196 (188) | 47.8 → 47.0 | +| rotations_n20 | `quimb.dense` | not set | | 31.9 (11.3) | 291 (195) | 47.0 → 57.5 | +| rotations_n20 | `wai.statevector` | 1 (pinned) | 590 | 0.508 (0.482) | 23 (5) | 57.5 → 57.5 | +| rotations_n20 | `aer.statevector` | 1 (pinned) | 591 | 0.825 (0.814) | 120 (100) | 57.5 → 51.7 | +| rotations_n20 | `qsim.statevector` | 1 (pinned) | | 0.0366 (0.0354) | 196 (188) | 51.7 → 49.1 | +| rotations_n20 | `quimb.dense` | 1 (pinned) | | 3.01 (2.25) | 276 (195) | 49.1 → 45.6 | +| rotations_n24 | `wai.statevector` | all (32) | 710 | 1.09 (1.07) | 281 (5) | 45.6 → 46.5 | +| rotations_n24 | `aer.statevector` | 32 | 711 | 4.35 (3.26) | 356 (100) | 46.5 → 48.1 | +| rotations_n24 | `qsim.statevector` | 32 | | 11.6 (6.96) | 316 (188) | 48.1 → 55.9 | +| rotations_n24 | `wai.statevector` | 1 (pinned) | 710 | 13.7 (13.1) | 263 (5) | 55.9 → 63.0 | +| rotations_n24 | `aer.statevector` | 1 (pinned) | 711 | 18 (14.6) | 356 (100) | 63.0 → 27.5 | +| rotations_n24 | `qsim.statevector` | 1 (pinned) | | 1.27 (1.27) | 316 (188) | 27.5 → 29.7 | +| rotations_n26 | `wai.statevector` | all (32) | 770 | 7.61 (5.28) | 1050 (5) | 29.7 → 40.7 | +| rotations_n26 | `aer.statevector` | 32 | 771 | 20.3 (15.7) | 1125 (100) | 40.7 → 48.8 | +| rotations_n26 | `qsim.statevector` | 32 | | 4.09 (3.53) | 700 (188) | 48.8 → 41.6 | +| grover_n10 | `wai.statevector` | all (32) | 8290 | 0.131 (0.116) | 12 (5) | 41.6 → 41.6 | +| grover_n10 | `wai.exact` | 1 (no threads) | 26686 | 0.0358 (0.0355) | 17 (5) | 41.6 → 41.6 | +| grover_n10 | `aer.statevector` | 32 | 123 | 0.000314 (0.0003) | 100 (100) | 41.6 → 41.6 | +| grover_n10 | `qsim.statevector` | 32 | | 0.0013 (0.00127) | 188 (188) | 41.6 → 41.9 | +| grover_n10 | `ddsim.statevector` | not set | | 0.00626 (0.00582) | 99 (98) | 41.9 → 39.6 | +| grover_n10 | `wai.statevector` | 1 (pinned) | 8290 | 0.0101 (0.01) | 12 (5) | 39.6 → 39.6 | +| grover_n10 | `wai.exact` | 1 (pinned) | 26686 | 0.0519 (0.0517) | 17 (5) | 39.6 → 39.6 | +| grover_n10 | `aer.statevector` | 1 (pinned) | 123 | 0.000442 (0.000439) | 100 (100) | 39.6 → 39.6 | +| grover_n10 | `qsim.statevector` | 1 (pinned) | | 0.00181 (0.0013) | 187 (188) | 39.6 → 37.3 | +| grover_n10 | `ddsim.statevector` | 1 (pinned) | | 0.00739 (0.00572) | 100 (98) | 37.3 → 35.2 | +| grover_n14 | `wai.statevector` | all (32) | 131214 | 3.18 (2.91) | 107 (5) | 35.2 → 30.0 | +| grover_n14 | `wai.exact` | 1 (no threads) | 557146 | 14.3 (11.7) | 243 (5) | 30.0 → 26.7 | +| grover_n14 | `aer.statevector` | 32 | 167 | 0.00308 (0.00296) | 100 (100) | 26.7 → 26.7 | +| grover_n14 | `qsim.statevector` | 32 | | 0.239 (0.105) | 188 (188) | 26.7 → 29.8 | +| grover_n14 | `ddsim.statevector` | not set | | 0.0074 (0.00696) | 100 (98) | 29.8 → 29.8 | +| grover_n14 | `wai.statevector` | 1 (pinned) | 131214 | 2.88 (2.36) | 107 (5) | 29.8 → 31.8 | +| grover_n14 | `wai.exact` | 1 (pinned) | 557146 | 14.6 (12.5) | 243 (5) | 31.8 → 25.2 | +| grover_n14 | `aer.statevector` | 1 (pinned) | 167 | 0.00517 (0.00505) | 100 (100) | 25.2 → 24.2 | +| grover_n14 | `qsim.statevector` | 1 (pinned) | | 0.00248 (0.00248) | 187 (188) | 24.2 → 22.9 | +| grover_n14 | `ddsim.statevector` | 1 (pinned) | | 0.00903 (0.00859) | 100 (98) | 22.9 → 21.7 | +| clifford_n1000 | `wai.stabilizer` | 1 (no threads) | 35082 | 0.000906 (0.000892) | 90 (5) | 21.7 → 21.7 | +| clifford_n1000 | `stim.tableau` | not set | | 0.00116 (0.00115) | 40 (24) | 21.7 → 21.7 | +| clifford_n1000 | `aer.stabilizer` | 32 | 35083 | 0.0219 (0.0193) | 207 (121) | 21.7 → 20.7 | +| clifford_n5000 | `wai.stabilizer` | 1 (no threads) | 58265 | 0.00767 (0.00606) | 142 (5) | 20.6 → 19.7 | +| clifford_n5000 | `stim.tableau` | not set | | 0.00854 (0.00803) | 64 (24) | 19.7 → 19.7 | +| surface_z_d5_sample | `wai.qec` | 1 (no threads) | | 0.0735 (0.0707) | 19 (4) | 19.7 → 19.7 | +| surface_z_d5_sample | `stim.tableau` | not set | | 0.315 (0.3) | 160 (38) | 19.7 → 18.8 | +| surface_z_d5_sample | `wai.qec` | 1 (pinned) | | 0.072 (0.0708) | 19 (4) | 18.8 → 18.8 | +| surface_z_d5_sample | `stim.tableau` | 1 (pinned) | | 0.429 (0.287) | 160 (38) | 18.8 → 18.8 | +| surface_z_d5_model | `wai.qec` | 1 (no threads) | | 0.00188 (0.00182) | 7 (5) | 18.8 → 18.8 | +| surface_z_d5_model | `stim.tableau` | not set | | 0.0032 (0.00306) | 26 (25) | 18.8 → 18.8 | +| surface_z_d11_sample | `wai.qec` | 1 (no threads) | | 0.803 (0.79) | 163 (4) | 18.8 → 18.4 | +| surface_z_d11_sample | `stim.tableau` | not set | | 2.88 (2.85) | 853 (38) | 18.4 → 17.2 | +| surface_z_d11_sample | `wai.qec` | 1 (pinned) | | 1 (0.811) | 163 (4) | 17.2 → 17.5 | +| surface_z_d11_sample | `stim.tableau` | 1 (pinned) | | 3.44 (2.77) | 853 (38) | 17.5 → 15.6 | +| surface_z_d11_model | `wai.qec` | 1 (no threads) | | 0.0248 (0.0226) | 26 (5) | 15.6 → 15.6 | +| surface_z_d11_model | `stim.tableau` | not set | | 0.0474 (0.0452) | 40 (25) | 15.6 → 15.6 | +| qft_n40_amplitudes | `wai.mps` | 1 (no threads) | | 0.0113 (0.0111) | 11 (7) | 15.6 → 15.6 | +| qft_n40_amplitudes | `aer.mps` | 32 | 861 | 0.00304 (0.00301) | 105 (99) | 15.6 → 15.0 | +| qft_n40_amplitudes | `quimb.mps` | not set | | 1.88 (1.86) | 206 (200) | 15.0 → 14.8 | +| qft_n40_amplitudes | `wai.tensor_network` | all (32) | | 0.152 (0.143) | 11 (7) | 14.7 → 14.7 | +| qft_n40_amplitudes | `quimb.tensor_network` | not set | | 1.06 (0.942) | 220 (205) | 14.7 → 15.3 | + +### `performance-macos-arm64.json` + +Host: Apple M3 Ultra, macOS 27.2, 32 logical CPUs, 256 GiB, arm64. Each figure is the engine's own call, the median of 5 runs (the minimum in brackets). Memory is the peak resident set of the process that ran the engine, and the baseline the same given a two-qubit job. Ops are the operations the engine ran, where it reports them. + +- `aer.*` seconds: the simulator's own time for the experiment, as its result states it (time_taken); the conversion of the circuit to its own form is outside it. +- `ddsim.*` seconds: the run call, which converts the circuit to its own form inside it. +- `qsim.*` seconds: the simulate call, which converts the circuit to its own form inside it. +- `quimb.*` seconds: the building of the circuit object, which applies each gate as it is added, and the read-out. +- `stim.*` seconds: the tableau's or sampler's run, after the circuit text is parsed. +- `wai.*` seconds: the engine's run, after the program is read and lowered (the driver's own clock). + +| case | engine | threads | ops | seconds, median (min) | peak MiB (baseline) | load average before → after | +|---|---|---|---|---|---|---| +| qft_n20 | `wai.statevector` | all (32) | 230 | 0.0239 (0.0224) | 28 (4) | 24.1 → 24.1 | +| qft_n20 | `aer.statevector` | 32 | 231 | 0.0739 (0.0666) | 100 (83) | 24.1 → 30.4 | +| qft_n20 | `qsim.statevector` | 32 | | 0.0818 (0.0541) | 197 (187) | 30.4 → 29.5 | +| qft_n20 | `ddsim.statevector` | not set | | 0.143 (0.138) | 119 (86) | 29.5 → 29.5 | +| qft_n20 | `wai.exact` | 1 (no threads) | 250 | 0.221 (0.215) | 37 (3) | 30.7 → 30.7 | +| qft_n20 | `quimb.dense` | not set | | 1.41 (1.39) | 255 (159) | 30.7 → 31.3 | +| qft_n24 | `wai.statevector` | all (32) | 324 | 0.48 (0.466) | 288 (4) | 31.8 → 31.8 | +| qft_n24 | `aer.statevector` | 32 | 325 | 0.57 (0.562) | 341 (83) | 31.8 → 35.0 | +| qft_n24 | `qsim.statevector` | 32 | | 0.58 (0.572) | 318 (187) | 35.0 → 40.6 | +| qft_n24 | `ddsim.statevector` | not set | | 2.13 (2.12) | 599 (86) | 40.6 → 42.4 | +| qft_n24 | `wai.exact` | 1 (no threads) | 348 | 5.16 (5.11) | 518 (3) | 42.4 → 48.1 | +| qft_n26 | `wai.statevector` | all (32) | 377 | 2.14 (2.03) | 1058 (4) | 48.1 → 52.0 | +| qft_n26 | `aer.statevector` | 32 | 378 | 1.83 (1.75) | 1109 (83) | 52.0 → 58.4 | +| qft_n26 | `qsim.statevector` | 32 | | 2.24 (2.21) | 702 (187) | 58.4 → 57.9 | +| qft_n28 | `wai.statevector` | all (32) | 434 | 9.73 (9.69) | 4135 (4) | 57.9 → 67.9 | +| qft_n28 | `aer.statevector` | 32 | 435 | 6.79 (6.75) | 4181 (83) | 67.9 → 65.3 | +| qft_n28 | `qsim.statevector` | 32 | | 9.01 (8.94) | 2238 (187) | 65.3 → 64.1 | +| rotations_n20 | `wai.statevector` | all (32) | 590 | 0.0639 (0.0625) | 28 (4) | 64.1 → 64.1 | +| rotations_n20 | `aer.statevector` | 32 | 591 | 0.138 (0.129) | 102 (83) | 64.1 → 64.1 | +| rotations_n20 | `qsim.statevector` | 32 | | 0.0629 (0.0603) | 198 (187) | 64.1 → 58.2 | +| rotations_n20 | `quimb.dense` | not set | | 2.71 (2.67) | 235 (159) | 58.2 → 51.5 | +| rotations_n24 | `wai.statevector` | all (32) | 710 | 0.898 (0.888) | 299 (4) | 51.5 → 50.7 | +| rotations_n24 | `aer.statevector` | 32 | 711 | 1.07 (1.05) | 342 (83) | 50.7 → 54.9 | +| rotations_n24 | `qsim.statevector` | 32 | | 0.48 (0.466) | 319 (187) | 54.9 → 57.2 | +| rotations_n26 | `wai.statevector` | all (32) | 770 | 2.37 (2.29) | 1073 (4) | 57.2 → 61.4 | +| rotations_n26 | `aer.statevector` | 32 | 771 | 3.7 (3.68) | 1110 (83) | 61.4 → 62.6 | +| rotations_n26 | `qsim.statevector` | 32 | | 1.73 (1.7) | 702 (187) | 62.6 → 62.2 | +| grover_n10 | `wai.statevector` | all (32) | 8290 | 0.0152 (0.015) | 11 (4) | 62.2 → 62.2 | +| grover_n10 | `wai.exact` | 1 (no threads) | 26686 | 0.0249 (0.0247) | 17 (3) | 62.2 → 62.2 | +| grover_n10 | `aer.statevector` | 32 | 123 | 0.000225 (0.000221) | 83 (83) | 62.2 → 58.0 | +| grover_n10 | `qsim.statevector` | 32 | | 0.00304 (0.00294) | 189 (187) | 58.0 → 56.3 | +| grover_n10 | `ddsim.statevector` | not set | | 0.00523 (0.005) | 87 (86) | 56.3 → 56.3 | +| grover_n14 | `wai.statevector` | all (32) | 131214 | 2.96 (2.95) | 104 (4) | 56.3 → 49.0 | +| grover_n14 | `wai.exact` | 1 (no threads) | 557146 | 8.44 (8.43) | 261 (3) | 49.0 → 42.5 | +| grover_n14 | `aer.statevector` | 32 | 167 | 0.00317 (0.00313) | 84 (83) | 42.5 → 42.5 | +| grover_n14 | `qsim.statevector` | 32 | | 0.0116 (0.0111) | 190 (187) | 42.5 → 41.8 | +| grover_n14 | `ddsim.statevector` | not set | | 0.00621 (0.00598) | 88 (86) | 41.8 → 41.8 | +| clifford_n1000 | `wai.stabilizer` | 1 (no threads) | 35082 | 0.00104 (0.000969) | 95 (3) | 41.8 → 39.4 | +| clifford_n1000 | `stim.tableau` | not set | | 0.00173 (0.00163) | 46 (27) | 39.4 → 39.4 | +| clifford_n1000 | `aer.stabilizer` | 32 | 35083 | 0.00758 (0.00722) | 192 (100) | 39.4 → 36.8 | +| clifford_n5000 | `wai.stabilizer` | 1 (no threads) | 58265 | 0.00978 (0.00834) | 168 (3) | 36.9 → 34.7 | +| clifford_n5000 | `stim.tableau` | not set | | 0.0349 (0.0254) | 73 (27) | 34.7 → 32.7 | +| surface_z_d5_sample | `wai.qec` | 1 (no threads) | | 0.0872 (0.0867) | 18 (3) | 32.7 → 32.7 | +| surface_z_d5_sample | `stim.tableau` | not set | | 0.214 (0.214) | 123 (38) | 32.7 → 32.7 | +| surface_z_d5_model | `wai.qec` | 1 (no threads) | | 0.00214 (0.00211) | 6 (3) | 32.7 → 32.7 | +| surface_z_d5_model | `stim.tableau` | not set | | 0.00282 (0.00269) | 29 (27) | 32.7 → 32.7 | +| surface_z_d11_sample | `wai.qec` | 1 (no threads) | | 0.94 (0.938) | 163 (3) | 32.7 → 30.8 | +| surface_z_d11_sample | `stim.tableau` | not set | | 2.05 (2.04) | 938 (38) | 30.8 → 31.5 | +| surface_z_d11_model | `wai.qec` | 1 (no threads) | | 0.0234 (0.0231) | 34 (3) | 31.5 → 31.5 | +| surface_z_d11_model | `stim.tableau` | not set | | 0.0404 (0.0398) | 49 (27) | 31.5 → 32.1 | +| qft_n40_amplitudes | `wai.mps` | 1 (no threads) | | 0.0164 (0.0158) | 10 (5) | 32.1 → 32.1 | +| qft_n40_amplitudes | `aer.mps` | 32 | 861 | 0.00538 (0.00534) | 86 (83) | 32.1 → 32.1 | +| qft_n40_amplitudes | `quimb.mps` | not set | | 1.89 (1.87) | 166 (161) | 32.1 → 34.9 | +| qft_n40_amplitudes | `wai.tensor_network` | all (32) | | 0.181 (0.181) | 11 (5) | 34.9 → 33.7 | +| qft_n40_amplitudes | `quimb.tensor_network` | not set | | 0.858 (0.845) | 180 (166) | 33.7 → 32.6 | + + + +## Limits + +- **The bounds are loose.** They are worst cases, so an error smaller than a bound passes, and + a double-precision engine usually measures a hundred times or more below its bound. The + ratios in the tables say how much room each check left. The sharp checks are the exact ones: + the referee's bit-for-bit rerun, the bit-exact op-log against the circuit, the held-or-dropped + check of each small-angle gate, stabilizer groups as bytes, outcomes of probability 0, and + symptom sets. +- **The integer state reference stops at 14 qubits.** Wider circuits are held to closed forms + (QFT, GHZ), to mirror circuits, and to each other. +- **Sampling is checked by marginals and by L1 distance.** Each outcome's count is held to its + probability, and the whole distribution to the exact one; the independence of shots is not + tested. At the family-wise rate of 10^-6 a test fails on a deviation of about six standard + deviations: on 100,000 shots of a fair outcome, about 1,000 shots, and in L1 distance about + 0.02, or 0.045 over 257 outcomes at 200,000 shots. A smaller fault passes; each check records its + bound. At 40 qubits a sampler confined to a smaller space inside the right one, with every bit + still free, is not seen. +- **Not compared at all:** the engine's Pauli propagation, cut-rank, stabilizer-rank, + trajectory, pulse and mitigation methods; its GPU and other fabric members; single-precision + GPU state vectors of any engine; decoders; noise beyond depolarizing channels in closed form. +- **What the engine under test refuses** is listed in + [`corpus/expected-refusals.json`](corpus/expected-refusals.json), with the words it must give. + Its frame simulator does not implement `C_XYZ`, correlated errors (`E`) or general Pauli + channels, so the reference generator's colour-code memory circuits do not run on it. Its + matrix-product-state job refuses the 30- and 40-qubit QFT at `max_bond` 256 as more work than one + job may take (`[J011]`): its estimate counts the bond asked for, not the bond the circuit + reaches. The corpus runs it at 64, where the bond it reaches is recorded in the results. +- **What the adapters do not drive.** The qsim adapter runs no measurement in the middle of a + circuit, so those entries are `not run` for it; that is this adapter's limit. `aer.mps` is + not run at 100 qubits: its target holds 63. An engine that has not answered a circuit within + 900 s is stopped, with every process it started, and is recorded as not run for it, or as a + failure when it is the engine under test. +- **Platforms.** The pinned wheels exist together for macOS on arm64 and Linux on x86_64 only. +- **Performance** is one shared host a file, on one day. Other work on the host moves a timing + by several times; the load average before and after each case is beside it. Timers do not all + cover the same work: the list above each table says what each covers. +- **One author** wrote the adapters, the references and the tolerances. A reproduction by + someone else, and adapters reviewed by each engine's own users, are what this page still needs. + +## A provider of the open protocol + +[`provider/seeded_statevector_provider.py`](provider/seeded_statevector_provider.py) wraps a +third-party state-vector simulator as a `process` provider of `wai.quantum.provider/1` +([the extension](../extensions/quantum-providers.md)). It is also the template for a device of +your own: replace the `Device` class's `run` with a call to your device. + +```sh +wai-quantum providers add sim --kind process -- python3 -I provider/seeded_statevector_provider.py +wai-quantum providers test sim # the protocol's conformance vectors +wai-quantum run bell.qasm --provider sim --shots 1000 --json > job.json +wai-quantum verify job.json +``` + +[`provider/test.sh`](provider/test.sh) does exactly that in a directory of its own, as part of +`reproduce.sh` and of CI: every conformance vector passes, the counts are sealed as `measured` on a +`simulator`, the receipt verifies, and the same job gives the same counts twice (the device is +seeded; on the two hosts here it gave the same counts, too). + +## CI + +`.github/workflows/wai-quantum-cli.yml` runs the CI tier on Linux (the circuits marked `ci` in the +manifest: every kind of check but the pairwise comparison of wide circuits), the self-test, the +provider template, and `tools/report.py --check`, which holds this page's results section to +`results/`. The full tier is the command above, run by hand. + +## Files + +| path | what | +|---|---| +| `reproduce.sh` | the one command | +| `env/requirements.in`, `env/requirements.lock` | the pinned engines, and every wheel's hash for macOS and Linux | +| `corpus/` | the manifest, the committed programs and error-correction circuits, the hand-written ones, the refusals the engine under test may give, and the known disagreements with their reproducers | +| `tools/corpus.py` | the circuits | +| `tools/exact.py` | the references | +| `tools/tolerance.py` | every tolerance and where it comes from | +| `tools/engines.py` | one adapter per engine and method | +| `tools/compare.py` | the run: references, tolerances, injected faults, the results file | +| `tools/perf.py` | run time and peak memory | +| `tools/report.py` | this page's results section | +| `provider/` | the provider template and its test | +| `results/` | the committed runs | diff --git a/wai/quantum-cross-simulator/corpus/expected-refusals.json b/wai/quantum-cross-simulator/corpus/expected-refusals.json new file mode 100644 index 000000000..e90108608 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/expected-refusals.json @@ -0,0 +1,89 @@ +{ + "about": "Refusals by the engine under test that a run accepts, each with the words it must give; tools/corpus.py writes this file from the reader's rule and its list, and a run checks it against them. Any other refusal, crash or time-out of the engine under test fails the run. must: refuse (accepting fails the run) or may (a refusal with these words is recorded as one).", + "refusals": [ + { + "entry": "qpe_t6_third", + "engine": "wai.exact", + "must": "refuse", + "text": "[Q500]", + "reason": "an angle no grid of 2^32 holds within 10^-14 of a turn" + }, + { + "entry": "qpe_t10_third", + "engine": "wai.exact", + "must": "refuse", + "text": "[Q500]", + "reason": "an angle no grid of 2^32 holds within 10^-14 of a turn" + }, + { + "entry": "rotations_n6", + "engine": "wai.exact", + "must": "refuse", + "text": "[Q500]", + "reason": "an angle no grid of 2^32 holds within 10^-14 of a turn" + }, + { + "entry": "rotations_n10", + "engine": "wai.exact", + "must": "refuse", + "text": "[Q500]", + "reason": "an angle no grid of 2^32 holds within 10^-14 of a turn" + }, + { + "entry": "rotations_n12", + "engine": "wai.exact", + "must": "refuse", + "text": "[Q500]", + "reason": "an angle no grid of 2^32 holds within 10^-14 of a turn" + }, + { + "entry": "below_grid_k33", + "engine": "wai.exact", + "must": "refuse", + "text": "[Q500]", + "reason": "an angle no grid of 2^32 holds within 10^-14 of a turn" + }, + { + "entry": "below_grid_k40", + "engine": "wai.exact", + "must": "refuse", + "text": "[Q500]", + "reason": "an angle no grid of 2^32 holds within 10^-14 of a turn" + }, + { + "entry": "tiny_radians", + "engine": "wai.exact", + "must": "refuse", + "text": "[Q500]", + "reason": "an angle no grid of 2^32 holds within 10^-14 of a turn" + }, + { + "entry": "color_d3", + "engine": "wai.qec", + "must": "may", + "text": "unsupported instruction 'C_XYZ'", + "reason": "the frame simulator does not implement C_XYZ" + }, + { + "entry": "qec_refused_correlated", + "engine": "wai.qec", + "must": "may", + "text": "unsupported instruction 'E'", + "reason": "the frame simulator does not implement correlated errors" + }, + { + "entry": "qec_refused_pauli_channel", + "engine": "wai.qec", + "must": "may", + "text": "unsupported instruction 'PAULI_CHANNEL_1'", + "reason": "the frame simulator does not implement general Pauli channels" + }, + { + "entry": "qec_refused_random_detector", + "engine": "wai.qec", + "must": "refuse", + "text": "is not deterministic", + "reason": "a detector that is random without noise is no detector" + } + ] +} diff --git a/wai/quantum-cross-simulator/corpus/known-disagreements.json b/wai/quantum-cross-simulator/corpus/known-disagreements.json new file mode 100644 index 000000000..8ef7bc8a2 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/known-disagreements.json @@ -0,0 +1,21 @@ +{ + "about": "Disagreements of other engines with the exact reference, each with a reproducer committed beside it (corpus/reproducers/) that states every claim made here as a case and checks it. tools/compare.py reports a failing check that matches one as `known`, not as a failure of the run, and reruns its reproducer. The engine under test may not be listed here: a failure of its checks is always a failure.", + "disagreements": [ + { + "entry": "measure_twice", + "engine": "ddsim.statevector", + "quantity": ["deviation of an outcome's count", "L1 distance from the exact distribution"], + "right": "the exact reference: a second measurement of a qubit in the same basis repeats the first, so only 00 and 11 occur. Every other engine that ran this program met it (the results files).", + "finding": "MQT DDSIM 2.7.0's qasm_simulator, given h q[0]; c[0] = measure q[0]; c[1] = measure q[0]; with nothing between the two measurements, returns 00 and 10: c[0] is never set. With x in place of h it gives 10 on every shot; with a barrier between the measurements, 00 and 11; with c[1] measured first and c[0] second, ValueError [changePermutation]. Each is a case of the reproducer, with the circuit built in Qiskit 2.6.2.", + "reproducer": "corpus/reproducers/ddsim_repeated_measurement.py" + }, + { + "entry": "repeat_until_success", + "engine": "ddsim.statevector", + "quantity": "counts", + "right": "the exact reference, which every other engine that ran this program met (the results files)", + "finding": "MQT DDSIM 2.7.0's qasm_simulator raises ValueError [changePermutation] on this program (two qubits; qubit 1 measured three times in the middle, with gates between and an x conditioned on each reading; four classical bits) and gives no counts. It raises the same without the conditioned x, and on qubit 1 measured, h, measured again, then qubit 0 measured into a third bit; with no third bit it gives counts. Each is a case of the reproducer.", + "reproducer": "corpus/reproducers/ddsim_feedback_rounds.py" + } + ] +} diff --git a/wai/quantum-cross-simulator/corpus/manifest.json b/wai/quantum-cross-simulator/corpus/manifest.json new file mode 100644 index 000000000..f7e34fe61 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/manifest.json @@ -0,0 +1,2159 @@ +{ + "about": "Every circuit of the corpus: parameters, reason, what it is held to, and the SHA-256 of its OpenQASM text. tools/corpus.py writes this file; the run fails if the generator no longer gives these bytes.", + "circuits": [ + { + "id": "bit_order_x_low", + "family": "bit_order", + "params": { + "n": 5 + }, + "reason": "An X on qubit 0 must read as index 1, the first thing that differs between engines' conventions.", + "expect": "exact_state", + "tier": "ci", + "qubits": 5, + "gates": 1, + "sha256": "a82737e4baf9d9760161ce7a3803ff974199203b8db9fa0d635ab530acb5e627" + }, + { + "id": "bit_order_x_high", + "family": "bit_order", + "params": { + "n": 5 + }, + "reason": "The other end of the same convention: an X on the highest qubit is index 16.", + "expect": "exact_state", + "tier": "full", + "qubits": 5, + "gates": 1, + "sha256": "cd847f1612f274f3b6ca4e9d19df937b87792554942a858a129b4775916c9c46" + }, + { + "id": "bit_order_product", + "family": "bit_order", + "params": { + "n": 6 + }, + "reason": "Every amplitude differs, so any exchange of two qubits changes the state.", + "expect": "exact_state", + "tier": "ci", + "qubits": 6, + "gates": 12, + "sha256": "7dfe8ecb9180708a158cc0a938b77bb3f889c853acf28f86ef78b3605563de9e" + }, + { + "id": "bit_order_control", + "family": "bit_order", + "params": { + "n": 4 + }, + "reason": "A cx from qubit 0 to qubit 3: the control and target must not swap roles.", + "expect": "exact_state", + "tier": "full", + "qubits": 4, + "gates": 2, + "sha256": "014f5678d1eae72d2ced1e63d638cf03d15b478e2a36ff3cf785c0cae046780f" + }, + { + "id": "bit_order_named_bits", + "family": "bit_order", + "params": { + "n": 2 + }, + "reason": "Classical bits named out of order: qubit 1 into bit 0. The counts must follow the bits, not the qubits.", + "expect": "distribution", + "tier": "ci", + "qubits": 2, + "gates": 1, + "sha256": "619e3c9a70d6d064e2aef47115fb90cf2c2d7876e75dfdc29ffefdeaf438ae2a" + }, + { + "id": "empty_register", + "family": "bit_order", + "params": { + "n": 3 + }, + "reason": "A program of no gates: the state is |000>.", + "expect": "exact_state", + "tier": "full", + "qubits": 3, + "gates": 0, + "sha256": "0c1b72064ff5c99789655cc918b2e730a4ba04d0f52b65d04f6e458a0d49eedb" + }, + { + "id": "one_qubit", + "family": "bit_order", + "params": { + "n": 1 + }, + "reason": "The smallest register.", + "expect": "exact_state", + "tier": "full", + "qubits": 1, + "gates": 1, + "sha256": "b0b1111a0363f9d90a405a33fbe23352771e64a85909ebb91758f8d82ecf6e60" + }, + { + "id": "top_index_n20", + "family": "bit_order", + "params": { + "n": 20 + }, + "reason": "An index at bit 19: index arithmetic past 16 bits, with no entanglement to hide it.", + "expect": "pairwise", + "tier": "ci", + "qubits": 20, + "gates": 2, + "sha256": "c68126ca3e0190a4795baab939de10bc3ceb23cc232e0af23f90949b314a649f" + }, + { + "id": "ghz_n2", + "family": "ghz", + "params": { + "n": 2 + }, + "reason": "Known answer: two amplitudes of 1/sqrt(2), every other zero. It exposes any leakage out of those two.", + "expect": "known_state", + "tier": "full", + "qubits": 2, + "gates": 2, + "sha256": "ce49d4e871f80cc36e550cadd5559c84fb63af50a0cf3bf29a297d769ce723fa" + }, + { + "id": "ghz_n3", + "family": "ghz", + "params": { + "n": 3 + }, + "reason": "Known answer: two amplitudes of 1/sqrt(2), every other zero. It exposes any leakage out of those two.", + "expect": "known_state", + "tier": "ci", + "qubits": 3, + "gates": 3, + "sha256": "034e3b190c9ea5007a430f737921eb20ad330b975a4a4399bfe59105d8c08258" + }, + { + "id": "ghz_n5", + "family": "ghz", + "params": { + "n": 5 + }, + "reason": "Known answer: two amplitudes of 1/sqrt(2), every other zero. It exposes any leakage out of those two.", + "expect": "known_state", + "tier": "full", + "qubits": 5, + "gates": 5, + "sha256": "1d857d82f61600819e01b84a9c2f4fbde13cde86fbf5b654600c708cd1bacc2b" + }, + { + "id": "ghz_n8", + "family": "ghz", + "params": { + "n": 8 + }, + "reason": "Known answer: two amplitudes of 1/sqrt(2), every other zero. It exposes any leakage out of those two.", + "expect": "known_state", + "tier": "full", + "qubits": 8, + "gates": 8, + "sha256": "2059ad0e537bfcfaf20ae709d44bef13d933d20d16722d2b892dec6334989ab9" + }, + { + "id": "ghz_n12", + "family": "ghz", + "params": { + "n": 12 + }, + "reason": "Known answer: two amplitudes of 1/sqrt(2), every other zero. It exposes any leakage out of those two.", + "expect": "known_state", + "tier": "full", + "qubits": 12, + "gates": 12, + "sha256": "c3fe93f462b9412dd9523e83654b1770d7ebe1cdfe9656112cdb780456ce18eb" + }, + { + "id": "ghz_counts_n8", + "family": "ghz", + "params": { + "n": 8 + }, + "reason": "Sampling: only the two outcomes may appear, equally often.", + "expect": "distribution", + "tier": "full", + "qubits": 8, + "gates": 8, + "sha256": "7b8a8b276092782689825d84e6ab030e23e26bb2a5e541307e6417a862fb4489" + }, + { + "id": "qft_n3_x5", + "family": "qft", + "params": { + "n": 3, + "x": 5 + }, + "reason": "Closed form e^{2πi xy/2^n}/2^(n/2), and every controlled phase up to 2π/2^n: the rotations a fixed-point table holds least well.", + "expect": "known_state", + "tier": "full", + "qubits": 3, + "gates": 9, + "sha256": "e7214b90b0e5d48d8e38ca3b06276f6f701b8a99165dc636a25183c94e63a4d9" + }, + { + "id": "qft_n5_x19", + "family": "qft", + "params": { + "n": 5, + "x": 19 + }, + "reason": "Closed form e^{2πi xy/2^n}/2^(n/2), and every controlled phase up to 2π/2^n: the rotations a fixed-point table holds least well.", + "expect": "known_state", + "tier": "ci", + "qubits": 5, + "gates": 20, + "sha256": "b208f04e2cba99c16de498db8ad86990187a08df90271d27f99553b8ee4ac6bd" + }, + { + "id": "qft_n8_x173", + "family": "qft", + "params": { + "n": 8, + "x": 173 + }, + "reason": "Closed form e^{2πi xy/2^n}/2^(n/2), and every controlled phase up to 2π/2^n: the rotations a fixed-point table holds least well.", + "expect": "known_state", + "tier": "full", + "qubits": 8, + "gates": 45, + "sha256": "6219596fde9111e9a9d263629d32d90604154cca49eba7bc1a5c82fa377294ab" + }, + { + "id": "qft_n12_x2741", + "family": "qft", + "params": { + "n": 12, + "x": 2741 + }, + "reason": "Closed form e^{2πi xy/2^n}/2^(n/2), and every controlled phase up to 2π/2^n: the rotations a fixed-point table holds least well.", + "expect": "known_state", + "tier": "full", + "qubits": 12, + "gates": 91, + "sha256": "6c5713a9476008b7594f9165e7548ae067126dbe73ac5543fc382ce6aff1311b" + }, + { + "id": "qft_n14_x10923", + "family": "qft", + "params": { + "n": 14, + "x": 10923 + }, + "reason": "Closed form e^{2πi xy/2^n}/2^(n/2), and every controlled phase up to 2π/2^n: the rotations a fixed-point table holds least well.", + "expect": "known_state", + "tier": "full", + "qubits": 14, + "gates": 120, + "sha256": "2416d7468e01f2180ba9f7a2a9c5063bfcda04c0a9adc202f2bb7b302662521e" + }, + { + "id": "qft_superposed_n10", + "family": "qft", + "params": { + "n": 10, + "seed": 11 + }, + "reason": "A QFT over a random Clifford+T state: its phases act on every amplitude, where from a basis state most cancel.", + "expect": "exact_state", + "tier": "full", + "qubits": 10, + "gates": 109, + "sha256": "7e1dc0a356bcfcdd0b8f04e3530ceb130f54a0cc90bca8f5a7b062f9b77bd4aa" + }, + { + "id": "qft_counts_n8", + "family": "qft", + "params": { + "n": 8, + "x": 173 + }, + "reason": "Sampling a uniform distribution of 256 outcomes.", + "expect": "distribution", + "tier": "full", + "qubits": 8, + "gates": 45, + "sha256": "76c9cbad3117de189ea04d94f4c1c8dcdf59130902cc126cb2e55d4e8ad847d9" + }, + { + "id": "qft_wide_n20", + "family": "qft", + "params": { + "n": 20, + "x": 699051 + }, + "reason": "Past any integer reference here: engines against each other, and chosen amplitudes against the closed form.", + "expect": "pairwise", + "tier": "full", + "qubits": 20, + "gates": 231, + "sha256": "6e27ec2cf4b5e17dd35411ad50d8cdf830f5080c7be02f0c0a588c5f60aa0c93" + }, + { + "id": "grover_n3", + "family": "grover", + "params": { + "n": 3, + "marked": 5, + "iterations": 2 + }, + "reason": "Closed form: the marked state's probability is sin²((2k+1)θ) with sin θ = 2^(-n/2). Multi-controlled gates, and interference that rounding drains.", + "expect": "exact_state", + "tier": "ci", + "qubits": 3, + "gates": 35, + "sha256": "8f9f181ab580808afd4332a4f3677eb208de31f6266a5f7e9c9cde7a6c7a41e0" + }, + { + "id": "grover_n5", + "family": "grover", + "params": { + "n": 5, + "marked": 19, + "iterations": 4 + }, + "reason": "Closed form: the marked state's probability is sin²((2k+1)θ) with sin θ = 2^(-n/2). Multi-controlled gates, and interference that rounding drains.", + "expect": "exact_state", + "tier": "full", + "qubits": 5, + "gates": 109, + "sha256": "dba78d67d58020d49b84cfc0ce1e79c3226128cad2d9ce90d949ca53657ea8f8" + }, + { + "id": "grover_n8", + "family": "grover", + "params": { + "n": 8, + "marked": 173, + "iterations": 12 + }, + "reason": "Closed form: the marked state's probability is sin²((2k+1)θ) with sin θ = 2^(-n/2). Multi-controlled gates, and interference that rounding drains.", + "expect": "exact_state", + "tier": "full", + "qubits": 8, + "gates": 488, + "sha256": "6d9edebc9c9b36cabc065c0bd38913e1fe3620e31d6d291048874c28e490dcee" + }, + { + "id": "grover_n10", + "family": "grover", + "params": { + "n": 10, + "marked": 683, + "iterations": 25 + }, + "reason": "Closed form: the marked state's probability is sin²((2k+1)θ) with sin θ = 2^(-n/2). Multi-controlled gates, and interference that rounding drains.", + "expect": "exact_state", + "tier": "full", + "qubits": 10, + "gates": 1260, + "sha256": "e1b17e8db06acc7551f0c305e8b679208236884913e604b2eb5e1c2a169629db" + }, + { + "id": "grover_counts_n5", + "family": "grover", + "params": { + "n": 5, + "marked": 19, + "iterations": 4 + }, + "reason": "Sampling a peaked distribution.", + "expect": "distribution", + "tier": "full", + "qubits": 5, + "gates": 109, + "sha256": "8dcbab3a86fcd1ba349a5958f8c055d305402969783c267c5d52cf5b66a88442" + }, + { + "id": "qpe_t4_m5", + "family": "qpe", + "params": { + "bits": 4, + "phase": "5/2^4" + }, + "reason": "A phase of exactly m/2^t: the outcome is m with probability 1, so every other amplitude must cancel to zero.", + "expect": "exact_state", + "tier": "ci", + "qubits": 5, + "gates": 21, + "sha256": "faafed7df4e137998ed36db00b1ef571c926ee99fae83fab721284c7c568b510" + }, + { + "id": "qpe_t8_m173", + "family": "qpe", + "params": { + "bits": 8, + "phase": "173/2^8" + }, + "reason": "A phase of exactly m/2^t: the outcome is m with probability 1, so every other amplitude must cancel to zero.", + "expect": "exact_state", + "tier": "full", + "qubits": 9, + "gates": 57, + "sha256": "e1694667fc9071b918f42fc9ea780db3f9245eb48351a10d8b7b8acd10c7d033" + }, + { + "id": "qpe_t12_m2741", + "family": "qpe", + "params": { + "bits": 12, + "phase": "2741/2^12" + }, + "reason": "A phase of exactly m/2^t: the outcome is m with probability 1, so every other amplitude must cancel to zero.", + "expect": "exact_state", + "tier": "full", + "qubits": 13, + "gates": 109, + "sha256": "afb31ffc8ece9649a0eacb088abe0ba26665ac54f3f3eb609edc2f22edb49b09" + }, + { + "id": "qpe_t6_third", + "family": "qpe", + "params": { + "bits": 6, + "phase": "1/3" + }, + "reason": "A phase that is no dyadic: the outcome's law is the closed form sin²(π2^t δ)/(2^(2t) sin²(πδ)), and the bit-exact method must refuse it rather than round it.", + "expect": "exact_state", + "tier": "full", + "qubits": 7, + "gates": 37, + "sha256": "f49ff7bd41b46e1c07268ae0d1410d189601e6701bd65212364af7933dbc318b" + }, + { + "id": "qpe_t10_third", + "family": "qpe", + "params": { + "bits": 10, + "phase": "1/3" + }, + "reason": "A phase that is no dyadic: the outcome's law is the closed form sin²(π2^t δ)/(2^(2t) sin²(πδ)), and the bit-exact method must refuse it rather than round it.", + "expect": "exact_state", + "tier": "full", + "qubits": 11, + "gates": 81, + "sha256": "ec30289ba987fa8d2dcad560778fa1b5e49bfe9185e137e1506e112eac16efbe" + }, + { + "id": "clifford_t_n4_d20", + "family": "random_clifford_t", + "params": { + "n": 4, + "depth": 20, + "seed": 1 + }, + "reason": "Universal, in the gates the bit-exact method holds as table constants.", + "expect": "exact_state", + "tier": "ci", + "qubits": 4, + "gates": 97, + "sha256": "ae74f2872c687bf1c1c09f812b5c550f1d69c59000f67debb716f660bd6d548d" + }, + { + "id": "clifford_t_n8_d40", + "family": "random_clifford_t", + "params": { + "n": 8, + "depth": 40, + "seed": 2 + }, + "reason": "Universal, in the gates the bit-exact method holds as table constants.", + "expect": "exact_state", + "tier": "full", + "qubits": 8, + "gates": 374, + "sha256": "b9d7e8c529492ca5ad8481384f157da54749b6d5e4c8d81a887137b468b7cf38" + }, + { + "id": "clifford_t_n12_d40", + "family": "random_clifford_t", + "params": { + "n": 12, + "depth": 40, + "seed": 3 + }, + "reason": "Universal, in the gates the bit-exact method holds as table constants.", + "expect": "exact_state", + "tier": "full", + "qubits": 12, + "gates": 547, + "sha256": "f00af086f06d6a3917ee0d265e3c98b690918aadae5f4bd3d58dc57f78b6d73a" + }, + { + "id": "dyadic_n6_k20", + "family": "random_dyadic", + "params": { + "n": 6, + "depth": 20, + "seed": 4, + "k": 16 + }, + "reason": "Rotations by m/2^k of a turn: each is many table phases in fixed point, so its error is largest here.", + "expect": "exact_state", + "tier": "ci", + "qubits": 6, + "gates": 170, + "sha256": "0eb2567c7f1513d150dc136a4e190a4a29c60914721f05a0b3be9f381d4e273d" + }, + { + "id": "dyadic_n10_k30", + "family": "random_dyadic", + "params": { + "n": 10, + "depth": 30, + "seed": 5, + "k": 32 + }, + "reason": "Rotations by m/2^k of a turn: each is many table phases in fixed point, so its error is largest here.", + "expect": "exact_state", + "tier": "full", + "qubits": 10, + "gates": 435, + "sha256": "ed6c2c3ab152da8e856ee41f39c11acac9de2ed36e6234207db811cd52df898b" + }, + { + "id": "rotations_n6", + "family": "random_rotations", + "params": { + "n": 6, + "depth": 20, + "seed": 6 + }, + "reason": "Arbitrary decimal angles: double-precision engines only, and the bit-exact method must refuse.", + "expect": "exact_state", + "tier": "ci", + "qubits": 6, + "gates": 170, + "sha256": "6d079a7a27d31785fde1909ef5f16acaa8ae5062a2c66bb3b8737a31260ccd3c" + }, + { + "id": "rotations_n10", + "family": "random_rotations", + "params": { + "n": 10, + "depth": 30, + "seed": 7 + }, + "reason": "Arbitrary decimal angles: double-precision engines only, and the bit-exact method must refuse.", + "expect": "exact_state", + "tier": "full", + "qubits": 10, + "gates": 435, + "sha256": "9faecc98ce6e3af81886043b631267e97dfed9bcfe83d8f3003f1b38d0a31a8c" + }, + { + "id": "rotations_n12", + "family": "random_rotations", + "params": { + "n": 12, + "depth": 40, + "seed": 8 + }, + "reason": "Arbitrary decimal angles: double-precision engines only, and the bit-exact method must refuse.", + "expect": "exact_state", + "tier": "full", + "qubits": 12, + "gates": 700, + "sha256": "2f5baf86bd99393faa99d654549995948595c6b0e20238a15d3e2ec9101ab166" + }, + { + "id": "rotations_counts_n6", + "family": "random_rotations", + "params": { + "n": 6, + "depth": 20, + "seed": 6 + }, + "reason": "Sampling a distribution with no structure.", + "expect": "distribution", + "tier": "full", + "qubits": 6, + "gates": 170, + "sha256": "960179efed275ac39a696dc1e14fca228136ef116f6ee191da452179320d37b7" + }, + { + "id": "rotations_wide_n20", + "family": "random_rotations", + "params": { + "n": 20, + "depth": 10, + "seed": 9 + }, + "reason": "No integer reference at this width: engines against each other, with fusion and threads in play.", + "expect": "pairwise", + "tier": "full", + "qubits": 20, + "gates": 295, + "sha256": "96c614aef3cae3293bbe0f99a08af605a2ea0696649def324519e2e8ca9fed64" + }, + { + "id": "mirror_n10", + "family": "mirror", + "params": { + "n": 10, + "depth": 40, + "seed": 21 + }, + "reason": "U then its inverse: the state is |0…0> exactly, at a width no integer reference reaches, and what remains is the engine's accumulated rounding.", + "expect": "mirror", + "tier": "ci", + "qubits": 10, + "gates": 1160, + "sha256": "d6e98007f676cbb2727e5e5d83fb99a17442a70d2003c7806fc6d6eb7f8a6d58" + }, + { + "id": "mirror_n16", + "family": "mirror", + "params": { + "n": 16, + "depth": 30, + "seed": 22 + }, + "reason": "U then its inverse: the state is |0…0> exactly, at a width no integer reference reaches, and what remains is the engine's accumulated rounding.", + "expect": "mirror", + "tier": "full", + "qubits": 16, + "gates": 1410, + "sha256": "c46bd14fecf66ebeb17f91d78780fd589788888561b4cd78875b064e6693cd7b" + }, + { + "id": "mirror_n20", + "family": "mirror", + "params": { + "n": 20, + "depth": 20, + "seed": 23 + }, + "reason": "U then its inverse: the state is |0…0> exactly, at a width no integer reference reaches, and what remains is the engine's accumulated rounding.", + "expect": "mirror", + "tier": "full", + "qubits": 20, + "gates": 1180, + "sha256": "9b5f51a89b17005dc6ce3a53481672c9000cf653e12b7200dc6385250a52ccec" + }, + { + "id": "small_angle_k8", + "family": "small_angle", + "params": { + "k": 8 + }, + "reason": "h, p(2π/2^k), h: P(1) = sin²(π/2^k). Within the phase table, and at its resolution floor as k nears 32.", + "expect": "exact_state", + "tier": "full", + "qubits": 1, + "gates": 3, + "sha256": "441d7b3720a39556a70c4c670a1398c2ea62b7ddecc4f1048ce749c35c492a8e" + }, + { + "id": "small_angle_k16", + "family": "small_angle", + "params": { + "k": 16 + }, + "reason": "h, p(2π/2^k), h: P(1) = sin²(π/2^k). Within the phase table, and at its resolution floor as k nears 32.", + "expect": "exact_state", + "tier": "full", + "qubits": 1, + "gates": 3, + "sha256": "a8c43d2fbde8e229249d4c7d965da82f3f59cd21fec16c517d1c296126d679a7" + }, + { + "id": "small_angle_k24", + "family": "small_angle", + "params": { + "k": 24 + }, + "reason": "h, p(2π/2^k), h: P(1) = sin²(π/2^k). Within the phase table, and at its resolution floor as k nears 32.", + "expect": "exact_state", + "tier": "full", + "qubits": 1, + "gates": 3, + "sha256": "e89d4ba5941183c89848f2ed850a828c908e5251fe748c5d7fcb9e69d98a9111" + }, + { + "id": "small_angle_k26", + "family": "small_angle", + "params": { + "k": 26 + }, + "reason": "h, p(2π/2^k), h: P(1) = sin²(π/2^k). Within the phase table, and at its resolution floor as k nears 32.", + "expect": "exact_state", + "tier": "full", + "qubits": 1, + "gates": 3, + "sha256": "b1f5a2b44a4759a75bf154b80a0739d84135f1392718bc5d60a09ff2bfd972c0" + }, + { + "id": "small_angle_k28", + "family": "small_angle", + "params": { + "k": 28 + }, + "reason": "h, p(2π/2^k), h: P(1) = sin²(π/2^k). Within the phase table, and at its resolution floor as k nears 32.", + "expect": "exact_state", + "tier": "full", + "qubits": 1, + "gates": 3, + "sha256": "98d7a4384a76f675a9b075f823fdb63b9e9ad1229e81613322d8308c6ce2da93" + }, + { + "id": "small_angle_k30", + "family": "small_angle", + "params": { + "k": 30 + }, + "reason": "h, p(2π/2^k), h: P(1) = sin²(π/2^k). Within the phase table, and at its resolution floor as k nears 32.", + "expect": "exact_state", + "tier": "full", + "qubits": 1, + "gates": 3, + "sha256": "5dc3bc52bcf8ed1ab7d58a55d83f1b583b1220d45286f3e10607ce5d3724dfcc" + }, + { + "id": "small_angle_k32", + "family": "small_angle", + "params": { + "k": 32 + }, + "reason": "h, p(2π/2^k), h: P(1) = sin²(π/2^k). Within the phase table, and at its resolution floor as k nears 32.", + "expect": "exact_state", + "tier": "ci", + "qubits": 1, + "gates": 3, + "sha256": "0557416f9083f48643327897d8cb7bbafcaaef0355b9b19340d9cd4398409a34" + }, + { + "id": "below_grid_k33", + "family": "small_angle", + "params": { + "k": 33 + }, + "reason": "An angle below the table's last entry: the bit-exact method refuses it, or reads it as nothing when it is within its reader's tolerance of 0. Whether each engine holds the phase or drops it is recorded beside its distance.", + "expect": "exact_state", + "tier": "full", + "qubits": 1, + "gates": 3, + "sha256": "147a4fa66fb22fe948b2c8b5d21536d9bb050119b5108727d4b241b5fbf55751" + }, + { + "id": "below_grid_k40", + "family": "small_angle", + "params": { + "k": 40 + }, + "reason": "An angle below the table's last entry: the bit-exact method refuses it, or reads it as nothing when it is within its reader's tolerance of 0. Whether each engine holds the phase or drops it is recorded beside its distance.", + "expect": "exact_state", + "tier": "full", + "qubits": 1, + "gates": 3, + "sha256": "596651513c2bf225c2539ff24060029cd7021fd0cfe5d33a5f9e2ec3982119a6" + }, + { + "id": "below_grid_k47", + "family": "small_angle", + "params": { + "k": 47 + }, + "reason": "An angle below the table's last entry: the bit-exact method refuses it, or reads it as nothing when it is within its reader's tolerance of 0. Whether each engine holds the phase or drops it is recorded beside its distance.", + "expect": "exact_state", + "tier": "ci", + "qubits": 1, + "gates": 3, + "sha256": "7ad45c9521a2074266a7be652e6dd89e79597e0896417703ab9ffc5708f75aff" + }, + { + "id": "below_grid_k48", + "family": "small_angle", + "params": { + "k": 48 + }, + "reason": "An angle below the table's last entry: the bit-exact method refuses it, or reads it as nothing when it is within its reader's tolerance of 0. Whether each engine holds the phase or drops it is recorded beside its distance.", + "expect": "exact_state", + "tier": "full", + "qubits": 1, + "gates": 3, + "sha256": "242464540967874cb21915d2da1447468bd214b13b5b3a0d05087afe06534720" + }, + { + "id": "below_grid_k52", + "family": "small_angle", + "params": { + "k": 52 + }, + "reason": "An angle below the table's last entry: the bit-exact method refuses it, or reads it as nothing when it is within its reader's tolerance of 0. Whether each engine holds the phase or drops it is recorded beside its distance.", + "expect": "exact_state", + "tier": "full", + "qubits": 1, + "gates": 3, + "sha256": "d07b0afcd0abe79f6f8b4708f5e07f8008306c09fbd535077346c3c34c555b1f" + }, + { + "id": "below_grid_k60", + "family": "small_angle", + "params": { + "k": 60 + }, + "reason": "An angle below the table's last entry: the bit-exact method refuses it, or reads it as nothing when it is within its reader's tolerance of 0. Whether each engine holds the phase or drops it is recorded beside its distance.", + "expect": "exact_state", + "tier": "full", + "qubits": 1, + "gates": 3, + "sha256": "fabab0f8ce0d4aed47ad8023be781c983bfa9cd630a6bd2192577c8664d9efa0" + }, + { + "id": "tiny_radians", + "family": "small_angle", + "params": { + "radians": "1e-12" + }, + "reason": "A small decimal angle, not on any dyadic grid.", + "expect": "exact_state", + "tier": "full", + "qubits": 1, + "gates": 3, + "sha256": "2fd0b42317d869eee9922d08d1d93b0bf8e6ca3093c19eaf7048e909603346b6" + }, + { + "id": "controlled_small_angle_k30", + "family": "small_angle", + "params": { + "k": 30 + }, + "reason": "The same phase under a control.", + "expect": "exact_state", + "tier": "full", + "qubits": 2, + "gates": 3, + "sha256": "6976262be9349c505927643d4df89363989a7ccd572f215e8ce097e1de06387c" + }, + { + "id": "repeated_phase_k19", + "family": "small_angle", + "params": { + "k": 19, + "count": 262144 + }, + "reason": "p(2π/2^19) applied 2^18 times to |1> is a half turn, -|1>. The extension's section 5 states what fixed point leaves of it: modulus 1.0000189, within 1e-5 rad of the half turn.", + "expect": "exact_state", + "tier": "full", + "qubits": 1, + "gates": 262145, + "sha256": "50ac497a03b02ee67e75f0e9b8349df93c25fb2351a9735ea2fcf71c317c229d" + }, + { + "id": "repeated_phase_k19_quarter", + "family": "small_angle", + "params": { + "k": 19, + "count": 131072 + }, + "reason": "p(2π/2^19) applied 2^17 times to |1> is a quarter turn, i|1>: the half turn is its own negative, and this one is not, so a phase applied with the wrong sign shows.", + "expect": "exact_state", + "tier": "full", + "qubits": 1, + "gates": 131073, + "sha256": "63a498b42b941a6d748839489470b9c47111178efea91217359be2856109f7d7" + }, + { + "id": "h_squared_chain", + "family": "small_angle", + "params": { + "count": 4096 + }, + "reason": "2048 pairs of H on a superposition: the identity, where fixed point's rounding of 1/sqrt(2) adds up.", + "expect": "exact_state", + "tier": "full", + "qubits": 1, + "gates": 4096, + "sha256": "fa91d24ee9a709bbbadc89249aaa70c3bf5a8210b8a0873ae153020600c28215" + }, + { + "id": "gate_id", + "family": "gate_conventions", + "params": { + "gate": "id" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "full", + "qubits": 1, + "gates": 3, + "sha256": "410dbbb6cf7ac67dc80d96346a1e622cad75fa15c35f829865ab91ea4cd28193" + }, + { + "id": "gate_x", + "family": "gate_conventions", + "params": { + "gate": "x" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "full", + "qubits": 1, + "gates": 3, + "sha256": "101d783d4c08cd8cde13b5968b57002dbcaa2786a263f1c2b4223a91896e9634" + }, + { + "id": "gate_y", + "family": "gate_conventions", + "params": { + "gate": "y" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "full", + "qubits": 1, + "gates": 3, + "sha256": "ed558ad0592cf43ceedb58e86dfe1b164d6637d135c0ccb763bb27dac060b8bd" + }, + { + "id": "gate_z", + "family": "gate_conventions", + "params": { + "gate": "z" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "full", + "qubits": 1, + "gates": 3, + "sha256": "04ecc5acd4bfceede677e706b213311975b00d6e451ec5c21d77cb8feaf7933b" + }, + { + "id": "gate_h", + "family": "gate_conventions", + "params": { + "gate": "h" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "full", + "qubits": 1, + "gates": 3, + "sha256": "2389becc8d9688b0da81fbf5865bda444050c6251185ade338b71c09fed80417" + }, + { + "id": "gate_s", + "family": "gate_conventions", + "params": { + "gate": "s" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "full", + "qubits": 1, + "gates": 3, + "sha256": "a0c411011974218a8d8036bcfae2063abbb5665c8db5a743d0dca52c99c7cdea" + }, + { + "id": "gate_sdg", + "family": "gate_conventions", + "params": { + "gate": "sdg" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "full", + "qubits": 1, + "gates": 3, + "sha256": "0d80b91b1453b7b32d39de05e4dde6cc71f0670a59ab9bd793961b26d9024aa9" + }, + { + "id": "gate_t", + "family": "gate_conventions", + "params": { + "gate": "t" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "full", + "qubits": 1, + "gates": 3, + "sha256": "ac131bbe355e94067f687e55334b54691b027ee3b22de7742c0649c4d690d1e9" + }, + { + "id": "gate_tdg", + "family": "gate_conventions", + "params": { + "gate": "tdg" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "full", + "qubits": 1, + "gates": 3, + "sha256": "ab32faa354c866f6ace89b48557e7ca06ecf7d28971e1fee87c13faca2bac46e" + }, + { + "id": "gate_sx", + "family": "gate_conventions", + "params": { + "gate": "sx" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "ci", + "qubits": 1, + "gates": 3, + "sha256": "2209cf5acff099194978f7818fde05ff8779130e4e7cbb62775d68db3262fc9b" + }, + { + "id": "gate_sxdg", + "family": "gate_conventions", + "params": { + "gate": "sxdg" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "full", + "qubits": 1, + "gates": 3, + "sha256": "d67cc49598fb46364f0f774f12ed29c2f16d845e87f1c2be29b90a58632a0f88" + }, + { + "id": "gate_p", + "family": "gate_conventions", + "params": { + "gate": "p" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "full", + "qubits": 1, + "gates": 3, + "sha256": "dbb2f63c618e6eb77baa83be379a2e63d49cf2014b6b5cce691e00c6cef0a565" + }, + { + "id": "gate_rz", + "family": "gate_conventions", + "params": { + "gate": "rz" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "ci", + "qubits": 1, + "gates": 3, + "sha256": "84b4fe10f5cae706848e37ec80bf7e8e8d945bf4883826371199bb9255eb883c" + }, + { + "id": "gate_rx", + "family": "gate_conventions", + "params": { + "gate": "rx" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "full", + "qubits": 1, + "gates": 3, + "sha256": "5581cb1ff06bf6ec0637571d7b8c62e2f4302c59afad2afcfdba8c5443685810" + }, + { + "id": "gate_ry", + "family": "gate_conventions", + "params": { + "gate": "ry" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "full", + "qubits": 1, + "gates": 3, + "sha256": "7bbfad7997d4b45474ce9a40739669f63f8b7c22e23b5775b390fef2fcdbf203" + }, + { + "id": "gate_u", + "family": "gate_conventions", + "params": { + "gate": "u" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "full", + "qubits": 1, + "gates": 3, + "sha256": "73b69f3410dd823829aa8618705158fa6bf53a20636fca7a742f2d612a7d9654" + }, + { + "id": "gate_cx", + "family": "gate_conventions", + "params": { + "gate": "cx" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "full", + "qubits": 2, + "gates": 5, + "sha256": "42cd9d0f9b9b8941dea9092857a2a3023e0f6cbb8e952302da754749173ed998" + }, + { + "id": "gate_cy", + "family": "gate_conventions", + "params": { + "gate": "cy" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "full", + "qubits": 2, + "gates": 5, + "sha256": "12a32fef83d3a669abe411ed8a521d15c41632914015825e9ead41129137a957" + }, + { + "id": "gate_cz", + "family": "gate_conventions", + "params": { + "gate": "cz" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "full", + "qubits": 2, + "gates": 5, + "sha256": "0c81b6b2c303ead17836a353bfde9c4d3c5f3830c0da1ee9de92b40c7217e031" + }, + { + "id": "gate_ch", + "family": "gate_conventions", + "params": { + "gate": "ch" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "full", + "qubits": 2, + "gates": 5, + "sha256": "9b029614a02987f77ccb25d3545defcd429b9f3ec5245a1be5cfea56ade70f0c" + }, + { + "id": "gate_csx", + "family": "gate_conventions", + "params": { + "gate": "csx" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "full", + "qubits": 2, + "gates": 5, + "sha256": "ad02746fbcab35804053320f2581a94ee80a8389a4eed0067c26eec039f81759" + }, + { + "id": "gate_swap", + "family": "gate_conventions", + "params": { + "gate": "swap" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "full", + "qubits": 2, + "gates": 5, + "sha256": "e3b5899a6bb2bceea707a61ae04ae29a47f9bf6f35ab884d323285ef2300d961" + }, + { + "id": "gate_cp", + "family": "gate_conventions", + "params": { + "gate": "cp" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "full", + "qubits": 2, + "gates": 5, + "sha256": "701162612a1e1c07b32394787b5b452a3982cfd9db4e31620b351fd191e21ab4" + }, + { + "id": "gate_crx", + "family": "gate_conventions", + "params": { + "gate": "crx" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "full", + "qubits": 2, + "gates": 5, + "sha256": "8d1871d908947146c115f33b9927942d63afcdb14cdba704c84ac1cd653ab46a" + }, + { + "id": "gate_cry", + "family": "gate_conventions", + "params": { + "gate": "cry" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "full", + "qubits": 2, + "gates": 5, + "sha256": "f95f61642a7dd81ec2dd5c68106dc201fe14a1d0ae5e59356346ab4469b46e00" + }, + { + "id": "gate_crz", + "family": "gate_conventions", + "params": { + "gate": "crz" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "full", + "qubits": 2, + "gates": 5, + "sha256": "3b4a010a5b1ac5a21a1499a5512c4baa9d7b717f214164bb1855fd0b41e5f317" + }, + { + "id": "gate_cu", + "family": "gate_conventions", + "params": { + "gate": "cu" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "ci", + "qubits": 2, + "gates": 5, + "sha256": "567eaae329cf9034155343eb6d857d4aa184f7eec9c54e599c2ada2e3fa39b25" + }, + { + "id": "gate_rzz", + "family": "gate_conventions", + "params": { + "gate": "rzz" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "full", + "qubits": 2, + "gates": 5, + "sha256": "1a6127bfd89d87869a2cb37e2aa3073f919948418105f542b3354693629f53fe" + }, + { + "id": "gate_rxx", + "family": "gate_conventions", + "params": { + "gate": "rxx" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "full", + "qubits": 2, + "gates": 5, + "sha256": "0e29507d9f92ba0c5649ae6c1151f9b11241fcae912fabca8ad1b5217842ad68" + }, + { + "id": "gate_ryy", + "family": "gate_conventions", + "params": { + "gate": "ryy" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "full", + "qubits": 2, + "gates": 5, + "sha256": "9c021a44b079998fe65503ba21d03e955b468ba07c2d474f4642bf82c239e084" + }, + { + "id": "gate_negcx", + "family": "gate_conventions", + "params": { + "gate": "negcx" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "ci", + "qubits": 2, + "gates": 5, + "sha256": "c2f9d47519b0b82c8eb7b92dee977f3dfe570992063b2c4fbff933b05dddaa2b" + }, + { + "id": "gate_ccx", + "family": "gate_conventions", + "params": { + "gate": "ccx" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "full", + "qubits": 3, + "gates": 7, + "sha256": "2b2c10e47a66b66a4f68a97b66587e4479b2449860ee89e5254e9633945b9324" + }, + { + "id": "gate_ccz", + "family": "gate_conventions", + "params": { + "gate": "ccz" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "full", + "qubits": 3, + "gates": 7, + "sha256": "834e4d6b2a3efaeeb1781b371e79acb9a426a06deb708129ed2713e96eae2892" + }, + { + "id": "gate_cswap", + "family": "gate_conventions", + "params": { + "gate": "cswap" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "full", + "qubits": 3, + "gates": 7, + "sha256": "235ea138c7f18beda3f38c66219491567809e570702ca9f0ba02a6dd29766dc4" + }, + { + "id": "gate_c2p", + "family": "gate_conventions", + "params": { + "gate": "c2p" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "full", + "qubits": 3, + "gates": 7, + "sha256": "11949363536a395c9815704449202e434dbf2bcce01540afc32ec2e59b9f8a94" + }, + { + "id": "gate_c2rz", + "family": "gate_conventions", + "params": { + "gate": "c2rz" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "ci", + "qubits": 3, + "gates": 7, + "sha256": "d0ad4c4b451fe9de8654a8c0c00c7c8ae6988a0a2adf722c54e9e8634f23066e" + }, + { + "id": "gate_c2ry", + "family": "gate_conventions", + "params": { + "gate": "c2ry" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "full", + "qubits": 3, + "gates": 7, + "sha256": "a41490d8d5e208f95916f8434ab94c4871441caead281c96673c411aa6da9a63" + }, + { + "id": "gate_c3x", + "family": "gate_conventions", + "params": { + "gate": "c3x" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "full", + "qubits": 4, + "gates": 9, + "sha256": "fd36273d77efbe2f905954302a21668954e7ef088168fb1fb20a627b6cc80164" + }, + { + "id": "gate_c3z", + "family": "gate_conventions", + "params": { + "gate": "c3z" + }, + "reason": "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", + "expect": "exact_state", + "tier": "full", + "qubits": 4, + "gates": 9, + "sha256": "205ace2f760d1fd949b5951d5b576b23d167da0a6baa21c47eea7b5c8d708ee0" + }, + { + "id": "full_turn_rz_t1_0", + "family": "gate_conventions", + "params": { + "gate": "rz", + "angle": "t:1/0" + }, + "reason": "A rotation by whole turns: the identity up to a sign, and the sign is the convention. Engines that lower it through a phase gate lose the sign; a global phase changes no outcome, and under a control it would.", + "expect": "exact_state", + "tier": "full", + "qubits": 1, + "gates": 3, + "sha256": "5eaf505117f1497fc788f87c41d6d973e23ca931dc6cd5a109d429e848d28a55" + }, + { + "id": "full_turn_rx_t1_0", + "family": "gate_conventions", + "params": { + "gate": "rx", + "angle": "t:1/0" + }, + "reason": "A rotation by whole turns: the identity up to a sign, and the sign is the convention. Engines that lower it through a phase gate lose the sign; a global phase changes no outcome, and under a control it would.", + "expect": "exact_state", + "tier": "full", + "qubits": 1, + "gates": 3, + "sha256": "05b6e1aa3b391ac5ec1ac915cf9c6fee25caa859b788e69f28a135511f668e17" + }, + { + "id": "full_turn_ry_t1_0", + "family": "gate_conventions", + "params": { + "gate": "ry", + "angle": "t:1/0" + }, + "reason": "A rotation by whole turns: the identity up to a sign, and the sign is the convention. Engines that lower it through a phase gate lose the sign; a global phase changes no outcome, and under a control it would.", + "expect": "exact_state", + "tier": "full", + "qubits": 1, + "gates": 3, + "sha256": "0d6489b0229eb9aadad07776d623c2e447ebddbf6f57a04d0ce479bb3255cf7f" + }, + { + "id": "full_turn_p_t1_0", + "family": "gate_conventions", + "params": { + "gate": "p", + "angle": "t:1/0" + }, + "reason": "A rotation by whole turns: the identity up to a sign, and the sign is the convention. Engines that lower it through a phase gate lose the sign; a global phase changes no outcome, and under a control it would.", + "expect": "exact_state", + "tier": "full", + "qubits": 1, + "gates": 3, + "sha256": "3e500fc97782f5d41e0324217dfb35acb3ff9fb18d02cfd6e402244dabaf3a2d" + }, + { + "id": "full_turn_rz_t2_0", + "family": "gate_conventions", + "params": { + "gate": "rz", + "angle": "t:2/0" + }, + "reason": "A rotation by whole turns: the identity up to a sign, and the sign is the convention. Engines that lower it through a phase gate lose the sign; a global phase changes no outcome, and under a control it would.", + "expect": "exact_state", + "tier": "full", + "qubits": 1, + "gates": 3, + "sha256": "09fa5069890177bf8b4f104520024759535f8eebad4e8870b004f47294282771" + }, + { + "id": "full_turn_u_t1_0", + "family": "gate_conventions", + "params": { + "gate": "u", + "angle": "t:1/0" + }, + "reason": "A rotation by whole turns: the identity up to a sign, and the sign is the convention. Engines that lower it through a phase gate lose the sign; a global phase changes no outcome, and under a control it would.", + "expect": "exact_state", + "tier": "full", + "qubits": 1, + "gates": 3, + "sha256": "6af19c78d282400323c6d62dd7d7fd5f12401449d57e4a85807e70a8a59b612c" + }, + { + "id": "gate_gphase_controlled", + "family": "gate_conventions", + "params": { + "gate": "ctrl @ gphase" + }, + "reason": "A global phase under a control is a relative phase, so no engine may drop it.", + "expect": "exact_state", + "tier": "full", + "qubits": 2, + "gates": 5, + "sha256": "128fbc34c560b278f9de1b4eb8251eda4f750c6ab7f287a523263af00bf017f2" + }, + { + "id": "controlled_rz_full_turn", + "family": "gate_conventions", + "params": { + "gate": "crz", + "angle": "1 turn" + }, + "reason": "crz by a full turn is diag(1, 1, -1, -1): the sign rz loses globally is here relative.", + "expect": "exact_state", + "tier": "ci", + "qubits": 2, + "gates": 3, + "sha256": "bb963fde5eba4902114a92cda166d3cfdce07872d7aa0b52aa4c7228675476df" + }, + { + "id": "teleport", + "family": "dynamic", + "params": { + "angle": "t:1/5" + }, + "reason": "Teleportation: Bell measurement, then corrections on classical bits. Qubit 2 must end as qubit 0 began, whatever the outcomes.", + "expect": "distribution", + "tier": "ci", + "qubits": 3, + "gates": 5, + "sha256": "b51249684603be332b55365391c76b841a0d99ff356f354d6bbb0f8fbef475cb" + }, + { + "id": "reset_after_superposition", + "family": "dynamic", + "params": {}, + "reason": "A reset of a qubit in superposition leaves |0> whatever it read, and leaves its Bell partner mixed.", + "expect": "distribution", + "tier": "ci", + "qubits": 2, + "gates": 2, + "sha256": "bde71ca7273cd4a14415bf3b981a88967beb919ea6905aefd07bbfb5a9f3ee8a" + }, + { + "id": "measure_twice", + "family": "dynamic", + "params": {}, + "reason": "A second measurement in the same basis repeats the first: 00 and 11 only.", + "expect": "distribution", + "tier": "full", + "qubits": 1, + "gates": 1, + "sha256": "dbe3fe87a6d6de2a6e22364a21287a24b3f9b7d5e4eb92baeabca67b43a1fc7b" + }, + { + "id": "feedback_flip", + "family": "dynamic", + "params": {}, + "reason": "Flip a measured 1 back: the second reading is always 0.", + "expect": "distribution", + "tier": "full", + "qubits": 1, + "gates": 1, + "sha256": "89cb3358513ac69bd7914cbc8d4af3e96ba31fca0b35d6548111a0c9ae7587ea" + }, + { + "id": "ghz_by_fusion", + "family": "dynamic", + "params": {}, + "reason": "A GHZ state made from two Bell pairs by a parity measurement and a correction: Clifford, with feedback, so a stabilizer engine must also get it.", + "expect": "distribution", + "tier": "full", + "qubits": 4, + "gates": 5, + "sha256": "2b3d02b64ff8fc7fe0b3d804471f7bedab1c5cdb3245fa4de84e568c22e34a07" + }, + { + "id": "repeat_until_success", + "family": "dynamic", + "params": { + "rounds": 3 + }, + "reason": "Three rounds of a non-Clifford trial on a second qubit, which is measured and then flipped back to |0> by an x conditioned on what was read (no reset instruction): the branches weigh differently, and the law is exact.", + "expect": "distribution", + "tier": "full", + "qubits": 2, + "gates": 21, + "sha256": "d0044b6e99f918586234275c0973526e0d40d6322fe9b62bcf395903595c726a" + }, + { + "id": "clifford_ghz_n100", + "family": "clifford_large", + "params": { + "n": 100 + }, + "reason": "A GHZ state across the whole register: sparse generators, past any state vector.", + "expect": "stabilizer", + "tier": "ci", + "qubits": 100, + "gates": 100, + "sha256": "179476ff167ff32f6192bae315a60f734f3d38fbb62258b52fc3bfa16a2a1172" + }, + { + "id": "clifford_ghz_n1000", + "family": "clifford_large", + "params": { + "n": 1000 + }, + "reason": "A GHZ state across the whole register: sparse generators, past any state vector.", + "expect": "stabilizer", + "tier": "full", + "qubits": 1000, + "gates": 1000, + "sha256": "b9168790108bf4c99e5b1498b138b00fc981bcea3ac5469606c975b41b757199" + }, + { + "id": "clifford_ghz_n5000", + "family": "clifford_large", + "params": { + "n": 5000 + }, + "reason": "A GHZ state across the whole register: sparse generators, past any state vector.", + "expect": "stabilizer", + "tier": "full", + "qubits": 5000, + "gates": 5000, + "sha256": "18061d8d2d75ae009b0cbbfb6f74de225888e8e7ca961fa214ceb0da671752ed" + }, + { + "id": "clifford_cluster_n65", + "family": "clifford_large", + "params": { + "n": 65 + }, + "reason": "A line cluster state: every generator X Z neighbours, with its signs flipped by a layer of Z.", + "expect": "stabilizer", + "tier": "full", + "qubits": 65, + "gates": 151, + "sha256": "8bbdea8f9f72d192b9438fef815c3a589aea2beecedf20d6429859409b529841" + }, + { + "id": "clifford_cluster_n1000", + "family": "clifford_large", + "params": { + "n": 1000 + }, + "reason": "A line cluster state: every generator X Z neighbours, with its signs flipped by a layer of Z.", + "expect": "stabilizer", + "tier": "full", + "qubits": 1000, + "gates": 2333, + "sha256": "28217b599d6d18f8bf2b499883dc994bbf2e5bcff473814d34d5df3c7cd8c35f" + }, + { + "id": "clifford_cluster_n5000", + "family": "clifford_large", + "params": { + "n": 5000 + }, + "reason": "A line cluster state: every generator X Z neighbours, with its signs flipped by a layer of Z.", + "expect": "stabilizer", + "tier": "full", + "qubits": 5000, + "gates": 11666, + "sha256": "98015fa3e487ea6e1f9fac217ff9e7dfd5053fbd8288ca0f586bfdef3064dfd4" + }, + { + "id": "clifford_random_n63", + "family": "clifford_large", + "params": { + "n": 63, + "depth": 12, + "seed": 31 + }, + "reason": "Random Clifford layers, with widths on and either side of a machine word: packing bugs live at those edges.", + "expect": "stabilizer", + "tier": "full", + "qubits": 63, + "gates": 892, + "sha256": "85e2860494ac571f288b299dc24c71ff8bf91000384c164f2a37c75ab23b461d" + }, + { + "id": "clifford_random_n64", + "family": "clifford_large", + "params": { + "n": 64, + "depth": 12, + "seed": 32 + }, + "reason": "Random Clifford layers, with widths on and either side of a machine word: packing bugs live at those edges.", + "expect": "stabilizer", + "tier": "full", + "qubits": 64, + "gates": 893, + "sha256": "c65f2c8f34c218d4e59d2b067a6f41cbce4d5c5e6cdf59ac252e74c98f26bc27" + }, + { + "id": "clifford_random_n65", + "family": "clifford_large", + "params": { + "n": 65, + "depth": 12, + "seed": 33 + }, + "reason": "Random Clifford layers, with widths on and either side of a machine word: packing bugs live at those edges.", + "expect": "stabilizer", + "tier": "ci", + "qubits": 65, + "gates": 896, + "sha256": "bafd82411962f45f78e4b0409a62abdb877fee38be5c9c55a2cf406e1f345374" + }, + { + "id": "clifford_random_n127", + "family": "clifford_large", + "params": { + "n": 127, + "depth": 12, + "seed": 34 + }, + "reason": "Random Clifford layers, with widths on and either side of a machine word: packing bugs live at those edges.", + "expect": "stabilizer", + "tier": "full", + "qubits": 127, + "gates": 1787, + "sha256": "a9d1f83e00dea420f33e8d7b4bd77621096d7b3c2bc0d7e912eb2974ead18c7f" + }, + { + "id": "clifford_random_n128", + "family": "clifford_large", + "params": { + "n": 128, + "depth": 12, + "seed": 35 + }, + "reason": "Random Clifford layers, with widths on and either side of a machine word: packing bugs live at those edges.", + "expect": "stabilizer", + "tier": "full", + "qubits": 128, + "gates": 1790, + "sha256": "913b37b9bc6dd3f9b0f00aa7999abae7be4a7e695aff6e4b152c24edd2bcaa07" + }, + { + "id": "clifford_random_n129", + "family": "clifford_large", + "params": { + "n": 129, + "depth": 12, + "seed": 36 + }, + "reason": "Random Clifford layers, with widths on and either side of a machine word: packing bugs live at those edges.", + "expect": "stabilizer", + "tier": "full", + "qubits": 129, + "gates": 1769, + "sha256": "bffbf930bf19b76d6edd8b434be45bc6b4fda88ec9f7d71ed508a254ca66d815" + }, + { + "id": "clifford_random_n1000", + "family": "clifford_large", + "params": { + "n": 1000, + "depth": 30, + "seed": 37 + }, + "reason": "Random Clifford layers, with widths on and either side of a machine word: packing bugs live at those edges.", + "expect": "stabilizer", + "tier": "full", + "qubits": 1000, + "gates": 35064, + "sha256": "fc149f341f34178ef71e7fbebd0386fbea8300254c30bc6cdc68e4daf4746461" + }, + { + "id": "clifford_random_n2000", + "family": "clifford_large", + "params": { + "n": 2000, + "depth": 20, + "seed": 38 + }, + "reason": "Random Clifford layers, with widths on and either side of a machine word: packing bugs live at those edges.", + "expect": "stabilizer", + "tier": "full", + "qubits": 2000, + "gates": 46739, + "sha256": "0b1a99492c4c93ce72afed789f251df049454e3ea38f4b449783b91bbef07236" + }, + { + "id": "clifford_random_n10_as_state", + "family": "clifford_large", + "params": { + "n": 10, + "depth": 30, + "seed": 39 + }, + "reason": "A Clifford circuit small enough for a state vector: the two formalisms must describe one state.", + "expect": "exact_state", + "tier": "full", + "qubits": 10, + "gates": 368, + "sha256": "3bb4576bf9a8bfd96c60295983c99f26f8c3e41538e7a2ac2a15d500795d2835" + }, + { + "id": "clifford_counts_n40", + "family": "clifford_large", + "params": { + "n": 40, + "depth": 8, + "seed": 40 + }, + "reason": "Sampling past the provider receipt's 22-qubit comparison: outcomes must lie in the affine space the stabilizers fix.", + "expect": "stabilizer_counts", + "tier": "ci", + "qubits": 40, + "gates": 386, + "sha256": "b9b31a6404494f7f1fa898b0df28b101e103686df9a085b4010e6ac144789aeb" + }, + { + "id": "noise_depol1_x_chain_p0_01_k20", + "family": "noise", + "params": { + "channel": "depolarizing_1q", + "p": "0.01", + "gates": 20 + }, + "reason": "k X gates, each followed by a depolarizing channel: = (-1)^k (1 - 4p/3)^k exactly.", + "expect": "expectation", + "tier": "full", + "qubits": 1, + "gates": 20, + "sha256": "47ed308c102a6a486312b1e1c2a50f62db00fb6fdd1628e78a92cfe81021ebfe" + }, + { + "id": "noise_depol1_x_chain_p0_1_k7", + "family": "noise", + "params": { + "channel": "depolarizing_1q", + "p": "0.1", + "gates": 7 + }, + "reason": "k X gates, each followed by a depolarizing channel: = (-1)^k (1 - 4p/3)^k exactly.", + "expect": "expectation", + "tier": "ci", + "qubits": 1, + "gates": 7, + "sha256": "7f1121fd951270119a6b4863c744e21466b59e7d61143531416e7a8958314320" + }, + { + "id": "noise_depol2_cx_chain", + "family": "noise", + "params": { + "channel": "depolarizing_2q", + "p": "0.02", + "gates": 9 + }, + "reason": "k cx gates, each followed by a two-qubit depolarizing channel: = (1 - 16p/15)^k exactly.", + "expect": "expectation", + "tier": "full", + "qubits": 2, + "gates": 9, + "sha256": "de63ebb7cc336f7c9c35ca31c8711aeed307f01ef624386abc544c8e673cf3c8" + }, + { + "id": "mps_ghz_n30", + "family": "wide_mps", + "params": { + "n": 30 + }, + "reason": "Bond dimension 2 at any width: the amplitudes of the two outcomes, in closed form.", + "expect": "amplitudes", + "tier": "ci", + "qubits": 30, + "gates": 30, + "sha256": "f8ff22e29d4aaee58b5586834db8f724ce78a28a2c5e5df3c0f54c7dc0ce08b2" + }, + { + "id": "mps_ghz_n50", + "family": "wide_mps", + "params": { + "n": 50 + }, + "reason": "Bond dimension 2 at any width: the amplitudes of the two outcomes, in closed form.", + "expect": "amplitudes", + "tier": "full", + "qubits": 50, + "gates": 50, + "sha256": "7cbb65512c08c1313d465b68ec4a8b899fc707fc35b3795bdf0342bdfa561077" + }, + { + "id": "mps_ghz_n100", + "family": "wide_mps", + "params": { + "n": 100 + }, + "reason": "Bond dimension 2 at any width: the amplitudes of the two outcomes, in closed form.", + "expect": "amplitudes", + "tier": "full", + "qubits": 100, + "gates": 100, + "sha256": "179476ff167ff32f6192bae315a60f734f3d38fbb62258b52fc3bfa16a2a1172" + }, + { + "id": "mps_qft_n30", + "family": "wide_mps", + "params": { + "n": 30, + "x": 715827883 + }, + "reason": "The QFT of a basis state is a product state, reached through modest entanglement. Chosen amplitudes in closed form.", + "expect": "amplitudes", + "tier": "full", + "qubits": 30, + "gates": 496, + "sha256": "a85588ba6e9133b1d19ff9cae05c2f1b599755e1738458a888eff79ec67079e1" + }, + { + "id": "mps_qft_n40", + "family": "wide_mps", + "params": { + "n": 40, + "x": 366503875925 + }, + "reason": "The QFT of a basis state is a product state, reached through modest entanglement. Chosen amplitudes in closed form.", + "expect": "amplitudes", + "tier": "full", + "qubits": 40, + "gates": 860, + "sha256": "acd8a1a61d5131a006b2fba9a3fd5eef79fcb6d407323fb32080d8c117b09b86" + }, + { + "id": "tn_shallow_n26", + "family": "wide_tn", + "params": { + "n": 26, + "depth": 5, + "seed": 41 + }, + "reason": "A shallow rotation brickwork: amplitudes by contraction, against matrix product states and a state vector.", + "expect": "wide_pairwise", + "tier": "full", + "qubits": 26, + "gates": 193, + "sha256": "7ec2245be70c8b715da6ebad8a0ad18613fe94b983b56c88515ddeb94e907180" + }, + { + "id": "tn_mirror_n40", + "family": "wide_tn", + "params": { + "n": 40, + "depth": 3, + "seed": 42 + }, + "reason": "A shallow mirror circuit, too wide for a state vector here: the amplitude of |0…0> is exactly 1.", + "expect": "wide_mirror", + "tier": "ci", + "qubits": 40, + "gates": 358, + "sha256": "1289db3e2dfd19a53d9b5e3c109240a400d018c77601c6c61aad5840c4a15bea" + }, + { + "id": "surface_z_d3", + "family": "qec", + "params": { + "code": "surface_code:rotated_memory_z", + "distance": 3, + "rounds": 3, + "p": 0.001 + }, + "reason": "The rotated surface-code memory experiment in Z: the circuit decoders are measured on. The model must match mechanism by mechanism, and every detector's rate must follow it.", + "expect": "qec", + "tier": "ci", + "sha256": "e31b57f43f1026cc305c7c7a7b6c8f5932198c268a039bb680a3b36870f2f32b" + }, + { + "id": "surface_z_d5", + "family": "qec", + "params": { + "code": "surface_code:rotated_memory_z", + "distance": 5, + "rounds": 5, + "p": 0.001 + }, + "reason": "The rotated surface-code memory experiment in Z: the circuit decoders are measured on. The model must match mechanism by mechanism, and every detector's rate must follow it.", + "expect": "qec", + "tier": "full", + "sha256": "f81a6b91ee38809f4c7483e06e438ce28e7b06e72d038767d68470c8eb50dc37" + }, + { + "id": "surface_z_d7", + "family": "qec", + "params": { + "code": "surface_code:rotated_memory_z", + "distance": 7, + "rounds": 7, + "p": 0.001 + }, + "reason": "The rotated surface-code memory experiment in Z: the circuit decoders are measured on. The model must match mechanism by mechanism, and every detector's rate must follow it.", + "expect": "qec", + "tier": "full", + "sha256": "30d1940101d70e05a63f0d2f877756ffaeaba7e8e17e94cd2ea40fce04b99583" + }, + { + "id": "surface_z_d9", + "family": "qec", + "params": { + "code": "surface_code:rotated_memory_z", + "distance": 9, + "rounds": 9, + "p": 0.001 + }, + "reason": "The rotated surface-code memory experiment in Z: the circuit decoders are measured on. The model must match mechanism by mechanism, and every detector's rate must follow it.", + "expect": "qec", + "tier": "full", + "sha256": "8d93c8ab2ad82edcf7850981dee62a4de88cfe58782d86e68fe1eaeb6b8d777c" + }, + { + "id": "surface_z_d11", + "family": "qec", + "params": { + "code": "surface_code:rotated_memory_z", + "distance": 11, + "rounds": 11, + "p": 0.001 + }, + "reason": "The rotated surface-code memory experiment in Z: the circuit decoders are measured on. The model must match mechanism by mechanism, and every detector's rate must follow it.", + "expect": "qec", + "tier": "full", + "sha256": "28123360f8cac8aeb950fa903804b9fc005f2bde346f4f3c6ae74b031ea8fa6e" + }, + { + "id": "surface_z_d15", + "family": "qec", + "params": { + "code": "surface_code:rotated_memory_z", + "distance": 15, + "rounds": 15, + "p": 0.001 + }, + "reason": "The rotated surface-code memory experiment in Z: the circuit decoders are measured on. The model must match mechanism by mechanism, and every detector's rate must follow it.", + "expect": "qec", + "tier": "full", + "sha256": "f75ecabba13814b9da92bd89e6e71ce332c6a9b6a93983825dd141f222c17e59" + }, + { + "id": "surface_x_d3", + "family": "qec", + "params": { + "code": "surface_code:rotated_memory_x", + "distance": 3, + "rounds": 3, + "p": 0.001 + }, + "reason": "The same in the X basis: resets and measurements in X.", + "expect": "qec", + "tier": "full", + "sha256": "c31c3aec8676349f2380baed8b09276a9dc38d9bde15dcae3c1833ef27458ea9" + }, + { + "id": "surface_x_d5", + "family": "qec", + "params": { + "code": "surface_code:rotated_memory_x", + "distance": 5, + "rounds": 5, + "p": 0.001 + }, + "reason": "The same in the X basis: resets and measurements in X.", + "expect": "qec", + "tier": "full", + "sha256": "867ba3ba1f432111269cc6f7cfdcd9449c6935a9f9f3820e89348e74bb1e8207" + }, + { + "id": "surface_x_d7", + "family": "qec", + "params": { + "code": "surface_code:rotated_memory_x", + "distance": 7, + "rounds": 7, + "p": 0.001 + }, + "reason": "The same in the X basis: resets and measurements in X.", + "expect": "qec", + "tier": "full", + "sha256": "378879e0ca7737bcfc8e4faf890e3382926cb8d964f45b317526d3ae3e9e191a" + }, + { + "id": "unrotated_z_d3", + "family": "qec", + "params": { + "code": "surface_code:unrotated_memory_z", + "distance": 3, + "rounds": 3, + "p": 0.002 + }, + "reason": "The unrotated layout: another gate order, and detectors with other coordinates.", + "expect": "qec", + "tier": "full", + "sha256": "1c2b7723393362879383916a10f8c57f17ef83ea8d10760ed02b248b5891a647" + }, + { + "id": "unrotated_z_d5", + "family": "qec", + "params": { + "code": "surface_code:unrotated_memory_z", + "distance": 5, + "rounds": 5, + "p": 0.002 + }, + "reason": "The unrotated layout: another gate order, and detectors with other coordinates.", + "expect": "qec", + "tier": "full", + "sha256": "e26b28cac438ce337f7a94d963c1f7c94f7290a3f282d742c9cb2e43c8d0f9b2" + }, + { + "id": "repetition_d3", + "family": "qec", + "params": { + "code": "repetition_code:memory", + "distance": 3, + "rounds": 3, + "p": 0.005 + }, + "reason": "A line of data qubits: the simplest model, with long detector chains at d = 25.", + "expect": "qec", + "tier": "full", + "sha256": "a0ba772c05b244340fb16789febfe05d981823ac17ee3a78e3da8fb07ec61e02" + }, + { + "id": "repetition_d9", + "family": "qec", + "params": { + "code": "repetition_code:memory", + "distance": 9, + "rounds": 9, + "p": 0.005 + }, + "reason": "A line of data qubits: the simplest model, with long detector chains at d = 25.", + "expect": "qec", + "tier": "full", + "sha256": "c5cb3a38ea7fa26259704c470498ef2cd9b597c0f4904fbd325c1e60d6e5f0de" + }, + { + "id": "repetition_d25", + "family": "qec", + "params": { + "code": "repetition_code:memory", + "distance": 25, + "rounds": 25, + "p": 0.005 + }, + "reason": "A line of data qubits: the simplest model, with long detector chains at d = 25.", + "expect": "qec", + "tier": "full", + "sha256": "7b15c3a17b2b22080314c6981e596e709d21fcc995015efc8d7c18143407ce83" + }, + { + "id": "surface_z_d5_noiseless", + "family": "qec", + "params": { + "code": "surface_code:rotated_memory_z", + "distance": 5, + "rounds": 5, + "p": 0.0 + }, + "reason": "No noise at all: every detector and the observable are silent on every shot, and the model is empty.", + "expect": "qec", + "tier": "ci", + "sha256": "88abf88817c5999a8e2e5428c5cfa94cbd165381dc683d214b69ddcc756e7dcb" + }, + { + "id": "color_d3", + "family": "qec", + "params": { + "code": "color_code:memory_xyz", + "distance": 3, + "rounds": 3, + "p": 0.002 + }, + "reason": "A colour code with C_XYZ gates: an instruction the frame simulator does not implement must be refused with its line, never skipped.", + "expect": "qec", + "tier": "full", + "sha256": "bcda6739a090378385999ac51a2a66e2cfcee038796f1e12e9b8efcd9c33f75c" + } + ] +} diff --git a/wai/quantum-cross-simulator/corpus/qasm/below_grid_k33.qasm b/wai/quantum-cross-simulator/corpus/qasm/below_grid_k33.qasm new file mode 100644 index 000000000..d23612400 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/below_grid_k33.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +h q[0]; +p(pi/4294967296) q[0]; +h q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/below_grid_k40.qasm b/wai/quantum-cross-simulator/corpus/qasm/below_grid_k40.qasm new file mode 100644 index 000000000..88e9809a8 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/below_grid_k40.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +h q[0]; +p(pi/549755813888) q[0]; +h q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/below_grid_k47.qasm b/wai/quantum-cross-simulator/corpus/qasm/below_grid_k47.qasm new file mode 100644 index 000000000..70e569b4a --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/below_grid_k47.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +h q[0]; +p(pi/70368744177664) q[0]; +h q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/below_grid_k48.qasm b/wai/quantum-cross-simulator/corpus/qasm/below_grid_k48.qasm new file mode 100644 index 000000000..ca0e7aa93 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/below_grid_k48.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +h q[0]; +p(pi/140737488355328) q[0]; +h q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/below_grid_k52.qasm b/wai/quantum-cross-simulator/corpus/qasm/below_grid_k52.qasm new file mode 100644 index 000000000..b1a9c5712 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/below_grid_k52.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +h q[0]; +p(pi/2251799813685248) q[0]; +h q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/below_grid_k60.qasm b/wai/quantum-cross-simulator/corpus/qasm/below_grid_k60.qasm new file mode 100644 index 000000000..1bd6e638b --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/below_grid_k60.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +h q[0]; +p(pi/576460752303423488) q[0]; +h q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/bit_order_control.qasm b/wai/quantum-cross-simulator/corpus/qasm/bit_order_control.qasm new file mode 100644 index 000000000..d9d839aec --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/bit_order_control.qasm @@ -0,0 +1,5 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[4] q; +x q[0]; +cx q[0], q[3]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/bit_order_named_bits.qasm b/wai/quantum-cross-simulator/corpus/qasm/bit_order_named_bits.qasm new file mode 100644 index 000000000..71ff5b813 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/bit_order_named_bits.qasm @@ -0,0 +1,7 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[2] q; +bit[2] c; +x q[1]; +c[0] = measure q[1]; +c[1] = measure q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/bit_order_product.qasm b/wai/quantum-cross-simulator/corpus/qasm/bit_order_product.qasm new file mode 100644 index 000000000..0c9168e62 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/bit_order_product.qasm @@ -0,0 +1,15 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[6] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +ry(pi/16) q[1]; +rz(pi*3/64) q[1]; +ry(pi/32) q[2]; +rz(pi*3/128) q[2]; +ry(pi/64) q[3]; +rz(pi*3/256) q[3]; +ry(pi/128) q[4]; +rz(pi*3/512) q[4]; +ry(pi/256) q[5]; +rz(pi*3/1024) q[5]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/bit_order_x_high.qasm b/wai/quantum-cross-simulator/corpus/qasm/bit_order_x_high.qasm new file mode 100644 index 000000000..06ef3eb8a --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/bit_order_x_high.qasm @@ -0,0 +1,4 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[5] q; +x q[4]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/bit_order_x_low.qasm b/wai/quantum-cross-simulator/corpus/qasm/bit_order_x_low.qasm new file mode 100644 index 000000000..48ec74461 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/bit_order_x_low.qasm @@ -0,0 +1,4 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[5] q; +x q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/clifford_cluster_n65.qasm b/wai/quantum-cross-simulator/corpus/qasm/clifford_cluster_n65.qasm new file mode 100644 index 000000000..5d5cc24d5 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/clifford_cluster_n65.qasm @@ -0,0 +1,154 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[65] q; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +h q[10]; +h q[11]; +h q[12]; +h q[13]; +h q[14]; +h q[15]; +h q[16]; +h q[17]; +h q[18]; +h q[19]; +h q[20]; +h q[21]; +h q[22]; +h q[23]; +h q[24]; +h q[25]; +h q[26]; +h q[27]; +h q[28]; +h q[29]; +h q[30]; +h q[31]; +h q[32]; +h q[33]; +h q[34]; +h q[35]; +h q[36]; +h q[37]; +h q[38]; +h q[39]; +h q[40]; +h q[41]; +h q[42]; +h q[43]; +h q[44]; +h q[45]; +h q[46]; +h q[47]; +h q[48]; +h q[49]; +h q[50]; +h q[51]; +h q[52]; +h q[53]; +h q[54]; +h q[55]; +h q[56]; +h q[57]; +h q[58]; +h q[59]; +h q[60]; +h q[61]; +h q[62]; +h q[63]; +h q[64]; +cz q[0], q[1]; +cz q[1], q[2]; +cz q[2], q[3]; +cz q[3], q[4]; +cz q[4], q[5]; +cz q[5], q[6]; +cz q[6], q[7]; +cz q[7], q[8]; +cz q[8], q[9]; +cz q[9], q[10]; +cz q[10], q[11]; +cz q[11], q[12]; +cz q[12], q[13]; +cz q[13], q[14]; +cz q[14], q[15]; +cz q[15], q[16]; +cz q[16], q[17]; +cz q[17], q[18]; +cz q[18], q[19]; +cz q[19], q[20]; +cz q[20], q[21]; +cz q[21], q[22]; +cz q[22], q[23]; +cz q[23], q[24]; +cz q[24], q[25]; +cz q[25], q[26]; +cz q[26], q[27]; +cz q[27], q[28]; +cz q[28], q[29]; +cz q[29], q[30]; +cz q[30], q[31]; +cz q[31], q[32]; +cz q[32], q[33]; +cz q[33], q[34]; +cz q[34], q[35]; +cz q[35], q[36]; +cz q[36], q[37]; +cz q[37], q[38]; +cz q[38], q[39]; +cz q[39], q[40]; +cz q[40], q[41]; +cz q[41], q[42]; +cz q[42], q[43]; +cz q[43], q[44]; +cz q[44], q[45]; +cz q[45], q[46]; +cz q[46], q[47]; +cz q[47], q[48]; +cz q[48], q[49]; +cz q[49], q[50]; +cz q[50], q[51]; +cz q[51], q[52]; +cz q[52], q[53]; +cz q[53], q[54]; +cz q[54], q[55]; +cz q[55], q[56]; +cz q[56], q[57]; +cz q[57], q[58]; +cz q[58], q[59]; +cz q[59], q[60]; +cz q[60], q[61]; +cz q[61], q[62]; +cz q[62], q[63]; +cz q[63], q[64]; +z q[0]; +z q[3]; +z q[6]; +z q[9]; +z q[12]; +z q[15]; +z q[18]; +z q[21]; +z q[24]; +z q[27]; +z q[30]; +z q[33]; +z q[36]; +z q[39]; +z q[42]; +z q[45]; +z q[48]; +z q[51]; +z q[54]; +z q[57]; +z q[60]; +z q[63]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/clifford_counts_n40.qasm b/wai/quantum-cross-simulator/corpus/qasm/clifford_counts_n40.qasm new file mode 100644 index 000000000..52fa8b0ce --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/clifford_counts_n40.qasm @@ -0,0 +1,430 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[40] q; +bit[40] c; +h q[0]; +x q[2]; +sx q[4]; +sdg q[9]; +h q[10]; +z q[11]; +x q[12]; +y q[13]; +z q[14]; +z q[15]; +s q[16]; +sdg q[17]; +s q[18]; +x q[20]; +x q[22]; +sx q[23]; +z q[25]; +s q[26]; +y q[27]; +y q[29]; +y q[30]; +z q[32]; +x q[34]; +x q[35]; +s q[36]; +z q[37]; +y q[38]; +cz q[37], q[18]; +cz q[13], q[26]; +cx q[36], q[4]; +cz q[1], q[25]; +cz q[6], q[14]; +cz q[11], q[3]; +cz q[7], q[10]; +cz q[15], q[29]; +cx q[2], q[34]; +cz q[24], q[21]; +cx q[33], q[19]; +cz q[17], q[27]; +cz q[23], q[22]; +cx q[39], q[30]; +cz q[5], q[38]; +cx q[9], q[0]; +cx q[20], q[31]; +cz q[28], q[16]; +cz q[32], q[35]; +cx q[8], q[12]; +y q[2]; +z q[4]; +sdg q[5]; +sdg q[6]; +y q[7]; +sdg q[8]; +s q[10]; +s q[11]; +sdg q[13]; +x q[15]; +y q[17]; +sx q[18]; +h q[20]; +s q[22]; +s q[24]; +s q[25]; +z q[26]; +z q[30]; +sx q[31]; +y q[32]; +y q[33]; +x q[34]; +sx q[37]; +y q[38]; +sx q[39]; +cx q[38], q[37]; +cx q[2], q[33]; +cz q[0], q[21]; +cz q[17], q[35]; +cz q[18], q[32]; +cx q[6], q[14]; +cx q[12], q[23]; +cx q[34], q[5]; +cx q[39], q[36]; +cx q[19], q[13]; +cz q[24], q[3]; +cz q[10], q[26]; +cx q[31], q[28]; +cx q[30], q[15]; +cx q[29], q[22]; +cx q[25], q[7]; +cx q[20], q[27]; +cx q[11], q[16]; +cz q[1], q[9]; +cz q[4], q[8]; +y q[1]; +sdg q[2]; +y q[3]; +s q[6]; +x q[7]; +sdg q[9]; +y q[11]; +sdg q[12]; +y q[13]; +y q[14]; +s q[15]; +sx q[16]; +x q[17]; +y q[20]; +y q[21]; +s q[22]; +z q[23]; +h q[24]; +x q[27]; +z q[28]; +sdg q[29]; +s q[30]; +s q[31]; +h q[32]; +sx q[33]; +s q[34]; +z q[35]; +z q[36]; +h q[38]; +cz q[2], q[7]; +cz q[39], q[10]; +cx q[14], q[17]; +cx q[0], q[30]; +cz q[31], q[16]; +cz q[1], q[8]; +cx q[22], q[36]; +cx q[19], q[5]; +cz q[35], q[33]; +cx q[25], q[20]; +cx q[11], q[12]; +cz q[15], q[9]; +cz q[3], q[32]; +cz q[27], q[38]; +cz q[21], q[4]; +cz q[34], q[26]; +cx q[18], q[24]; +cx q[37], q[6]; +cz q[13], q[28]; +cx q[23], q[29]; +x q[0]; +z q[1]; +sdg q[2]; +s q[3]; +y q[4]; +x q[5]; +h q[7]; +z q[8]; +sdg q[9]; +y q[10]; +s q[11]; +h q[12]; +z q[13]; +s q[15]; +y q[16]; +sdg q[17]; +y q[18]; +h q[20]; +y q[21]; +s q[23]; +sdg q[24]; +sx q[30]; +h q[31]; +s q[32]; +y q[34]; +sdg q[35]; +sdg q[36]; +y q[37]; +h q[38]; +h q[39]; +cx q[23], q[1]; +cx q[18], q[9]; +cx q[16], q[26]; +cx q[30], q[7]; +cz q[27], q[36]; +cz q[25], q[13]; +cz q[33], q[8]; +cx q[32], q[20]; +cx q[5], q[29]; +cz q[11], q[38]; +cz q[2], q[39]; +cz q[6], q[0]; +cz q[15], q[28]; +cz q[4], q[17]; +cz q[24], q[22]; +cz q[14], q[12]; +cz q[35], q[34]; +cz q[37], q[31]; +cz q[21], q[19]; +cx q[3], q[10]; +h q[0]; +x q[3]; +z q[4]; +sdg q[5]; +sx q[6]; +x q[8]; +s q[10]; +sx q[11]; +z q[12]; +h q[14]; +x q[16]; +sx q[17]; +x q[18]; +h q[19]; +y q[20]; +s q[21]; +sx q[22]; +y q[24]; +h q[25]; +h q[26]; +z q[27]; +sdg q[29]; +x q[30]; +sdg q[31]; +y q[33]; +x q[36]; +h q[37]; +h q[38]; +y q[39]; +cx q[27], q[21]; +cz q[13], q[20]; +cz q[1], q[34]; +cx q[12], q[7]; +cx q[31], q[23]; +cz q[19], q[35]; +cx q[16], q[8]; +cz q[37], q[9]; +cx q[0], q[22]; +cx q[4], q[36]; +cx q[18], q[17]; +cz q[11], q[32]; +cz q[24], q[28]; +cz q[6], q[39]; +cz q[5], q[2]; +cz q[33], q[30]; +cx q[14], q[29]; +cz q[3], q[15]; +cz q[38], q[10]; +cz q[25], q[26]; +x q[0]; +sx q[2]; +z q[3]; +sx q[5]; +z q[7]; +x q[8]; +z q[9]; +sx q[10]; +y q[11]; +sx q[12]; +h q[13]; +z q[14]; +y q[15]; +sx q[16]; +y q[17]; +h q[18]; +sx q[19]; +sdg q[20]; +y q[21]; +z q[23]; +sdg q[27]; +s q[28]; +sx q[29]; +s q[30]; +s q[31]; +h q[33]; +sx q[34]; +sdg q[35]; +sdg q[36]; +sx q[37]; +z q[39]; +cz q[4], q[19]; +cz q[30], q[32]; +cz q[39], q[33]; +cz q[8], q[15]; +cx q[31], q[6]; +cz q[29], q[3]; +cz q[7], q[1]; +cz q[35], q[26]; +cz q[36], q[14]; +cz q[21], q[12]; +cx q[0], q[11]; +cz q[9], q[18]; +cz q[25], q[5]; +cz q[13], q[22]; +cx q[28], q[17]; +cz q[20], q[10]; +cz q[27], q[23]; +cz q[24], q[38]; +cz q[34], q[16]; +cx q[37], q[2]; +h q[3]; +h q[4]; +sdg q[6]; +s q[7]; +s q[8]; +h q[9]; +s q[11]; +sx q[12]; +sx q[13]; +h q[14]; +s q[15]; +h q[16]; +sx q[17]; +h q[19]; +y q[20]; +z q[21]; +sdg q[23]; +z q[25]; +z q[26]; +x q[27]; +sx q[28]; +x q[29]; +sdg q[30]; +x q[31]; +z q[32]; +x q[33]; +z q[34]; +h q[36]; +sx q[39]; +cz q[3], q[14]; +cx q[33], q[34]; +cz q[26], q[12]; +cx q[32], q[9]; +cx q[8], q[20]; +cz q[38], q[25]; +cz q[39], q[4]; +cx q[30], q[37]; +cx q[5], q[35]; +cz q[10], q[22]; +cz q[31], q[28]; +cz q[6], q[29]; +cx q[18], q[16]; +cx q[36], q[11]; +cx q[23], q[21]; +cx q[13], q[1]; +cz q[19], q[15]; +cz q[24], q[2]; +cx q[17], q[27]; +cx q[0], q[7]; +z q[0]; +s q[1]; +z q[2]; +z q[8]; +y q[9]; +z q[10]; +x q[12]; +y q[13]; +s q[14]; +z q[15]; +s q[16]; +y q[18]; +h q[19]; +y q[20]; +s q[24]; +x q[25]; +sx q[26]; +x q[27]; +s q[28]; +s q[29]; +s q[30]; +sx q[32]; +sx q[33]; +z q[35]; +s q[37]; +h q[38]; +cx q[29], q[32]; +cz q[11], q[0]; +cz q[35], q[36]; +cx q[37], q[17]; +cz q[33], q[2]; +cx q[5], q[12]; +cz q[13], q[26]; +cx q[7], q[38]; +cx q[3], q[1]; +cz q[22], q[21]; +cx q[10], q[31]; +cx q[9], q[14]; +cx q[34], q[30]; +cz q[18], q[25]; +cx q[28], q[27]; +cx q[24], q[39]; +cx q[23], q[8]; +cz q[4], q[6]; +cz q[15], q[16]; +cx q[19], q[20]; +c[0] = measure q[0]; +c[1] = measure q[1]; +c[2] = measure q[2]; +c[3] = measure q[3]; +c[4] = measure q[4]; +c[5] = measure q[5]; +c[6] = measure q[6]; +c[7] = measure q[7]; +c[8] = measure q[8]; +c[9] = measure q[9]; +c[10] = measure q[10]; +c[11] = measure q[11]; +c[12] = measure q[12]; +c[13] = measure q[13]; +c[14] = measure q[14]; +c[15] = measure q[15]; +c[16] = measure q[16]; +c[17] = measure q[17]; +c[18] = measure q[18]; +c[19] = measure q[19]; +c[20] = measure q[20]; +c[21] = measure q[21]; +c[22] = measure q[22]; +c[23] = measure q[23]; +c[24] = measure q[24]; +c[25] = measure q[25]; +c[26] = measure q[26]; +c[27] = measure q[27]; +c[28] = measure q[28]; +c[29] = measure q[29]; +c[30] = measure q[30]; +c[31] = measure q[31]; +c[32] = measure q[32]; +c[33] = measure q[33]; +c[34] = measure q[34]; +c[35] = measure q[35]; +c[36] = measure q[36]; +c[37] = measure q[37]; +c[38] = measure q[38]; +c[39] = measure q[39]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/clifford_ghz_n100.qasm b/wai/quantum-cross-simulator/corpus/qasm/clifford_ghz_n100.qasm new file mode 100644 index 000000000..76b660e51 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/clifford_ghz_n100.qasm @@ -0,0 +1,103 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[100] q; +h q[0]; +cx q[0], q[1]; +cx q[1], q[2]; +cx q[2], q[3]; +cx q[3], q[4]; +cx q[4], q[5]; +cx q[5], q[6]; +cx q[6], q[7]; +cx q[7], q[8]; +cx q[8], q[9]; +cx q[9], q[10]; +cx q[10], q[11]; +cx q[11], q[12]; +cx q[12], q[13]; +cx q[13], q[14]; +cx q[14], q[15]; +cx q[15], q[16]; +cx q[16], q[17]; +cx q[17], q[18]; +cx q[18], q[19]; +cx q[19], q[20]; +cx q[20], q[21]; +cx q[21], q[22]; +cx q[22], q[23]; +cx q[23], q[24]; +cx q[24], q[25]; +cx q[25], q[26]; +cx q[26], q[27]; +cx q[27], q[28]; +cx q[28], q[29]; +cx q[29], q[30]; +cx q[30], q[31]; +cx q[31], q[32]; +cx q[32], q[33]; +cx q[33], q[34]; +cx q[34], q[35]; +cx q[35], q[36]; +cx q[36], q[37]; +cx q[37], q[38]; +cx q[38], q[39]; +cx q[39], q[40]; +cx q[40], q[41]; +cx q[41], q[42]; +cx q[42], q[43]; +cx q[43], q[44]; +cx q[44], q[45]; +cx q[45], q[46]; +cx q[46], q[47]; +cx q[47], q[48]; +cx q[48], q[49]; +cx q[49], q[50]; +cx q[50], q[51]; +cx q[51], q[52]; +cx q[52], q[53]; +cx q[53], q[54]; +cx q[54], q[55]; +cx q[55], q[56]; +cx q[56], q[57]; +cx q[57], q[58]; +cx q[58], q[59]; +cx q[59], q[60]; +cx q[60], q[61]; +cx q[61], q[62]; +cx q[62], q[63]; +cx q[63], q[64]; +cx q[64], q[65]; +cx q[65], q[66]; +cx q[66], q[67]; +cx q[67], q[68]; +cx q[68], q[69]; +cx q[69], q[70]; +cx q[70], q[71]; +cx q[71], q[72]; +cx q[72], q[73]; +cx q[73], q[74]; +cx q[74], q[75]; +cx q[75], q[76]; +cx q[76], q[77]; +cx q[77], q[78]; +cx q[78], q[79]; +cx q[79], q[80]; +cx q[80], q[81]; +cx q[81], q[82]; +cx q[82], q[83]; +cx q[83], q[84]; +cx q[84], q[85]; +cx q[85], q[86]; +cx q[86], q[87]; +cx q[87], q[88]; +cx q[88], q[89]; +cx q[89], q[90]; +cx q[90], q[91]; +cx q[91], q[92]; +cx q[92], q[93]; +cx q[93], q[94]; +cx q[94], q[95]; +cx q[95], q[96]; +cx q[96], q[97]; +cx q[97], q[98]; +cx q[98], q[99]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/clifford_random_n10_as_state.qasm b/wai/quantum-cross-simulator/corpus/qasm/clifford_random_n10_as_state.qasm new file mode 100644 index 000000000..4d1fe2fc1 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/clifford_random_n10_as_state.qasm @@ -0,0 +1,371 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[10] q; +h q[2]; +z q[3]; +sdg q[5]; +sdg q[6]; +sdg q[7]; +h q[9]; +cz q[5], q[3]; +cx q[2], q[9]; +cz q[0], q[1]; +cx q[7], q[8]; +cx q[4], q[6]; +z q[1]; +s q[2]; +h q[3]; +z q[4]; +y q[5]; +y q[6]; +s q[8]; +z q[9]; +cx q[6], q[3]; +cx q[7], q[8]; +cz q[1], q[4]; +cx q[5], q[0]; +cz q[9], q[2]; +y q[2]; +x q[3]; +y q[5]; +z q[6]; +sx q[7]; +y q[8]; +z q[9]; +cx q[4], q[0]; +cz q[9], q[7]; +cx q[6], q[8]; +cz q[3], q[1]; +cx q[5], q[2]; +sx q[0]; +y q[2]; +sx q[4]; +z q[6]; +sx q[7]; +x q[8]; +z q[9]; +cz q[9], q[4]; +cz q[2], q[8]; +cx q[1], q[3]; +cx q[7], q[5]; +cx q[0], q[6]; +z q[1]; +sx q[2]; +y q[5]; +z q[7]; +sdg q[8]; +cz q[8], q[2]; +cz q[5], q[7]; +cz q[0], q[1]; +cz q[3], q[4]; +cx q[9], q[6]; +z q[0]; +h q[3]; +sdg q[5]; +h q[6]; +sx q[8]; +sx q[9]; +cz q[9], q[8]; +cz q[2], q[4]; +cz q[1], q[0]; +cx q[7], q[6]; +cz q[5], q[3]; +h q[0]; +sdg q[1]; +x q[3]; +h q[4]; +x q[5]; +z q[6]; +s q[7]; +y q[8]; +z q[9]; +cx q[4], q[6]; +cz q[1], q[0]; +cx q[2], q[9]; +cz q[7], q[5]; +cx q[8], q[3]; +s q[0]; +h q[1]; +sdg q[2]; +sdg q[3]; +z q[5]; +x q[8]; +s q[9]; +cx q[8], q[9]; +cx q[2], q[3]; +cz q[7], q[6]; +cx q[1], q[0]; +cz q[4], q[5]; +sdg q[0]; +h q[1]; +h q[3]; +z q[4]; +h q[5]; +s q[6]; +sdg q[7]; +sx q[8]; +x q[9]; +cx q[7], q[1]; +cx q[5], q[4]; +cx q[9], q[6]; +cx q[2], q[3]; +cx q[0], q[8]; +y q[0]; +z q[2]; +y q[3]; +sdg q[5]; +sx q[6]; +s q[8]; +y q[9]; +cz q[6], q[5]; +cx q[4], q[2]; +cx q[3], q[0]; +cx q[7], q[1]; +cz q[8], q[9]; +x q[1]; +sdg q[2]; +s q[3]; +s q[4]; +sdg q[5]; +h q[6]; +z q[7]; +s q[8]; +h q[9]; +cx q[8], q[7]; +cx q[9], q[5]; +cx q[6], q[4]; +cz q[2], q[1]; +cx q[0], q[3]; +z q[0]; +sdg q[2]; +h q[7]; +x q[8]; +y q[9]; +cz q[9], q[1]; +cz q[4], q[3]; +cx q[7], q[0]; +cx q[6], q[8]; +cx q[5], q[2]; +sdg q[0]; +x q[1]; +h q[2]; +s q[3]; +h q[4]; +x q[5]; +x q[6]; +x q[7]; +h q[8]; +cx q[0], q[3]; +cx q[7], q[5]; +cz q[6], q[2]; +cz q[9], q[1]; +cz q[8], q[4]; +sx q[1]; +sx q[2]; +sx q[3]; +x q[4]; +z q[6]; +s q[8]; +y q[9]; +cz q[5], q[2]; +cx q[9], q[1]; +cx q[4], q[8]; +cz q[3], q[0]; +cz q[7], q[6]; +z q[0]; +sx q[1]; +x q[2]; +h q[6]; +y q[7]; +x q[9]; +cz q[6], q[1]; +cz q[8], q[2]; +cx q[5], q[7]; +cx q[9], q[3]; +cz q[4], q[0]; +x q[0]; +sdg q[1]; +z q[3]; +x q[5]; +z q[6]; +s q[7]; +s q[8]; +h q[9]; +cz q[8], q[7]; +cx q[1], q[4]; +cz q[5], q[0]; +cz q[2], q[3]; +cz q[6], q[9]; +x q[0]; +z q[2]; +z q[3]; +s q[4]; +y q[5]; +sx q[6]; +sdg q[7]; +z q[8]; +sx q[9]; +cz q[8], q[0]; +cx q[4], q[1]; +cz q[6], q[3]; +cx q[7], q[9]; +cz q[5], q[2]; +z q[0]; +sx q[1]; +s q[2]; +h q[3]; +z q[6]; +y q[7]; +cz q[9], q[6]; +cz q[1], q[8]; +cx q[2], q[3]; +cz q[0], q[4]; +cz q[7], q[5]; +x q[1]; +h q[2]; +sx q[3]; +y q[4]; +sdg q[5]; +x q[6]; +z q[7]; +sdg q[8]; +sx q[9]; +cz q[2], q[9]; +cz q[4], q[6]; +cx q[3], q[7]; +cx q[1], q[5]; +cx q[8], q[0]; +y q[0]; +y q[3]; +z q[4]; +x q[5]; +z q[6]; +sx q[7]; +s q[8]; +y q[9]; +cz q[3], q[4]; +cz q[9], q[0]; +cz q[1], q[6]; +cx q[8], q[7]; +cx q[5], q[2]; +s q[0]; +sdg q[1]; +sx q[2]; +sdg q[3]; +sx q[4]; +z q[5]; +y q[6]; +sdg q[7]; +cz q[6], q[7]; +cz q[9], q[5]; +cx q[2], q[4]; +cz q[8], q[3]; +cz q[0], q[1]; +s q[0]; +z q[2]; +x q[4]; +y q[5]; +s q[6]; +h q[7]; +sdg q[8]; +h q[9]; +cz q[5], q[4]; +cx q[8], q[1]; +cx q[3], q[7]; +cz q[9], q[0]; +cz q[2], q[6]; +h q[3]; +y q[7]; +x q[8]; +sx q[9]; +cx q[3], q[4]; +cz q[5], q[1]; +cz q[8], q[9]; +cz q[0], q[7]; +cx q[6], q[2]; +x q[2]; +y q[3]; +y q[6]; +z q[7]; +z q[8]; +sx q[9]; +cx q[2], q[8]; +cz q[7], q[0]; +cz q[6], q[1]; +cx q[9], q[5]; +cz q[3], q[4]; +x q[0]; +y q[1]; +y q[2]; +sx q[3]; +x q[4]; +sx q[5]; +sdg q[6]; +s q[7]; +cz q[5], q[6]; +cx q[1], q[2]; +cz q[3], q[8]; +cz q[0], q[4]; +cz q[7], q[9]; +z q[0]; +sx q[1]; +x q[2]; +z q[4]; +h q[5]; +h q[6]; +h q[8]; +sx q[9]; +cx q[6], q[2]; +cz q[9], q[0]; +cz q[5], q[7]; +cx q[8], q[4]; +cx q[1], q[3]; +x q[0]; +sx q[1]; +s q[2]; +s q[3]; +z q[4]; +sx q[6]; +sdg q[8]; +z q[9]; +cz q[7], q[0]; +cz q[6], q[3]; +cz q[1], q[4]; +cz q[8], q[9]; +cx q[2], q[5]; +h q[1]; +sx q[2]; +x q[3]; +h q[4]; +sx q[7]; +sdg q[8]; +s q[9]; +cx q[8], q[4]; +cx q[9], q[0]; +cx q[2], q[5]; +cz q[1], q[6]; +cz q[7], q[3]; +z q[0]; +z q[2]; +z q[3]; +z q[4]; +x q[5]; +x q[6]; +x q[7]; +sx q[9]; +cx q[0], q[8]; +cx q[5], q[1]; +cz q[6], q[7]; +cz q[3], q[9]; +cx q[2], q[4]; +h q[0]; +sdg q[2]; +h q[3]; +x q[4]; +sdg q[5]; +z q[9]; +cx q[9], q[0]; +cz q[4], q[2]; +cz q[3], q[7]; +cx q[6], q[1]; +cz q[8], q[5]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/clifford_random_n63.qasm b/wai/quantum-cross-simulator/corpus/qasm/clifford_random_n63.qasm new file mode 100644 index 000000000..e925c5b43 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/clifford_random_n63.qasm @@ -0,0 +1,895 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[63] q; +x q[0]; +x q[1]; +y q[2]; +s q[3]; +sdg q[5]; +h q[6]; +x q[7]; +h q[8]; +y q[10]; +y q[12]; +s q[13]; +sx q[15]; +y q[16]; +sx q[17]; +x q[18]; +s q[20]; +h q[22]; +sdg q[23]; +sdg q[24]; +z q[25]; +x q[27]; +s q[28]; +s q[29]; +x q[35]; +x q[37]; +z q[38]; +sdg q[40]; +y q[41]; +sx q[42]; +s q[44]; +sdg q[47]; +z q[49]; +y q[52]; +y q[53]; +x q[55]; +z q[57]; +s q[59]; +h q[61]; +cz q[50], q[3]; +cx q[16], q[42]; +cz q[30], q[62]; +cx q[25], q[33]; +cz q[1], q[28]; +cx q[7], q[15]; +cx q[27], q[52]; +cz q[38], q[53]; +cz q[54], q[58]; +cx q[6], q[11]; +cx q[21], q[49]; +cz q[23], q[34]; +cx q[20], q[39]; +cz q[41], q[44]; +cx q[17], q[36]; +cz q[24], q[19]; +cx q[26], q[47]; +cx q[43], q[60]; +cx q[40], q[46]; +cx q[13], q[32]; +cz q[14], q[0]; +cx q[35], q[8]; +cx q[56], q[37]; +cz q[9], q[57]; +cz q[4], q[45]; +cz q[59], q[48]; +cx q[2], q[12]; +cz q[10], q[55]; +cx q[61], q[51]; +cz q[31], q[5]; +cz q[29], q[22]; +sdg q[1]; +h q[2]; +sx q[3]; +h q[4]; +z q[5]; +sdg q[9]; +z q[10]; +z q[11]; +sx q[12]; +z q[13]; +x q[14]; +h q[16]; +z q[17]; +y q[18]; +z q[19]; +y q[20]; +sx q[21]; +y q[22]; +z q[24]; +z q[27]; +sx q[29]; +sx q[30]; +sx q[31]; +sdg q[32]; +x q[33]; +s q[34]; +y q[36]; +y q[37]; +x q[44]; +x q[45]; +sdg q[46]; +sx q[47]; +y q[48]; +sx q[50]; +sdg q[51]; +y q[55]; +x q[56]; +h q[57]; +h q[58]; +z q[59]; +z q[60]; +z q[62]; +cx q[50], q[53]; +cx q[40], q[45]; +cx q[5], q[3]; +cx q[38], q[52]; +cx q[29], q[43]; +cx q[54], q[47]; +cx q[1], q[58]; +cz q[30], q[8]; +cx q[42], q[14]; +cx q[60], q[51]; +cx q[36], q[16]; +cx q[56], q[48]; +cz q[24], q[20]; +cx q[15], q[25]; +cx q[37], q[4]; +cz q[12], q[2]; +cx q[21], q[10]; +cx q[59], q[57]; +cx q[13], q[39]; +cx q[44], q[7]; +cx q[19], q[46]; +cz q[27], q[55]; +cx q[26], q[23]; +cx q[34], q[35]; +cx q[6], q[22]; +cx q[41], q[33]; +cx q[49], q[11]; +cx q[32], q[9]; +cx q[62], q[17]; +cx q[31], q[0]; +cz q[28], q[61]; +x q[1]; +sdg q[2]; +x q[5]; +z q[6]; +sdg q[7]; +y q[8]; +y q[9]; +sdg q[11]; +sx q[12]; +sdg q[13]; +y q[14]; +y q[15]; +sdg q[16]; +z q[17]; +h q[19]; +s q[20]; +h q[21]; +x q[22]; +z q[23]; +sx q[24]; +z q[25]; +y q[26]; +h q[27]; +x q[28]; +y q[29]; +x q[30]; +sdg q[32]; +s q[33]; +sdg q[34]; +s q[35]; +x q[37]; +x q[38]; +sx q[39]; +sdg q[40]; +s q[41]; +sdg q[42]; +y q[43]; +sdg q[44]; +z q[48]; +x q[51]; +sx q[52]; +h q[53]; +y q[54]; +y q[55]; +s q[56]; +sx q[57]; +sx q[59]; +h q[60]; +cx q[31], q[58]; +cx q[49], q[48]; +cx q[0], q[23]; +cx q[60], q[25]; +cx q[56], q[19]; +cx q[44], q[14]; +cx q[55], q[18]; +cz q[5], q[11]; +cz q[2], q[32]; +cz q[1], q[52]; +cz q[34], q[41]; +cz q[36], q[40]; +cx q[57], q[42]; +cx q[13], q[62]; +cz q[12], q[6]; +cx q[46], q[21]; +cx q[24], q[39]; +cz q[15], q[59]; +cz q[3], q[20]; +cz q[47], q[7]; +cx q[50], q[51]; +cx q[27], q[54]; +cx q[61], q[8]; +cx q[4], q[35]; +cx q[28], q[26]; +cx q[30], q[29]; +cx q[22], q[43]; +cx q[17], q[16]; +cz q[9], q[53]; +cz q[37], q[10]; +cx q[33], q[38]; +y q[0]; +sx q[4]; +y q[5]; +s q[7]; +x q[8]; +x q[9]; +y q[11]; +sx q[12]; +s q[14]; +y q[15]; +sdg q[17]; +y q[18]; +sx q[19]; +h q[23]; +y q[24]; +h q[26]; +sdg q[27]; +y q[28]; +y q[29]; +sdg q[30]; +sx q[32]; +sx q[33]; +y q[34]; +h q[35]; +sdg q[37]; +sdg q[38]; +x q[39]; +sx q[40]; +y q[41]; +x q[42]; +x q[43]; +sdg q[44]; +sx q[48]; +s q[49]; +h q[51]; +sx q[52]; +s q[53]; +h q[54]; +h q[55]; +x q[56]; +y q[57]; +sx q[58]; +y q[60]; +sdg q[61]; +y q[62]; +cx q[27], q[38]; +cx q[13], q[10]; +cx q[23], q[28]; +cx q[52], q[50]; +cx q[48], q[5]; +cx q[12], q[15]; +cx q[14], q[36]; +cx q[39], q[47]; +cx q[21], q[44]; +cx q[20], q[3]; +cz q[19], q[49]; +cz q[24], q[51]; +cz q[1], q[11]; +cz q[2], q[58]; +cz q[6], q[40]; +cx q[0], q[34]; +cz q[17], q[45]; +cx q[55], q[46]; +cz q[42], q[60]; +cz q[61], q[62]; +cx q[59], q[4]; +cx q[22], q[9]; +cx q[43], q[37]; +cx q[41], q[26]; +cx q[33], q[35]; +cx q[30], q[54]; +cz q[7], q[16]; +cz q[32], q[29]; +cx q[31], q[25]; +cx q[8], q[53]; +cx q[18], q[57]; +y q[0]; +z q[1]; +sx q[2]; +z q[4]; +z q[5]; +y q[7]; +x q[8]; +y q[9]; +sx q[10]; +s q[14]; +z q[15]; +s q[16]; +x q[17]; +h q[18]; +z q[20]; +s q[21]; +h q[22]; +y q[25]; +sdg q[28]; +x q[29]; +sx q[30]; +z q[32]; +sx q[33]; +sx q[34]; +h q[37]; +y q[39]; +h q[40]; +z q[41]; +h q[42]; +s q[43]; +y q[44]; +s q[45]; +h q[46]; +z q[47]; +sdg q[48]; +y q[49]; +y q[50]; +x q[51]; +sx q[52]; +s q[53]; +z q[54]; +sdg q[55]; +sx q[58]; +s q[59]; +z q[60]; +y q[61]; +sx q[62]; +cx q[54], q[43]; +cx q[23], q[53]; +cz q[62], q[13]; +cz q[49], q[27]; +cx q[55], q[47]; +cz q[44], q[7]; +cz q[25], q[22]; +cz q[59], q[37]; +cx q[29], q[12]; +cx q[30], q[10]; +cz q[19], q[57]; +cz q[33], q[56]; +cx q[46], q[0]; +cz q[20], q[45]; +cx q[38], q[5]; +cz q[48], q[34]; +cx q[11], q[28]; +cx q[42], q[26]; +cz q[61], q[18]; +cz q[17], q[51]; +cz q[16], q[6]; +cz q[21], q[8]; +cx q[40], q[14]; +cz q[31], q[39]; +cx q[24], q[35]; +cz q[60], q[32]; +cx q[9], q[50]; +cx q[1], q[15]; +cx q[41], q[36]; +cz q[4], q[2]; +cz q[58], q[52]; +s q[1]; +sdg q[2]; +y q[3]; +sdg q[4]; +h q[6]; +s q[7]; +x q[8]; +z q[10]; +s q[11]; +z q[12]; +s q[14]; +sx q[16]; +z q[17]; +s q[18]; +h q[20]; +y q[22]; +sdg q[25]; +s q[31]; +s q[33]; +sx q[34]; +sdg q[37]; +y q[38]; +y q[39]; +sdg q[41]; +x q[42]; +x q[43]; +y q[46]; +z q[47]; +sdg q[48]; +sx q[49]; +sx q[50]; +sdg q[51]; +z q[53]; +x q[55]; +y q[56]; +z q[57]; +x q[58]; +h q[60]; +sx q[61]; +cx q[6], q[20]; +cx q[34], q[57]; +cz q[61], q[4]; +cz q[53], q[37]; +cz q[51], q[24]; +cx q[11], q[29]; +cz q[59], q[26]; +cz q[14], q[31]; +cx q[16], q[60]; +cx q[49], q[25]; +cx q[36], q[55]; +cx q[9], q[23]; +cx q[7], q[13]; +cx q[46], q[18]; +cx q[33], q[3]; +cz q[44], q[38]; +cz q[1], q[5]; +cx q[15], q[27]; +cx q[0], q[56]; +cz q[35], q[62]; +cx q[41], q[54]; +cx q[12], q[32]; +cx q[28], q[40]; +cz q[22], q[50]; +cx q[30], q[45]; +cz q[39], q[48]; +cz q[17], q[47]; +cx q[42], q[10]; +cz q[21], q[19]; +cz q[8], q[2]; +cx q[52], q[43]; +y q[0]; +sdg q[1]; +h q[2]; +x q[6]; +h q[7]; +sx q[8]; +sx q[9]; +x q[10]; +s q[11]; +z q[13]; +sx q[14]; +h q[15]; +y q[17]; +sdg q[18]; +sx q[19]; +h q[21]; +s q[22]; +h q[23]; +y q[27]; +sx q[29]; +z q[30]; +h q[31]; +z q[32]; +h q[34]; +sx q[35]; +y q[36]; +x q[37]; +z q[39]; +x q[41]; +sdg q[42]; +x q[43]; +s q[44]; +z q[46]; +h q[47]; +sdg q[48]; +sdg q[49]; +sdg q[50]; +h q[51]; +s q[52]; +x q[53]; +x q[55]; +x q[56]; +sx q[57]; +y q[58]; +x q[61]; +sx q[62]; +cz q[47], q[6]; +cx q[18], q[25]; +cx q[27], q[61]; +cx q[20], q[10]; +cz q[1], q[42]; +cz q[45], q[56]; +cz q[38], q[4]; +cx q[52], q[36]; +cz q[40], q[8]; +cx q[23], q[21]; +cx q[3], q[48]; +cx q[15], q[37]; +cz q[62], q[49]; +cz q[5], q[58]; +cx q[2], q[60]; +cx q[53], q[16]; +cz q[59], q[50]; +cx q[33], q[19]; +cx q[13], q[35]; +cz q[9], q[7]; +cz q[31], q[17]; +cx q[34], q[51]; +cz q[39], q[32]; +cx q[28], q[44]; +cz q[43], q[29]; +cx q[46], q[22]; +cz q[24], q[54]; +cz q[41], q[0]; +cx q[57], q[12]; +cz q[11], q[55]; +cz q[26], q[14]; +x q[0]; +x q[1]; +h q[2]; +sx q[7]; +x q[9]; +sx q[10]; +x q[11]; +z q[12]; +z q[13]; +s q[15]; +z q[19]; +sx q[20]; +x q[22]; +sdg q[23]; +y q[26]; +s q[27]; +sx q[29]; +z q[30]; +y q[31]; +s q[32]; +sx q[36]; +s q[38]; +sdg q[39]; +x q[40]; +h q[44]; +y q[45]; +y q[46]; +sx q[47]; +x q[48]; +y q[49]; +z q[50]; +z q[52]; +h q[55]; +z q[56]; +x q[57]; +h q[59]; +h q[60]; +x q[62]; +cx q[22], q[1]; +cx q[24], q[55]; +cx q[33], q[57]; +cx q[48], q[39]; +cz q[46], q[19]; +cz q[11], q[23]; +cx q[34], q[4]; +cz q[52], q[16]; +cz q[51], q[27]; +cz q[38], q[47]; +cx q[6], q[58]; +cx q[26], q[28]; +cz q[60], q[42]; +cz q[2], q[43]; +cx q[35], q[53]; +cx q[29], q[12]; +cz q[25], q[50]; +cx q[40], q[10]; +cz q[13], q[5]; +cx q[37], q[41]; +cx q[36], q[54]; +cx q[20], q[9]; +cx q[15], q[18]; +cx q[7], q[32]; +cx q[45], q[14]; +cz q[62], q[59]; +cx q[44], q[3]; +cz q[21], q[31]; +cz q[56], q[0]; +cz q[17], q[49]; +cx q[61], q[8]; +y q[0]; +s q[1]; +y q[2]; +x q[4]; +sdg q[5]; +z q[6]; +z q[7]; +sdg q[8]; +x q[9]; +y q[10]; +h q[12]; +x q[13]; +x q[14]; +y q[15]; +z q[16]; +z q[17]; +x q[18]; +y q[20]; +sx q[21]; +s q[23]; +y q[25]; +z q[27]; +sdg q[29]; +sdg q[30]; +h q[31]; +sx q[34]; +x q[36]; +y q[37]; +x q[38]; +x q[40]; +h q[41]; +s q[42]; +s q[43]; +x q[46]; +y q[47]; +s q[48]; +z q[49]; +sx q[50]; +sx q[52]; +h q[53]; +h q[54]; +z q[55]; +h q[56]; +sdg q[57]; +y q[58]; +sx q[60]; +sx q[61]; +sdg q[62]; +cz q[25], q[31]; +cz q[51], q[46]; +cx q[38], q[34]; +cx q[18], q[17]; +cx q[43], q[48]; +cz q[11], q[55]; +cx q[23], q[54]; +cz q[41], q[52]; +cz q[27], q[42]; +cz q[36], q[32]; +cx q[14], q[57]; +cz q[21], q[22]; +cx q[19], q[33]; +cx q[50], q[49]; +cx q[6], q[13]; +cz q[12], q[44]; +cx q[53], q[47]; +cx q[56], q[24]; +cx q[61], q[30]; +cx q[7], q[45]; +cx q[58], q[4]; +cx q[28], q[3]; +cz q[60], q[15]; +cx q[2], q[8]; +cx q[39], q[16]; +cx q[40], q[1]; +cz q[37], q[26]; +cz q[20], q[9]; +cx q[0], q[59]; +cx q[5], q[62]; +cx q[29], q[10]; +y q[2]; +y q[4]; +sx q[5]; +y q[6]; +y q[7]; +sdg q[9]; +s q[11]; +sx q[12]; +x q[14]; +x q[18]; +h q[19]; +sx q[20]; +s q[21]; +s q[22]; +h q[23]; +y q[25]; +s q[26]; +x q[27]; +y q[28]; +sx q[29]; +z q[30]; +s q[31]; +s q[33]; +z q[34]; +z q[35]; +z q[37]; +h q[38]; +h q[39]; +h q[40]; +h q[42]; +sx q[43]; +s q[44]; +sx q[47]; +y q[50]; +sdg q[52]; +sdg q[53]; +x q[54]; +z q[55]; +h q[56]; +z q[58]; +y q[59]; +x q[60]; +x q[62]; +cx q[19], q[43]; +cz q[27], q[54]; +cz q[30], q[57]; +cz q[39], q[11]; +cx q[50], q[21]; +cz q[17], q[44]; +cx q[55], q[24]; +cx q[1], q[36]; +cz q[48], q[56]; +cx q[26], q[10]; +cz q[34], q[49]; +cz q[23], q[4]; +cz q[52], q[40]; +cx q[15], q[16]; +cx q[25], q[60]; +cx q[59], q[61]; +cx q[2], q[7]; +cz q[33], q[53]; +cz q[38], q[20]; +cz q[31], q[5]; +cx q[8], q[41]; +cz q[6], q[9]; +cx q[13], q[12]; +cx q[37], q[62]; +cx q[32], q[47]; +cx q[29], q[35]; +cz q[3], q[0]; +cz q[22], q[42]; +cz q[58], q[45]; +cz q[14], q[51]; +cz q[18], q[28]; +x q[0]; +z q[1]; +sx q[2]; +s q[3]; +z q[4]; +x q[5]; +sx q[8]; +x q[9]; +z q[10]; +h q[11]; +h q[12]; +z q[13]; +x q[14]; +x q[15]; +sx q[17]; +y q[18]; +y q[21]; +y q[22]; +sx q[23]; +sx q[25]; +y q[26]; +sdg q[27]; +sdg q[28]; +s q[29]; +z q[31]; +s q[33]; +x q[34]; +z q[36]; +s q[38]; +h q[39]; +x q[40]; +sdg q[42]; +sdg q[43]; +x q[44]; +y q[46]; +z q[47]; +sx q[48]; +s q[49]; +h q[51]; +s q[52]; +sdg q[53]; +x q[54]; +x q[55]; +s q[57]; +sx q[58]; +z q[60]; +z q[61]; +x q[62]; +cz q[19], q[35]; +cz q[34], q[23]; +cx q[15], q[6]; +cx q[17], q[46]; +cz q[4], q[12]; +cz q[50], q[5]; +cx q[13], q[16]; +cx q[42], q[18]; +cz q[56], q[10]; +cx q[14], q[52]; +cx q[60], q[43]; +cx q[3], q[44]; +cx q[29], q[58]; +cz q[40], q[61]; +cx q[62], q[47]; +cx q[9], q[41]; +cx q[21], q[0]; +cx q[7], q[38]; +cx q[27], q[26]; +cz q[51], q[59]; +cz q[39], q[25]; +cx q[53], q[45]; +cz q[48], q[1]; +cz q[30], q[36]; +cx q[33], q[55]; +cz q[32], q[20]; +cz q[2], q[11]; +cx q[57], q[37]; +cx q[49], q[24]; +cz q[8], q[22]; +cx q[31], q[54]; +s q[0]; +y q[1]; +y q[3]; +x q[4]; +y q[6]; +x q[7]; +sdg q[8]; +z q[9]; +sx q[10]; +y q[12]; +s q[19]; +x q[20]; +x q[21]; +sx q[23]; +x q[25]; +sx q[26]; +z q[28]; +h q[30]; +x q[33]; +sdg q[34]; +sx q[35]; +x q[36]; +y q[37]; +y q[38]; +x q[39]; +s q[40]; +s q[41]; +h q[44]; +sx q[45]; +h q[46]; +z q[47]; +x q[50]; +sdg q[52]; +sdg q[54]; +s q[55]; +sx q[58]; +sdg q[60]; +sx q[61]; +cz q[52], q[5]; +cz q[59], q[34]; +cz q[18], q[60]; +cx q[41], q[24]; +cx q[32], q[42]; +cz q[17], q[54]; +cx q[3], q[58]; +cx q[12], q[33]; +cx q[37], q[35]; +cx q[49], q[19]; +cz q[11], q[1]; +cx q[21], q[31]; +cx q[14], q[6]; +cz q[7], q[27]; +cz q[39], q[30]; +cz q[40], q[62]; +cx q[36], q[23]; +cx q[53], q[8]; +cz q[57], q[9]; +cx q[56], q[22]; +cx q[38], q[16]; +cx q[2], q[20]; +cz q[28], q[15]; +cz q[46], q[13]; +cz q[50], q[0]; +cz q[29], q[44]; +cx q[47], q[43]; +cx q[61], q[51]; +cx q[10], q[55]; +cz q[4], q[25]; +cx q[45], q[48]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/clifford_random_n64.qasm b/wai/quantum-cross-simulator/corpus/qasm/clifford_random_n64.qasm new file mode 100644 index 000000000..0057267c8 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/clifford_random_n64.qasm @@ -0,0 +1,896 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[64] q; +z q[0]; +z q[1]; +sx q[2]; +y q[4]; +x q[5]; +sx q[6]; +y q[7]; +x q[8]; +sx q[10]; +s q[11]; +z q[13]; +z q[14]; +sx q[16]; +sx q[18]; +sdg q[19]; +sx q[21]; +h q[22]; +x q[23]; +h q[25]; +sx q[26]; +x q[27]; +z q[28]; +h q[29]; +y q[30]; +sx q[32]; +z q[33]; +z q[35]; +sdg q[36]; +z q[37]; +z q[40]; +sdg q[41]; +z q[42]; +x q[43]; +h q[45]; +x q[46]; +z q[47]; +h q[48]; +sdg q[49]; +h q[50]; +s q[51]; +sdg q[53]; +x q[54]; +h q[57]; +h q[58]; +y q[60]; +y q[61]; +h q[62]; +x q[63]; +cz q[25], q[36]; +cx q[6], q[12]; +cx q[27], q[2]; +cz q[58], q[1]; +cx q[49], q[8]; +cx q[61], q[11]; +cz q[53], q[9]; +cx q[57], q[48]; +cz q[15], q[5]; +cx q[19], q[45]; +cx q[24], q[35]; +cx q[50], q[14]; +cz q[34], q[3]; +cz q[7], q[21]; +cz q[33], q[20]; +cx q[46], q[18]; +cx q[31], q[32]; +cz q[10], q[38]; +cz q[47], q[43]; +cz q[26], q[60]; +cz q[17], q[29]; +cz q[30], q[23]; +cz q[13], q[37]; +cx q[51], q[62]; +cx q[40], q[54]; +cx q[42], q[52]; +cx q[55], q[28]; +cx q[16], q[22]; +cz q[63], q[56]; +cz q[4], q[59]; +cz q[39], q[41]; +cz q[44], q[0]; +z q[0]; +h q[3]; +sdg q[4]; +z q[7]; +x q[8]; +s q[10]; +y q[11]; +sdg q[12]; +h q[13]; +z q[14]; +h q[16]; +sx q[17]; +sdg q[18]; +sdg q[20]; +sx q[28]; +y q[29]; +sx q[31]; +z q[33]; +sdg q[34]; +y q[36]; +sx q[37]; +sdg q[38]; +x q[39]; +sx q[40]; +z q[41]; +h q[42]; +s q[43]; +z q[45]; +s q[46]; +x q[48]; +sx q[49]; +x q[51]; +x q[52]; +x q[54]; +y q[55]; +s q[56]; +h q[57]; +x q[58]; +x q[59]; +x q[60]; +sdg q[61]; +s q[63]; +cx q[59], q[57]; +cz q[55], q[0]; +cx q[50], q[37]; +cz q[34], q[27]; +cx q[21], q[1]; +cx q[10], q[4]; +cx q[53], q[44]; +cz q[58], q[51]; +cz q[45], q[7]; +cx q[63], q[8]; +cz q[43], q[14]; +cz q[54], q[42]; +cz q[35], q[24]; +cx q[15], q[48]; +cz q[11], q[5]; +cx q[49], q[41]; +cx q[47], q[46]; +cx q[33], q[61]; +cx q[6], q[28]; +cz q[52], q[31]; +cz q[38], q[29]; +cx q[62], q[40]; +cz q[18], q[2]; +cx q[56], q[12]; +cz q[3], q[26]; +cz q[23], q[36]; +cz q[19], q[20]; +cx q[30], q[25]; +cx q[13], q[9]; +cz q[39], q[16]; +cz q[32], q[17]; +cz q[60], q[22]; +s q[0]; +sdg q[1]; +y q[2]; +h q[7]; +sx q[9]; +y q[10]; +sx q[11]; +sdg q[13]; +x q[15]; +sx q[17]; +x q[18]; +sx q[19]; +z q[20]; +s q[21]; +s q[22]; +sx q[23]; +sdg q[24]; +y q[25]; +z q[26]; +sx q[28]; +z q[29]; +sx q[31]; +sdg q[33]; +x q[34]; +s q[36]; +z q[37]; +z q[39]; +h q[45]; +x q[47]; +sx q[48]; +sx q[49]; +s q[52]; +x q[54]; +h q[55]; +x q[56]; +sx q[57]; +h q[58]; +x q[59]; +h q[61]; +y q[62]; +cz q[47], q[25]; +cx q[33], q[16]; +cx q[29], q[37]; +cx q[48], q[51]; +cx q[52], q[28]; +cz q[15], q[36]; +cz q[58], q[21]; +cz q[10], q[62]; +cx q[55], q[24]; +cz q[5], q[45]; +cz q[0], q[57]; +cx q[7], q[20]; +cx q[63], q[19]; +cx q[34], q[50]; +cz q[44], q[53]; +cz q[18], q[23]; +cz q[6], q[59]; +cx q[43], q[38]; +cz q[56], q[49]; +cz q[39], q[61]; +cz q[22], q[17]; +cz q[8], q[26]; +cz q[31], q[42]; +cz q[2], q[46]; +cx q[14], q[32]; +cx q[27], q[35]; +cz q[3], q[40]; +cx q[1], q[12]; +cz q[60], q[11]; +cz q[30], q[4]; +cx q[54], q[41]; +cz q[13], q[9]; +y q[0]; +sdg q[1]; +s q[7]; +x q[8]; +sdg q[9]; +sx q[11]; +sx q[12]; +s q[16]; +s q[18]; +h q[19]; +sdg q[20]; +y q[22]; +h q[23]; +s q[25]; +z q[27]; +z q[28]; +h q[29]; +sx q[31]; +s q[32]; +z q[33]; +sdg q[34]; +sx q[35]; +z q[37]; +s q[38]; +sx q[39]; +y q[40]; +y q[41]; +x q[45]; +x q[47]; +sdg q[48]; +z q[49]; +sx q[50]; +s q[52]; +h q[53]; +sx q[54]; +sx q[56]; +h q[57]; +s q[58]; +x q[60]; +h q[61]; +z q[62]; +cx q[29], q[61]; +cx q[4], q[33]; +cz q[20], q[23]; +cz q[51], q[32]; +cz q[25], q[43]; +cx q[45], q[30]; +cx q[58], q[38]; +cz q[60], q[13]; +cx q[40], q[36]; +cz q[35], q[42]; +cz q[53], q[62]; +cx q[9], q[21]; +cx q[39], q[27]; +cx q[7], q[6]; +cz q[26], q[18]; +cx q[16], q[49]; +cx q[55], q[17]; +cz q[14], q[47]; +cz q[24], q[34]; +cz q[11], q[19]; +cx q[44], q[57]; +cx q[3], q[48]; +cx q[63], q[2]; +cx q[50], q[12]; +cx q[56], q[37]; +cx q[59], q[15]; +cz q[41], q[22]; +cx q[46], q[28]; +cx q[5], q[52]; +cz q[1], q[10]; +cx q[54], q[31]; +cx q[8], q[0]; +z q[2]; +h q[3]; +sx q[4]; +h q[5]; +x q[6]; +z q[8]; +s q[10]; +h q[11]; +h q[12]; +x q[13]; +z q[15]; +sx q[16]; +sx q[17]; +s q[21]; +s q[22]; +sdg q[24]; +z q[26]; +x q[28]; +x q[29]; +y q[30]; +h q[31]; +y q[33]; +x q[35]; +sx q[36]; +sx q[37]; +y q[38]; +x q[39]; +y q[40]; +x q[41]; +z q[42]; +s q[43]; +x q[47]; +sdg q[48]; +x q[49]; +s q[50]; +sx q[53]; +x q[58]; +s q[59]; +sx q[60]; +x q[62]; +z q[63]; +cz q[7], q[14]; +cx q[55], q[27]; +cz q[15], q[8]; +cz q[47], q[18]; +cx q[60], q[9]; +cz q[30], q[36]; +cx q[16], q[50]; +cx q[52], q[4]; +cz q[3], q[22]; +cx q[41], q[48]; +cz q[62], q[44]; +cz q[19], q[40]; +cz q[5], q[51]; +cx q[33], q[23]; +cz q[13], q[6]; +cz q[28], q[20]; +cx q[32], q[11]; +cz q[39], q[2]; +cz q[53], q[54]; +cz q[57], q[38]; +cx q[56], q[49]; +cx q[58], q[25]; +cx q[35], q[34]; +cz q[59], q[29]; +cx q[42], q[46]; +cx q[31], q[63]; +cz q[45], q[17]; +cz q[43], q[26]; +cz q[37], q[10]; +cz q[21], q[0]; +cz q[1], q[12]; +cx q[24], q[61]; +x q[0]; +s q[2]; +sx q[4]; +s q[5]; +y q[7]; +sdg q[8]; +s q[9]; +sx q[11]; +sdg q[12]; +sdg q[14]; +z q[18]; +s q[19]; +z q[22]; +y q[24]; +s q[25]; +x q[26]; +sx q[27]; +x q[28]; +x q[29]; +h q[33]; +h q[34]; +x q[37]; +s q[38]; +sdg q[39]; +y q[42]; +y q[43]; +x q[44]; +x q[45]; +z q[47]; +h q[50]; +s q[52]; +y q[54]; +z q[55]; +s q[56]; +y q[57]; +s q[58]; +z q[59]; +y q[60]; +y q[61]; +y q[62]; +z q[63]; +cz q[53], q[61]; +cz q[58], q[56]; +cz q[50], q[0]; +cx q[12], q[30]; +cz q[10], q[59]; +cx q[4], q[49]; +cz q[9], q[7]; +cz q[42], q[13]; +cz q[57], q[19]; +cx q[47], q[28]; +cz q[43], q[35]; +cz q[27], q[22]; +cz q[20], q[54]; +cx q[52], q[15]; +cz q[23], q[55]; +cz q[25], q[17]; +cx q[38], q[45]; +cz q[3], q[32]; +cz q[26], q[11]; +cz q[2], q[21]; +cx q[62], q[5]; +cx q[41], q[18]; +cx q[60], q[40]; +cx q[39], q[63]; +cz q[37], q[36]; +cz q[6], q[51]; +cz q[16], q[31]; +cz q[24], q[29]; +cz q[46], q[44]; +cz q[48], q[14]; +cz q[1], q[33]; +cx q[8], q[34]; +x q[1]; +sx q[2]; +sx q[4]; +s q[5]; +h q[6]; +s q[7]; +h q[9]; +s q[10]; +y q[11]; +h q[12]; +sx q[13]; +s q[15]; +sdg q[16]; +y q[17]; +y q[18]; +h q[19]; +z q[20]; +z q[22]; +z q[23]; +sdg q[24]; +h q[25]; +sdg q[26]; +y q[28]; +sdg q[30]; +x q[31]; +y q[32]; +s q[33]; +x q[34]; +z q[35]; +sx q[36]; +h q[37]; +sdg q[38]; +x q[39]; +sdg q[41]; +h q[42]; +sdg q[44]; +h q[46]; +sx q[47]; +sdg q[49]; +y q[50]; +h q[52]; +sdg q[53]; +s q[55]; +x q[56]; +x q[57]; +s q[58]; +z q[60]; +h q[62]; +s q[63]; +cx q[9], q[3]; +cz q[58], q[11]; +cx q[2], q[40]; +cx q[17], q[21]; +cx q[52], q[61]; +cz q[51], q[30]; +cx q[63], q[62]; +cx q[14], q[54]; +cx q[27], q[24]; +cx q[18], q[6]; +cx q[43], q[34]; +cz q[23], q[32]; +cx q[38], q[7]; +cz q[49], q[31]; +cz q[22], q[50]; +cx q[37], q[59]; +cz q[0], q[29]; +cz q[13], q[33]; +cx q[46], q[26]; +cz q[36], q[57]; +cx q[15], q[55]; +cx q[4], q[28]; +cx q[25], q[41]; +cx q[44], q[10]; +cz q[47], q[16]; +cx q[53], q[1]; +cz q[60], q[5]; +cx q[20], q[56]; +cz q[8], q[35]; +cx q[19], q[12]; +cx q[45], q[42]; +cz q[48], q[39]; +sdg q[1]; +sdg q[4]; +x q[9]; +s q[10]; +sx q[11]; +h q[13]; +sx q[14]; +sx q[16]; +y q[17]; +s q[18]; +y q[19]; +s q[21]; +x q[23]; +sdg q[24]; +sx q[25]; +sdg q[26]; +sx q[27]; +y q[28]; +z q[29]; +z q[30]; +y q[31]; +x q[32]; +s q[33]; +sx q[34]; +y q[35]; +s q[37]; +y q[38]; +z q[39]; +y q[41]; +y q[42]; +s q[43]; +y q[45]; +z q[47]; +h q[48]; +sdg q[49]; +sdg q[50]; +z q[51]; +y q[53]; +s q[55]; +sdg q[56]; +z q[57]; +y q[60]; +sx q[63]; +cx q[45], q[37]; +cx q[11], q[18]; +cz q[21], q[25]; +cx q[27], q[60]; +cx q[58], q[47]; +cz q[52], q[53]; +cx q[9], q[61]; +cx q[3], q[49]; +cx q[39], q[24]; +cz q[19], q[6]; +cz q[48], q[1]; +cx q[36], q[40]; +cz q[31], q[28]; +cz q[33], q[50]; +cz q[16], q[13]; +cx q[5], q[57]; +cx q[22], q[51]; +cz q[14], q[30]; +cx q[63], q[12]; +cx q[55], q[38]; +cx q[46], q[35]; +cz q[41], q[59]; +cz q[23], q[34]; +cx q[8], q[7]; +cz q[2], q[15]; +cx q[44], q[43]; +cx q[17], q[56]; +cx q[54], q[0]; +cz q[62], q[42]; +cz q[20], q[10]; +cx q[29], q[4]; +cx q[32], q[26]; +sx q[1]; +h q[2]; +z q[5]; +x q[6]; +s q[8]; +s q[10]; +sx q[11]; +x q[12]; +z q[13]; +z q[15]; +h q[16]; +x q[17]; +sdg q[18]; +sdg q[20]; +sdg q[21]; +h q[22]; +z q[24]; +sdg q[27]; +sdg q[30]; +x q[31]; +x q[32]; +s q[33]; +y q[34]; +y q[39]; +sx q[42]; +y q[43]; +h q[44]; +sx q[45]; +sx q[46]; +sx q[47]; +sx q[50]; +sdg q[51]; +h q[52]; +sx q[53]; +sdg q[54]; +sdg q[56]; +sx q[60]; +s q[62]; +z q[63]; +cz q[17], q[7]; +cz q[3], q[45]; +cz q[41], q[5]; +cx q[46], q[13]; +cx q[27], q[29]; +cz q[49], q[26]; +cx q[62], q[44]; +cx q[30], q[35]; +cz q[50], q[1]; +cz q[56], q[52]; +cz q[9], q[38]; +cz q[54], q[59]; +cx q[11], q[25]; +cz q[55], q[22]; +cx q[61], q[43]; +cx q[0], q[19]; +cz q[18], q[58]; +cz q[8], q[28]; +cx q[15], q[40]; +cz q[34], q[6]; +cx q[12], q[36]; +cz q[57], q[63]; +cz q[53], q[37]; +cz q[20], q[47]; +cz q[48], q[14]; +cx q[16], q[60]; +cx q[32], q[31]; +cx q[42], q[51]; +cz q[4], q[39]; +cz q[23], q[24]; +cz q[10], q[21]; +cz q[2], q[33]; +sx q[0]; +h q[1]; +y q[4]; +sdg q[6]; +sx q[8]; +h q[10]; +h q[14]; +y q[15]; +y q[17]; +sdg q[18]; +x q[21]; +x q[22]; +sdg q[24]; +y q[25]; +x q[26]; +h q[27]; +sx q[28]; +x q[29]; +h q[30]; +x q[33]; +z q[34]; +sdg q[35]; +h q[36]; +sdg q[37]; +x q[38]; +h q[39]; +y q[40]; +h q[41]; +s q[42]; +sdg q[43]; +sdg q[44]; +sdg q[45]; +sdg q[47]; +sx q[51]; +s q[52]; +h q[53]; +s q[55]; +h q[56]; +z q[58]; +sdg q[59]; +z q[60]; +y q[61]; +z q[63]; +cz q[6], q[29]; +cz q[21], q[47]; +cx q[0], q[2]; +cz q[31], q[41]; +cz q[52], q[8]; +cz q[63], q[42]; +cx q[15], q[10]; +cx q[40], q[9]; +cz q[44], q[51]; +cz q[12], q[18]; +cz q[62], q[7]; +cx q[60], q[11]; +cx q[25], q[17]; +cx q[13], q[19]; +cz q[53], q[1]; +cz q[22], q[54]; +cx q[3], q[4]; +cx q[56], q[58]; +cx q[55], q[59]; +cx q[26], q[30]; +cz q[28], q[35]; +cz q[23], q[39]; +cz q[24], q[33]; +cz q[16], q[20]; +cz q[43], q[49]; +cz q[38], q[50]; +cz q[14], q[32]; +cx q[45], q[34]; +cz q[48], q[57]; +cx q[61], q[27]; +cx q[5], q[37]; +cx q[46], q[36]; +h q[2]; +y q[3]; +h q[4]; +z q[5]; +s q[6]; +h q[7]; +x q[9]; +sx q[10]; +sdg q[12]; +sdg q[13]; +z q[14]; +s q[15]; +z q[16]; +y q[18]; +z q[19]; +sdg q[21]; +z q[22]; +sx q[23]; +z q[24]; +h q[25]; +z q[26]; +z q[27]; +h q[28]; +s q[29]; +sx q[30]; +x q[32]; +h q[38]; +z q[39]; +z q[40]; +s q[42]; +sx q[43]; +y q[44]; +s q[45]; +y q[46]; +sdg q[49]; +x q[51]; +h q[52]; +y q[53]; +sdg q[54]; +z q[55]; +sx q[56]; +s q[57]; +z q[58]; +x q[60]; +sdg q[61]; +y q[63]; +cz q[6], q[40]; +cx q[56], q[33]; +cx q[26], q[4]; +cz q[34], q[20]; +cx q[23], q[17]; +cx q[61], q[21]; +cx q[7], q[38]; +cx q[30], q[48]; +cz q[13], q[3]; +cz q[9], q[25]; +cx q[32], q[12]; +cz q[42], q[51]; +cx q[2], q[39]; +cz q[62], q[47]; +cz q[24], q[14]; +cx q[37], q[50]; +cz q[36], q[5]; +cx q[35], q[10]; +cx q[49], q[44]; +cx q[16], q[46]; +cz q[15], q[54]; +cz q[59], q[58]; +cz q[52], q[0]; +cx q[43], q[53]; +cx q[22], q[19]; +cz q[55], q[27]; +cx q[18], q[57]; +cz q[28], q[1]; +cz q[60], q[41]; +cz q[29], q[8]; +cx q[11], q[63]; +cz q[45], q[31]; +sx q[0]; +h q[1]; +sdg q[4]; +y q[7]; +sdg q[8]; +s q[9]; +z q[10]; +y q[11]; +z q[12]; +x q[13]; +x q[14]; +x q[15]; +sdg q[18]; +x q[20]; +sx q[21]; +y q[22]; +y q[25]; +x q[31]; +x q[37]; +y q[38]; +s q[39]; +s q[40]; +y q[42]; +h q[45]; +sdg q[46]; +h q[49]; +h q[51]; +x q[53]; +sx q[54]; +s q[56]; +y q[57]; +sx q[58]; +h q[59]; +sdg q[60]; +s q[61]; +x q[62]; +cx q[43], q[10]; +cz q[21], q[50]; +cz q[34], q[59]; +cz q[37], q[57]; +cz q[53], q[39]; +cz q[28], q[20]; +cz q[13], q[12]; +cx q[42], q[44]; +cx q[61], q[38]; +cx q[60], q[1]; +cz q[52], q[33]; +cx q[63], q[23]; +cx q[7], q[51]; +cz q[17], q[32]; +cz q[0], q[4]; +cx q[41], q[30]; +cz q[48], q[27]; +cx q[58], q[16]; +cx q[56], q[14]; +cz q[29], q[9]; +cx q[11], q[47]; +cx q[55], q[24]; +cz q[22], q[6]; +cz q[46], q[5]; +cz q[19], q[45]; +cz q[31], q[35]; +cx q[15], q[26]; +cz q[18], q[2]; +cx q[3], q[8]; +cz q[49], q[62]; +cx q[54], q[40]; +cz q[36], q[25]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/clifford_random_n65.qasm b/wai/quantum-cross-simulator/corpus/qasm/clifford_random_n65.qasm new file mode 100644 index 000000000..952351df8 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/clifford_random_n65.qasm @@ -0,0 +1,899 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[65] q; +h q[1]; +y q[3]; +s q[4]; +y q[6]; +z q[7]; +z q[9]; +z q[10]; +s q[11]; +x q[12]; +z q[13]; +sdg q[15]; +h q[16]; +y q[17]; +y q[18]; +x q[19]; +z q[21]; +h q[22]; +sx q[23]; +s q[25]; +sx q[27]; +z q[29]; +sdg q[30]; +sx q[31]; +z q[34]; +z q[35]; +s q[36]; +x q[41]; +sdg q[42]; +sx q[44]; +x q[46]; +s q[49]; +sdg q[50]; +x q[51]; +y q[55]; +h q[56]; +sx q[57]; +y q[59]; +s q[61]; +z q[63]; +z q[64]; +cz q[35], q[50]; +cx q[58], q[23]; +cx q[63], q[48]; +cz q[16], q[62]; +cz q[21], q[22]; +cx q[43], q[39]; +cx q[53], q[55]; +cx q[0], q[15]; +cx q[6], q[52]; +cx q[64], q[47]; +cz q[34], q[27]; +cz q[7], q[59]; +cx q[24], q[17]; +cx q[13], q[19]; +cx q[32], q[3]; +cz q[45], q[33]; +cx q[4], q[28]; +cx q[14], q[26]; +cz q[57], q[12]; +cz q[11], q[9]; +cx q[20], q[42]; +cx q[25], q[51]; +cx q[30], q[38]; +cz q[61], q[31]; +cx q[54], q[29]; +cz q[36], q[1]; +cz q[49], q[60]; +cz q[5], q[8]; +cx q[40], q[46]; +cx q[2], q[10]; +cz q[41], q[56]; +cz q[37], q[18]; +s q[0]; +h q[3]; +s q[4]; +s q[6]; +z q[7]; +sdg q[8]; +x q[9]; +s q[11]; +h q[12]; +h q[14]; +h q[15]; +z q[16]; +sx q[17]; +sdg q[18]; +sx q[19]; +z q[21]; +sdg q[22]; +x q[25]; +y q[27]; +x q[28]; +sdg q[29]; +h q[30]; +y q[33]; +x q[36]; +s q[37]; +h q[38]; +z q[39]; +y q[40]; +y q[42]; +s q[43]; +sdg q[44]; +s q[45]; +h q[46]; +x q[48]; +x q[49]; +sdg q[50]; +sx q[51]; +z q[52]; +x q[55]; +s q[56]; +sdg q[57]; +sdg q[60]; +h q[61]; +h q[62]; +y q[63]; +sdg q[64]; +cz q[3], q[34]; +cz q[63], q[26]; +cx q[53], q[52]; +cz q[39], q[33]; +cx q[6], q[44]; +cx q[5], q[27]; +cx q[41], q[4]; +cx q[16], q[28]; +cz q[59], q[19]; +cz q[62], q[8]; +cz q[42], q[24]; +cz q[49], q[47]; +cx q[57], q[17]; +cz q[48], q[54]; +cz q[10], q[15]; +cx q[55], q[12]; +cx q[11], q[0]; +cx q[43], q[60]; +cz q[13], q[50]; +cx q[25], q[40]; +cx q[1], q[22]; +cz q[35], q[29]; +cx q[18], q[36]; +cz q[45], q[56]; +cz q[7], q[58]; +cz q[23], q[20]; +cz q[51], q[30]; +cx q[21], q[2]; +cx q[9], q[46]; +cz q[61], q[32]; +cz q[37], q[31]; +cx q[64], q[14]; +sdg q[0]; +sx q[1]; +s q[2]; +z q[3]; +z q[4]; +sx q[5]; +sx q[6]; +s q[7]; +h q[8]; +x q[9]; +s q[10]; +y q[11]; +x q[14]; +s q[15]; +z q[16]; +x q[17]; +sdg q[18]; +x q[19]; +sx q[20]; +sx q[21]; +s q[22]; +y q[23]; +z q[24]; +s q[25]; +z q[27]; +sx q[28]; +z q[29]; +sdg q[31]; +x q[32]; +h q[33]; +y q[35]; +x q[37]; +h q[38]; +x q[39]; +sdg q[40]; +h q[41]; +z q[43]; +sx q[44]; +s q[45]; +h q[46]; +s q[47]; +y q[48]; +x q[49]; +h q[51]; +sdg q[53]; +sx q[58]; +sx q[59]; +y q[62]; +cx q[5], q[29]; +cz q[3], q[42]; +cx q[10], q[39]; +cz q[50], q[9]; +cz q[32], q[54]; +cx q[15], q[31]; +cx q[20], q[58]; +cx q[37], q[46]; +cz q[38], q[51]; +cz q[49], q[22]; +cx q[16], q[53]; +cz q[35], q[21]; +cx q[18], q[34]; +cz q[26], q[1]; +cz q[57], q[30]; +cz q[62], q[40]; +cx q[27], q[43]; +cz q[25], q[64]; +cz q[13], q[56]; +cx q[19], q[33]; +cz q[24], q[59]; +cz q[47], q[48]; +cx q[17], q[44]; +cz q[41], q[23]; +cz q[52], q[45]; +cz q[6], q[28]; +cz q[0], q[61]; +cz q[11], q[7]; +cz q[63], q[12]; +cz q[2], q[14]; +cz q[60], q[55]; +cx q[4], q[8]; +sdg q[0]; +y q[2]; +s q[3]; +sx q[5]; +y q[6]; +x q[7]; +z q[9]; +z q[10]; +z q[11]; +z q[12]; +sdg q[13]; +x q[14]; +sx q[15]; +y q[16]; +sdg q[19]; +sx q[20]; +s q[21]; +y q[23]; +h q[24]; +h q[25]; +s q[26]; +y q[27]; +h q[28]; +x q[29]; +sx q[30]; +h q[31]; +z q[36]; +sdg q[39]; +y q[42]; +z q[47]; +y q[50]; +s q[53]; +x q[54]; +z q[55]; +s q[58]; +sdg q[59]; +y q[62]; +z q[63]; +x q[64]; +cx q[47], q[48]; +cx q[61], q[26]; +cx q[64], q[19]; +cz q[37], q[54]; +cx q[32], q[53]; +cz q[27], q[16]; +cz q[39], q[36]; +cz q[57], q[34]; +cz q[60], q[15]; +cx q[4], q[43]; +cz q[40], q[5]; +cz q[44], q[24]; +cz q[22], q[28]; +cx q[38], q[33]; +cz q[7], q[2]; +cx q[8], q[21]; +cz q[49], q[30]; +cz q[1], q[3]; +cx q[25], q[11]; +cz q[20], q[14]; +cx q[62], q[18]; +cz q[42], q[35]; +cz q[0], q[23]; +cz q[45], q[31]; +cz q[13], q[17]; +cx q[29], q[52]; +cz q[56], q[46]; +cz q[55], q[50]; +cz q[63], q[59]; +cx q[51], q[10]; +cz q[6], q[9]; +cx q[41], q[12]; +s q[2]; +x q[4]; +sx q[5]; +z q[6]; +h q[7]; +sx q[8]; +sx q[9]; +x q[12]; +sdg q[14]; +h q[15]; +z q[16]; +y q[17]; +x q[18]; +sx q[20]; +sx q[22]; +sx q[23]; +sdg q[24]; +sx q[25]; +s q[26]; +sdg q[27]; +h q[28]; +sx q[29]; +s q[31]; +h q[32]; +x q[33]; +z q[35]; +x q[37]; +h q[38]; +z q[40]; +z q[41]; +s q[45]; +sx q[46]; +h q[48]; +x q[49]; +z q[50]; +z q[51]; +x q[52]; +z q[53]; +s q[55]; +z q[56]; +s q[58]; +y q[60]; +x q[63]; +sdg q[64]; +cz q[21], q[22]; +cz q[12], q[17]; +cz q[40], q[41]; +cx q[25], q[20]; +cz q[37], q[44]; +cx q[61], q[52]; +cx q[3], q[35]; +cx q[45], q[58]; +cx q[24], q[50]; +cz q[26], q[32]; +cx q[39], q[47]; +cz q[10], q[51]; +cx q[48], q[18]; +cx q[49], q[30]; +cx q[6], q[63]; +cz q[55], q[42]; +cx q[62], q[54]; +cz q[8], q[53]; +cz q[28], q[34]; +cx q[14], q[1]; +cx q[36], q[0]; +cx q[27], q[5]; +cx q[64], q[11]; +cx q[23], q[46]; +cx q[31], q[38]; +cx q[56], q[33]; +cx q[2], q[16]; +cx q[4], q[9]; +cz q[19], q[7]; +cx q[57], q[15]; +cx q[59], q[13]; +cz q[60], q[29]; +s q[0]; +sdg q[1]; +z q[3]; +s q[4]; +y q[5]; +s q[6]; +z q[9]; +y q[10]; +s q[11]; +y q[12]; +s q[13]; +h q[16]; +sx q[17]; +sx q[18]; +s q[21]; +h q[22]; +z q[23]; +h q[24]; +z q[26]; +z q[27]; +x q[28]; +h q[29]; +x q[31]; +x q[32]; +y q[34]; +s q[35]; +z q[37]; +sdg q[38]; +z q[39]; +h q[40]; +sx q[42]; +s q[44]; +z q[45]; +h q[46]; +y q[47]; +z q[48]; +sx q[49]; +h q[50]; +x q[51]; +sdg q[52]; +y q[53]; +h q[56]; +sx q[57]; +x q[58]; +z q[59]; +z q[61]; +y q[62]; +sx q[63]; +h q[64]; +cx q[13], q[0]; +cx q[57], q[38]; +cx q[23], q[3]; +cz q[24], q[6]; +cx q[49], q[17]; +cx q[41], q[19]; +cx q[45], q[48]; +cz q[40], q[64]; +cx q[60], q[55]; +cx q[52], q[14]; +cx q[58], q[9]; +cz q[27], q[31]; +cx q[12], q[59]; +cx q[61], q[44]; +cz q[26], q[22]; +cz q[30], q[36]; +cx q[32], q[21]; +cx q[46], q[2]; +cx q[1], q[15]; +cx q[8], q[10]; +cz q[53], q[25]; +cx q[47], q[63]; +cx q[4], q[39]; +cz q[43], q[5]; +cz q[7], q[56]; +cx q[35], q[62]; +cz q[29], q[20]; +cx q[28], q[51]; +cz q[11], q[37]; +cx q[18], q[33]; +cx q[50], q[54]; +cx q[42], q[16]; +s q[0]; +x q[1]; +sdg q[2]; +x q[3]; +z q[4]; +z q[5]; +y q[6]; +y q[7]; +z q[8]; +z q[9]; +z q[10]; +sdg q[11]; +z q[13]; +s q[15]; +z q[17]; +y q[18]; +h q[20]; +sx q[22]; +z q[23]; +x q[25]; +s q[27]; +sdg q[28]; +x q[29]; +s q[30]; +s q[31]; +y q[34]; +h q[35]; +h q[37]; +x q[38]; +sx q[39]; +sx q[42]; +x q[44]; +h q[45]; +sx q[48]; +sdg q[49]; +x q[51]; +x q[52]; +h q[57]; +sx q[59]; +x q[61]; +y q[62]; +h q[63]; +sdg q[64]; +cx q[13], q[4]; +cz q[53], q[47]; +cz q[60], q[37]; +cz q[55], q[15]; +cx q[17], q[16]; +cx q[14], q[8]; +cx q[24], q[42]; +cx q[19], q[52]; +cz q[18], q[1]; +cz q[46], q[34]; +cz q[0], q[49]; +cz q[63], q[22]; +cx q[57], q[5]; +cx q[32], q[40]; +cz q[54], q[26]; +cx q[29], q[35]; +cz q[31], q[12]; +cz q[7], q[27]; +cx q[38], q[30]; +cz q[21], q[23]; +cz q[33], q[51]; +cx q[45], q[11]; +cx q[62], q[39]; +cx q[64], q[2]; +cx q[9], q[59]; +cx q[28], q[50]; +cz q[25], q[56]; +cz q[44], q[43]; +cz q[10], q[6]; +cz q[58], q[61]; +cx q[36], q[3]; +cx q[20], q[41]; +s q[0]; +s q[1]; +y q[2]; +sdg q[3]; +z q[6]; +z q[7]; +h q[8]; +z q[11]; +sdg q[12]; +y q[13]; +x q[15]; +y q[17]; +z q[18]; +sx q[19]; +s q[20]; +sx q[21]; +s q[22]; +h q[23]; +s q[25]; +x q[26]; +h q[30]; +z q[31]; +s q[34]; +x q[35]; +sdg q[36]; +sx q[38]; +y q[39]; +y q[41]; +x q[42]; +sx q[43]; +sdg q[44]; +z q[45]; +sdg q[49]; +y q[50]; +z q[51]; +sx q[53]; +h q[55]; +sdg q[57]; +sx q[58]; +s q[59]; +sx q[60]; +sdg q[61]; +z q[62]; +h q[63]; +cx q[63], q[14]; +cz q[34], q[56]; +cz q[54], q[11]; +cx q[32], q[31]; +cx q[59], q[61]; +cz q[8], q[44]; +cz q[33], q[58]; +cz q[12], q[13]; +cx q[16], q[10]; +cz q[23], q[57]; +cx q[19], q[21]; +cx q[6], q[64]; +cz q[25], q[47]; +cx q[4], q[20]; +cz q[60], q[1]; +cx q[22], q[15]; +cx q[0], q[53]; +cz q[39], q[35]; +cx q[38], q[62]; +cx q[18], q[49]; +cz q[46], q[45]; +cz q[28], q[3]; +cx q[43], q[51]; +cx q[55], q[41]; +cz q[7], q[2]; +cx q[5], q[37]; +cz q[26], q[52]; +cx q[27], q[50]; +cz q[9], q[40]; +cx q[48], q[29]; +cx q[17], q[36]; +cx q[42], q[24]; +y q[2]; +x q[4]; +x q[6]; +s q[7]; +z q[8]; +s q[11]; +x q[12]; +y q[13]; +s q[14]; +s q[15]; +sx q[16]; +sx q[19]; +sdg q[23]; +z q[26]; +h q[27]; +sdg q[30]; +z q[32]; +x q[33]; +z q[34]; +h q[37]; +s q[38]; +x q[40]; +z q[44]; +x q[45]; +z q[47]; +x q[48]; +s q[49]; +y q[50]; +z q[52]; +y q[54]; +sdg q[56]; +s q[57]; +h q[59]; +z q[60]; +s q[62]; +cx q[59], q[35]; +cz q[53], q[20]; +cx q[3], q[26]; +cz q[51], q[54]; +cx q[11], q[16]; +cz q[57], q[49]; +cx q[48], q[38]; +cx q[7], q[64]; +cz q[31], q[14]; +cz q[0], q[21]; +cz q[43], q[6]; +cz q[50], q[13]; +cx q[10], q[61]; +cz q[24], q[47]; +cx q[44], q[45]; +cz q[30], q[55]; +cz q[29], q[32]; +cx q[40], q[62]; +cx q[5], q[23]; +cx q[8], q[58]; +cz q[2], q[41]; +cx q[46], q[37]; +cz q[22], q[63]; +cz q[15], q[39]; +cx q[34], q[4]; +cx q[52], q[25]; +cx q[42], q[12]; +cz q[18], q[9]; +cx q[17], q[60]; +cx q[27], q[33]; +cx q[56], q[36]; +cx q[28], q[1]; +sx q[0]; +h q[1]; +x q[3]; +y q[5]; +z q[6]; +y q[7]; +sx q[8]; +sx q[10]; +z q[12]; +y q[14]; +y q[15]; +x q[16]; +sx q[17]; +y q[19]; +x q[20]; +h q[21]; +sdg q[22]; +x q[23]; +h q[24]; +y q[25]; +h q[26]; +z q[27]; +x q[29]; +sdg q[30]; +sdg q[31]; +sdg q[32]; +h q[33]; +s q[34]; +z q[35]; +x q[37]; +y q[39]; +s q[40]; +sdg q[42]; +y q[44]; +x q[45]; +z q[46]; +z q[47]; +sx q[48]; +h q[52]; +y q[55]; +s q[56]; +s q[59]; +y q[60]; +z q[62]; +h q[63]; +z q[64]; +cx q[64], q[30]; +cz q[12], q[2]; +cx q[18], q[7]; +cx q[16], q[11]; +cx q[60], q[63]; +cx q[59], q[34]; +cz q[4], q[48]; +cx q[53], q[31]; +cx q[56], q[1]; +cz q[25], q[51]; +cz q[54], q[29]; +cx q[58], q[55]; +cz q[5], q[46]; +cz q[37], q[44]; +cx q[35], q[13]; +cz q[0], q[50]; +cz q[27], q[38]; +cx q[43], q[40]; +cx q[19], q[33]; +cz q[22], q[8]; +cz q[24], q[14]; +cx q[28], q[32]; +cx q[52], q[61]; +cx q[3], q[26]; +cx q[20], q[41]; +cx q[17], q[47]; +cx q[23], q[39]; +cz q[57], q[10]; +cx q[45], q[9]; +cx q[21], q[6]; +cx q[36], q[42]; +cx q[15], q[62]; +s q[1]; +sx q[2]; +h q[3]; +sx q[6]; +x q[9]; +h q[10]; +sx q[11]; +z q[13]; +h q[14]; +sdg q[16]; +s q[17]; +h q[18]; +x q[20]; +y q[21]; +y q[24]; +sdg q[25]; +x q[26]; +s q[27]; +s q[28]; +sdg q[32]; +z q[33]; +h q[34]; +sx q[35]; +s q[36]; +x q[39]; +z q[40]; +s q[41]; +sx q[42]; +sx q[43]; +h q[46]; +z q[49]; +sdg q[50]; +sx q[51]; +sdg q[52]; +sdg q[53]; +y q[54]; +z q[55]; +sdg q[58]; +sdg q[59]; +z q[61]; +z q[62]; +cx q[56], q[54]; +cx q[15], q[35]; +cz q[43], q[60]; +cx q[17], q[39]; +cz q[33], q[13]; +cx q[38], q[28]; +cz q[61], q[19]; +cz q[50], q[62]; +cz q[46], q[57]; +cz q[32], q[40]; +cx q[10], q[14]; +cx q[6], q[29]; +cx q[18], q[26]; +cz q[41], q[59]; +cx q[11], q[7]; +cz q[12], q[9]; +cx q[42], q[49]; +cx q[64], q[3]; +cz q[44], q[53]; +cx q[24], q[45]; +cx q[63], q[27]; +cz q[36], q[30]; +cx q[51], q[20]; +cz q[0], q[55]; +cx q[25], q[21]; +cx q[58], q[22]; +cx q[1], q[4]; +cz q[52], q[2]; +cx q[34], q[31]; +cz q[37], q[8]; +cx q[5], q[48]; +cx q[47], q[16]; +sdg q[0]; +s q[1]; +h q[6]; +sdg q[7]; +y q[9]; +y q[12]; +sdg q[14]; +s q[15]; +s q[16]; +h q[17]; +z q[25]; +sx q[26]; +z q[28]; +h q[29]; +sx q[32]; +s q[34]; +sdg q[35]; +y q[36]; +sx q[38]; +z q[39]; +s q[40]; +y q[41]; +z q[42]; +sx q[43]; +sdg q[44]; +sdg q[45]; +h q[46]; +z q[49]; +sx q[50]; +z q[51]; +sx q[53]; +x q[56]; +y q[57]; +sx q[58]; +sx q[61]; +z q[62]; +sx q[63]; +cz q[11], q[29]; +cx q[24], q[13]; +cz q[25], q[36]; +cz q[22], q[39]; +cz q[20], q[26]; +cx q[17], q[46]; +cx q[50], q[49]; +cx q[23], q[44]; +cz q[47], q[21]; +cx q[54], q[30]; +cz q[52], q[34]; +cz q[60], q[9]; +cx q[33], q[7]; +cz q[43], q[56]; +cx q[18], q[3]; +cx q[1], q[61]; +cz q[51], q[6]; +cz q[32], q[8]; +cx q[35], q[59]; +cx q[0], q[38]; +cx q[40], q[27]; +cz q[45], q[64]; +cx q[2], q[62]; +cx q[57], q[58]; +cx q[53], q[63]; +cx q[28], q[10]; +cx q[4], q[48]; +cx q[41], q[5]; +cz q[31], q[14]; +cz q[15], q[37]; +cz q[55], q[42]; +cx q[19], q[12]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/clifford_t_n12_d40.qasm b/wai/quantum-cross-simulator/corpus/qasm/clifford_t_n12_d40.qasm new file mode 100644 index 000000000..1e13ad140 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/clifford_t_n12_d40.qasm @@ -0,0 +1,550 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[12] q; +t q[3]; +h q[6]; +sdg q[7]; +s q[8]; +sdg q[9]; +sdg q[10]; +cx q[6], q[11]; +cz q[5], q[3]; +cx q[8], q[9]; +cz q[0], q[10]; +cz q[2], q[4]; +cz q[1], q[7]; +x q[0]; +h q[2]; +sdg q[4]; +h q[9]; +h q[11]; +cx q[6], q[7]; +cz q[0], q[3]; +cx q[11], q[2]; +cz q[8], q[1]; +cz q[4], q[9]; +cz q[10], q[5]; +sdg q[0]; +t q[1]; +sdg q[3]; +h q[4]; +sdg q[5]; +s q[6]; +tdg q[7]; +h q[8]; +tdg q[9]; +h q[10]; +tdg q[11]; +cz q[2], q[1]; +cx q[3], q[11]; +cz q[5], q[9]; +cx q[8], q[7]; +cx q[6], q[10]; +cz q[4], q[0]; +s q[0]; +sdg q[1]; +tdg q[3]; +tdg q[4]; +tdg q[6]; +x q[7]; +s q[8]; +tdg q[9]; +h q[10]; +cz q[6], q[4]; +cx q[7], q[5]; +cz q[9], q[2]; +cx q[8], q[11]; +cz q[10], q[1]; +cz q[0], q[3]; +tdg q[0]; +tdg q[1]; +h q[3]; +sdg q[6]; +s q[8]; +t q[10]; +h q[11]; +cx q[0], q[1]; +cz q[8], q[2]; +cz q[10], q[4]; +cx q[5], q[9]; +cx q[11], q[3]; +cz q[6], q[7]; +sdg q[1]; +h q[2]; +x q[3]; +s q[4]; +t q[6]; +tdg q[8]; +h q[9]; +sdg q[10]; +cx q[0], q[8]; +cx q[3], q[10]; +cx q[9], q[4]; +cz q[1], q[11]; +cx q[7], q[2]; +cx q[6], q[5]; +s q[3]; +t q[4]; +x q[5]; +x q[6]; +sdg q[7]; +x q[8]; +h q[9]; +s q[10]; +cz q[2], q[1]; +cz q[10], q[3]; +cz q[6], q[9]; +cz q[4], q[0]; +cx q[8], q[7]; +cx q[5], q[11]; +tdg q[0]; +tdg q[1]; +tdg q[2]; +sdg q[4]; +sdg q[5]; +sdg q[6]; +t q[7]; +tdg q[8]; +cx q[3], q[5]; +cx q[11], q[10]; +cx q[6], q[1]; +cz q[9], q[2]; +cz q[8], q[7]; +cz q[0], q[4]; +t q[2]; +t q[3]; +sdg q[4]; +t q[5]; +x q[7]; +sdg q[8]; +x q[9]; +tdg q[10]; +s q[11]; +cz q[4], q[0]; +cx q[5], q[6]; +cx q[2], q[11]; +cx q[3], q[1]; +cx q[8], q[9]; +cx q[7], q[10]; +s q[1]; +t q[2]; +tdg q[4]; +sdg q[7]; +x q[8]; +sdg q[9]; +sdg q[11]; +cz q[3], q[11]; +cx q[9], q[8]; +cx q[5], q[2]; +cx q[6], q[1]; +cx q[4], q[10]; +cz q[7], q[0]; +tdg q[0]; +s q[1]; +s q[2]; +x q[3]; +sdg q[4]; +x q[5]; +sdg q[7]; +sdg q[11]; +cz q[4], q[8]; +cz q[10], q[7]; +cx q[2], q[5]; +cx q[3], q[0]; +cz q[11], q[1]; +cz q[6], q[9]; +s q[0]; +tdg q[1]; +x q[2]; +t q[3]; +h q[5]; +x q[6]; +x q[7]; +h q[8]; +sdg q[10]; +tdg q[11]; +cx q[0], q[3]; +cz q[2], q[11]; +cx q[7], q[4]; +cz q[10], q[9]; +cz q[6], q[8]; +cx q[5], q[1]; +x q[1]; +t q[2]; +t q[3]; +x q[4]; +s q[5]; +s q[6]; +tdg q[10]; +x q[11]; +cx q[8], q[7]; +cz q[10], q[11]; +cx q[6], q[4]; +cx q[1], q[2]; +cx q[9], q[3]; +cz q[0], q[5]; +s q[0]; +sdg q[1]; +h q[2]; +s q[3]; +x q[5]; +h q[6]; +x q[7]; +x q[10]; +s q[11]; +cz q[9], q[1]; +cx q[5], q[10]; +cz q[8], q[6]; +cx q[2], q[11]; +cx q[7], q[0]; +cx q[3], q[4]; +h q[0]; +tdg q[1]; +h q[2]; +t q[3]; +tdg q[4]; +sdg q[5]; +x q[7]; +tdg q[11]; +cx q[0], q[3]; +cz q[11], q[2]; +cx q[6], q[1]; +cz q[7], q[9]; +cz q[8], q[4]; +cx q[5], q[10]; +h q[1]; +tdg q[2]; +t q[3]; +tdg q[4]; +x q[5]; +t q[6]; +t q[7]; +s q[8]; +s q[9]; +x q[10]; +cz q[11], q[7]; +cz q[3], q[1]; +cx q[2], q[4]; +cz q[10], q[6]; +cx q[9], q[0]; +cx q[8], q[5]; +sdg q[0]; +tdg q[2]; +t q[3]; +sdg q[6]; +sdg q[9]; +x q[10]; +cx q[5], q[10]; +cx q[3], q[7]; +cx q[11], q[1]; +cz q[9], q[6]; +cx q[4], q[8]; +cz q[0], q[2]; +x q[1]; +x q[2]; +h q[3]; +tdg q[5]; +sdg q[9]; +sdg q[10]; +cx q[0], q[8]; +cz q[1], q[11]; +cz q[3], q[5]; +cx q[9], q[6]; +cx q[4], q[2]; +cx q[7], q[10]; +x q[1]; +t q[2]; +h q[9]; +sdg q[11]; +cz q[9], q[5]; +cx q[0], q[3]; +cz q[10], q[4]; +cx q[2], q[1]; +cz q[7], q[11]; +cx q[6], q[8]; +t q[1]; +t q[2]; +s q[3]; +t q[5]; +x q[10]; +t q[11]; +cz q[10], q[3]; +cx q[2], q[7]; +cz q[5], q[9]; +cx q[0], q[11]; +cz q[8], q[6]; +cx q[1], q[4]; +h q[0]; +s q[4]; +h q[5]; +x q[6]; +x q[7]; +h q[8]; +sdg q[9]; +t q[11]; +cz q[6], q[10]; +cx q[8], q[11]; +cz q[2], q[9]; +cz q[3], q[0]; +cx q[1], q[4]; +cx q[5], q[7]; +s q[4]; +t q[7]; +sdg q[8]; +tdg q[9]; +tdg q[10]; +h q[11]; +cz q[10], q[11]; +cx q[4], q[2]; +cx q[8], q[3]; +cz q[0], q[6]; +cx q[1], q[5]; +cz q[9], q[7]; +sdg q[0]; +sdg q[1]; +tdg q[2]; +h q[3]; +sdg q[5]; +tdg q[7]; +h q[8]; +t q[10]; +t q[11]; +cz q[9], q[2]; +cz q[5], q[6]; +cz q[1], q[10]; +cx q[7], q[4]; +cz q[0], q[3]; +cz q[11], q[8]; +tdg q[0]; +x q[2]; +sdg q[3]; +sdg q[5]; +x q[7]; +cx q[5], q[9]; +cx q[6], q[0]; +cx q[2], q[10]; +cx q[11], q[8]; +cz q[1], q[4]; +cx q[7], q[3]; +s q[0]; +h q[1]; +s q[2]; +sdg q[4]; +h q[5]; +sdg q[6]; +x q[7]; +x q[9]; +cz q[3], q[8]; +cz q[10], q[7]; +cx q[2], q[11]; +cx q[5], q[1]; +cx q[4], q[0]; +cx q[6], q[9]; +sdg q[1]; +t q[2]; +s q[3]; +h q[4]; +sdg q[7]; +s q[8]; +t q[10]; +h q[11]; +cx q[4], q[11]; +cx q[3], q[0]; +cx q[1], q[6]; +cx q[2], q[8]; +cx q[7], q[5]; +cx q[10], q[9]; +sdg q[0]; +sdg q[3]; +t q[4]; +s q[6]; +x q[8]; +t q[10]; +cz q[3], q[10]; +cx q[11], q[9]; +cx q[8], q[5]; +cx q[0], q[2]; +cx q[4], q[1]; +cx q[7], q[6]; +h q[0]; +t q[2]; +tdg q[3]; +t q[5]; +sdg q[8]; +sdg q[9]; +tdg q[10]; +t q[11]; +cz q[0], q[4]; +cz q[6], q[8]; +cx q[10], q[5]; +cz q[7], q[11]; +cz q[3], q[2]; +cz q[1], q[9]; +t q[0]; +h q[2]; +s q[3]; +x q[4]; +s q[5]; +s q[6]; +sdg q[7]; +sdg q[9]; +sdg q[11]; +cz q[4], q[9]; +cz q[10], q[5]; +cz q[7], q[1]; +cz q[8], q[0]; +cz q[2], q[11]; +cx q[3], q[6]; +tdg q[0]; +sdg q[2]; +h q[5]; +s q[6]; +t q[8]; +s q[9]; +h q[10]; +sdg q[11]; +cz q[0], q[6]; +cz q[3], q[1]; +cz q[9], q[5]; +cx q[11], q[4]; +cz q[7], q[8]; +cx q[10], q[2]; +h q[0]; +sdg q[1]; +x q[2]; +h q[3]; +h q[6]; +x q[7]; +x q[9]; +sdg q[10]; +x q[11]; +cx q[2], q[0]; +cz q[8], q[4]; +cz q[5], q[9]; +cz q[10], q[7]; +cz q[1], q[11]; +cx q[3], q[6]; +sdg q[6]; +h q[7]; +x q[8]; +t q[9]; +s q[10]; +cx q[7], q[11]; +cz q[1], q[9]; +cx q[5], q[0]; +cz q[3], q[10]; +cx q[2], q[6]; +cx q[4], q[8]; +t q[0]; +h q[2]; +sdg q[5]; +sdg q[6]; +s q[7]; +sdg q[9]; +t q[10]; +h q[11]; +cx q[2], q[5]; +cx q[3], q[0]; +cz q[8], q[6]; +cz q[1], q[4]; +cz q[9], q[7]; +cz q[10], q[11]; +sdg q[1]; +s q[2]; +tdg q[3]; +sdg q[7]; +h q[9]; +h q[11]; +cx q[10], q[9]; +cz q[8], q[0]; +cz q[3], q[5]; +cx q[2], q[4]; +cx q[7], q[1]; +cz q[11], q[6]; +sdg q[0]; +x q[2]; +x q[3]; +s q[5]; +h q[6]; +h q[7]; +t q[9]; +s q[10]; +cx q[8], q[6]; +cz q[5], q[4]; +cx q[3], q[7]; +cx q[9], q[11]; +cx q[1], q[10]; +cz q[0], q[2]; +h q[0]; +tdg q[1]; +sdg q[3]; +sdg q[4]; +t q[5]; +s q[6]; +sdg q[7]; +sdg q[8]; +h q[9]; +tdg q[11]; +cx q[2], q[7]; +cz q[6], q[3]; +cz q[11], q[8]; +cz q[1], q[0]; +cz q[9], q[10]; +cx q[5], q[4]; +s q[0]; +x q[3]; +tdg q[4]; +x q[5]; +t q[6]; +sdg q[7]; +tdg q[8]; +h q[9]; +t q[10]; +cx q[6], q[4]; +cx q[1], q[8]; +cx q[7], q[2]; +cx q[10], q[5]; +cz q[3], q[11]; +cz q[9], q[0]; +tdg q[1]; +t q[2]; +h q[3]; +sdg q[4]; +t q[6]; +t q[7]; +t q[8]; +tdg q[10]; +cz q[1], q[2]; +cz q[0], q[11]; +cx q[10], q[7]; +cx q[8], q[3]; +cx q[4], q[5]; +cz q[6], q[9]; +x q[0]; +s q[2]; +h q[3]; +tdg q[4]; +t q[5]; +h q[6]; +h q[7]; +s q[9]; +x q[10]; +t q[11]; +cx q[10], q[5]; +cx q[2], q[8]; +cx q[7], q[0]; +cx q[4], q[3]; +cx q[11], q[6]; +cx q[1], q[9]; +tdg q[2]; +t q[3]; +t q[6]; +h q[8]; +h q[10]; +tdg q[11]; +cx q[7], q[11]; +cx q[0], q[2]; +cx q[3], q[9]; +cz q[4], q[5]; +cz q[10], q[6]; +cz q[1], q[8]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/clifford_t_n4_d20.qasm b/wai/quantum-cross-simulator/corpus/qasm/clifford_t_n4_d20.qasm new file mode 100644 index 000000000..e62b1f1d9 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/clifford_t_n4_d20.qasm @@ -0,0 +1,100 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[4] q; +sdg q[0]; +t q[2]; +cx q[2], q[3]; +cz q[0], q[1]; +x q[0]; +sdg q[1]; +h q[2]; +sdg q[3]; +cx q[0], q[2]; +cz q[3], q[1]; +x q[2]; +x q[3]; +cx q[3], q[1]; +cx q[2], q[0]; +h q[0]; +tdg q[2]; +cx q[2], q[3]; +cx q[1], q[0]; +s q[0]; +sdg q[1]; +t q[2]; +tdg q[3]; +cz q[0], q[2]; +cz q[3], q[1]; +sdg q[0]; +s q[1]; +x q[2]; +cx q[2], q[3]; +cx q[0], q[1]; +h q[1]; +t q[3]; +cx q[2], q[3]; +cz q[0], q[1]; +h q[0]; +sdg q[1]; +tdg q[2]; +cx q[1], q[0]; +cz q[3], q[2]; +t q[0]; +h q[1]; +s q[2]; +h q[3]; +cx q[0], q[1]; +cx q[3], q[2]; +h q[0]; +sdg q[1]; +h q[2]; +s q[3]; +cz q[3], q[1]; +cx q[0], q[2]; +tdg q[1]; +tdg q[2]; +tdg q[3]; +cz q[1], q[3]; +cx q[2], q[0]; +t q[0]; +h q[3]; +cz q[1], q[0]; +cz q[2], q[3]; +h q[0]; +h q[2]; +tdg q[3]; +cx q[3], q[1]; +cz q[2], q[0]; +t q[0]; +x q[1]; +s q[2]; +s q[3]; +cz q[2], q[3]; +cz q[0], q[1]; +t q[0]; +h q[2]; +tdg q[3]; +cx q[0], q[1]; +cz q[3], q[2]; +x q[0]; +x q[3]; +cx q[3], q[2]; +cx q[1], q[0]; +h q[0]; +sdg q[1]; +sdg q[2]; +t q[3]; +cz q[3], q[0]; +cx q[1], q[2]; +h q[3]; +cz q[1], q[2]; +cz q[0], q[3]; +tdg q[0]; +tdg q[2]; +cz q[1], q[2]; +cx q[0], q[3]; +x q[1]; +tdg q[2]; +h q[3]; +cz q[3], q[2]; +cz q[0], q[1]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/clifford_t_n8_d40.qasm b/wai/quantum-cross-simulator/corpus/qasm/clifford_t_n8_d40.qasm new file mode 100644 index 000000000..e55ee4d62 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/clifford_t_n8_d40.qasm @@ -0,0 +1,377 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[8] q; +x q[1]; +h q[2]; +t q[4]; +h q[7]; +cz q[4], q[1]; +cz q[2], q[6]; +cx q[3], q[7]; +cx q[5], q[0]; +s q[1]; +t q[3]; +tdg q[5]; +h q[6]; +h q[7]; +cz q[1], q[7]; +cx q[5], q[2]; +cx q[0], q[6]; +cx q[4], q[3]; +sdg q[0]; +h q[1]; +h q[2]; +tdg q[4]; +sdg q[6]; +sdg q[7]; +cz q[6], q[2]; +cz q[4], q[0]; +cx q[1], q[5]; +cx q[7], q[3]; +sdg q[0]; +sdg q[3]; +x q[4]; +tdg q[5]; +sdg q[7]; +cz q[4], q[1]; +cx q[2], q[3]; +cz q[6], q[0]; +cz q[5], q[7]; +t q[0]; +h q[1]; +sdg q[2]; +tdg q[3]; +s q[4]; +s q[5]; +sdg q[7]; +cz q[1], q[5]; +cz q[4], q[7]; +cx q[0], q[3]; +cx q[6], q[2]; +h q[0]; +s q[1]; +tdg q[3]; +cx q[6], q[4]; +cz q[0], q[7]; +cx q[2], q[3]; +cx q[5], q[1]; +sdg q[0]; +tdg q[2]; +h q[5]; +tdg q[6]; +s q[7]; +cx q[1], q[4]; +cx q[7], q[0]; +cx q[5], q[3]; +cx q[6], q[2]; +h q[2]; +sdg q[4]; +x q[6]; +cx q[6], q[7]; +cz q[4], q[3]; +cx q[1], q[2]; +cz q[0], q[5]; +t q[3]; +x q[5]; +sdg q[7]; +cz q[2], q[4]; +cz q[3], q[1]; +cx q[6], q[7]; +cz q[0], q[5]; +tdg q[0]; +h q[1]; +t q[3]; +s q[4]; +x q[5]; +tdg q[6]; +sdg q[7]; +cz q[6], q[4]; +cx q[5], q[3]; +cx q[0], q[1]; +cz q[7], q[2]; +s q[1]; +h q[2]; +h q[3]; +t q[5]; +s q[6]; +s q[7]; +cx q[4], q[3]; +cx q[2], q[0]; +cz q[6], q[1]; +cx q[5], q[7]; +x q[0]; +x q[2]; +sdg q[3]; +t q[4]; +cx q[5], q[4]; +cz q[0], q[6]; +cx q[7], q[1]; +cz q[2], q[3]; +x q[0]; +h q[1]; +h q[2]; +tdg q[3]; +sdg q[6]; +cx q[5], q[1]; +cx q[3], q[7]; +cx q[4], q[6]; +cx q[0], q[2]; +h q[0]; +h q[1]; +sdg q[2]; +x q[3]; +s q[4]; +x q[5]; +h q[6]; +cz q[2], q[3]; +cz q[1], q[6]; +cx q[5], q[7]; +cx q[0], q[4]; +t q[1]; +s q[4]; +h q[5]; +t q[7]; +cx q[4], q[1]; +cx q[3], q[5]; +cx q[6], q[7]; +cz q[2], q[0]; +x q[3]; +sdg q[5]; +h q[6]; +cx q[6], q[0]; +cz q[5], q[2]; +cz q[1], q[4]; +cz q[7], q[3]; +s q[1]; +sdg q[5]; +x q[6]; +x q[7]; +cx q[6], q[3]; +cz q[7], q[4]; +cz q[0], q[2]; +cz q[1], q[5]; +x q[0]; +s q[1]; +tdg q[2]; +x q[3]; +sdg q[4]; +x q[5]; +t q[7]; +cx q[1], q[4]; +cz q[6], q[0]; +cz q[3], q[5]; +cx q[2], q[7]; +sdg q[0]; +t q[1]; +sdg q[2]; +t q[4]; +t q[5]; +x q[6]; +tdg q[7]; +cx q[5], q[7]; +cx q[4], q[2]; +cx q[0], q[3]; +cx q[6], q[1]; +s q[0]; +tdg q[1]; +t q[2]; +h q[3]; +h q[4]; +cx q[4], q[3]; +cx q[1], q[2]; +cx q[6], q[7]; +cz q[0], q[5]; +h q[0]; +s q[1]; +x q[4]; +h q[5]; +tdg q[7]; +cx q[6], q[0]; +cz q[2], q[7]; +cx q[4], q[3]; +cz q[5], q[1]; +sdg q[3]; +h q[4]; +h q[5]; +h q[6]; +sdg q[7]; +cx q[7], q[6]; +cx q[4], q[3]; +cx q[2], q[5]; +cx q[1], q[0]; +h q[1]; +x q[2]; +sdg q[3]; +t q[4]; +h q[6]; +cx q[0], q[5]; +cx q[4], q[1]; +cx q[3], q[2]; +cz q[6], q[7]; +s q[0]; +tdg q[1]; +x q[2]; +t q[3]; +tdg q[4]; +sdg q[6]; +tdg q[7]; +cz q[6], q[0]; +cz q[5], q[3]; +cx q[7], q[2]; +cz q[4], q[1]; +t q[0]; +sdg q[2]; +s q[3]; +tdg q[6]; +s q[7]; +cx q[7], q[1]; +cx q[3], q[2]; +cz q[6], q[4]; +cz q[5], q[0]; +t q[0]; +tdg q[2]; +tdg q[3]; +h q[4]; +x q[5]; +sdg q[6]; +cx q[2], q[0]; +cx q[1], q[6]; +cz q[4], q[3]; +cz q[5], q[7]; +h q[0]; +t q[1]; +s q[3]; +x q[4]; +tdg q[6]; +t q[7]; +cz q[7], q[6]; +cz q[0], q[1]; +cz q[3], q[5]; +cz q[4], q[2]; +sdg q[0]; +t q[1]; +tdg q[2]; +sdg q[4]; +x q[6]; +h q[7]; +cx q[2], q[5]; +cx q[6], q[3]; +cx q[7], q[1]; +cx q[0], q[4]; +tdg q[1]; +s q[2]; +t q[3]; +s q[4]; +h q[6]; +t q[7]; +cz q[7], q[0]; +cz q[6], q[5]; +cz q[3], q[1]; +cx q[2], q[4]; +x q[0]; +h q[1]; +s q[2]; +t q[4]; +sdg q[5]; +tdg q[6]; +h q[7]; +cx q[5], q[4]; +cz q[0], q[1]; +cx q[2], q[6]; +cx q[3], q[7]; +sdg q[0]; +sdg q[1]; +s q[3]; +h q[6]; +cz q[1], q[6]; +cx q[2], q[0]; +cx q[4], q[5]; +cz q[7], q[3]; +s q[1]; +h q[3]; +t q[4]; +tdg q[5]; +s q[6]; +sdg q[7]; +cx q[3], q[2]; +cx q[6], q[1]; +cx q[5], q[4]; +cx q[7], q[0]; +t q[0]; +s q[1]; +s q[2]; +h q[3]; +sdg q[4]; +tdg q[6]; +t q[7]; +cx q[6], q[1]; +cx q[7], q[3]; +cz q[5], q[4]; +cx q[0], q[2]; +sdg q[0]; +x q[1]; +sdg q[2]; +t q[3]; +tdg q[6]; +h q[7]; +cz q[0], q[2]; +cx q[4], q[3]; +cz q[7], q[5]; +cz q[6], q[1]; +h q[0]; +t q[2]; +tdg q[3]; +tdg q[4]; +tdg q[6]; +cx q[0], q[6]; +cz q[1], q[4]; +cz q[5], q[7]; +cx q[2], q[3]; +t q[1]; +t q[2]; +t q[3]; +t q[4]; +tdg q[6]; +h q[7]; +cz q[2], q[5]; +cx q[1], q[4]; +cz q[7], q[3]; +cx q[0], q[6]; +sdg q[1]; +s q[2]; +t q[3]; +t q[4]; +x q[5]; +t q[6]; +cz q[1], q[5]; +cx q[3], q[0]; +cz q[6], q[4]; +cz q[7], q[2]; +t q[1]; +sdg q[2]; +h q[3]; +tdg q[4]; +s q[5]; +x q[6]; +t q[7]; +cx q[4], q[0]; +cz q[1], q[6]; +cz q[5], q[7]; +cz q[2], q[3]; +sdg q[0]; +s q[2]; +s q[3]; +x q[6]; +cx q[7], q[0]; +cx q[1], q[3]; +cx q[4], q[6]; +cx q[5], q[2]; +tdg q[1]; +x q[2]; +s q[3]; +tdg q[4]; +x q[6]; +cz q[3], q[4]; +cz q[5], q[0]; +cz q[6], q[2]; +cx q[1], q[7]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/controlled_rz_full_turn.qasm b/wai/quantum-cross-simulator/corpus/qasm/controlled_rz_full_turn.qasm new file mode 100644 index 000000000..11da24fa7 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/controlled_rz_full_turn.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[2] q; +h q[0]; +h q[1]; +crz(pi*2) q[0], q[1]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/controlled_small_angle_k30.qasm b/wai/quantum-cross-simulator/corpus/qasm/controlled_small_angle_k30.qasm new file mode 100644 index 000000000..818d398d5 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/controlled_small_angle_k30.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[2] q; +h q[0]; +h q[1]; +cp(pi/536870912) q[0], q[1]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/dyadic_n10_k30.qasm b/wai/quantum-cross-simulator/corpus/qasm/dyadic_n10_k30.qasm new file mode 100644 index 000000000..582dce501 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/dyadic_n10_k30.qasm @@ -0,0 +1,438 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[10] q; +ry(pi*1941153179/1073741824) q[0]; +ry(pi*119997061/1073741824) q[1]; +rz(pi*3063532941/2147483648) q[2]; +ry(pi*2039996545/2147483648) q[3]; +rz(pi*935817721/536870912) q[4]; +ry(pi*105293621/536870912) q[5]; +rz(pi*1998922301/2147483648) q[6]; +rx(pi*4210031687/2147483648) q[7]; +ry(pi*984753229/536870912) q[8]; +rz(pi*1708466781/1073741824) q[9]; +cz q[0], q[1]; +cz q[2], q[3]; +cz q[4], q[5]; +cz q[6], q[7]; +cz q[8], q[9]; +rz(pi*3567105099/2147483648) q[0]; +rx(pi*3126821343/2147483648) q[1]; +rx(pi*2655085277/2147483648) q[2]; +rz(pi*324771633/268435456) q[3]; +rz(pi*2139264975/2147483648) q[4]; +rx(pi*252928877/268435456) q[5]; +rz(pi*1073337187/536870912) q[6]; +ry(pi*11373355/16777216) q[7]; +rz(pi*805057597/1073741824) q[8]; +rz(pi*1333639267/1073741824) q[9]; +cz q[1], q[2]; +cz q[3], q[4]; +cz q[5], q[6]; +cz q[7], q[8]; +ry(pi*4120338771/2147483648) q[0]; +rx(pi*3814404455/2147483648) q[1]; +rx(pi*3429367781/2147483648) q[2]; +ry(pi*172496455/268435456) q[3]; +ry(pi*991161955/1073741824) q[4]; +ry(pi*75207485/67108864) q[5]; +rx(pi*1492530901/1073741824) q[6]; +rz(pi*751435565/536870912) q[7]; +rx(pi*725678501/536870912) q[8]; +rx(pi*1419450953/2147483648) q[9]; +cz q[0], q[1]; +cz q[2], q[3]; +cz q[4], q[5]; +cz q[6], q[7]; +cz q[8], q[9]; +ry(pi*2213639871/2147483648) q[0]; +ry(pi*3262171/536870912) q[1]; +rz(pi*4028792267/2147483648) q[2]; +rz(pi*141559607/134217728) q[3]; +rz(pi*984804837/536870912) q[4]; +rx(pi*108931223/2147483648) q[5]; +rz(pi*307397381/1073741824) q[6]; +ry(pi*82613/268435456) q[7]; +rx(pi*161954959/2147483648) q[8]; +rx(pi*1899147053/2147483648) q[9]; +cz q[1], q[2]; +cz q[3], q[4]; +cz q[5], q[6]; +cz q[7], q[8]; +ry(pi*2952927589/2147483648) q[0]; +rz(pi*2527632547/2147483648) q[1]; +rz(pi*114138569/1073741824) q[2]; +rz(pi*3426399319/2147483648) q[3]; +ry(pi*175232739/536870912) q[4]; +rx(pi*1605165245/1073741824) q[5]; +rx(pi*405860319/1073741824) q[6]; +rz(pi*1361074205/1073741824) q[7]; +ry(pi*778448387/1073741824) q[8]; +rx(pi*2519248789/2147483648) q[9]; +cz q[0], q[1]; +cz q[2], q[3]; +cz q[4], q[5]; +cz q[6], q[7]; +cz q[8], q[9]; +rx(pi*1469149425/1073741824) q[0]; +rx(pi*2667104105/2147483648) q[1]; +rx(pi*943031235/2147483648) q[2]; +rx(pi*787012425/536870912) q[3]; +rx(pi*2580018157/2147483648) q[4]; +rz(pi*554033637/2147483648) q[5]; +rz(pi*3404419683/2147483648) q[6]; +rz(pi*804692519/1073741824) q[7]; +ry(pi*628525347/2147483648) q[8]; +rz(pi*1505029159/2147483648) q[9]; +cz q[1], q[2]; +cz q[3], q[4]; +cz q[5], q[6]; +cz q[7], q[8]; +rx(pi*890718525/536870912) q[0]; +rx(pi*2031694693/2147483648) q[1]; +rz(pi*288696011/268435456) q[2]; +rz(pi*1667583923/2147483648) q[3]; +ry(pi*1955963883/2147483648) q[4]; +rz(pi*254771191/2147483648) q[5]; +ry(pi*232954567/536870912) q[6]; +rz(pi*2088097457/1073741824) q[7]; +rx(pi*872373751/1073741824) q[8]; +ry(pi*621444251/1073741824) q[9]; +cz q[0], q[1]; +cz q[2], q[3]; +cz q[4], q[5]; +cz q[6], q[7]; +cz q[8], q[9]; +rx(pi*10284775/2147483648) q[0]; +rx(pi*1774331001/1073741824) q[1]; +ry(pi*719092869/536870912) q[2]; +rz(pi*895476647/536870912) q[3]; +ry(pi*215526359/268435456) q[4]; +ry(pi*1020471295/2147483648) q[5]; +rz(pi*533716009/268435456) q[6]; +rx(pi*1074555853/1073741824) q[7]; +ry(pi*1065755031/1073741824) q[8]; +ry(pi*704881689/536870912) q[9]; +cz q[1], q[2]; +cz q[3], q[4]; +cz q[5], q[6]; +cz q[7], q[8]; +ry(pi*3584482667/2147483648) q[0]; +rx(pi*323265143/2147483648) q[1]; +ry(pi*2839491089/2147483648) q[2]; +ry(pi*4290249761/2147483648) q[3]; +rx(pi*2428118697/2147483648) q[4]; +rx(pi*171514917/536870912) q[5]; +rz(pi*1607931015/2147483648) q[6]; +ry(pi*1479683809/1073741824) q[7]; +rx(pi*120506171/536870912) q[8]; +rz(pi*1431636037/2147483648) q[9]; +cz q[0], q[1]; +cz q[2], q[3]; +cz q[4], q[5]; +cz q[6], q[7]; +cz q[8], q[9]; +ry(pi*1726293527/1073741824) q[0]; +ry(pi*976577969/536870912) q[1]; +rx(pi*1006811523/2147483648) q[2]; +ry(pi*1855146299/2147483648) q[3]; +rz(pi*1885900151/2147483648) q[4]; +rz(pi*2781206329/2147483648) q[5]; +ry(pi*407481031/1073741824) q[6]; +rz(pi*391803635/2147483648) q[7]; +ry(pi*159662161/1073741824) q[8]; +rz(pi*4253253587/2147483648) q[9]; +cz q[1], q[2]; +cz q[3], q[4]; +cz q[5], q[6]; +cz q[7], q[8]; +ry(pi*618877475/2147483648) q[0]; +ry(pi*1127016225/2147483648) q[1]; +rx(pi*371995025/536870912) q[2]; +ry(pi*148148615/134217728) q[3]; +rx(pi*2624172449/2147483648) q[4]; +rz(pi*447275715/268435456) q[5]; +rz(pi*15875021/67108864) q[6]; +rx(pi*4229624159/2147483648) q[7]; +ry(pi*2214503617/2147483648) q[8]; +rz(pi*1924133437/1073741824) q[9]; +cz q[0], q[1]; +cz q[2], q[3]; +cz q[4], q[5]; +cz q[6], q[7]; +cz q[8], q[9]; +rz(pi*911892501/536870912) q[0]; +rz(pi*739312313/2147483648) q[1]; +rz(pi*480726481/268435456) q[2]; +rx(pi*2620465435/2147483648) q[3]; +ry(pi*3740402155/2147483648) q[4]; +rx(pi*2282790127/2147483648) q[5]; +rz(pi*3926442713/2147483648) q[6]; +ry(pi*556281011/536870912) q[7]; +ry(pi*231984895/536870912) q[8]; +rx(pi*1086334105/2147483648) q[9]; +cz q[1], q[2]; +cz q[3], q[4]; +cz q[5], q[6]; +cz q[7], q[8]; +ry(pi*2929434999/2147483648) q[0]; +ry(pi*406393045/268435456) q[1]; +ry(pi*1843364849/1073741824) q[2]; +rx(pi*39188317/67108864) q[3]; +rz(pi*2012505203/1073741824) q[4]; +rz(pi*850057741/1073741824) q[5]; +rz(pi*1148963221/1073741824) q[6]; +rx(pi*3330026959/2147483648) q[7]; +rz(pi*2740089857/2147483648) q[8]; +rz(pi*942502833/1073741824) q[9]; +cz q[0], q[1]; +cz q[2], q[3]; +cz q[4], q[5]; +cz q[6], q[7]; +cz q[8], q[9]; +rz(pi*386322983/268435456) q[0]; +rz(pi*147148907/134217728) q[1]; +ry(pi*670736637/2147483648) q[2]; +rz(pi*985247413/1073741824) q[3]; +ry(pi*3485006673/2147483648) q[4]; +rx(pi*209816259/134217728) q[5]; +rz(pi*48310643/33554432) q[6]; +rx(pi*181604235/134217728) q[7]; +ry(pi*921731051/2147483648) q[8]; +rz(pi*2608445519/2147483648) q[9]; +cz q[1], q[2]; +cz q[3], q[4]; +cz q[5], q[6]; +cz q[7], q[8]; +ry(pi*32552801/536870912) q[0]; +rx(pi*1104409363/2147483648) q[1]; +rx(pi*988294965/1073741824) q[2]; +rx(pi*2054409957/2147483648) q[3]; +rz(pi*2711859909/2147483648) q[4]; +rx(pi*116083119/268435456) q[5]; +rx(pi*1743949355/1073741824) q[6]; +rx(pi*402239801/268435456) q[7]; +rz(pi*3039941513/2147483648) q[8]; +rz(pi*1114622313/1073741824) q[9]; +cz q[0], q[1]; +cz q[2], q[3]; +cz q[4], q[5]; +cz q[6], q[7]; +cz q[8], q[9]; +rx(pi*1227638855/2147483648) q[0]; +ry(pi*10968099/268435456) q[1]; +rz(pi*462028963/2147483648) q[2]; +rz(pi*3714794167/2147483648) q[3]; +rx(pi*715349233/1073741824) q[4]; +rz(pi*3185319963/2147483648) q[5]; +rx(pi*705957071/2147483648) q[6]; +rx(pi*595007529/2147483648) q[7]; +ry(pi*279375267/1073741824) q[8]; +rz(pi*87583445/1073741824) q[9]; +cz q[1], q[2]; +cz q[3], q[4]; +cz q[5], q[6]; +cz q[7], q[8]; +rz(pi*24625517/536870912) q[0]; +rx(pi*3422082077/2147483648) q[1]; +ry(pi*2676132571/2147483648) q[2]; +rx(pi*764339397/1073741824) q[3]; +ry(pi*686752821/536870912) q[4]; +ry(pi*5813757/1073741824) q[5]; +rx(pi*670620271/536870912) q[6]; +rx(pi*4261302471/2147483648) q[7]; +rx(pi*889646205/1073741824) q[8]; +ry(pi*773814073/2147483648) q[9]; +cz q[0], q[1]; +cz q[2], q[3]; +cz q[4], q[5]; +cz q[6], q[7]; +cz q[8], q[9]; +rx(pi*3960060291/2147483648) q[0]; +rz(pi*4060650525/2147483648) q[1]; +ry(pi*1023099549/2147483648) q[2]; +rx(pi*2135991693/2147483648) q[3]; +ry(pi*1138707957/2147483648) q[4]; +rz(pi*2467173715/2147483648) q[5]; +ry(pi*1276556955/1073741824) q[6]; +rx(pi*174427379/1073741824) q[7]; +rx(pi*326732175/536870912) q[8]; +ry(pi*6703837/134217728) q[9]; +cz q[1], q[2]; +cz q[3], q[4]; +cz q[5], q[6]; +cz q[7], q[8]; +rx(pi*1057017407/536870912) q[0]; +ry(pi*1157822195/2147483648) q[1]; +ry(pi*123969639/536870912) q[2]; +rz(pi*2047541977/1073741824) q[3]; +rz(pi*1190876629/2147483648) q[4]; +rx(pi*3631495247/2147483648) q[5]; +ry(pi*65822687/1073741824) q[6]; +ry(pi*2407192861/2147483648) q[7]; +ry(pi*61268133/268435456) q[8]; +rz(pi*1208389431/2147483648) q[9]; +cz q[0], q[1]; +cz q[2], q[3]; +cz q[4], q[5]; +cz q[6], q[7]; +cz q[8], q[9]; +rz(pi*3507247325/2147483648) q[0]; +rz(pi*2365643163/2147483648) q[1]; +rx(pi*157401111/134217728) q[2]; +rx(pi*2269570345/2147483648) q[3]; +rx(pi*817567773/536870912) q[4]; +ry(pi*1732811843/2147483648) q[5]; +ry(pi*87568283/536870912) q[6]; +rx(pi*1780292283/2147483648) q[7]; +rz(pi*2042119601/2147483648) q[8]; +ry(pi*1005996591/536870912) q[9]; +cz q[1], q[2]; +cz q[3], q[4]; +cz q[5], q[6]; +cz q[7], q[8]; +rz(pi*1035540661/1073741824) q[0]; +ry(pi*1811875041/2147483648) q[1]; +ry(pi*1698663811/2147483648) q[2]; +rz(pi*2239444687/2147483648) q[3]; +ry(pi*3640446737/2147483648) q[4]; +rz(pi*3166364633/2147483648) q[5]; +rx(pi*1139860717/2147483648) q[6]; +rx(pi*70857867/536870912) q[7]; +rx(pi*1460890169/1073741824) q[8]; +rx(pi*1726063499/1073741824) q[9]; +cz q[0], q[1]; +cz q[2], q[3]; +cz q[4], q[5]; +cz q[6], q[7]; +cz q[8], q[9]; +rz(pi*1440806127/1073741824) q[0]; +rx(pi*2359970853/2147483648) q[1]; +rx(pi*1295598023/1073741824) q[2]; +rz(pi*15944483/33554432) q[3]; +rz(pi*1730057523/1073741824) q[4]; +ry(pi*454348629/1073741824) q[5]; +rz(pi*173694203/134217728) q[6]; +rz(pi*4056674379/2147483648) q[7]; +ry(pi*830292337/536870912) q[8]; +rz(pi*528516493/1073741824) q[9]; +cz q[1], q[2]; +cz q[3], q[4]; +cz q[5], q[6]; +cz q[7], q[8]; +rx(pi*1511383787/2147483648) q[0]; +rx(pi*2984571169/2147483648) q[1]; +ry(pi*3706064427/2147483648) q[2]; +rz(pi*436593985/2147483648) q[3]; +ry(pi*481693285/268435456) q[4]; +rx(pi*1830374583/2147483648) q[5]; +rx(pi*67980271/134217728) q[6]; +rz(pi*949211883/536870912) q[7]; +ry(pi*3936181671/2147483648) q[8]; +ry(pi*94502799/268435456) q[9]; +cz q[0], q[1]; +cz q[2], q[3]; +cz q[4], q[5]; +cz q[6], q[7]; +cz q[8], q[9]; +ry(pi*3247341075/2147483648) q[0]; +ry(pi*127508707/2147483648) q[1]; +rz(pi*111505215/67108864) q[2]; +ry(pi*1407757371/2147483648) q[3]; +rx(pi*329323497/1073741824) q[4]; +rz(pi*393559227/1073741824) q[5]; +rx(pi*236508355/268435456) q[6]; +ry(pi*1921350755/2147483648) q[7]; +rx(pi*1390885299/1073741824) q[8]; +ry(pi*126016259/134217728) q[9]; +cz q[1], q[2]; +cz q[3], q[4]; +cz q[5], q[6]; +cz q[7], q[8]; +rx(pi*387489097/1073741824) q[0]; +rz(pi*1197071071/2147483648) q[1]; +rx(pi*2582466421/2147483648) q[2]; +rx(pi*186659321/2147483648) q[3]; +ry(pi*768210895/536870912) q[4]; +ry(pi*2607653319/2147483648) q[5]; +ry(pi*29811191/536870912) q[6]; +ry(pi*655295157/1073741824) q[7]; +ry(pi*3304934753/2147483648) q[8]; +rx(pi*1475060307/1073741824) q[9]; +cz q[0], q[1]; +cz q[2], q[3]; +cz q[4], q[5]; +cz q[6], q[7]; +cz q[8], q[9]; +ry(pi*97704399/1073741824) q[0]; +rz(pi*1048184543/2147483648) q[1]; +rz(pi*3626660413/2147483648) q[2]; +ry(pi*3727720599/2147483648) q[3]; +ry(pi*4127105863/2147483648) q[4]; +rz(pi*897273481/1073741824) q[5]; +rz(pi*681064523/2147483648) q[6]; +ry(pi*226389307/134217728) q[7]; +ry(pi*23794401/33554432) q[8]; +rz(pi*3933242291/2147483648) q[9]; +cz q[1], q[2]; +cz q[3], q[4]; +cz q[5], q[6]; +cz q[7], q[8]; +rx(pi*3210135961/2147483648) q[0]; +ry(pi*279960603/1073741824) q[1]; +rx(pi*743956631/536870912) q[2]; +rx(pi*71819163/134217728) q[3]; +ry(pi*3352850711/2147483648) q[4]; +ry(pi*183450343/2147483648) q[5]; +rz(pi*500536989/268435456) q[6]; +rx(pi*1891049743/1073741824) q[7]; +ry(pi*207066025/268435456) q[8]; +rz(pi*2685681/16777216) q[9]; +cz q[0], q[1]; +cz q[2], q[3]; +cz q[4], q[5]; +cz q[6], q[7]; +cz q[8], q[9]; +rz(pi*3441326185/2147483648) q[0]; +rx(pi*784292239/2147483648) q[1]; +rx(pi*3538757235/2147483648) q[2]; +rx(pi*3590134657/2147483648) q[3]; +rx(pi*800462907/2147483648) q[4]; +rx(pi*820381419/536870912) q[5]; +rz(pi*1531861813/1073741824) q[6]; +rz(pi*2349299809/2147483648) q[7]; +rx(pi*1708628563/2147483648) q[8]; +rx(pi*1865803213/1073741824) q[9]; +cz q[1], q[2]; +cz q[3], q[4]; +cz q[5], q[6]; +cz q[7], q[8]; +rz(pi*1543205717/1073741824) q[0]; +rx(pi*304391543/1073741824) q[1]; +rx(pi*3102337495/2147483648) q[2]; +rx(pi*1718671631/1073741824) q[3]; +ry(pi*269020645/268435456) q[4]; +rz(pi*1889857073/2147483648) q[5]; +rz(pi*1025175913/536870912) q[6]; +rx(pi*8447111/67108864) q[7]; +rz(pi*2395023211/2147483648) q[8]; +rz(pi*647733097/2147483648) q[9]; +cz q[0], q[1]; +cz q[2], q[3]; +cz q[4], q[5]; +cz q[6], q[7]; +cz q[8], q[9]; +rx(pi*1487674381/1073741824) q[0]; +ry(pi*2694626879/2147483648) q[1]; +rx(pi*17496457/134217728) q[2]; +rx(pi*778144931/2147483648) q[3]; +rz(pi*717040113/2147483648) q[4]; +rz(pi*2060004691/2147483648) q[5]; +rx(pi*3925513333/2147483648) q[6]; +rz(pi*1956335501/2147483648) q[7]; +rz(pi*273172691/536870912) q[8]; +ry(pi*744202719/1073741824) q[9]; +cz q[1], q[2]; +cz q[3], q[4]; +cz q[5], q[6]; +cz q[7], q[8]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/dyadic_n6_k20.qasm b/wai/quantum-cross-simulator/corpus/qasm/dyadic_n6_k20.qasm new file mode 100644 index 000000000..17ccd9f7c --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/dyadic_n6_k20.qasm @@ -0,0 +1,173 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[6] q; +rx(pi*2857/16384) q[0]; +ry(pi*57095/32768) q[1]; +rz(pi*23127/16384) q[2]; +rz(pi*58865/32768) q[3]; +ry(pi*16363/8192) q[4]; +rx(pi*23313/32768) q[5]; +cz q[0], q[1]; +cz q[2], q[3]; +cz q[4], q[5]; +rx(pi*17575/32768) q[0]; +rx(pi*22163/16384) q[1]; +rx(pi*44751/32768) q[2]; +ry(pi*2473/32768) q[3]; +rz(pi*38551/32768) q[4]; +rz(pi*3521/8192) q[5]; +cz q[1], q[2]; +cz q[3], q[4]; +rx(pi*62477/32768) q[0]; +rz(pi*26675/32768) q[1]; +rx(pi*50073/32768) q[2]; +rx(pi*4487/8192) q[3]; +rz(pi*7239/8192) q[4]; +ry(pi*45613/32768) q[5]; +cz q[0], q[1]; +cz q[2], q[3]; +cz q[4], q[5]; +ry(pi*22805/16384) q[0]; +rz(pi*14591/32768) q[1]; +rx(pi*871/32768) q[2]; +rx(pi*32387/16384) q[3]; +rz(pi*51329/32768) q[4]; +ry(pi*60931/32768) q[5]; +cz q[1], q[2]; +cz q[3], q[4]; +rx(pi*32201/16384) q[0]; +rz(pi*5601/8192) q[1]; +rx(pi*2651/8192) q[2]; +rz(pi*55643/32768) q[3]; +rz(pi*14209/8192) q[4]; +rx(pi*5039/8192) q[5]; +cz q[0], q[1]; +cz q[2], q[3]; +cz q[4], q[5]; +rx(pi*47879/32768) q[0]; +rz(pi*62789/32768) q[1]; +ry(pi*3275/32768) q[2]; +ry(pi*51443/32768) q[3]; +rx(pi*3733/32768) q[4]; +rx(pi*5977/16384) q[5]; +cz q[1], q[2]; +cz q[3], q[4]; +rx(pi*3203/16384) q[0]; +rz(pi*36245/32768) q[1]; +rz(pi*62069/32768) q[2]; +rx(pi*6335/32768) q[3]; +rz(pi*3793/32768) q[4]; +ry(pi*29391/16384) q[5]; +cz q[0], q[1]; +cz q[2], q[3]; +cz q[4], q[5]; +rz(pi*11237/8192) q[0]; +ry(pi*48759/32768) q[1]; +rz(pi*62119/32768) q[2]; +rx(pi*46915/32768) q[3]; +rx(pi*13091/8192) q[4]; +rz(pi*7659/4096) q[5]; +cz q[1], q[2]; +cz q[3], q[4]; +rx(pi*767/512) q[0]; +rx(pi*42297/32768) q[1]; +rz(pi*9983/16384) q[2]; +ry(pi*45335/32768) q[3]; +rx(pi*25345/16384) q[4]; +rx(pi*55635/32768) q[5]; +cz q[0], q[1]; +cz q[2], q[3]; +cz q[4], q[5]; +ry(pi*63595/32768) q[0]; +ry(pi*40691/32768) q[1]; +ry(pi*1289/4096) q[2]; +ry(pi*1213/2048) q[3]; +ry(pi*7233/4096) q[4]; +rz(pi*29739/32768) q[5]; +cz q[1], q[2]; +cz q[3], q[4]; +rx(pi*23079/16384) q[0]; +rx(pi*37417/32768) q[1]; +rx(pi*39465/32768) q[2]; +rz(pi*50149/32768) q[3]; +rz(pi*6493/8192) q[4]; +rx(pi*16443/32768) q[5]; +cz q[0], q[1]; +cz q[2], q[3]; +cz q[4], q[5]; +ry(pi*15671/16384) q[0]; +rx(pi*8531/8192) q[1]; +rz(pi*27691/16384) q[2]; +ry(pi*24469/32768) q[3]; +rz(pi*23961/16384) q[4]; +rz(pi*15367/16384) q[5]; +cz q[1], q[2]; +cz q[3], q[4]; +ry(pi*7525/4096) q[0]; +ry(pi*18509/16384) q[1]; +rz(pi*2917/16384) q[2]; +ry(pi*13989/16384) q[3]; +rx(pi*17649/16384) q[4]; +ry(pi*23633/32768) q[5]; +cz q[0], q[1]; +cz q[2], q[3]; +cz q[4], q[5]; +rx(pi*51421/32768) q[0]; +ry(pi*64749/32768) q[1]; +ry(pi*2765/16384) q[2]; +rx(pi*17049/32768) q[3]; +rz(pi*2099/16384) q[4]; +ry(pi*10731/32768) q[5]; +cz q[1], q[2]; +cz q[3], q[4]; +ry(pi*12119/16384) q[0]; +rz(pi*3607/16384) q[1]; +ry(pi*50003/32768) q[2]; +rx(pi*29473/16384) q[3]; +ry(pi*615/4096) q[4]; +ry(pi*23359/16384) q[5]; +cz q[0], q[1]; +cz q[2], q[3]; +cz q[4], q[5]; +rz(pi*20249/32768) q[0]; +rz(pi*19399/16384) q[1]; +rx(pi*25997/32768) q[2]; +rx(pi*603/512) q[3]; +ry(pi*4993/16384) q[4]; +ry(pi*4405/32768) q[5]; +cz q[1], q[2]; +cz q[3], q[4]; +ry(pi*2493/32768) q[0]; +rx(pi*5507/4096) q[1]; +rz(pi*2619/4096) q[2]; +rx(pi*42829/32768) q[3]; +rz(pi*2861/2048) q[4]; +rx(pi*21319/16384) q[5]; +cz q[0], q[1]; +cz q[2], q[3]; +cz q[4], q[5]; +rz(pi*11563/32768) q[0]; +rx(pi*2583/16384) q[1]; +rz(pi*40013/32768) q[2]; +rz(pi*11511/16384) q[3]; +rz(pi*29031/16384) q[4]; +rx(pi*21071/32768) q[5]; +cz q[1], q[2]; +cz q[3], q[4]; +ry(pi*26803/32768) q[0]; +ry(pi*327/2048) q[1]; +rz(pi*12821/8192) q[2]; +rx(pi*11509/8192) q[3]; +rz(pi*1039/8192) q[4]; +ry(pi*50419/32768) q[5]; +cz q[0], q[1]; +cz q[2], q[3]; +cz q[4], q[5]; +rz(pi*2103/32768) q[0]; +ry(pi*10565/8192) q[1]; +rz(pi*48835/32768) q[2]; +rx(pi*12237/8192) q[3]; +rz(pi*26015/16384) q[4]; +ry(pi*31421/16384) q[5]; +cz q[1], q[2]; +cz q[3], q[4]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/empty_register.qasm b/wai/quantum-cross-simulator/corpus/qasm/empty_register.qasm new file mode 100644 index 000000000..21d091b6e --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/empty_register.qasm @@ -0,0 +1,3 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[3] q; diff --git a/wai/quantum-cross-simulator/corpus/qasm/feedback_flip.qasm b/wai/quantum-cross-simulator/corpus/qasm/feedback_flip.qasm new file mode 100644 index 000000000..2e3845add --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/feedback_flip.qasm @@ -0,0 +1,8 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +bit[2] c; +h q[0]; +c[0] = measure q[0]; +if (c[0] == 1) { x q[0]; } +c[1] = measure q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/full_turn_p_t1_0.qasm b/wai/quantum-cross-simulator/corpus/qasm/full_turn_p_t1_0.qasm new file mode 100644 index 000000000..a48e4d802 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/full_turn_p_t1_0.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +p(pi*2) q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/full_turn_rx_t1_0.qasm b/wai/quantum-cross-simulator/corpus/qasm/full_turn_rx_t1_0.qasm new file mode 100644 index 000000000..104f5c9b0 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/full_turn_rx_t1_0.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +rx(pi*2) q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/full_turn_ry_t1_0.qasm b/wai/quantum-cross-simulator/corpus/qasm/full_turn_ry_t1_0.qasm new file mode 100644 index 000000000..d42a3be0f --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/full_turn_ry_t1_0.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +ry(pi*2) q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/full_turn_rz_t1_0.qasm b/wai/quantum-cross-simulator/corpus/qasm/full_turn_rz_t1_0.qasm new file mode 100644 index 000000000..60b4bd138 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/full_turn_rz_t1_0.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +rz(pi*2) q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/full_turn_rz_t2_0.qasm b/wai/quantum-cross-simulator/corpus/qasm/full_turn_rz_t2_0.qasm new file mode 100644 index 000000000..3e21a42c6 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/full_turn_rz_t2_0.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +rz(pi*4) q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/full_turn_u_t1_0.qasm b/wai/quantum-cross-simulator/corpus/qasm/full_turn_u_t1_0.qasm new file mode 100644 index 000000000..2f0e07436 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/full_turn_u_t1_0.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +U(pi*2, 0, 0) q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_c2p.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_c2p.qasm new file mode 100644 index 000000000..9aa38e3b8 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_c2p.qasm @@ -0,0 +1,10 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[3] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +ry(pi/16) q[1]; +rz(pi*3/64) q[1]; +ry(pi/32) q[2]; +rz(pi*3/128) q[2]; +ctrl(2) @ p(pi*3/64) q[0], q[1], q[2]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_c2ry.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_c2ry.qasm new file mode 100644 index 000000000..735d6704b --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_c2ry.qasm @@ -0,0 +1,10 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[3] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +ry(pi/16) q[1]; +rz(pi*3/64) q[1]; +ry(pi/32) q[2]; +rz(pi*3/128) q[2]; +ctrl(2) @ ry(pi*3/64) q[0], q[1], q[2]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_c2rz.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_c2rz.qasm new file mode 100644 index 000000000..e17813b7d --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_c2rz.qasm @@ -0,0 +1,10 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[3] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +ry(pi/16) q[1]; +rz(pi*3/64) q[1]; +ry(pi/32) q[2]; +rz(pi*3/128) q[2]; +ctrl(2) @ rz(pi*3/64) q[0], q[1], q[2]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_c3x.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_c3x.qasm new file mode 100644 index 000000000..db5abf41f --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_c3x.qasm @@ -0,0 +1,12 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[4] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +ry(pi/16) q[1]; +rz(pi*3/64) q[1]; +ry(pi/32) q[2]; +rz(pi*3/128) q[2]; +ry(pi/64) q[3]; +rz(pi*3/256) q[3]; +ctrl(3) @ x q[0], q[1], q[2], q[3]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_c3z.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_c3z.qasm new file mode 100644 index 000000000..f6a13fd9c --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_c3z.qasm @@ -0,0 +1,12 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[4] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +ry(pi/16) q[1]; +rz(pi*3/64) q[1]; +ry(pi/32) q[2]; +rz(pi*3/128) q[2]; +ry(pi/64) q[3]; +rz(pi*3/256) q[3]; +ctrl(3) @ z q[0], q[1], q[2], q[3]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_ccx.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_ccx.qasm new file mode 100644 index 000000000..e55befc2a --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_ccx.qasm @@ -0,0 +1,10 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[3] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +ry(pi/16) q[1]; +rz(pi*3/64) q[1]; +ry(pi/32) q[2]; +rz(pi*3/128) q[2]; +ccx q[0], q[1], q[2]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_ccz.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_ccz.qasm new file mode 100644 index 000000000..3dc254ce3 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_ccz.qasm @@ -0,0 +1,10 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[3] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +ry(pi/16) q[1]; +rz(pi*3/64) q[1]; +ry(pi/32) q[2]; +rz(pi*3/128) q[2]; +ctrl(2) @ z q[0], q[1], q[2]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_ch.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_ch.qasm new file mode 100644 index 000000000..ee4c5fa54 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_ch.qasm @@ -0,0 +1,8 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[2] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +ry(pi/16) q[1]; +rz(pi*3/64) q[1]; +ch q[0], q[1]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_cp.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_cp.qasm new file mode 100644 index 000000000..3d637d2fa --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_cp.qasm @@ -0,0 +1,8 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[2] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +ry(pi/16) q[1]; +rz(pi*3/64) q[1]; +cp(pi*3/64) q[0], q[1]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_crx.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_crx.qasm new file mode 100644 index 000000000..1a974bc20 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_crx.qasm @@ -0,0 +1,8 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[2] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +ry(pi/16) q[1]; +rz(pi*3/64) q[1]; +crx(pi*3/64) q[0], q[1]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_cry.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_cry.qasm new file mode 100644 index 000000000..e21838634 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_cry.qasm @@ -0,0 +1,8 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[2] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +ry(pi/16) q[1]; +rz(pi*3/64) q[1]; +cry(pi*3/64) q[0], q[1]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_crz.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_crz.qasm new file mode 100644 index 000000000..1d3b0a649 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_crz.qasm @@ -0,0 +1,8 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[2] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +ry(pi/16) q[1]; +rz(pi*3/64) q[1]; +crz(pi*3/64) q[0], q[1]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_cswap.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_cswap.qasm new file mode 100644 index 000000000..25e53bdf8 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_cswap.qasm @@ -0,0 +1,10 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[3] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +ry(pi/16) q[1]; +rz(pi*3/64) q[1]; +ry(pi/32) q[2]; +rz(pi*3/128) q[2]; +cswap q[0], q[1], q[2]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_csx.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_csx.qasm new file mode 100644 index 000000000..3c3acc203 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_csx.qasm @@ -0,0 +1,8 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[2] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +ry(pi/16) q[1]; +rz(pi*3/64) q[1]; +ctrl(1) @ sx q[0], q[1]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_cu.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_cu.qasm new file mode 100644 index 000000000..3c9edb024 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_cu.qasm @@ -0,0 +1,8 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[2] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +ry(pi/16) q[1]; +rz(pi*3/64) q[1]; +cu(pi*3/64, pi*5/128, pi*7/256, pi/16) q[0], q[1]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_cx.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_cx.qasm new file mode 100644 index 000000000..cf1b97e27 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_cx.qasm @@ -0,0 +1,8 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[2] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +ry(pi/16) q[1]; +rz(pi*3/64) q[1]; +cx q[0], q[1]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_cy.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_cy.qasm new file mode 100644 index 000000000..de2bc257e --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_cy.qasm @@ -0,0 +1,8 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[2] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +ry(pi/16) q[1]; +rz(pi*3/64) q[1]; +cy q[0], q[1]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_cz.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_cz.qasm new file mode 100644 index 000000000..35799eaa9 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_cz.qasm @@ -0,0 +1,8 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[2] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +ry(pi/16) q[1]; +rz(pi*3/64) q[1]; +cz q[0], q[1]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_gphase_controlled.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_gphase_controlled.qasm new file mode 100644 index 000000000..e932f21c0 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_gphase_controlled.qasm @@ -0,0 +1,8 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[2] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +ry(pi/16) q[1]; +rz(pi*3/64) q[1]; +ctrl(1) @ gphase(pi*3/64) q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_h.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_h.qasm new file mode 100644 index 000000000..35f3089b2 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_h.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +h q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_id.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_id.qasm new file mode 100644 index 000000000..df5064fcc --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_id.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +id q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_negcx.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_negcx.qasm new file mode 100644 index 000000000..0a155d307 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_negcx.qasm @@ -0,0 +1,8 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[2] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +ry(pi/16) q[1]; +rz(pi*3/64) q[1]; +negctrl @ x q[0], q[1]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_p.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_p.qasm new file mode 100644 index 000000000..5db7ed854 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_p.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +p(pi*3/64) q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_rx.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_rx.qasm new file mode 100644 index 000000000..4473eddd2 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_rx.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +rx(pi*3/64) q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_rxx.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_rxx.qasm new file mode 100644 index 000000000..e663d37a9 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_rxx.qasm @@ -0,0 +1,9 @@ +OPENQASM 3.0; +include "stdgates.inc"; +gate rxx(theta) a, b { h a; h b; cx a, b; rz(theta) b; cx a, b; h a; h b; } +qubit[2] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +ry(pi/16) q[1]; +rz(pi*3/64) q[1]; +rxx(pi*3/64) q[0], q[1]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_ry.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_ry.qasm new file mode 100644 index 000000000..6bb0a81d9 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_ry.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +ry(pi*3/64) q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_ryy.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_ryy.qasm new file mode 100644 index 000000000..f4481884e --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_ryy.qasm @@ -0,0 +1,9 @@ +OPENQASM 3.0; +include "stdgates.inc"; +gate ryy(theta) a, b { rx(pi/2) a; rx(pi/2) b; cx a, b; rz(theta) b; cx a, b; rx(-pi/2) a; rx(-pi/2) b; } +qubit[2] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +ry(pi/16) q[1]; +rz(pi*3/64) q[1]; +ryy(pi*3/64) q[0], q[1]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_rz.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_rz.qasm new file mode 100644 index 000000000..4e1acf4d1 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_rz.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +rz(pi*3/64) q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_rzz.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_rzz.qasm new file mode 100644 index 000000000..d67b053fb --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_rzz.qasm @@ -0,0 +1,9 @@ +OPENQASM 3.0; +include "stdgates.inc"; +gate rzz(theta) a, b { cx a, b; rz(theta) b; cx a, b; } +qubit[2] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +ry(pi/16) q[1]; +rz(pi*3/64) q[1]; +rzz(pi*3/64) q[0], q[1]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_s.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_s.qasm new file mode 100644 index 000000000..ed6ec12df --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_s.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +s q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_sdg.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_sdg.qasm new file mode 100644 index 000000000..81b86f9dc --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_sdg.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +sdg q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_swap.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_swap.qasm new file mode 100644 index 000000000..589da2fb4 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_swap.qasm @@ -0,0 +1,8 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[2] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +ry(pi/16) q[1]; +rz(pi*3/64) q[1]; +swap q[0], q[1]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_sx.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_sx.qasm new file mode 100644 index 000000000..a220a5380 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_sx.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +sx q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_sxdg.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_sxdg.qasm new file mode 100644 index 000000000..f7858077e --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_sxdg.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +inv @ sx q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_t.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_t.qasm new file mode 100644 index 000000000..143c92da8 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_t.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +t q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_tdg.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_tdg.qasm new file mode 100644 index 000000000..e6cf2118e --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_tdg.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +tdg q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_u.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_u.qasm new file mode 100644 index 000000000..22ce8cbf1 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_u.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +U(pi*3/64, pi*5/128, pi*7/256) q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_x.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_x.qasm new file mode 100644 index 000000000..2400faf7c --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_x.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +x q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_y.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_y.qasm new file mode 100644 index 000000000..645d95436 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_y.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +y q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/gate_z.qasm b/wai/quantum-cross-simulator/corpus/qasm/gate_z.qasm new file mode 100644 index 000000000..317387c20 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/gate_z.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +ry(pi/8) q[0]; +rz(pi*3/32) q[0]; +z q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/ghz_by_fusion.qasm b/wai/quantum-cross-simulator/corpus/qasm/ghz_by_fusion.qasm new file mode 100644 index 000000000..49cb0d5ba --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/ghz_by_fusion.qasm @@ -0,0 +1,14 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[4] q; +bit[4] c; +h q[0]; +cx q[0], q[1]; +h q[2]; +cx q[2], q[3]; +cx q[1], q[2]; +c[0] = measure q[2]; +if (c[0] == 1) { x q[3]; } +c[1] = measure q[0]; +c[2] = measure q[1]; +c[3] = measure q[3]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/ghz_counts_n8.qasm b/wai/quantum-cross-simulator/corpus/qasm/ghz_counts_n8.qasm new file mode 100644 index 000000000..a369ca371 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/ghz_counts_n8.qasm @@ -0,0 +1,20 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[8] q; +bit[8] c; +h q[0]; +cx q[0], q[1]; +cx q[1], q[2]; +cx q[2], q[3]; +cx q[3], q[4]; +cx q[4], q[5]; +cx q[5], q[6]; +cx q[6], q[7]; +c[0] = measure q[0]; +c[1] = measure q[1]; +c[2] = measure q[2]; +c[3] = measure q[3]; +c[4] = measure q[4]; +c[5] = measure q[5]; +c[6] = measure q[6]; +c[7] = measure q[7]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/ghz_n12.qasm b/wai/quantum-cross-simulator/corpus/qasm/ghz_n12.qasm new file mode 100644 index 000000000..11ccebcf4 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/ghz_n12.qasm @@ -0,0 +1,15 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[12] q; +h q[0]; +cx q[0], q[1]; +cx q[1], q[2]; +cx q[2], q[3]; +cx q[3], q[4]; +cx q[4], q[5]; +cx q[5], q[6]; +cx q[6], q[7]; +cx q[7], q[8]; +cx q[8], q[9]; +cx q[9], q[10]; +cx q[10], q[11]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/ghz_n2.qasm b/wai/quantum-cross-simulator/corpus/qasm/ghz_n2.qasm new file mode 100644 index 000000000..6034bc930 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/ghz_n2.qasm @@ -0,0 +1,5 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[2] q; +h q[0]; +cx q[0], q[1]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/ghz_n3.qasm b/wai/quantum-cross-simulator/corpus/qasm/ghz_n3.qasm new file mode 100644 index 000000000..9d4ac2156 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/ghz_n3.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[3] q; +h q[0]; +cx q[0], q[1]; +cx q[1], q[2]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/ghz_n5.qasm b/wai/quantum-cross-simulator/corpus/qasm/ghz_n5.qasm new file mode 100644 index 000000000..4f751cbc0 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/ghz_n5.qasm @@ -0,0 +1,8 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[5] q; +h q[0]; +cx q[0], q[1]; +cx q[1], q[2]; +cx q[2], q[3]; +cx q[3], q[4]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/ghz_n8.qasm b/wai/quantum-cross-simulator/corpus/qasm/ghz_n8.qasm new file mode 100644 index 000000000..3d7119aea --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/ghz_n8.qasm @@ -0,0 +1,11 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[8] q; +h q[0]; +cx q[0], q[1]; +cx q[1], q[2]; +cx q[2], q[3]; +cx q[3], q[4]; +cx q[4], q[5]; +cx q[5], q[6]; +cx q[6], q[7]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/grover_counts_n5.qasm b/wai/quantum-cross-simulator/corpus/qasm/grover_counts_n5.qasm new file mode 100644 index 000000000..fbcaa5be5 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/grover_counts_n5.qasm @@ -0,0 +1,118 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[5] q; +bit[5] c; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +x q[2]; +x q[3]; +ctrl(4) @ z q[0], q[1], q[2], q[3], q[4]; +x q[2]; +x q[3]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +ctrl(4) @ z q[0], q[1], q[2], q[3], q[4]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +x q[2]; +x q[3]; +ctrl(4) @ z q[0], q[1], q[2], q[3], q[4]; +x q[2]; +x q[3]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +ctrl(4) @ z q[0], q[1], q[2], q[3], q[4]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +x q[2]; +x q[3]; +ctrl(4) @ z q[0], q[1], q[2], q[3], q[4]; +x q[2]; +x q[3]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +ctrl(4) @ z q[0], q[1], q[2], q[3], q[4]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +x q[2]; +x q[3]; +ctrl(4) @ z q[0], q[1], q[2], q[3], q[4]; +x q[2]; +x q[3]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +ctrl(4) @ z q[0], q[1], q[2], q[3], q[4]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +c[0] = measure q[0]; +c[1] = measure q[1]; +c[2] = measure q[2]; +c[3] = measure q[3]; +c[4] = measure q[4]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/grover_n10.qasm b/wai/quantum-cross-simulator/corpus/qasm/grover_n10.qasm new file mode 100644 index 000000000..6cdb683f7 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/grover_n10.qasm @@ -0,0 +1,1263 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[10] q; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[2]; +x q[4]; +x q[6]; +x q[8]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +ctrl(9) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7], q[8], q[9]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +x q[8]; +x q[9]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/grover_n3.qasm b/wai/quantum-cross-simulator/corpus/qasm/grover_n3.qasm new file mode 100644 index 000000000..f1f6e8cc7 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/grover_n3.qasm @@ -0,0 +1,38 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[3] q; +h q[0]; +h q[1]; +h q[2]; +x q[1]; +ctrl(2) @ z q[0], q[1], q[2]; +x q[1]; +h q[0]; +h q[1]; +h q[2]; +x q[0]; +x q[1]; +x q[2]; +ctrl(2) @ z q[0], q[1], q[2]; +x q[0]; +x q[1]; +x q[2]; +h q[0]; +h q[1]; +h q[2]; +x q[1]; +ctrl(2) @ z q[0], q[1], q[2]; +x q[1]; +h q[0]; +h q[1]; +h q[2]; +x q[0]; +x q[1]; +x q[2]; +ctrl(2) @ z q[0], q[1], q[2]; +x q[0]; +x q[1]; +x q[2]; +h q[0]; +h q[1]; +h q[2]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/grover_n5.qasm b/wai/quantum-cross-simulator/corpus/qasm/grover_n5.qasm new file mode 100644 index 000000000..15346e3de --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/grover_n5.qasm @@ -0,0 +1,112 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[5] q; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +x q[2]; +x q[3]; +ctrl(4) @ z q[0], q[1], q[2], q[3], q[4]; +x q[2]; +x q[3]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +ctrl(4) @ z q[0], q[1], q[2], q[3], q[4]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +x q[2]; +x q[3]; +ctrl(4) @ z q[0], q[1], q[2], q[3], q[4]; +x q[2]; +x q[3]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +ctrl(4) @ z q[0], q[1], q[2], q[3], q[4]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +x q[2]; +x q[3]; +ctrl(4) @ z q[0], q[1], q[2], q[3], q[4]; +x q[2]; +x q[3]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +ctrl(4) @ z q[0], q[1], q[2], q[3], q[4]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +x q[2]; +x q[3]; +ctrl(4) @ z q[0], q[1], q[2], q[3], q[4]; +x q[2]; +x q[3]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +ctrl(4) @ z q[0], q[1], q[2], q[3], q[4]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/grover_n8.qasm b/wai/quantum-cross-simulator/corpus/qasm/grover_n8.qasm new file mode 100644 index 000000000..64ef2ee83 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/grover_n8.qasm @@ -0,0 +1,491 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[8] q; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +x q[1]; +x q[4]; +x q[6]; +ctrl(7) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7]; +x q[1]; +x q[4]; +x q[6]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +ctrl(7) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +x q[1]; +x q[4]; +x q[6]; +ctrl(7) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7]; +x q[1]; +x q[4]; +x q[6]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +ctrl(7) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +x q[1]; +x q[4]; +x q[6]; +ctrl(7) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7]; +x q[1]; +x q[4]; +x q[6]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +ctrl(7) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +x q[1]; +x q[4]; +x q[6]; +ctrl(7) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7]; +x q[1]; +x q[4]; +x q[6]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +ctrl(7) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +x q[1]; +x q[4]; +x q[6]; +ctrl(7) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7]; +x q[1]; +x q[4]; +x q[6]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +ctrl(7) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +x q[1]; +x q[4]; +x q[6]; +ctrl(7) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7]; +x q[1]; +x q[4]; +x q[6]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +ctrl(7) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +x q[1]; +x q[4]; +x q[6]; +ctrl(7) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7]; +x q[1]; +x q[4]; +x q[6]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +ctrl(7) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +x q[1]; +x q[4]; +x q[6]; +ctrl(7) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7]; +x q[1]; +x q[4]; +x q[6]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +ctrl(7) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +x q[1]; +x q[4]; +x q[6]; +ctrl(7) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7]; +x q[1]; +x q[4]; +x q[6]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +ctrl(7) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +x q[1]; +x q[4]; +x q[6]; +ctrl(7) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7]; +x q[1]; +x q[4]; +x q[6]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +ctrl(7) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +x q[1]; +x q[4]; +x q[6]; +ctrl(7) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7]; +x q[1]; +x q[4]; +x q[6]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +ctrl(7) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +x q[1]; +x q[4]; +x q[6]; +ctrl(7) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7]; +x q[1]; +x q[4]; +x q[6]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +ctrl(7) @ z q[0], q[1], q[2], q[3], q[4], q[5], q[6], q[7]; +x q[0]; +x q[1]; +x q[2]; +x q[3]; +x q[4]; +x q[5]; +x q[6]; +x q[7]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/measure_twice.qasm b/wai/quantum-cross-simulator/corpus/qasm/measure_twice.qasm new file mode 100644 index 000000000..dd16fd578 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/measure_twice.qasm @@ -0,0 +1,7 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +bit[2] c; +h q[0]; +c[0] = measure q[0]; +c[1] = measure q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/mps_ghz_n100.qasm b/wai/quantum-cross-simulator/corpus/qasm/mps_ghz_n100.qasm new file mode 100644 index 000000000..76b660e51 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/mps_ghz_n100.qasm @@ -0,0 +1,103 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[100] q; +h q[0]; +cx q[0], q[1]; +cx q[1], q[2]; +cx q[2], q[3]; +cx q[3], q[4]; +cx q[4], q[5]; +cx q[5], q[6]; +cx q[6], q[7]; +cx q[7], q[8]; +cx q[8], q[9]; +cx q[9], q[10]; +cx q[10], q[11]; +cx q[11], q[12]; +cx q[12], q[13]; +cx q[13], q[14]; +cx q[14], q[15]; +cx q[15], q[16]; +cx q[16], q[17]; +cx q[17], q[18]; +cx q[18], q[19]; +cx q[19], q[20]; +cx q[20], q[21]; +cx q[21], q[22]; +cx q[22], q[23]; +cx q[23], q[24]; +cx q[24], q[25]; +cx q[25], q[26]; +cx q[26], q[27]; +cx q[27], q[28]; +cx q[28], q[29]; +cx q[29], q[30]; +cx q[30], q[31]; +cx q[31], q[32]; +cx q[32], q[33]; +cx q[33], q[34]; +cx q[34], q[35]; +cx q[35], q[36]; +cx q[36], q[37]; +cx q[37], q[38]; +cx q[38], q[39]; +cx q[39], q[40]; +cx q[40], q[41]; +cx q[41], q[42]; +cx q[42], q[43]; +cx q[43], q[44]; +cx q[44], q[45]; +cx q[45], q[46]; +cx q[46], q[47]; +cx q[47], q[48]; +cx q[48], q[49]; +cx q[49], q[50]; +cx q[50], q[51]; +cx q[51], q[52]; +cx q[52], q[53]; +cx q[53], q[54]; +cx q[54], q[55]; +cx q[55], q[56]; +cx q[56], q[57]; +cx q[57], q[58]; +cx q[58], q[59]; +cx q[59], q[60]; +cx q[60], q[61]; +cx q[61], q[62]; +cx q[62], q[63]; +cx q[63], q[64]; +cx q[64], q[65]; +cx q[65], q[66]; +cx q[66], q[67]; +cx q[67], q[68]; +cx q[68], q[69]; +cx q[69], q[70]; +cx q[70], q[71]; +cx q[71], q[72]; +cx q[72], q[73]; +cx q[73], q[74]; +cx q[74], q[75]; +cx q[75], q[76]; +cx q[76], q[77]; +cx q[77], q[78]; +cx q[78], q[79]; +cx q[79], q[80]; +cx q[80], q[81]; +cx q[81], q[82]; +cx q[82], q[83]; +cx q[83], q[84]; +cx q[84], q[85]; +cx q[85], q[86]; +cx q[86], q[87]; +cx q[87], q[88]; +cx q[88], q[89]; +cx q[89], q[90]; +cx q[90], q[91]; +cx q[91], q[92]; +cx q[92], q[93]; +cx q[93], q[94]; +cx q[94], q[95]; +cx q[95], q[96]; +cx q[96], q[97]; +cx q[97], q[98]; +cx q[98], q[99]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/mps_ghz_n30.qasm b/wai/quantum-cross-simulator/corpus/qasm/mps_ghz_n30.qasm new file mode 100644 index 000000000..3d0cab911 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/mps_ghz_n30.qasm @@ -0,0 +1,33 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[30] q; +h q[0]; +cx q[0], q[1]; +cx q[1], q[2]; +cx q[2], q[3]; +cx q[3], q[4]; +cx q[4], q[5]; +cx q[5], q[6]; +cx q[6], q[7]; +cx q[7], q[8]; +cx q[8], q[9]; +cx q[9], q[10]; +cx q[10], q[11]; +cx q[11], q[12]; +cx q[12], q[13]; +cx q[13], q[14]; +cx q[14], q[15]; +cx q[15], q[16]; +cx q[16], q[17]; +cx q[17], q[18]; +cx q[18], q[19]; +cx q[19], q[20]; +cx q[20], q[21]; +cx q[21], q[22]; +cx q[22], q[23]; +cx q[23], q[24]; +cx q[24], q[25]; +cx q[25], q[26]; +cx q[26], q[27]; +cx q[27], q[28]; +cx q[28], q[29]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/mps_ghz_n50.qasm b/wai/quantum-cross-simulator/corpus/qasm/mps_ghz_n50.qasm new file mode 100644 index 000000000..c7de81873 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/mps_ghz_n50.qasm @@ -0,0 +1,53 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[50] q; +h q[0]; +cx q[0], q[1]; +cx q[1], q[2]; +cx q[2], q[3]; +cx q[3], q[4]; +cx q[4], q[5]; +cx q[5], q[6]; +cx q[6], q[7]; +cx q[7], q[8]; +cx q[8], q[9]; +cx q[9], q[10]; +cx q[10], q[11]; +cx q[11], q[12]; +cx q[12], q[13]; +cx q[13], q[14]; +cx q[14], q[15]; +cx q[15], q[16]; +cx q[16], q[17]; +cx q[17], q[18]; +cx q[18], q[19]; +cx q[19], q[20]; +cx q[20], q[21]; +cx q[21], q[22]; +cx q[22], q[23]; +cx q[23], q[24]; +cx q[24], q[25]; +cx q[25], q[26]; +cx q[26], q[27]; +cx q[27], q[28]; +cx q[28], q[29]; +cx q[29], q[30]; +cx q[30], q[31]; +cx q[31], q[32]; +cx q[32], q[33]; +cx q[33], q[34]; +cx q[34], q[35]; +cx q[35], q[36]; +cx q[36], q[37]; +cx q[37], q[38]; +cx q[38], q[39]; +cx q[39], q[40]; +cx q[40], q[41]; +cx q[41], q[42]; +cx q[42], q[43]; +cx q[43], q[44]; +cx q[44], q[45]; +cx q[45], q[46]; +cx q[46], q[47]; +cx q[47], q[48]; +cx q[48], q[49]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/mps_qft_n30.qasm b/wai/quantum-cross-simulator/corpus/qasm/mps_qft_n30.qasm new file mode 100644 index 000000000..64bb8e224 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/mps_qft_n30.qasm @@ -0,0 +1,499 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[30] q; +x q[0]; +x q[1]; +x q[3]; +x q[5]; +x q[7]; +x q[9]; +x q[11]; +x q[13]; +x q[15]; +x q[17]; +x q[19]; +x q[21]; +x q[23]; +x q[25]; +x q[27]; +x q[29]; +h q[29]; +cp(pi/2) q[28], q[29]; +cp(pi/4) q[27], q[29]; +cp(pi/8) q[26], q[29]; +cp(pi/16) q[25], q[29]; +cp(pi/32) q[24], q[29]; +cp(pi/64) q[23], q[29]; +cp(pi/128) q[22], q[29]; +cp(pi/256) q[21], q[29]; +cp(pi/512) q[20], q[29]; +cp(pi/1024) q[19], q[29]; +cp(pi/2048) q[18], q[29]; +cp(pi/4096) q[17], q[29]; +cp(pi/8192) q[16], q[29]; +cp(pi/16384) q[15], q[29]; +cp(pi/32768) q[14], q[29]; +cp(pi/65536) q[13], q[29]; +cp(pi/131072) q[12], q[29]; +cp(pi/262144) q[11], q[29]; +cp(pi/524288) q[10], q[29]; +cp(pi/1048576) q[9], q[29]; +cp(pi/2097152) q[8], q[29]; +cp(pi/4194304) q[7], q[29]; +cp(pi/8388608) q[6], q[29]; +cp(pi/16777216) q[5], q[29]; +cp(pi/33554432) q[4], q[29]; +cp(pi/67108864) q[3], q[29]; +cp(pi/134217728) q[2], q[29]; +cp(pi/268435456) q[1], q[29]; +cp(pi/536870912) q[0], q[29]; +h q[28]; +cp(pi/2) q[27], q[28]; +cp(pi/4) q[26], q[28]; +cp(pi/8) q[25], q[28]; +cp(pi/16) q[24], q[28]; +cp(pi/32) q[23], q[28]; +cp(pi/64) q[22], q[28]; +cp(pi/128) q[21], q[28]; +cp(pi/256) q[20], q[28]; +cp(pi/512) q[19], q[28]; +cp(pi/1024) q[18], q[28]; +cp(pi/2048) q[17], q[28]; +cp(pi/4096) q[16], q[28]; +cp(pi/8192) q[15], q[28]; +cp(pi/16384) q[14], q[28]; +cp(pi/32768) q[13], q[28]; +cp(pi/65536) q[12], q[28]; +cp(pi/131072) q[11], q[28]; +cp(pi/262144) q[10], q[28]; +cp(pi/524288) q[9], q[28]; +cp(pi/1048576) q[8], q[28]; +cp(pi/2097152) q[7], q[28]; +cp(pi/4194304) q[6], q[28]; +cp(pi/8388608) q[5], q[28]; +cp(pi/16777216) q[4], q[28]; +cp(pi/33554432) q[3], q[28]; +cp(pi/67108864) q[2], q[28]; +cp(pi/134217728) q[1], q[28]; +cp(pi/268435456) q[0], q[28]; +h q[27]; +cp(pi/2) q[26], q[27]; +cp(pi/4) q[25], q[27]; +cp(pi/8) q[24], q[27]; +cp(pi/16) q[23], q[27]; +cp(pi/32) q[22], q[27]; +cp(pi/64) q[21], q[27]; +cp(pi/128) q[20], q[27]; +cp(pi/256) q[19], q[27]; +cp(pi/512) q[18], q[27]; +cp(pi/1024) q[17], q[27]; +cp(pi/2048) q[16], q[27]; +cp(pi/4096) q[15], q[27]; +cp(pi/8192) q[14], q[27]; +cp(pi/16384) q[13], q[27]; +cp(pi/32768) q[12], q[27]; +cp(pi/65536) q[11], q[27]; +cp(pi/131072) q[10], q[27]; +cp(pi/262144) q[9], q[27]; +cp(pi/524288) q[8], q[27]; +cp(pi/1048576) q[7], q[27]; +cp(pi/2097152) q[6], q[27]; +cp(pi/4194304) q[5], q[27]; +cp(pi/8388608) q[4], q[27]; +cp(pi/16777216) q[3], q[27]; +cp(pi/33554432) q[2], q[27]; +cp(pi/67108864) q[1], q[27]; +cp(pi/134217728) q[0], q[27]; +h q[26]; +cp(pi/2) q[25], q[26]; +cp(pi/4) q[24], q[26]; +cp(pi/8) q[23], q[26]; +cp(pi/16) q[22], q[26]; +cp(pi/32) q[21], q[26]; +cp(pi/64) q[20], q[26]; +cp(pi/128) q[19], q[26]; +cp(pi/256) q[18], q[26]; +cp(pi/512) q[17], q[26]; +cp(pi/1024) q[16], q[26]; +cp(pi/2048) q[15], q[26]; +cp(pi/4096) q[14], q[26]; +cp(pi/8192) q[13], q[26]; +cp(pi/16384) q[12], q[26]; +cp(pi/32768) q[11], q[26]; +cp(pi/65536) q[10], q[26]; +cp(pi/131072) q[9], q[26]; +cp(pi/262144) q[8], q[26]; +cp(pi/524288) q[7], q[26]; +cp(pi/1048576) q[6], q[26]; +cp(pi/2097152) q[5], q[26]; +cp(pi/4194304) q[4], q[26]; +cp(pi/8388608) q[3], q[26]; +cp(pi/16777216) q[2], q[26]; +cp(pi/33554432) q[1], q[26]; +cp(pi/67108864) q[0], q[26]; +h q[25]; +cp(pi/2) q[24], q[25]; +cp(pi/4) q[23], q[25]; +cp(pi/8) q[22], q[25]; +cp(pi/16) q[21], q[25]; +cp(pi/32) q[20], q[25]; +cp(pi/64) q[19], q[25]; +cp(pi/128) q[18], q[25]; +cp(pi/256) q[17], q[25]; +cp(pi/512) q[16], q[25]; +cp(pi/1024) q[15], q[25]; +cp(pi/2048) q[14], q[25]; +cp(pi/4096) q[13], q[25]; +cp(pi/8192) q[12], q[25]; +cp(pi/16384) q[11], q[25]; +cp(pi/32768) q[10], q[25]; +cp(pi/65536) q[9], q[25]; +cp(pi/131072) q[8], q[25]; +cp(pi/262144) q[7], q[25]; +cp(pi/524288) q[6], q[25]; +cp(pi/1048576) q[5], q[25]; +cp(pi/2097152) q[4], q[25]; +cp(pi/4194304) q[3], q[25]; +cp(pi/8388608) q[2], q[25]; +cp(pi/16777216) q[1], q[25]; +cp(pi/33554432) q[0], q[25]; +h q[24]; +cp(pi/2) q[23], q[24]; +cp(pi/4) q[22], q[24]; +cp(pi/8) q[21], q[24]; +cp(pi/16) q[20], q[24]; +cp(pi/32) q[19], q[24]; +cp(pi/64) q[18], q[24]; +cp(pi/128) q[17], q[24]; +cp(pi/256) q[16], q[24]; +cp(pi/512) q[15], q[24]; +cp(pi/1024) q[14], q[24]; +cp(pi/2048) q[13], q[24]; +cp(pi/4096) q[12], q[24]; +cp(pi/8192) q[11], q[24]; +cp(pi/16384) q[10], q[24]; +cp(pi/32768) q[9], q[24]; +cp(pi/65536) q[8], q[24]; +cp(pi/131072) q[7], q[24]; +cp(pi/262144) q[6], q[24]; +cp(pi/524288) q[5], q[24]; +cp(pi/1048576) q[4], q[24]; +cp(pi/2097152) q[3], q[24]; +cp(pi/4194304) q[2], q[24]; +cp(pi/8388608) q[1], q[24]; +cp(pi/16777216) q[0], q[24]; +h q[23]; +cp(pi/2) q[22], q[23]; +cp(pi/4) q[21], q[23]; +cp(pi/8) q[20], q[23]; +cp(pi/16) q[19], q[23]; +cp(pi/32) q[18], q[23]; +cp(pi/64) q[17], q[23]; +cp(pi/128) q[16], q[23]; +cp(pi/256) q[15], q[23]; +cp(pi/512) q[14], q[23]; +cp(pi/1024) q[13], q[23]; +cp(pi/2048) q[12], q[23]; +cp(pi/4096) q[11], q[23]; +cp(pi/8192) q[10], q[23]; +cp(pi/16384) q[9], q[23]; +cp(pi/32768) q[8], q[23]; +cp(pi/65536) q[7], q[23]; +cp(pi/131072) q[6], q[23]; +cp(pi/262144) q[5], q[23]; +cp(pi/524288) q[4], q[23]; +cp(pi/1048576) q[3], q[23]; +cp(pi/2097152) q[2], q[23]; +cp(pi/4194304) q[1], q[23]; +cp(pi/8388608) q[0], q[23]; +h q[22]; +cp(pi/2) q[21], q[22]; +cp(pi/4) q[20], q[22]; +cp(pi/8) q[19], q[22]; +cp(pi/16) q[18], q[22]; +cp(pi/32) q[17], q[22]; +cp(pi/64) q[16], q[22]; +cp(pi/128) q[15], q[22]; +cp(pi/256) q[14], q[22]; +cp(pi/512) q[13], q[22]; +cp(pi/1024) q[12], q[22]; +cp(pi/2048) q[11], q[22]; +cp(pi/4096) q[10], q[22]; +cp(pi/8192) q[9], q[22]; +cp(pi/16384) q[8], q[22]; +cp(pi/32768) q[7], q[22]; +cp(pi/65536) q[6], q[22]; +cp(pi/131072) q[5], q[22]; +cp(pi/262144) q[4], q[22]; +cp(pi/524288) q[3], q[22]; +cp(pi/1048576) q[2], q[22]; +cp(pi/2097152) q[1], q[22]; +cp(pi/4194304) q[0], q[22]; +h q[21]; +cp(pi/2) q[20], q[21]; +cp(pi/4) q[19], q[21]; +cp(pi/8) q[18], q[21]; +cp(pi/16) q[17], q[21]; +cp(pi/32) q[16], q[21]; +cp(pi/64) q[15], q[21]; +cp(pi/128) q[14], q[21]; +cp(pi/256) q[13], q[21]; +cp(pi/512) q[12], q[21]; +cp(pi/1024) q[11], q[21]; +cp(pi/2048) q[10], q[21]; +cp(pi/4096) q[9], q[21]; +cp(pi/8192) q[8], q[21]; +cp(pi/16384) q[7], q[21]; +cp(pi/32768) q[6], q[21]; +cp(pi/65536) q[5], q[21]; +cp(pi/131072) q[4], q[21]; +cp(pi/262144) q[3], q[21]; +cp(pi/524288) q[2], q[21]; +cp(pi/1048576) q[1], q[21]; +cp(pi/2097152) q[0], q[21]; +h q[20]; +cp(pi/2) q[19], q[20]; +cp(pi/4) q[18], q[20]; +cp(pi/8) q[17], q[20]; +cp(pi/16) q[16], q[20]; +cp(pi/32) q[15], q[20]; +cp(pi/64) q[14], q[20]; +cp(pi/128) q[13], q[20]; +cp(pi/256) q[12], q[20]; +cp(pi/512) q[11], q[20]; +cp(pi/1024) q[10], q[20]; +cp(pi/2048) q[9], q[20]; +cp(pi/4096) q[8], q[20]; +cp(pi/8192) q[7], q[20]; +cp(pi/16384) q[6], q[20]; +cp(pi/32768) q[5], q[20]; +cp(pi/65536) q[4], q[20]; +cp(pi/131072) q[3], q[20]; +cp(pi/262144) q[2], q[20]; +cp(pi/524288) q[1], q[20]; +cp(pi/1048576) q[0], q[20]; +h q[19]; +cp(pi/2) q[18], q[19]; +cp(pi/4) q[17], q[19]; +cp(pi/8) q[16], q[19]; +cp(pi/16) q[15], q[19]; +cp(pi/32) q[14], q[19]; +cp(pi/64) q[13], q[19]; +cp(pi/128) q[12], q[19]; +cp(pi/256) q[11], q[19]; +cp(pi/512) q[10], q[19]; +cp(pi/1024) q[9], q[19]; +cp(pi/2048) q[8], q[19]; +cp(pi/4096) q[7], q[19]; +cp(pi/8192) q[6], q[19]; +cp(pi/16384) q[5], q[19]; +cp(pi/32768) q[4], q[19]; +cp(pi/65536) q[3], q[19]; +cp(pi/131072) q[2], q[19]; +cp(pi/262144) q[1], q[19]; +cp(pi/524288) q[0], q[19]; +h q[18]; +cp(pi/2) q[17], q[18]; +cp(pi/4) q[16], q[18]; +cp(pi/8) q[15], q[18]; +cp(pi/16) q[14], q[18]; +cp(pi/32) q[13], q[18]; +cp(pi/64) q[12], q[18]; +cp(pi/128) q[11], q[18]; +cp(pi/256) q[10], q[18]; +cp(pi/512) q[9], q[18]; +cp(pi/1024) q[8], q[18]; +cp(pi/2048) q[7], q[18]; +cp(pi/4096) q[6], q[18]; +cp(pi/8192) q[5], q[18]; +cp(pi/16384) q[4], q[18]; +cp(pi/32768) q[3], q[18]; +cp(pi/65536) q[2], q[18]; +cp(pi/131072) q[1], q[18]; +cp(pi/262144) q[0], q[18]; +h q[17]; +cp(pi/2) q[16], q[17]; +cp(pi/4) q[15], q[17]; +cp(pi/8) q[14], q[17]; +cp(pi/16) q[13], q[17]; +cp(pi/32) q[12], q[17]; +cp(pi/64) q[11], q[17]; +cp(pi/128) q[10], q[17]; +cp(pi/256) q[9], q[17]; +cp(pi/512) q[8], q[17]; +cp(pi/1024) q[7], q[17]; +cp(pi/2048) q[6], q[17]; +cp(pi/4096) q[5], q[17]; +cp(pi/8192) q[4], q[17]; +cp(pi/16384) q[3], q[17]; +cp(pi/32768) q[2], q[17]; +cp(pi/65536) q[1], q[17]; +cp(pi/131072) q[0], q[17]; +h q[16]; +cp(pi/2) q[15], q[16]; +cp(pi/4) q[14], q[16]; +cp(pi/8) q[13], q[16]; +cp(pi/16) q[12], q[16]; +cp(pi/32) q[11], q[16]; +cp(pi/64) q[10], q[16]; +cp(pi/128) q[9], q[16]; +cp(pi/256) q[8], q[16]; +cp(pi/512) q[7], q[16]; +cp(pi/1024) q[6], q[16]; +cp(pi/2048) q[5], q[16]; +cp(pi/4096) q[4], q[16]; +cp(pi/8192) q[3], q[16]; +cp(pi/16384) q[2], q[16]; +cp(pi/32768) q[1], q[16]; +cp(pi/65536) q[0], q[16]; +h q[15]; +cp(pi/2) q[14], q[15]; +cp(pi/4) q[13], q[15]; +cp(pi/8) q[12], q[15]; +cp(pi/16) q[11], q[15]; +cp(pi/32) q[10], q[15]; +cp(pi/64) q[9], q[15]; +cp(pi/128) q[8], q[15]; +cp(pi/256) q[7], q[15]; +cp(pi/512) q[6], q[15]; +cp(pi/1024) q[5], q[15]; +cp(pi/2048) q[4], q[15]; +cp(pi/4096) q[3], q[15]; +cp(pi/8192) q[2], q[15]; +cp(pi/16384) q[1], q[15]; +cp(pi/32768) q[0], q[15]; +h q[14]; +cp(pi/2) q[13], q[14]; +cp(pi/4) q[12], q[14]; +cp(pi/8) q[11], q[14]; +cp(pi/16) q[10], q[14]; +cp(pi/32) q[9], q[14]; +cp(pi/64) q[8], q[14]; +cp(pi/128) q[7], q[14]; +cp(pi/256) q[6], q[14]; +cp(pi/512) q[5], q[14]; +cp(pi/1024) q[4], q[14]; +cp(pi/2048) q[3], q[14]; +cp(pi/4096) q[2], q[14]; +cp(pi/8192) q[1], q[14]; +cp(pi/16384) q[0], q[14]; +h q[13]; +cp(pi/2) q[12], q[13]; +cp(pi/4) q[11], q[13]; +cp(pi/8) q[10], q[13]; +cp(pi/16) q[9], q[13]; +cp(pi/32) q[8], q[13]; +cp(pi/64) q[7], q[13]; +cp(pi/128) q[6], q[13]; +cp(pi/256) q[5], q[13]; +cp(pi/512) q[4], q[13]; +cp(pi/1024) q[3], q[13]; +cp(pi/2048) q[2], q[13]; +cp(pi/4096) q[1], q[13]; +cp(pi/8192) q[0], q[13]; +h q[12]; +cp(pi/2) q[11], q[12]; +cp(pi/4) q[10], q[12]; +cp(pi/8) q[9], q[12]; +cp(pi/16) q[8], q[12]; +cp(pi/32) q[7], q[12]; +cp(pi/64) q[6], q[12]; +cp(pi/128) q[5], q[12]; +cp(pi/256) q[4], q[12]; +cp(pi/512) q[3], q[12]; +cp(pi/1024) q[2], q[12]; +cp(pi/2048) q[1], q[12]; +cp(pi/4096) q[0], q[12]; +h q[11]; +cp(pi/2) q[10], q[11]; +cp(pi/4) q[9], q[11]; +cp(pi/8) q[8], q[11]; +cp(pi/16) q[7], q[11]; +cp(pi/32) q[6], q[11]; +cp(pi/64) q[5], q[11]; +cp(pi/128) q[4], q[11]; +cp(pi/256) q[3], q[11]; +cp(pi/512) q[2], q[11]; +cp(pi/1024) q[1], q[11]; +cp(pi/2048) q[0], q[11]; +h q[10]; +cp(pi/2) q[9], q[10]; +cp(pi/4) q[8], q[10]; +cp(pi/8) q[7], q[10]; +cp(pi/16) q[6], q[10]; +cp(pi/32) q[5], q[10]; +cp(pi/64) q[4], q[10]; +cp(pi/128) q[3], q[10]; +cp(pi/256) q[2], q[10]; +cp(pi/512) q[1], q[10]; +cp(pi/1024) q[0], q[10]; +h q[9]; +cp(pi/2) q[8], q[9]; +cp(pi/4) q[7], q[9]; +cp(pi/8) q[6], q[9]; +cp(pi/16) q[5], q[9]; +cp(pi/32) q[4], q[9]; +cp(pi/64) q[3], q[9]; +cp(pi/128) q[2], q[9]; +cp(pi/256) q[1], q[9]; +cp(pi/512) q[0], q[9]; +h q[8]; +cp(pi/2) q[7], q[8]; +cp(pi/4) q[6], q[8]; +cp(pi/8) q[5], q[8]; +cp(pi/16) q[4], q[8]; +cp(pi/32) q[3], q[8]; +cp(pi/64) q[2], q[8]; +cp(pi/128) q[1], q[8]; +cp(pi/256) q[0], q[8]; +h q[7]; +cp(pi/2) q[6], q[7]; +cp(pi/4) q[5], q[7]; +cp(pi/8) q[4], q[7]; +cp(pi/16) q[3], q[7]; +cp(pi/32) q[2], q[7]; +cp(pi/64) q[1], q[7]; +cp(pi/128) q[0], q[7]; +h q[6]; +cp(pi/2) q[5], q[6]; +cp(pi/4) q[4], q[6]; +cp(pi/8) q[3], q[6]; +cp(pi/16) q[2], q[6]; +cp(pi/32) q[1], q[6]; +cp(pi/64) q[0], q[6]; +h q[5]; +cp(pi/2) q[4], q[5]; +cp(pi/4) q[3], q[5]; +cp(pi/8) q[2], q[5]; +cp(pi/16) q[1], q[5]; +cp(pi/32) q[0], q[5]; +h q[4]; +cp(pi/2) q[3], q[4]; +cp(pi/4) q[2], q[4]; +cp(pi/8) q[1], q[4]; +cp(pi/16) q[0], q[4]; +h q[3]; +cp(pi/2) q[2], q[3]; +cp(pi/4) q[1], q[3]; +cp(pi/8) q[0], q[3]; +h q[2]; +cp(pi/2) q[1], q[2]; +cp(pi/4) q[0], q[2]; +h q[1]; +cp(pi/2) q[0], q[1]; +h q[0]; +swap q[0], q[29]; +swap q[1], q[28]; +swap q[2], q[27]; +swap q[3], q[26]; +swap q[4], q[25]; +swap q[5], q[24]; +swap q[6], q[23]; +swap q[7], q[22]; +swap q[8], q[21]; +swap q[9], q[20]; +swap q[10], q[19]; +swap q[11], q[18]; +swap q[12], q[17]; +swap q[13], q[16]; +swap q[14], q[15]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/noise_depol1_x_chain_p0_01_k20.qasm b/wai/quantum-cross-simulator/corpus/qasm/noise_depol1_x_chain_p0_01_k20.qasm new file mode 100644 index 000000000..36f224747 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/noise_depol1_x_chain_p0_01_k20.qasm @@ -0,0 +1,23 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +x q[0]; +x q[0]; +x q[0]; +x q[0]; +x q[0]; +x q[0]; +x q[0]; +x q[0]; +x q[0]; +x q[0]; +x q[0]; +x q[0]; +x q[0]; +x q[0]; +x q[0]; +x q[0]; +x q[0]; +x q[0]; +x q[0]; +x q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/noise_depol1_x_chain_p0_1_k7.qasm b/wai/quantum-cross-simulator/corpus/qasm/noise_depol1_x_chain_p0_1_k7.qasm new file mode 100644 index 000000000..df7ae896d --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/noise_depol1_x_chain_p0_1_k7.qasm @@ -0,0 +1,10 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +x q[0]; +x q[0]; +x q[0]; +x q[0]; +x q[0]; +x q[0]; +x q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/noise_depol2_cx_chain.qasm b/wai/quantum-cross-simulator/corpus/qasm/noise_depol2_cx_chain.qasm new file mode 100644 index 000000000..bf0fa848e --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/noise_depol2_cx_chain.qasm @@ -0,0 +1,12 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[2] q; +cx q[0], q[1]; +cx q[0], q[1]; +cx q[0], q[1]; +cx q[0], q[1]; +cx q[0], q[1]; +cx q[0], q[1]; +cx q[0], q[1]; +cx q[0], q[1]; +cx q[0], q[1]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/one_qubit.qasm b/wai/quantum-cross-simulator/corpus/qasm/one_qubit.qasm new file mode 100644 index 000000000..9e9234eca --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/one_qubit.qasm @@ -0,0 +1,4 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +h q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/qft_counts_n8.qasm b/wai/quantum-cross-simulator/corpus/qasm/qft_counts_n8.qasm new file mode 100644 index 000000000..714d4b143 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/qft_counts_n8.qasm @@ -0,0 +1,57 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[8] q; +bit[8] c; +x q[0]; +x q[2]; +x q[3]; +x q[5]; +x q[7]; +h q[7]; +cp(pi/2) q[6], q[7]; +cp(pi/4) q[5], q[7]; +cp(pi/8) q[4], q[7]; +cp(pi/16) q[3], q[7]; +cp(pi/32) q[2], q[7]; +cp(pi/64) q[1], q[7]; +cp(pi/128) q[0], q[7]; +h q[6]; +cp(pi/2) q[5], q[6]; +cp(pi/4) q[4], q[6]; +cp(pi/8) q[3], q[6]; +cp(pi/16) q[2], q[6]; +cp(pi/32) q[1], q[6]; +cp(pi/64) q[0], q[6]; +h q[5]; +cp(pi/2) q[4], q[5]; +cp(pi/4) q[3], q[5]; +cp(pi/8) q[2], q[5]; +cp(pi/16) q[1], q[5]; +cp(pi/32) q[0], q[5]; +h q[4]; +cp(pi/2) q[3], q[4]; +cp(pi/4) q[2], q[4]; +cp(pi/8) q[1], q[4]; +cp(pi/16) q[0], q[4]; +h q[3]; +cp(pi/2) q[2], q[3]; +cp(pi/4) q[1], q[3]; +cp(pi/8) q[0], q[3]; +h q[2]; +cp(pi/2) q[1], q[2]; +cp(pi/4) q[0], q[2]; +h q[1]; +cp(pi/2) q[0], q[1]; +h q[0]; +swap q[0], q[7]; +swap q[1], q[6]; +swap q[2], q[5]; +swap q[3], q[4]; +c[0] = measure q[0]; +c[1] = measure q[1]; +c[2] = measure q[2]; +c[3] = measure q[3]; +c[4] = measure q[4]; +c[5] = measure q[5]; +c[6] = measure q[6]; +c[7] = measure q[7]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/qft_n12_x2741.qasm b/wai/quantum-cross-simulator/corpus/qasm/qft_n12_x2741.qasm new file mode 100644 index 000000000..eb85843f7 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/qft_n12_x2741.qasm @@ -0,0 +1,94 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[12] q; +x q[0]; +x q[2]; +x q[4]; +x q[5]; +x q[7]; +x q[9]; +x q[11]; +h q[11]; +cp(pi/2) q[10], q[11]; +cp(pi/4) q[9], q[11]; +cp(pi/8) q[8], q[11]; +cp(pi/16) q[7], q[11]; +cp(pi/32) q[6], q[11]; +cp(pi/64) q[5], q[11]; +cp(pi/128) q[4], q[11]; +cp(pi/256) q[3], q[11]; +cp(pi/512) q[2], q[11]; +cp(pi/1024) q[1], q[11]; +cp(pi/2048) q[0], q[11]; +h q[10]; +cp(pi/2) q[9], q[10]; +cp(pi/4) q[8], q[10]; +cp(pi/8) q[7], q[10]; +cp(pi/16) q[6], q[10]; +cp(pi/32) q[5], q[10]; +cp(pi/64) q[4], q[10]; +cp(pi/128) q[3], q[10]; +cp(pi/256) q[2], q[10]; +cp(pi/512) q[1], q[10]; +cp(pi/1024) q[0], q[10]; +h q[9]; +cp(pi/2) q[8], q[9]; +cp(pi/4) q[7], q[9]; +cp(pi/8) q[6], q[9]; +cp(pi/16) q[5], q[9]; +cp(pi/32) q[4], q[9]; +cp(pi/64) q[3], q[9]; +cp(pi/128) q[2], q[9]; +cp(pi/256) q[1], q[9]; +cp(pi/512) q[0], q[9]; +h q[8]; +cp(pi/2) q[7], q[8]; +cp(pi/4) q[6], q[8]; +cp(pi/8) q[5], q[8]; +cp(pi/16) q[4], q[8]; +cp(pi/32) q[3], q[8]; +cp(pi/64) q[2], q[8]; +cp(pi/128) q[1], q[8]; +cp(pi/256) q[0], q[8]; +h q[7]; +cp(pi/2) q[6], q[7]; +cp(pi/4) q[5], q[7]; +cp(pi/8) q[4], q[7]; +cp(pi/16) q[3], q[7]; +cp(pi/32) q[2], q[7]; +cp(pi/64) q[1], q[7]; +cp(pi/128) q[0], q[7]; +h q[6]; +cp(pi/2) q[5], q[6]; +cp(pi/4) q[4], q[6]; +cp(pi/8) q[3], q[6]; +cp(pi/16) q[2], q[6]; +cp(pi/32) q[1], q[6]; +cp(pi/64) q[0], q[6]; +h q[5]; +cp(pi/2) q[4], q[5]; +cp(pi/4) q[3], q[5]; +cp(pi/8) q[2], q[5]; +cp(pi/16) q[1], q[5]; +cp(pi/32) q[0], q[5]; +h q[4]; +cp(pi/2) q[3], q[4]; +cp(pi/4) q[2], q[4]; +cp(pi/8) q[1], q[4]; +cp(pi/16) q[0], q[4]; +h q[3]; +cp(pi/2) q[2], q[3]; +cp(pi/4) q[1], q[3]; +cp(pi/8) q[0], q[3]; +h q[2]; +cp(pi/2) q[1], q[2]; +cp(pi/4) q[0], q[2]; +h q[1]; +cp(pi/2) q[0], q[1]; +h q[0]; +swap q[0], q[11]; +swap q[1], q[10]; +swap q[2], q[9]; +swap q[3], q[8]; +swap q[4], q[7]; +swap q[5], q[6]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/qft_n14_x10923.qasm b/wai/quantum-cross-simulator/corpus/qasm/qft_n14_x10923.qasm new file mode 100644 index 000000000..73bc356f5 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/qft_n14_x10923.qasm @@ -0,0 +1,123 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[14] q; +x q[0]; +x q[1]; +x q[3]; +x q[5]; +x q[7]; +x q[9]; +x q[11]; +x q[13]; +h q[13]; +cp(pi/2) q[12], q[13]; +cp(pi/4) q[11], q[13]; +cp(pi/8) q[10], q[13]; +cp(pi/16) q[9], q[13]; +cp(pi/32) q[8], q[13]; +cp(pi/64) q[7], q[13]; +cp(pi/128) q[6], q[13]; +cp(pi/256) q[5], q[13]; +cp(pi/512) q[4], q[13]; +cp(pi/1024) q[3], q[13]; +cp(pi/2048) q[2], q[13]; +cp(pi/4096) q[1], q[13]; +cp(pi/8192) q[0], q[13]; +h q[12]; +cp(pi/2) q[11], q[12]; +cp(pi/4) q[10], q[12]; +cp(pi/8) q[9], q[12]; +cp(pi/16) q[8], q[12]; +cp(pi/32) q[7], q[12]; +cp(pi/64) q[6], q[12]; +cp(pi/128) q[5], q[12]; +cp(pi/256) q[4], q[12]; +cp(pi/512) q[3], q[12]; +cp(pi/1024) q[2], q[12]; +cp(pi/2048) q[1], q[12]; +cp(pi/4096) q[0], q[12]; +h q[11]; +cp(pi/2) q[10], q[11]; +cp(pi/4) q[9], q[11]; +cp(pi/8) q[8], q[11]; +cp(pi/16) q[7], q[11]; +cp(pi/32) q[6], q[11]; +cp(pi/64) q[5], q[11]; +cp(pi/128) q[4], q[11]; +cp(pi/256) q[3], q[11]; +cp(pi/512) q[2], q[11]; +cp(pi/1024) q[1], q[11]; +cp(pi/2048) q[0], q[11]; +h q[10]; +cp(pi/2) q[9], q[10]; +cp(pi/4) q[8], q[10]; +cp(pi/8) q[7], q[10]; +cp(pi/16) q[6], q[10]; +cp(pi/32) q[5], q[10]; +cp(pi/64) q[4], q[10]; +cp(pi/128) q[3], q[10]; +cp(pi/256) q[2], q[10]; +cp(pi/512) q[1], q[10]; +cp(pi/1024) q[0], q[10]; +h q[9]; +cp(pi/2) q[8], q[9]; +cp(pi/4) q[7], q[9]; +cp(pi/8) q[6], q[9]; +cp(pi/16) q[5], q[9]; +cp(pi/32) q[4], q[9]; +cp(pi/64) q[3], q[9]; +cp(pi/128) q[2], q[9]; +cp(pi/256) q[1], q[9]; +cp(pi/512) q[0], q[9]; +h q[8]; +cp(pi/2) q[7], q[8]; +cp(pi/4) q[6], q[8]; +cp(pi/8) q[5], q[8]; +cp(pi/16) q[4], q[8]; +cp(pi/32) q[3], q[8]; +cp(pi/64) q[2], q[8]; +cp(pi/128) q[1], q[8]; +cp(pi/256) q[0], q[8]; +h q[7]; +cp(pi/2) q[6], q[7]; +cp(pi/4) q[5], q[7]; +cp(pi/8) q[4], q[7]; +cp(pi/16) q[3], q[7]; +cp(pi/32) q[2], q[7]; +cp(pi/64) q[1], q[7]; +cp(pi/128) q[0], q[7]; +h q[6]; +cp(pi/2) q[5], q[6]; +cp(pi/4) q[4], q[6]; +cp(pi/8) q[3], q[6]; +cp(pi/16) q[2], q[6]; +cp(pi/32) q[1], q[6]; +cp(pi/64) q[0], q[6]; +h q[5]; +cp(pi/2) q[4], q[5]; +cp(pi/4) q[3], q[5]; +cp(pi/8) q[2], q[5]; +cp(pi/16) q[1], q[5]; +cp(pi/32) q[0], q[5]; +h q[4]; +cp(pi/2) q[3], q[4]; +cp(pi/4) q[2], q[4]; +cp(pi/8) q[1], q[4]; +cp(pi/16) q[0], q[4]; +h q[3]; +cp(pi/2) q[2], q[3]; +cp(pi/4) q[1], q[3]; +cp(pi/8) q[0], q[3]; +h q[2]; +cp(pi/2) q[1], q[2]; +cp(pi/4) q[0], q[2]; +h q[1]; +cp(pi/2) q[0], q[1]; +h q[0]; +swap q[0], q[13]; +swap q[1], q[12]; +swap q[2], q[11]; +swap q[3], q[10]; +swap q[4], q[9]; +swap q[5], q[8]; +swap q[6], q[7]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/qft_n3_x5.qasm b/wai/quantum-cross-simulator/corpus/qasm/qft_n3_x5.qasm new file mode 100644 index 000000000..fece81645 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/qft_n3_x5.qasm @@ -0,0 +1,12 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[3] q; +x q[0]; +x q[2]; +h q[2]; +cp(pi/2) q[1], q[2]; +cp(pi/4) q[0], q[2]; +h q[1]; +cp(pi/2) q[0], q[1]; +h q[0]; +swap q[0], q[2]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/qft_n5_x19.qasm b/wai/quantum-cross-simulator/corpus/qasm/qft_n5_x19.qasm new file mode 100644 index 000000000..25897ddc0 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/qft_n5_x19.qasm @@ -0,0 +1,23 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[5] q; +x q[0]; +x q[1]; +x q[4]; +h q[4]; +cp(pi/2) q[3], q[4]; +cp(pi/4) q[2], q[4]; +cp(pi/8) q[1], q[4]; +cp(pi/16) q[0], q[4]; +h q[3]; +cp(pi/2) q[2], q[3]; +cp(pi/4) q[1], q[3]; +cp(pi/8) q[0], q[3]; +h q[2]; +cp(pi/2) q[1], q[2]; +cp(pi/4) q[0], q[2]; +h q[1]; +cp(pi/2) q[0], q[1]; +h q[0]; +swap q[0], q[4]; +swap q[1], q[3]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/qft_n8_x173.qasm b/wai/quantum-cross-simulator/corpus/qasm/qft_n8_x173.qasm new file mode 100644 index 000000000..76cc2c019 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/qft_n8_x173.qasm @@ -0,0 +1,48 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[8] q; +x q[0]; +x q[2]; +x q[3]; +x q[5]; +x q[7]; +h q[7]; +cp(pi/2) q[6], q[7]; +cp(pi/4) q[5], q[7]; +cp(pi/8) q[4], q[7]; +cp(pi/16) q[3], q[7]; +cp(pi/32) q[2], q[7]; +cp(pi/64) q[1], q[7]; +cp(pi/128) q[0], q[7]; +h q[6]; +cp(pi/2) q[5], q[6]; +cp(pi/4) q[4], q[6]; +cp(pi/8) q[3], q[6]; +cp(pi/16) q[2], q[6]; +cp(pi/32) q[1], q[6]; +cp(pi/64) q[0], q[6]; +h q[5]; +cp(pi/2) q[4], q[5]; +cp(pi/4) q[3], q[5]; +cp(pi/8) q[2], q[5]; +cp(pi/16) q[1], q[5]; +cp(pi/32) q[0], q[5]; +h q[4]; +cp(pi/2) q[3], q[4]; +cp(pi/4) q[2], q[4]; +cp(pi/8) q[1], q[4]; +cp(pi/16) q[0], q[4]; +h q[3]; +cp(pi/2) q[2], q[3]; +cp(pi/4) q[1], q[3]; +cp(pi/8) q[0], q[3]; +h q[2]; +cp(pi/2) q[1], q[2]; +cp(pi/4) q[0], q[2]; +h q[1]; +cp(pi/2) q[0], q[1]; +h q[0]; +swap q[0], q[7]; +swap q[1], q[6]; +swap q[2], q[5]; +swap q[3], q[4]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/qft_superposed_n10.qasm b/wai/quantum-cross-simulator/corpus/qasm/qft_superposed_n10.qasm new file mode 100644 index 000000000..7fb58afd1 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/qft_superposed_n10.qasm @@ -0,0 +1,112 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[10] q; +h q[0]; +x q[1]; +h q[2]; +s q[3]; +s q[4]; +t q[6]; +s q[7]; +s q[9]; +cz q[9], q[2]; +cz q[6], q[0]; +cx q[5], q[4]; +cx q[1], q[3]; +cx q[7], q[8]; +t q[0]; +tdg q[1]; +s q[3]; +tdg q[4]; +tdg q[5]; +sdg q[7]; +sdg q[8]; +h q[9]; +cx q[3], q[2]; +cz q[8], q[9]; +cz q[1], q[6]; +cx q[5], q[4]; +cz q[0], q[7]; +s q[0]; +x q[2]; +sdg q[3]; +t q[5]; +s q[6]; +t q[7]; +cz q[0], q[6]; +cz q[9], q[2]; +cz q[4], q[7]; +cx q[1], q[3]; +cx q[8], q[5]; +h q[0]; +x q[2]; +s q[4]; +x q[5]; +sdg q[7]; +t q[8]; +tdg q[9]; +cz q[7], q[6]; +cx q[5], q[8]; +cx q[1], q[0]; +cx q[4], q[3]; +cx q[2], q[9]; +h q[9]; +cp(pi/2) q[8], q[9]; +cp(pi/4) q[7], q[9]; +cp(pi/8) q[6], q[9]; +cp(pi/16) q[5], q[9]; +cp(pi/32) q[4], q[9]; +cp(pi/64) q[3], q[9]; +cp(pi/128) q[2], q[9]; +cp(pi/256) q[1], q[9]; +cp(pi/512) q[0], q[9]; +h q[8]; +cp(pi/2) q[7], q[8]; +cp(pi/4) q[6], q[8]; +cp(pi/8) q[5], q[8]; +cp(pi/16) q[4], q[8]; +cp(pi/32) q[3], q[8]; +cp(pi/64) q[2], q[8]; +cp(pi/128) q[1], q[8]; +cp(pi/256) q[0], q[8]; +h q[7]; +cp(pi/2) q[6], q[7]; +cp(pi/4) q[5], q[7]; +cp(pi/8) q[4], q[7]; +cp(pi/16) q[3], q[7]; +cp(pi/32) q[2], q[7]; +cp(pi/64) q[1], q[7]; +cp(pi/128) q[0], q[7]; +h q[6]; +cp(pi/2) q[5], q[6]; +cp(pi/4) q[4], q[6]; +cp(pi/8) q[3], q[6]; +cp(pi/16) q[2], q[6]; +cp(pi/32) q[1], q[6]; +cp(pi/64) q[0], q[6]; +h q[5]; +cp(pi/2) q[4], q[5]; +cp(pi/4) q[3], q[5]; +cp(pi/8) q[2], q[5]; +cp(pi/16) q[1], q[5]; +cp(pi/32) q[0], q[5]; +h q[4]; +cp(pi/2) q[3], q[4]; +cp(pi/4) q[2], q[4]; +cp(pi/8) q[1], q[4]; +cp(pi/16) q[0], q[4]; +h q[3]; +cp(pi/2) q[2], q[3]; +cp(pi/4) q[1], q[3]; +cp(pi/8) q[0], q[3]; +h q[2]; +cp(pi/2) q[1], q[2]; +cp(pi/4) q[0], q[2]; +h q[1]; +cp(pi/2) q[0], q[1]; +h q[0]; +swap q[0], q[9]; +swap q[1], q[8]; +swap q[2], q[7]; +swap q[3], q[6]; +swap q[4], q[5]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/qft_wide_n20.qasm b/wai/quantum-cross-simulator/corpus/qasm/qft_wide_n20.qasm new file mode 100644 index 000000000..aa5fa59f0 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/qft_wide_n20.qasm @@ -0,0 +1,234 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[20] q; +x q[0]; +x q[1]; +x q[3]; +x q[5]; +x q[7]; +x q[9]; +x q[11]; +x q[13]; +x q[15]; +x q[17]; +x q[19]; +h q[19]; +cp(pi/2) q[18], q[19]; +cp(pi/4) q[17], q[19]; +cp(pi/8) q[16], q[19]; +cp(pi/16) q[15], q[19]; +cp(pi/32) q[14], q[19]; +cp(pi/64) q[13], q[19]; +cp(pi/128) q[12], q[19]; +cp(pi/256) q[11], q[19]; +cp(pi/512) q[10], q[19]; +cp(pi/1024) q[9], q[19]; +cp(pi/2048) q[8], q[19]; +cp(pi/4096) q[7], q[19]; +cp(pi/8192) q[6], q[19]; +cp(pi/16384) q[5], q[19]; +cp(pi/32768) q[4], q[19]; +cp(pi/65536) q[3], q[19]; +cp(pi/131072) q[2], q[19]; +cp(pi/262144) q[1], q[19]; +cp(pi/524288) q[0], q[19]; +h q[18]; +cp(pi/2) q[17], q[18]; +cp(pi/4) q[16], q[18]; +cp(pi/8) q[15], q[18]; +cp(pi/16) q[14], q[18]; +cp(pi/32) q[13], q[18]; +cp(pi/64) q[12], q[18]; +cp(pi/128) q[11], q[18]; +cp(pi/256) q[10], q[18]; +cp(pi/512) q[9], q[18]; +cp(pi/1024) q[8], q[18]; +cp(pi/2048) q[7], q[18]; +cp(pi/4096) q[6], q[18]; +cp(pi/8192) q[5], q[18]; +cp(pi/16384) q[4], q[18]; +cp(pi/32768) q[3], q[18]; +cp(pi/65536) q[2], q[18]; +cp(pi/131072) q[1], q[18]; +cp(pi/262144) q[0], q[18]; +h q[17]; +cp(pi/2) q[16], q[17]; +cp(pi/4) q[15], q[17]; +cp(pi/8) q[14], q[17]; +cp(pi/16) q[13], q[17]; +cp(pi/32) q[12], q[17]; +cp(pi/64) q[11], q[17]; +cp(pi/128) q[10], q[17]; +cp(pi/256) q[9], q[17]; +cp(pi/512) q[8], q[17]; +cp(pi/1024) q[7], q[17]; +cp(pi/2048) q[6], q[17]; +cp(pi/4096) q[5], q[17]; +cp(pi/8192) q[4], q[17]; +cp(pi/16384) q[3], q[17]; +cp(pi/32768) q[2], q[17]; +cp(pi/65536) q[1], q[17]; +cp(pi/131072) q[0], q[17]; +h q[16]; +cp(pi/2) q[15], q[16]; +cp(pi/4) q[14], q[16]; +cp(pi/8) q[13], q[16]; +cp(pi/16) q[12], q[16]; +cp(pi/32) q[11], q[16]; +cp(pi/64) q[10], q[16]; +cp(pi/128) q[9], q[16]; +cp(pi/256) q[8], q[16]; +cp(pi/512) q[7], q[16]; +cp(pi/1024) q[6], q[16]; +cp(pi/2048) q[5], q[16]; +cp(pi/4096) q[4], q[16]; +cp(pi/8192) q[3], q[16]; +cp(pi/16384) q[2], q[16]; +cp(pi/32768) q[1], q[16]; +cp(pi/65536) q[0], q[16]; +h q[15]; +cp(pi/2) q[14], q[15]; +cp(pi/4) q[13], q[15]; +cp(pi/8) q[12], q[15]; +cp(pi/16) q[11], q[15]; +cp(pi/32) q[10], q[15]; +cp(pi/64) q[9], q[15]; +cp(pi/128) q[8], q[15]; +cp(pi/256) q[7], q[15]; +cp(pi/512) q[6], q[15]; +cp(pi/1024) q[5], q[15]; +cp(pi/2048) q[4], q[15]; +cp(pi/4096) q[3], q[15]; +cp(pi/8192) q[2], q[15]; +cp(pi/16384) q[1], q[15]; +cp(pi/32768) q[0], q[15]; +h q[14]; +cp(pi/2) q[13], q[14]; +cp(pi/4) q[12], q[14]; +cp(pi/8) q[11], q[14]; +cp(pi/16) q[10], q[14]; +cp(pi/32) q[9], q[14]; +cp(pi/64) q[8], q[14]; +cp(pi/128) q[7], q[14]; +cp(pi/256) q[6], q[14]; +cp(pi/512) q[5], q[14]; +cp(pi/1024) q[4], q[14]; +cp(pi/2048) q[3], q[14]; +cp(pi/4096) q[2], q[14]; +cp(pi/8192) q[1], q[14]; +cp(pi/16384) q[0], q[14]; +h q[13]; +cp(pi/2) q[12], q[13]; +cp(pi/4) q[11], q[13]; +cp(pi/8) q[10], q[13]; +cp(pi/16) q[9], q[13]; +cp(pi/32) q[8], q[13]; +cp(pi/64) q[7], q[13]; +cp(pi/128) q[6], q[13]; +cp(pi/256) q[5], q[13]; +cp(pi/512) q[4], q[13]; +cp(pi/1024) q[3], q[13]; +cp(pi/2048) q[2], q[13]; +cp(pi/4096) q[1], q[13]; +cp(pi/8192) q[0], q[13]; +h q[12]; +cp(pi/2) q[11], q[12]; +cp(pi/4) q[10], q[12]; +cp(pi/8) q[9], q[12]; +cp(pi/16) q[8], q[12]; +cp(pi/32) q[7], q[12]; +cp(pi/64) q[6], q[12]; +cp(pi/128) q[5], q[12]; +cp(pi/256) q[4], q[12]; +cp(pi/512) q[3], q[12]; +cp(pi/1024) q[2], q[12]; +cp(pi/2048) q[1], q[12]; +cp(pi/4096) q[0], q[12]; +h q[11]; +cp(pi/2) q[10], q[11]; +cp(pi/4) q[9], q[11]; +cp(pi/8) q[8], q[11]; +cp(pi/16) q[7], q[11]; +cp(pi/32) q[6], q[11]; +cp(pi/64) q[5], q[11]; +cp(pi/128) q[4], q[11]; +cp(pi/256) q[3], q[11]; +cp(pi/512) q[2], q[11]; +cp(pi/1024) q[1], q[11]; +cp(pi/2048) q[0], q[11]; +h q[10]; +cp(pi/2) q[9], q[10]; +cp(pi/4) q[8], q[10]; +cp(pi/8) q[7], q[10]; +cp(pi/16) q[6], q[10]; +cp(pi/32) q[5], q[10]; +cp(pi/64) q[4], q[10]; +cp(pi/128) q[3], q[10]; +cp(pi/256) q[2], q[10]; +cp(pi/512) q[1], q[10]; +cp(pi/1024) q[0], q[10]; +h q[9]; +cp(pi/2) q[8], q[9]; +cp(pi/4) q[7], q[9]; +cp(pi/8) q[6], q[9]; +cp(pi/16) q[5], q[9]; +cp(pi/32) q[4], q[9]; +cp(pi/64) q[3], q[9]; +cp(pi/128) q[2], q[9]; +cp(pi/256) q[1], q[9]; +cp(pi/512) q[0], q[9]; +h q[8]; +cp(pi/2) q[7], q[8]; +cp(pi/4) q[6], q[8]; +cp(pi/8) q[5], q[8]; +cp(pi/16) q[4], q[8]; +cp(pi/32) q[3], q[8]; +cp(pi/64) q[2], q[8]; +cp(pi/128) q[1], q[8]; +cp(pi/256) q[0], q[8]; +h q[7]; +cp(pi/2) q[6], q[7]; +cp(pi/4) q[5], q[7]; +cp(pi/8) q[4], q[7]; +cp(pi/16) q[3], q[7]; +cp(pi/32) q[2], q[7]; +cp(pi/64) q[1], q[7]; +cp(pi/128) q[0], q[7]; +h q[6]; +cp(pi/2) q[5], q[6]; +cp(pi/4) q[4], q[6]; +cp(pi/8) q[3], q[6]; +cp(pi/16) q[2], q[6]; +cp(pi/32) q[1], q[6]; +cp(pi/64) q[0], q[6]; +h q[5]; +cp(pi/2) q[4], q[5]; +cp(pi/4) q[3], q[5]; +cp(pi/8) q[2], q[5]; +cp(pi/16) q[1], q[5]; +cp(pi/32) q[0], q[5]; +h q[4]; +cp(pi/2) q[3], q[4]; +cp(pi/4) q[2], q[4]; +cp(pi/8) q[1], q[4]; +cp(pi/16) q[0], q[4]; +h q[3]; +cp(pi/2) q[2], q[3]; +cp(pi/4) q[1], q[3]; +cp(pi/8) q[0], q[3]; +h q[2]; +cp(pi/2) q[1], q[2]; +cp(pi/4) q[0], q[2]; +h q[1]; +cp(pi/2) q[0], q[1]; +h q[0]; +swap q[0], q[19]; +swap q[1], q[18]; +swap q[2], q[17]; +swap q[3], q[16]; +swap q[4], q[15]; +swap q[5], q[14]; +swap q[6], q[13]; +swap q[7], q[12]; +swap q[8], q[11]; +swap q[9], q[10]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/qpe_t10_third.qasm b/wai/quantum-cross-simulator/corpus/qasm/qpe_t10_third.qasm new file mode 100644 index 000000000..82f8800c2 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/qpe_t10_third.qasm @@ -0,0 +1,84 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[11] q; +x q[10]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +cp(pi*2/3) q[0], q[10]; +cp(pi*4/3) q[1], q[10]; +cp(pi*2/3) q[2], q[10]; +cp(pi*4/3) q[3], q[10]; +cp(pi*2/3) q[4], q[10]; +cp(pi*4/3) q[5], q[10]; +cp(pi*2/3) q[6], q[10]; +cp(pi*4/3) q[7], q[10]; +cp(pi*2/3) q[8], q[10]; +cp(pi*4/3) q[9], q[10]; +swap q[4], q[5]; +swap q[3], q[6]; +swap q[2], q[7]; +swap q[1], q[8]; +swap q[0], q[9]; +h q[0]; +cp(-pi/2) q[0], q[1]; +h q[1]; +cp(-pi/4) q[0], q[2]; +cp(-pi/2) q[1], q[2]; +h q[2]; +cp(-pi/8) q[0], q[3]; +cp(-pi/4) q[1], q[3]; +cp(-pi/2) q[2], q[3]; +h q[3]; +cp(-pi/16) q[0], q[4]; +cp(-pi/8) q[1], q[4]; +cp(-pi/4) q[2], q[4]; +cp(-pi/2) q[3], q[4]; +h q[4]; +cp(-pi/32) q[0], q[5]; +cp(-pi/16) q[1], q[5]; +cp(-pi/8) q[2], q[5]; +cp(-pi/4) q[3], q[5]; +cp(-pi/2) q[4], q[5]; +h q[5]; +cp(-pi/64) q[0], q[6]; +cp(-pi/32) q[1], q[6]; +cp(-pi/16) q[2], q[6]; +cp(-pi/8) q[3], q[6]; +cp(-pi/4) q[4], q[6]; +cp(-pi/2) q[5], q[6]; +h q[6]; +cp(-pi/128) q[0], q[7]; +cp(-pi/64) q[1], q[7]; +cp(-pi/32) q[2], q[7]; +cp(-pi/16) q[3], q[7]; +cp(-pi/8) q[4], q[7]; +cp(-pi/4) q[5], q[7]; +cp(-pi/2) q[6], q[7]; +h q[7]; +cp(-pi/256) q[0], q[8]; +cp(-pi/128) q[1], q[8]; +cp(-pi/64) q[2], q[8]; +cp(-pi/32) q[3], q[8]; +cp(-pi/16) q[4], q[8]; +cp(-pi/8) q[5], q[8]; +cp(-pi/4) q[6], q[8]; +cp(-pi/2) q[7], q[8]; +h q[8]; +cp(-pi/512) q[0], q[9]; +cp(-pi/256) q[1], q[9]; +cp(-pi/128) q[2], q[9]; +cp(-pi/64) q[3], q[9]; +cp(-pi/32) q[4], q[9]; +cp(-pi/16) q[5], q[9]; +cp(-pi/8) q[6], q[9]; +cp(-pi/4) q[7], q[9]; +cp(-pi/2) q[8], q[9]; +h q[9]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/qpe_t12_m2741.qasm b/wai/quantum-cross-simulator/corpus/qasm/qpe_t12_m2741.qasm new file mode 100644 index 000000000..ace661a81 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/qpe_t12_m2741.qasm @@ -0,0 +1,112 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[13] q; +x q[12]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +h q[8]; +h q[9]; +h q[10]; +h q[11]; +cp(pi*2741/2048) q[0], q[12]; +cp(pi*693/1024) q[1], q[12]; +cp(pi*693/512) q[2], q[12]; +cp(pi*181/256) q[3], q[12]; +cp(pi*181/128) q[4], q[12]; +cp(pi*53/64) q[5], q[12]; +cp(pi*53/32) q[6], q[12]; +cp(pi*21/16) q[7], q[12]; +cp(pi*5/8) q[8], q[12]; +cp(pi*5/4) q[9], q[12]; +cp(pi/2) q[10], q[12]; +cp(pi) q[11], q[12]; +swap q[5], q[6]; +swap q[4], q[7]; +swap q[3], q[8]; +swap q[2], q[9]; +swap q[1], q[10]; +swap q[0], q[11]; +h q[0]; +cp(-pi/2) q[0], q[1]; +h q[1]; +cp(-pi/4) q[0], q[2]; +cp(-pi/2) q[1], q[2]; +h q[2]; +cp(-pi/8) q[0], q[3]; +cp(-pi/4) q[1], q[3]; +cp(-pi/2) q[2], q[3]; +h q[3]; +cp(-pi/16) q[0], q[4]; +cp(-pi/8) q[1], q[4]; +cp(-pi/4) q[2], q[4]; +cp(-pi/2) q[3], q[4]; +h q[4]; +cp(-pi/32) q[0], q[5]; +cp(-pi/16) q[1], q[5]; +cp(-pi/8) q[2], q[5]; +cp(-pi/4) q[3], q[5]; +cp(-pi/2) q[4], q[5]; +h q[5]; +cp(-pi/64) q[0], q[6]; +cp(-pi/32) q[1], q[6]; +cp(-pi/16) q[2], q[6]; +cp(-pi/8) q[3], q[6]; +cp(-pi/4) q[4], q[6]; +cp(-pi/2) q[5], q[6]; +h q[6]; +cp(-pi/128) q[0], q[7]; +cp(-pi/64) q[1], q[7]; +cp(-pi/32) q[2], q[7]; +cp(-pi/16) q[3], q[7]; +cp(-pi/8) q[4], q[7]; +cp(-pi/4) q[5], q[7]; +cp(-pi/2) q[6], q[7]; +h q[7]; +cp(-pi/256) q[0], q[8]; +cp(-pi/128) q[1], q[8]; +cp(-pi/64) q[2], q[8]; +cp(-pi/32) q[3], q[8]; +cp(-pi/16) q[4], q[8]; +cp(-pi/8) q[5], q[8]; +cp(-pi/4) q[6], q[8]; +cp(-pi/2) q[7], q[8]; +h q[8]; +cp(-pi/512) q[0], q[9]; +cp(-pi/256) q[1], q[9]; +cp(-pi/128) q[2], q[9]; +cp(-pi/64) q[3], q[9]; +cp(-pi/32) q[4], q[9]; +cp(-pi/16) q[5], q[9]; +cp(-pi/8) q[6], q[9]; +cp(-pi/4) q[7], q[9]; +cp(-pi/2) q[8], q[9]; +h q[9]; +cp(-pi/1024) q[0], q[10]; +cp(-pi/512) q[1], q[10]; +cp(-pi/256) q[2], q[10]; +cp(-pi/128) q[3], q[10]; +cp(-pi/64) q[4], q[10]; +cp(-pi/32) q[5], q[10]; +cp(-pi/16) q[6], q[10]; +cp(-pi/8) q[7], q[10]; +cp(-pi/4) q[8], q[10]; +cp(-pi/2) q[9], q[10]; +h q[10]; +cp(-pi/2048) q[0], q[11]; +cp(-pi/1024) q[1], q[11]; +cp(-pi/512) q[2], q[11]; +cp(-pi/256) q[3], q[11]; +cp(-pi/128) q[4], q[11]; +cp(-pi/64) q[5], q[11]; +cp(-pi/32) q[6], q[11]; +cp(-pi/16) q[7], q[11]; +cp(-pi/8) q[8], q[11]; +cp(-pi/4) q[9], q[11]; +cp(-pi/2) q[10], q[11]; +h q[11]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/qpe_t4_m5.qasm b/wai/quantum-cross-simulator/corpus/qasm/qpe_t4_m5.qasm new file mode 100644 index 000000000..385cf94aa --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/qpe_t4_m5.qasm @@ -0,0 +1,24 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[5] q; +x q[4]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +cp(pi*5/8) q[0], q[4]; +cp(pi*5/4) q[1], q[4]; +cp(pi/2) q[2], q[4]; +cp(pi) q[3], q[4]; +swap q[1], q[2]; +swap q[0], q[3]; +h q[0]; +cp(-pi/2) q[0], q[1]; +h q[1]; +cp(-pi/4) q[0], q[2]; +cp(-pi/2) q[1], q[2]; +h q[2]; +cp(-pi/8) q[0], q[3]; +cp(-pi/4) q[1], q[3]; +cp(-pi/2) q[2], q[3]; +h q[3]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/qpe_t6_third.qasm b/wai/quantum-cross-simulator/corpus/qasm/qpe_t6_third.qasm new file mode 100644 index 000000000..6dbe81195 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/qpe_t6_third.qasm @@ -0,0 +1,40 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[7] q; +x q[6]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +cp(pi*2/3) q[0], q[6]; +cp(pi*4/3) q[1], q[6]; +cp(pi*2/3) q[2], q[6]; +cp(pi*4/3) q[3], q[6]; +cp(pi*2/3) q[4], q[6]; +cp(pi*4/3) q[5], q[6]; +swap q[2], q[3]; +swap q[1], q[4]; +swap q[0], q[5]; +h q[0]; +cp(-pi/2) q[0], q[1]; +h q[1]; +cp(-pi/4) q[0], q[2]; +cp(-pi/2) q[1], q[2]; +h q[2]; +cp(-pi/8) q[0], q[3]; +cp(-pi/4) q[1], q[3]; +cp(-pi/2) q[2], q[3]; +h q[3]; +cp(-pi/16) q[0], q[4]; +cp(-pi/8) q[1], q[4]; +cp(-pi/4) q[2], q[4]; +cp(-pi/2) q[3], q[4]; +h q[4]; +cp(-pi/32) q[0], q[5]; +cp(-pi/16) q[1], q[5]; +cp(-pi/8) q[2], q[5]; +cp(-pi/4) q[3], q[5]; +cp(-pi/2) q[4], q[5]; +h q[5]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/qpe_t8_m173.qasm b/wai/quantum-cross-simulator/corpus/qasm/qpe_t8_m173.qasm new file mode 100644 index 000000000..e933e7301 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/qpe_t8_m173.qasm @@ -0,0 +1,60 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[9] q; +x q[8]; +h q[0]; +h q[1]; +h q[2]; +h q[3]; +h q[4]; +h q[5]; +h q[6]; +h q[7]; +cp(pi*173/128) q[0], q[8]; +cp(pi*45/64) q[1], q[8]; +cp(pi*45/32) q[2], q[8]; +cp(pi*13/16) q[3], q[8]; +cp(pi*13/8) q[4], q[8]; +cp(pi*5/4) q[5], q[8]; +cp(pi/2) q[6], q[8]; +cp(pi) q[7], q[8]; +swap q[3], q[4]; +swap q[2], q[5]; +swap q[1], q[6]; +swap q[0], q[7]; +h q[0]; +cp(-pi/2) q[0], q[1]; +h q[1]; +cp(-pi/4) q[0], q[2]; +cp(-pi/2) q[1], q[2]; +h q[2]; +cp(-pi/8) q[0], q[3]; +cp(-pi/4) q[1], q[3]; +cp(-pi/2) q[2], q[3]; +h q[3]; +cp(-pi/16) q[0], q[4]; +cp(-pi/8) q[1], q[4]; +cp(-pi/4) q[2], q[4]; +cp(-pi/2) q[3], q[4]; +h q[4]; +cp(-pi/32) q[0], q[5]; +cp(-pi/16) q[1], q[5]; +cp(-pi/8) q[2], q[5]; +cp(-pi/4) q[3], q[5]; +cp(-pi/2) q[4], q[5]; +h q[5]; +cp(-pi/64) q[0], q[6]; +cp(-pi/32) q[1], q[6]; +cp(-pi/16) q[2], q[6]; +cp(-pi/8) q[3], q[6]; +cp(-pi/4) q[4], q[6]; +cp(-pi/2) q[5], q[6]; +h q[6]; +cp(-pi/128) q[0], q[7]; +cp(-pi/64) q[1], q[7]; +cp(-pi/32) q[2], q[7]; +cp(-pi/16) q[3], q[7]; +cp(-pi/8) q[4], q[7]; +cp(-pi/4) q[5], q[7]; +cp(-pi/2) q[6], q[7]; +h q[7]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/repeat_until_success.qasm b/wai/quantum-cross-simulator/corpus/qasm/repeat_until_success.qasm new file mode 100644 index 000000000..90bbb1857 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/repeat_until_success.qasm @@ -0,0 +1,32 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[2] q; +bit[4] c; +h q[1]; +t q[1]; +cx q[0], q[1]; +h q[1]; +t q[1]; +c[0] = measure q[1]; +if (c[0] == 1) { x q[1]; } +h q[0]; +t q[0]; +h q[1]; +t q[1]; +cx q[0], q[1]; +h q[1]; +t q[1]; +c[1] = measure q[1]; +if (c[1] == 1) { x q[1]; } +h q[0]; +t q[0]; +h q[1]; +t q[1]; +cx q[0], q[1]; +h q[1]; +t q[1]; +c[2] = measure q[1]; +if (c[2] == 1) { x q[1]; } +h q[0]; +t q[0]; +c[3] = measure q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/reset_after_superposition.qasm b/wai/quantum-cross-simulator/corpus/qasm/reset_after_superposition.qasm new file mode 100644 index 000000000..8bf340543 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/reset_after_superposition.qasm @@ -0,0 +1,9 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[2] q; +bit[2] c; +h q[0]; +cx q[0], q[1]; +reset q[0]; +c[0] = measure q[0]; +c[1] = measure q[1]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/rotations_counts_n6.qasm b/wai/quantum-cross-simulator/corpus/qasm/rotations_counts_n6.qasm new file mode 100644 index 000000000..0bc16b97c --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/rotations_counts_n6.qasm @@ -0,0 +1,180 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[6] q; +bit[6] c; +U(1.50149751610298094, 2.98033700011497851, 1.64590151017894759) q[0]; +U(1.93752518902363929, 2.28663508311859593, 1.67960116894186391) q[1]; +U(0.23628562470471927, 0.64749767712160586, 0.71927500100972603) q[2]; +U(1.44464422744511989, 2.94398210329709101, 1.97608934002193844) q[3]; +U(1.13671815330683929, 1.64059746183696474, 1.43607995119298533) q[4]; +U(2.58928242428118442, 2.48608387403147952, 0.33138154773168676) q[5]; +cx q[0], q[1]; +cx q[2], q[3]; +cx q[4], q[5]; +U(2.81905881264298740, 2.34740402450336420, 1.24906445080515375) q[0]; +U(1.54493204713189988, 0.39094696497481752, 2.02738379773481162) q[1]; +U(0.86606235497968128, 2.08532711979830692, 0.25956284650284934) q[2]; +U(1.02152906245646787, 0.84783423018344274, 2.36334231919519889) q[3]; +U(1.42647293329657350, 0.92446112777529152, 1.67453807046105563) q[4]; +U(2.32482115086690043, 0.09210891297016108, 0.72185815848982970) q[5]; +cx q[1], q[2]; +cx q[3], q[4]; +U(1.94781198405520535, 0.78557449030008693, 0.82887671375209533) q[0]; +U(1.19817511273063034, 1.69779999607367592, 0.64177647487443609) q[1]; +U(0.66256621402934444, 2.67148186268681169, 0.23096289234533641) q[2]; +U(2.13771475907107643, 0.21618818572512906, 0.12456050101899381) q[3]; +U(1.16288717461409890, 2.39952575578859683, 2.53901033299538383) q[4]; +U(0.57128855034933836, 1.84370763110564957, 2.93517839229751633) q[5]; +cx q[0], q[1]; +cx q[2], q[3]; +cx q[4], q[5]; +U(2.43633760313890194, 2.73674758063377214, 1.77096993293853786) q[0]; +U(0.77147223375800483, 2.59830899830802753, 1.05819756073535439) q[1]; +U(2.29176470717864270, 1.69214001425435463, 0.07647178064668911) q[2]; +U(1.08739006836072653, 1.60275692733181789, 1.41860968611403354) q[3]; +U(1.82901408033278470, 0.04909000786803146, 1.23060753672316281) q[4]; +U(1.81327007619851203, 1.41041960885198167, 1.83953432644998371) q[5]; +cx q[1], q[2]; +cx q[3], q[4]; +U(2.98612549800796162, 1.29772055413432928, 0.93473718990264667) q[0]; +U(1.42988354971988452, 1.78405037236822760, 1.91124474736461905) q[1]; +U(1.49163902537001929, 2.52288031312275582, 2.91989326173163357) q[2]; +U(0.14083038385990504, 2.66962668295110371, 2.57625832367354150) q[3]; +U(2.23734574944245023, 0.04326374460670426, 1.29927076686161264) q[4]; +U(0.95787055827194076, 0.22655739928262355, 0.44739118532511002) q[5]; +cx q[0], q[1]; +cx q[2], q[3]; +cx q[4], q[5]; +U(1.30039029151733550, 0.28493888898959164, 0.92020740423707121) q[0]; +U(1.83830128816816504, 0.46357754192928880, 2.83448855027792046) q[1]; +U(0.45228408076923538, 1.89716470412049732, 1.05361419993442231) q[2]; +U(0.32558616813784649, 2.09184084730333938, 2.84162131555724213) q[3]; +U(1.06815624751718512, 2.54975002339673854, 2.21459787537470905) q[4]; +U(2.15129147231712394, 0.59868492316822087, 2.49664803786746646) q[5]; +cx q[1], q[2]; +cx q[3], q[4]; +U(1.78835238085736146, 0.42938037741841342, 2.38807534245408240) q[0]; +U(1.63012661782782082, 2.73191306214736942, 0.42364557852916132) q[1]; +U(2.50377234228330543, 1.20721931515877782, 0.68865786246402588) q[2]; +U(0.82546763557561850, 0.90516123375752942, 1.45140063202456797) q[3]; +U(1.15472455671284342, 0.75584020048086154, 1.48738393922373306) q[4]; +U(0.94149924156248327, 2.80751759519928951, 2.42237916674880346) q[5]; +cx q[0], q[1]; +cx q[2], q[3]; +cx q[4], q[5]; +U(1.13358284901497153, 1.95511450754421337, 2.21189931451802975) q[0]; +U(2.23332918845640241, 0.25668303276816290, 0.09423616476546013) q[1]; +U(1.74284298021049589, 2.83893504504915285, 2.21342704100424228) q[2]; +U(0.54262941330832370, 2.32158812438605101, 2.03782262789654063) q[3]; +U(2.03217182488088136, 1.39963285367206713, 2.40846108086863941) q[4]; +U(0.07264255533105027, 0.16040981685582746, 0.16851647752246063) q[5]; +cx q[1], q[2]; +cx q[3], q[4]; +U(1.98296159498566108, 0.13379603784947007, 2.21831437813818482) q[0]; +U(1.15677092865322605, 2.36154118809254623, 0.73304605101360003) q[1]; +U(0.31043212107323052, 1.07156505175520680, 1.04827249676285860) q[2]; +U(0.59049098142826538, 2.08012054366643280, 0.59968249292091182) q[3]; +U(0.66596538387696427, 1.96410481394210868, 2.41586518531174700) q[4]; +U(2.87216589530011466, 1.96702466640057843, 2.18243998880318889) q[5]; +cx q[0], q[1]; +cx q[2], q[3]; +cx q[4], q[5]; +U(1.52942714653994485, 0.84518565612896092, 2.91588772734130073) q[0]; +U(0.08947709250549662, 0.29211966212854385, 2.37194622328461525) q[1]; +U(1.61652589280828456, 2.49534864268182151, 0.72972899347175157) q[2]; +U(2.79677707521165691, 2.63836160973376222, 0.43150791761853891) q[3]; +U(1.07262230225352675, 0.16918171450475413, 0.00762497374913322) q[4]; +U(2.47601969210533762, 1.08725719196236491, 2.40644292065628341) q[5]; +cx q[1], q[2]; +cx q[3], q[4]; +U(2.97477539167985049, 2.74629864494816311, 1.39810483990775023) q[0]; +U(2.55445197834397599, 1.36601963088246418, 2.01979915918368800) q[1]; +U(1.45606227719054466, 1.56553632512454576, 0.44673768342649407) q[2]; +U(0.83925222499360776, 2.61173570939231607, 2.50406002993464472) q[3]; +U(0.49298082307244257, 0.99847300780989706, 1.52160738581784439) q[4]; +U(2.99004869597337216, 2.71752298628405650, 2.26508535578437463) q[5]; +cx q[0], q[1]; +cx q[2], q[3]; +cx q[4], q[5]; +U(2.70773373151545092, 1.15166064781506363, 2.22045462450204766) q[0]; +U(0.69259449567942980, 1.42775995274254703, 1.40843116666646822) q[1]; +U(2.12741125866758535, 1.35640381252668039, 0.32060365984208601) q[2]; +U(0.95890058631891940, 0.99149694982066830, 0.36733762458781645) q[3]; +U(0.17500210269439707, 0.29514780676376177, 2.93046282095102596) q[4]; +U(0.70113629907649364, 0.99384597272610808, 0.27906171669790194) q[5]; +cx q[1], q[2]; +cx q[3], q[4]; +U(2.76078208011146987, 1.48105950626069341, 2.66875158418566413) q[0]; +U(0.84510234194877101, 0.98904263508746175, 0.49609109524637206) q[1]; +U(0.08020834870138253, 0.29276590050366855, 1.97844246285111658) q[2]; +U(1.97555589002000298, 0.52591670358766215, 1.50623846013752547) q[3]; +U(1.60963322203361890, 0.33004285398028644, 1.98283615808353509) q[4]; +U(1.97620403763151775, 0.87095984614056772, 0.26058962791619129) q[5]; +cx q[0], q[1]; +cx q[2], q[3]; +cx q[4], q[5]; +U(1.62577300000935120, 0.69794524876474155, 1.27280616462760178) q[0]; +U(2.76310063767228946, 2.36438860121595631, 2.44448815696183740) q[1]; +U(2.87776338407901157, 2.17463738533521890, 1.00640087477139905) q[2]; +U(0.27723740092914066, 2.04411281557987703, 2.67578788402571320) q[3]; +U(2.97391943192803033, 2.00706899854588618, 0.05022000202479518) q[4]; +U(0.64273586606371904, 2.01559902792444022, 0.35291684029250737) q[5]; +cx q[1], q[2]; +cx q[3], q[4]; +U(1.92917098213764228, 2.86665366558752605, 0.04221566440546548) q[0]; +U(0.23096280270811925, 2.69967346200316996, 1.39623336744860080) q[1]; +U(1.20374446984884306, 0.74546071282629843, 2.01174764639237514) q[2]; +U(1.53088158082935561, 1.03501405089829840, 1.16727769959461704) q[3]; +U(2.03116137514259372, 2.56860136306976485, 2.94446027866111323) q[4]; +U(0.34867966323127313, 1.68669768729996394, 0.85778952032368158) q[5]; +cx q[0], q[1]; +cx q[2], q[3]; +cx q[4], q[5]; +U(1.63446026994369332, 2.36003998236926304, 0.27398808497672198) q[0]; +U(0.39365957208659120, 2.49818905280742018, 1.84281817517620261) q[1]; +U(0.16149808225989297, 2.95168241360949147, 0.13377039416952914) q[2]; +U(2.79131495285047119, 2.76313641667336757, 1.94256894727264084) q[3]; +U(0.14109783114591885, 2.47979413606656124, 0.08610774935111830) q[4]; +U(2.07909794655327983, 2.80188026713711414, 2.46890318776441730) q[5]; +cx q[1], q[2]; +cx q[3], q[4]; +U(2.50312620909772216, 2.35738611525283158, 2.01770787957940881) q[0]; +U(1.25683984017594466, 0.93367351110234954, 1.22911144941376017) q[1]; +U(2.75938076807498046, 2.24524258917309923, 0.41266882065236444) q[2]; +U(2.87937153248392257, 2.08243244487488367, 1.02878412909182299) q[3]; +U(1.04020080282559270, 0.78434793539454645, 2.62200652043837273) q[4]; +U(1.62000674872440687, 1.67235439334478801, 0.75779899358452946) q[5]; +cx q[0], q[1]; +cx q[2], q[3]; +cx q[4], q[5]; +U(2.57288463594865404, 2.78547449603955002, 1.65132233428938271) q[0]; +U(0.26850352433629476, 0.16789276044354406, 2.26105188779353736) q[1]; +U(1.42799274336927142, 1.10953604813616307, 1.54082131658989105) q[2]; +U(0.14142462008234476, 2.54931539938241060, 1.37385445341176081) q[3]; +U(2.34079066471638096, 1.80747830247946870, 1.61378521356969788) q[4]; +U(1.59787508002805943, 2.12553979525057680, 0.09014131571478354) q[5]; +cx q[1], q[2]; +cx q[3], q[4]; +U(0.08810318523849561, 0.96517960732837279, 2.08582142720323723) q[0]; +U(0.33269823872992551, 1.00768417387409980, 0.32370251383097404) q[1]; +U(2.40839180791378733, 2.17472082013707284, 0.12090890276992941) q[2]; +U(0.03082054574297435, 2.28440490401877888, 2.17897541423215676) q[3]; +U(1.66475363435617799, 2.81098943451787494, 1.52826832772156300) q[4]; +U(0.95512645970930865, 0.32569288549052242, 1.25908161580446375) q[5]; +cx q[0], q[1]; +cx q[2], q[3]; +cx q[4], q[5]; +U(1.74951717844275526, 2.45689872605020653, 0.81325632644544354) q[0]; +U(1.02374282457777729, 2.61448858301261967, 0.87203559360238363) q[1]; +U(1.49870831717374514, 2.18516064997543877, 1.37777655249477107) q[2]; +U(2.10153645903850936, 0.70671570239128727, 2.32135216123252721) q[3]; +U(1.78317292506442365, 0.30752190887753493, 1.97418220161232297) q[4]; +U(2.09098311425928247, 1.54072897205642993, 1.66455214588912214) q[5]; +cx q[1], q[2]; +cx q[3], q[4]; +c[0] = measure q[0]; +c[1] = measure q[1]; +c[2] = measure q[2]; +c[3] = measure q[3]; +c[4] = measure q[4]; +c[5] = measure q[5]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/rotations_n6.qasm b/wai/quantum-cross-simulator/corpus/qasm/rotations_n6.qasm new file mode 100644 index 000000000..538238b7d --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/rotations_n6.qasm @@ -0,0 +1,173 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[6] q; +U(1.50149751610298094, 2.98033700011497851, 1.64590151017894759) q[0]; +U(1.93752518902363929, 2.28663508311859593, 1.67960116894186391) q[1]; +U(0.23628562470471927, 0.64749767712160586, 0.71927500100972603) q[2]; +U(1.44464422744511989, 2.94398210329709101, 1.97608934002193844) q[3]; +U(1.13671815330683929, 1.64059746183696474, 1.43607995119298533) q[4]; +U(2.58928242428118442, 2.48608387403147952, 0.33138154773168676) q[5]; +cx q[0], q[1]; +cx q[2], q[3]; +cx q[4], q[5]; +U(2.81905881264298740, 2.34740402450336420, 1.24906445080515375) q[0]; +U(1.54493204713189988, 0.39094696497481752, 2.02738379773481162) q[1]; +U(0.86606235497968128, 2.08532711979830692, 0.25956284650284934) q[2]; +U(1.02152906245646787, 0.84783423018344274, 2.36334231919519889) q[3]; +U(1.42647293329657350, 0.92446112777529152, 1.67453807046105563) q[4]; +U(2.32482115086690043, 0.09210891297016108, 0.72185815848982970) q[5]; +cx q[1], q[2]; +cx q[3], q[4]; +U(1.94781198405520535, 0.78557449030008693, 0.82887671375209533) q[0]; +U(1.19817511273063034, 1.69779999607367592, 0.64177647487443609) q[1]; +U(0.66256621402934444, 2.67148186268681169, 0.23096289234533641) q[2]; +U(2.13771475907107643, 0.21618818572512906, 0.12456050101899381) q[3]; +U(1.16288717461409890, 2.39952575578859683, 2.53901033299538383) q[4]; +U(0.57128855034933836, 1.84370763110564957, 2.93517839229751633) q[5]; +cx q[0], q[1]; +cx q[2], q[3]; +cx q[4], q[5]; +U(2.43633760313890194, 2.73674758063377214, 1.77096993293853786) q[0]; +U(0.77147223375800483, 2.59830899830802753, 1.05819756073535439) q[1]; +U(2.29176470717864270, 1.69214001425435463, 0.07647178064668911) q[2]; +U(1.08739006836072653, 1.60275692733181789, 1.41860968611403354) q[3]; +U(1.82901408033278470, 0.04909000786803146, 1.23060753672316281) q[4]; +U(1.81327007619851203, 1.41041960885198167, 1.83953432644998371) q[5]; +cx q[1], q[2]; +cx q[3], q[4]; +U(2.98612549800796162, 1.29772055413432928, 0.93473718990264667) q[0]; +U(1.42988354971988452, 1.78405037236822760, 1.91124474736461905) q[1]; +U(1.49163902537001929, 2.52288031312275582, 2.91989326173163357) q[2]; +U(0.14083038385990504, 2.66962668295110371, 2.57625832367354150) q[3]; +U(2.23734574944245023, 0.04326374460670426, 1.29927076686161264) q[4]; +U(0.95787055827194076, 0.22655739928262355, 0.44739118532511002) q[5]; +cx q[0], q[1]; +cx q[2], q[3]; +cx q[4], q[5]; +U(1.30039029151733550, 0.28493888898959164, 0.92020740423707121) q[0]; +U(1.83830128816816504, 0.46357754192928880, 2.83448855027792046) q[1]; +U(0.45228408076923538, 1.89716470412049732, 1.05361419993442231) q[2]; +U(0.32558616813784649, 2.09184084730333938, 2.84162131555724213) q[3]; +U(1.06815624751718512, 2.54975002339673854, 2.21459787537470905) q[4]; +U(2.15129147231712394, 0.59868492316822087, 2.49664803786746646) q[5]; +cx q[1], q[2]; +cx q[3], q[4]; +U(1.78835238085736146, 0.42938037741841342, 2.38807534245408240) q[0]; +U(1.63012661782782082, 2.73191306214736942, 0.42364557852916132) q[1]; +U(2.50377234228330543, 1.20721931515877782, 0.68865786246402588) q[2]; +U(0.82546763557561850, 0.90516123375752942, 1.45140063202456797) q[3]; +U(1.15472455671284342, 0.75584020048086154, 1.48738393922373306) q[4]; +U(0.94149924156248327, 2.80751759519928951, 2.42237916674880346) q[5]; +cx q[0], q[1]; +cx q[2], q[3]; +cx q[4], q[5]; +U(1.13358284901497153, 1.95511450754421337, 2.21189931451802975) q[0]; +U(2.23332918845640241, 0.25668303276816290, 0.09423616476546013) q[1]; +U(1.74284298021049589, 2.83893504504915285, 2.21342704100424228) q[2]; +U(0.54262941330832370, 2.32158812438605101, 2.03782262789654063) q[3]; +U(2.03217182488088136, 1.39963285367206713, 2.40846108086863941) q[4]; +U(0.07264255533105027, 0.16040981685582746, 0.16851647752246063) q[5]; +cx q[1], q[2]; +cx q[3], q[4]; +U(1.98296159498566108, 0.13379603784947007, 2.21831437813818482) q[0]; +U(1.15677092865322605, 2.36154118809254623, 0.73304605101360003) q[1]; +U(0.31043212107323052, 1.07156505175520680, 1.04827249676285860) q[2]; +U(0.59049098142826538, 2.08012054366643280, 0.59968249292091182) q[3]; +U(0.66596538387696427, 1.96410481394210868, 2.41586518531174700) q[4]; +U(2.87216589530011466, 1.96702466640057843, 2.18243998880318889) q[5]; +cx q[0], q[1]; +cx q[2], q[3]; +cx q[4], q[5]; +U(1.52942714653994485, 0.84518565612896092, 2.91588772734130073) q[0]; +U(0.08947709250549662, 0.29211966212854385, 2.37194622328461525) q[1]; +U(1.61652589280828456, 2.49534864268182151, 0.72972899347175157) q[2]; +U(2.79677707521165691, 2.63836160973376222, 0.43150791761853891) q[3]; +U(1.07262230225352675, 0.16918171450475413, 0.00762497374913322) q[4]; +U(2.47601969210533762, 1.08725719196236491, 2.40644292065628341) q[5]; +cx q[1], q[2]; +cx q[3], q[4]; +U(2.97477539167985049, 2.74629864494816311, 1.39810483990775023) q[0]; +U(2.55445197834397599, 1.36601963088246418, 2.01979915918368800) q[1]; +U(1.45606227719054466, 1.56553632512454576, 0.44673768342649407) q[2]; +U(0.83925222499360776, 2.61173570939231607, 2.50406002993464472) q[3]; +U(0.49298082307244257, 0.99847300780989706, 1.52160738581784439) q[4]; +U(2.99004869597337216, 2.71752298628405650, 2.26508535578437463) q[5]; +cx q[0], q[1]; +cx q[2], q[3]; +cx q[4], q[5]; +U(2.70773373151545092, 1.15166064781506363, 2.22045462450204766) q[0]; +U(0.69259449567942980, 1.42775995274254703, 1.40843116666646822) q[1]; +U(2.12741125866758535, 1.35640381252668039, 0.32060365984208601) q[2]; +U(0.95890058631891940, 0.99149694982066830, 0.36733762458781645) q[3]; +U(0.17500210269439707, 0.29514780676376177, 2.93046282095102596) q[4]; +U(0.70113629907649364, 0.99384597272610808, 0.27906171669790194) q[5]; +cx q[1], q[2]; +cx q[3], q[4]; +U(2.76078208011146987, 1.48105950626069341, 2.66875158418566413) q[0]; +U(0.84510234194877101, 0.98904263508746175, 0.49609109524637206) q[1]; +U(0.08020834870138253, 0.29276590050366855, 1.97844246285111658) q[2]; +U(1.97555589002000298, 0.52591670358766215, 1.50623846013752547) q[3]; +U(1.60963322203361890, 0.33004285398028644, 1.98283615808353509) q[4]; +U(1.97620403763151775, 0.87095984614056772, 0.26058962791619129) q[5]; +cx q[0], q[1]; +cx q[2], q[3]; +cx q[4], q[5]; +U(1.62577300000935120, 0.69794524876474155, 1.27280616462760178) q[0]; +U(2.76310063767228946, 2.36438860121595631, 2.44448815696183740) q[1]; +U(2.87776338407901157, 2.17463738533521890, 1.00640087477139905) q[2]; +U(0.27723740092914066, 2.04411281557987703, 2.67578788402571320) q[3]; +U(2.97391943192803033, 2.00706899854588618, 0.05022000202479518) q[4]; +U(0.64273586606371904, 2.01559902792444022, 0.35291684029250737) q[5]; +cx q[1], q[2]; +cx q[3], q[4]; +U(1.92917098213764228, 2.86665366558752605, 0.04221566440546548) q[0]; +U(0.23096280270811925, 2.69967346200316996, 1.39623336744860080) q[1]; +U(1.20374446984884306, 0.74546071282629843, 2.01174764639237514) q[2]; +U(1.53088158082935561, 1.03501405089829840, 1.16727769959461704) q[3]; +U(2.03116137514259372, 2.56860136306976485, 2.94446027866111323) q[4]; +U(0.34867966323127313, 1.68669768729996394, 0.85778952032368158) q[5]; +cx q[0], q[1]; +cx q[2], q[3]; +cx q[4], q[5]; +U(1.63446026994369332, 2.36003998236926304, 0.27398808497672198) q[0]; +U(0.39365957208659120, 2.49818905280742018, 1.84281817517620261) q[1]; +U(0.16149808225989297, 2.95168241360949147, 0.13377039416952914) q[2]; +U(2.79131495285047119, 2.76313641667336757, 1.94256894727264084) q[3]; +U(0.14109783114591885, 2.47979413606656124, 0.08610774935111830) q[4]; +U(2.07909794655327983, 2.80188026713711414, 2.46890318776441730) q[5]; +cx q[1], q[2]; +cx q[3], q[4]; +U(2.50312620909772216, 2.35738611525283158, 2.01770787957940881) q[0]; +U(1.25683984017594466, 0.93367351110234954, 1.22911144941376017) q[1]; +U(2.75938076807498046, 2.24524258917309923, 0.41266882065236444) q[2]; +U(2.87937153248392257, 2.08243244487488367, 1.02878412909182299) q[3]; +U(1.04020080282559270, 0.78434793539454645, 2.62200652043837273) q[4]; +U(1.62000674872440687, 1.67235439334478801, 0.75779899358452946) q[5]; +cx q[0], q[1]; +cx q[2], q[3]; +cx q[4], q[5]; +U(2.57288463594865404, 2.78547449603955002, 1.65132233428938271) q[0]; +U(0.26850352433629476, 0.16789276044354406, 2.26105188779353736) q[1]; +U(1.42799274336927142, 1.10953604813616307, 1.54082131658989105) q[2]; +U(0.14142462008234476, 2.54931539938241060, 1.37385445341176081) q[3]; +U(2.34079066471638096, 1.80747830247946870, 1.61378521356969788) q[4]; +U(1.59787508002805943, 2.12553979525057680, 0.09014131571478354) q[5]; +cx q[1], q[2]; +cx q[3], q[4]; +U(0.08810318523849561, 0.96517960732837279, 2.08582142720323723) q[0]; +U(0.33269823872992551, 1.00768417387409980, 0.32370251383097404) q[1]; +U(2.40839180791378733, 2.17472082013707284, 0.12090890276992941) q[2]; +U(0.03082054574297435, 2.28440490401877888, 2.17897541423215676) q[3]; +U(1.66475363435617799, 2.81098943451787494, 1.52826832772156300) q[4]; +U(0.95512645970930865, 0.32569288549052242, 1.25908161580446375) q[5]; +cx q[0], q[1]; +cx q[2], q[3]; +cx q[4], q[5]; +U(1.74951717844275526, 2.45689872605020653, 0.81325632644544354) q[0]; +U(1.02374282457777729, 2.61448858301261967, 0.87203559360238363) q[1]; +U(1.49870831717374514, 2.18516064997543877, 1.37777655249477107) q[2]; +U(2.10153645903850936, 0.70671570239128727, 2.32135216123252721) q[3]; +U(1.78317292506442365, 0.30752190887753493, 1.97418220161232297) q[4]; +U(2.09098311425928247, 1.54072897205642993, 1.66455214588912214) q[5]; +cx q[1], q[2]; +cx q[3], q[4]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/rotations_wide_n20.qasm b/wai/quantum-cross-simulator/corpus/qasm/rotations_wide_n20.qasm new file mode 100644 index 000000000..ace144a14 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/rotations_wide_n20.qasm @@ -0,0 +1,298 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[20] q; +U(0.96585456831455149, 2.81740693622979837, 2.32042187587695041) q[0]; +U(2.51892055336466532, 0.65085583288933773, 1.11414459052023638) q[1]; +U(2.98167068742664261, 2.09908644078740947, 0.58589190409393385) q[2]; +U(2.07669461011711591, 1.07021249301623334, 0.16683912562929917) q[3]; +U(0.03091121126693869, 2.82042812407929245, 1.93409002394689967) q[4]; +U(2.05503655986033807, 0.87008186292158326, 2.41512123504251882) q[5]; +U(1.99501035166922006, 0.88173447976412522, 1.11429850727708553) q[6]; +U(0.89822587176620764, 1.02461592428396331, 1.63112001982834387) q[7]; +U(1.87771720132907513, 2.48557336070692922, 2.52289484257742785) q[8]; +U(2.48606433511320017, 0.29355710146121820, 0.12183224605237800) q[9]; +U(0.22625786399471283, 2.36113764933939285, 0.02190417040013176) q[10]; +U(0.79212190258097048, 1.28247754838154417, 0.15678416977016927) q[11]; +U(2.93069021564965197, 2.64346734509480360, 0.67619124702205058) q[12]; +U(1.53040141482564573, 1.99112168098470026, 0.30369057380570807) q[13]; +U(1.97160672871521481, 0.84578777718511189, 0.78916337289398422) q[14]; +U(1.51153479932798213, 0.82396616447775649, 1.22782568678250899) q[15]; +U(2.78106606079801886, 1.38174661261679368, 0.07355971120825342) q[16]; +U(1.47116283228980652, 0.27844595562631828, 0.83728927534711779) q[17]; +U(1.30033786115337829, 0.05370456511146486, 2.93844787504909044) q[18]; +U(0.33609434620533839, 0.86265768736833536, 0.01447388989486485) q[19]; +cx q[0], q[1]; +cx q[2], q[3]; +cx q[4], q[5]; +cx q[6], q[7]; +cx q[8], q[9]; +cx q[10], q[11]; +cx q[12], q[13]; +cx q[14], q[15]; +cx q[16], q[17]; +cx q[18], q[19]; +U(2.64299169868920633, 0.03975115398278383, 1.38779989543196346) q[0]; +U(1.98771958650044054, 0.35867384161990948, 1.68614435084498703) q[1]; +U(2.14700430442890135, 0.11207468921427912, 1.67523805418604690) q[2]; +U(2.43794444792833952, 2.04675477085082348, 2.58796388687085572) q[3]; +U(1.03630563124502622, 2.50691318043316058, 1.25964211462310614) q[4]; +U(2.78198666557084817, 2.39965969321807484, 0.87973896684987521) q[5]; +U(2.79099955925949840, 0.94522457287521685, 2.40146591751834461) q[6]; +U(1.99764790623119827, 2.64188076179261554, 0.70784264197992900) q[7]; +U(2.38849725360901659, 1.82882466031068743, 2.99187553071215896) q[8]; +U(1.93868586117759631, 1.23342377153545564, 0.70892924086873833) q[9]; +U(2.07919575743916851, 2.72675009739792430, 2.79898283444133081) q[10]; +U(1.76657247307001431, 1.22854104418325557, 2.70832871299980748) q[11]; +U(2.07823731971621149, 1.17350187116230314, 2.08456293150681510) q[12]; +U(1.10594272305837987, 2.11620901222920023, 2.17578069539847024) q[13]; +U(2.15469377160882118, 1.91947351778467379, 0.80899998099565817) q[14]; +U(1.15628333246781836, 1.75375368534073816, 2.95391497506015068) q[15]; +U(2.83090108065654358, 0.31790214401021724, 0.47616341537369528) q[16]; +U(0.22060842859697265, 2.30879830035556605, 1.41204784397636015) q[17]; +U(2.52087199884808034, 1.38593818608970268, 0.29950755909937562) q[18]; +U(0.16766738460581114, 2.60512288175189223, 0.98460524118553937) q[19]; +cx q[1], q[2]; +cx q[3], q[4]; +cx q[5], q[6]; +cx q[7], q[8]; +cx q[9], q[10]; +cx q[11], q[12]; +cx q[13], q[14]; +cx q[15], q[16]; +cx q[17], q[18]; +U(0.89342951741028828, 1.31611570537273541, 1.11849793270647752) q[0]; +U(2.94184358995983072, 0.77369632743831830, 0.29948186082805737) q[1]; +U(2.71878323362995361, 0.19469672393646026, 2.43755566115140587) q[2]; +U(1.88561045032951088, 0.89054303971927538, 2.30468154194400334) q[3]; +U(0.71806408280798716, 2.64245142777336924, 2.22781219862054896) q[4]; +U(2.74374146328132743, 2.84400155507675890, 2.62931603349906762) q[5]; +U(0.17986044560078731, 2.93782860696347545, 1.32708533670121395) q[6]; +U(1.91712452387435394, 1.28227474013776552, 1.25280200867146111) q[7]; +U(0.26723336365652457, 1.26416844102041996, 0.75605576195357794) q[8]; +U(0.85689318757925709, 1.23770499180537698, 1.32958343145821928) q[9]; +U(0.76756074980874559, 1.45855921360417617, 2.44216310535731436) q[10]; +U(2.46447789774426101, 1.06518717487502117, 0.31543398602950033) q[11]; +U(1.65124757025957075, 0.02123316988001803, 0.64333156132948747) q[12]; +U(0.65513863541074588, 0.04405516583109304, 0.57891009191355976) q[13]; +U(1.34691081359954637, 0.79785480608360748, 2.82963354240611363) q[14]; +U(0.24137036183311617, 1.36441410367905011, 1.55424674264799742) q[15]; +U(1.35012891949016995, 0.76353401208120212, 1.42265673833557656) q[16]; +U(1.45507203668119876, 2.29100217665995289, 2.93212466083366701) q[17]; +U(1.86571351718489251, 0.26974435294327551, 0.67932010635817642) q[18]; +U(0.96930038804523056, 1.90265743153490898, 2.59721935661318188) q[19]; +cx q[0], q[1]; +cx q[2], q[3]; +cx q[4], q[5]; +cx q[6], q[7]; +cx q[8], q[9]; +cx q[10], q[11]; +cx q[12], q[13]; +cx q[14], q[15]; +cx q[16], q[17]; +cx q[18], q[19]; +U(1.53260420249045440, 1.57971603950599785, 0.51430780156660276) q[0]; +U(1.48248912680479207, 2.52614995524384181, 1.56389829073762909) q[1]; +U(0.32352385557749248, 2.65032095241895069, 0.35948513021716983) q[2]; +U(1.28347595192412504, 2.05479188815019809, 2.10382431596930496) q[3]; +U(1.45251015303552970, 0.81370500508356425, 1.21014013938371424) q[4]; +U(0.08278241694593828, 0.95200825098620180, 1.68169136699367920) q[5]; +U(0.93326482779484232, 1.10406608118248242, 0.22623084509719133) q[6]; +U(2.45215860813996247, 1.13007175044194238, 0.20352914727930937) q[7]; +U(2.20642136846105202, 2.63080034157996815, 2.65677871919257550) q[8]; +U(2.08245342041043596, 0.37606561014334250, 1.48432971829736604) q[9]; +U(0.54296793828717530, 0.61486381275847521, 1.16824710261135191) q[10]; +U(1.17341070146286078, 0.50287810676085758, 1.21727851268412974) q[11]; +U(2.18904983279979546, 0.82900712557365552, 2.40022417717545639) q[12]; +U(0.37684141922915037, 1.65852538380941353, 1.24991550571269368) q[13]; +U(2.71018394469068495, 0.56250638294506764, 1.81232947202077457) q[14]; +U(1.74572840829002423, 2.44790599858224343, 0.15568819211649543) q[15]; +U(1.89519576706338506, 1.55401381675521184, 0.46109461430534932) q[16]; +U(0.01969169714505026, 0.02752141938320629, 2.06656598536141152) q[17]; +U(2.42438626691635697, 1.64832579076816038, 2.53947125194288214) q[18]; +U(1.86884865412437213, 2.34528620247031583, 1.70256311743798836) q[19]; +cx q[1], q[2]; +cx q[3], q[4]; +cx q[5], q[6]; +cx q[7], q[8]; +cx q[9], q[10]; +cx q[11], q[12]; +cx q[13], q[14]; +cx q[15], q[16]; +cx q[17], q[18]; +U(0.09118079729437296, 1.65134243813487233, 0.73371279840419399) q[0]; +U(2.82762609144239172, 0.77677972338805245, 1.30434111340506149) q[1]; +U(1.92126495587553579, 2.43953620659439442, 0.35435682111373897) q[2]; +U(0.98615985021584037, 0.32638388977655149, 1.09131394470521674) q[3]; +U(0.13949877256130913, 2.23891267197377707, 2.97025158827343349) q[4]; +U(0.96913169312000541, 1.10227886908488404, 1.68647328372487558) q[5]; +U(0.25884092396580137, 2.64146614443843039, 2.90308996075312136) q[6]; +U(0.48639373732025138, 2.02586757240072522, 2.60620646825898458) q[7]; +U(0.00661250964076357, 1.03011073804236337, 2.75362666600842169) q[8]; +U(2.63851023264609416, 2.78374223853975221, 1.60511248528685578) q[9]; +U(1.84880330790041940, 1.90555695959786464, 1.39049403066729381) q[10]; +U(2.45777333974668042, 1.46688680971430356, 1.44861680451061521) q[11]; +U(1.45379094401490733, 0.71334501594359704, 1.31997434952348979) q[12]; +U(1.69799645512392334, 2.80560825137020121, 0.53719848622922726) q[13]; +U(2.15051331437414089, 1.69565880055603939, 1.84678447066538213) q[14]; +U(1.29259551640990833, 0.43880694398386705, 2.42052383216021190) q[15]; +U(2.06008438974804317, 1.23486891301709602, 1.72868633662932565) q[16]; +U(1.63530417183687230, 0.12380027840508459, 0.42244200297441601) q[17]; +U(1.19962576446301722, 2.34631289399583113, 1.61986268843323835) q[18]; +U(0.37413727632405009, 0.10214496993325467, 1.36618478178568757) q[19]; +cx q[0], q[1]; +cx q[2], q[3]; +cx q[4], q[5]; +cx q[6], q[7]; +cx q[8], q[9]; +cx q[10], q[11]; +cx q[12], q[13]; +cx q[14], q[15]; +cx q[16], q[17]; +cx q[18], q[19]; +U(2.62520747357511963, 0.04316449616388144, 1.63646231483119670) q[0]; +U(2.27787796329423708, 0.51196468999380641, 0.64133012775528569) q[1]; +U(2.05882288854907487, 1.11339911579427232, 2.65382209370161905) q[2]; +U(2.33363799651119381, 2.01678764972498202, 2.35055597540328158) q[3]; +U(2.66826097594348668, 2.07818460151277617, 0.47921355977775967) q[4]; +U(0.02825388393587870, 1.54132827340089098, 2.80983366105653638) q[5]; +U(1.23411005810476430, 1.16972838648331761, 2.83073089823301836) q[6]; +U(0.02736822125408132, 2.76868103727370574, 2.67735041135379985) q[7]; +U(1.06621649992739314, 1.72260004922924331, 1.45443229888653442) q[8]; +U(2.82514623999140193, 2.35068635305531740, 0.13326741973621157) q[9]; +U(0.79054067916023017, 2.21022735413861697, 0.86565039873455670) q[10]; +U(1.33353863730306791, 2.68901062311594510, 1.04750064299698237) q[11]; +U(1.67482705253084055, 0.86788626171605650, 0.87805418109948683) q[12]; +U(1.02406715293227198, 0.78653140556596325, 1.17646465608317096) q[13]; +U(0.19651046936307551, 1.76356453570668466, 1.95644154833028199) q[14]; +U(0.73719129334439973, 0.15009741389089318, 0.68464595163568175) q[15]; +U(0.16165520735124816, 0.50376420274373930, 2.18860078286081943) q[16]; +U(2.71504771821285323, 1.14398709479053568, 2.33925001116451827) q[17]; +U(2.84985109093226068, 1.38373377148270768, 0.60306518068902217) q[18]; +U(0.38635526623383315, 2.18315306386604891, 0.81086634079277823) q[19]; +cx q[1], q[2]; +cx q[3], q[4]; +cx q[5], q[6]; +cx q[7], q[8]; +cx q[9], q[10]; +cx q[11], q[12]; +cx q[13], q[14]; +cx q[15], q[16]; +cx q[17], q[18]; +U(0.06692385865032597, 2.91839346502542207, 1.86568777048112195) q[0]; +U(2.43791055082664291, 1.07080829641597073, 1.21599434657444244) q[1]; +U(0.57255488187791482, 2.06837748759321829, 1.71393488138821868) q[2]; +U(1.13838303384761782, 0.40624023376737439, 2.98711636011148213) q[3]; +U(1.11055023188219770, 1.32124088100318266, 2.00742992306090651) q[4]; +U(1.36525636007200320, 1.13765508991895373, 0.87552648724476894) q[5]; +U(0.85504433625815918, 0.63348507558355621, 1.16875859510038809) q[6]; +U(1.73483054689411440, 2.11109275802888891, 2.28060555965255740) q[7]; +U(1.90778659867838847, 2.41803937983475291, 2.47235353641819897) q[8]; +U(1.05453796779662199, 2.14722565809784597, 1.05396143392178876) q[9]; +U(0.82529499192520769, 1.66593429831547326, 2.19604418590831832) q[10]; +U(0.10507493827888131, 0.40695991973212217, 1.33459755681544637) q[11]; +U(0.93231629068408082, 1.98197629983744924, 0.64922494805528689) q[12]; +U(2.74714502939845892, 0.95422851734418584, 0.46946768749554887) q[13]; +U(2.60363571630620417, 1.81600230075120942, 2.30574244192918162) q[14]; +U(0.78047378968486146, 1.27347071692417354, 0.29188026396344856) q[15]; +U(0.66902570802217623, 1.10159559054672395, 1.50684570227293701) q[16]; +U(0.69159280944436926, 0.18291790129056186, 1.97405185964233905) q[17]; +U(2.14631420871983213, 1.34024243994037543, 1.83953512172772857) q[18]; +U(0.82066158849806655, 2.39013029743480399, 1.77981407721138772) q[19]; +cx q[0], q[1]; +cx q[2], q[3]; +cx q[4], q[5]; +cx q[6], q[7]; +cx q[8], q[9]; +cx q[10], q[11]; +cx q[12], q[13]; +cx q[14], q[15]; +cx q[16], q[17]; +cx q[18], q[19]; +U(1.54181724970123332, 2.59180775912447361, 1.34405993424178656) q[0]; +U(1.17425886640526036, 1.39724711875378641, 1.94802973751773088) q[1]; +U(1.45420581652646510, 1.17743163690529240, 0.81287640835761995) q[2]; +U(0.97962285992489052, 1.10355411464739554, 2.13970497991797787) q[3]; +U(0.64331478417185587, 0.31742226035200209, 2.74162648816825721) q[4]; +U(1.32266951352335226, 1.35608895319149826, 1.99592774797709219) q[5]; +U(0.25736662119737100, 2.21110485488212123, 0.24159298048739706) q[6]; +U(1.46895678787383917, 1.88083950390473462, 1.68956002640846708) q[7]; +U(0.08080599722713388, 1.33572395645557829, 1.08838856021639019) q[8]; +U(0.80112247842409546, 1.29701571751337767, 2.24171612193964604) q[9]; +U(1.63476106761398187, 2.36059187166359456, 0.06731204185518071) q[10]; +U(1.77721789929174353, 1.64020716439617636, 1.98320013475324266) q[11]; +U(1.13994146719189884, 2.65527058275670640, 2.48764189988298784) q[12]; +U(2.14174950645701021, 0.13048798454536329, 2.97085221808004511) q[13]; +U(0.09941920445742930, 2.96641324978676259, 0.53330229862501587) q[14]; +U(2.70602529889729887, 2.33110945958430778, 0.77299214907478810) q[15]; +U(1.55715472083608037, 0.58256008665020529, 0.61673596844207241) q[16]; +U(0.08528092181422142, 0.93694404985104184, 0.38885369027268322) q[17]; +U(1.37623383671726222, 1.61860338422540381, 1.06729158217940922) q[18]; +U(0.38303021886261337, 1.39306017421480227, 1.75077600015464912) q[19]; +cx q[1], q[2]; +cx q[3], q[4]; +cx q[5], q[6]; +cx q[7], q[8]; +cx q[9], q[10]; +cx q[11], q[12]; +cx q[13], q[14]; +cx q[15], q[16]; +cx q[17], q[18]; +U(2.23488646139160877, 1.99883721880798372, 1.21502485507058449) q[0]; +U(0.12645694552300309, 1.15160102147544610, 1.56271439497125823) q[1]; +U(2.66121573083496081, 1.62218143798758689, 1.81606298349751808) q[2]; +U(1.62252281381111121, 2.61558824624097239, 2.37561686914282932) q[3]; +U(2.31306902150966289, 2.26374240200890190, 0.90730103655408756) q[4]; +U(2.20169863256125060, 0.35070617570365952, 0.23946481632475196) q[5]; +U(2.09097648295131712, 2.02580074652117015, 1.20214858644105414) q[6]; +U(0.22431883125607970, 1.10831890493147851, 0.68266863034258558) q[7]; +U(0.81118358971231768, 1.48289169859065689, 2.61578738510405405) q[8]; +U(0.35351312254348249, 1.73017548407828768, 1.19110822036413494) q[9]; +U(0.27125353201984503, 1.59092661788677397, 1.22787098634794003) q[10]; +U(0.46215346501971658, 0.63000793291014013, 2.86088320188359984) q[11]; +U(0.72455025927888127, 0.62687874751967853, 0.68693216187668163) q[12]; +U(1.13138754102117500, 2.37112398347739330, 2.21938932117718732) q[13]; +U(2.49081643266661862, 1.26488130773033268, 0.65161072749369362) q[14]; +U(0.72375618126662642, 1.11199908945799632, 2.44518541983102489) q[15]; +U(0.16044413840108563, 2.44099336972821132, 0.44273584799098837) q[16]; +U(2.99658472626643604, 1.11095515493590097, 0.32696056163391458) q[17]; +U(1.67587623444989613, 0.54960787891020691, 1.10942177097950778) q[18]; +U(0.81142319528154224, 0.08491613871402277, 1.79569453888997869) q[19]; +cx q[0], q[1]; +cx q[2], q[3]; +cx q[4], q[5]; +cx q[6], q[7]; +cx q[8], q[9]; +cx q[10], q[11]; +cx q[12], q[13]; +cx q[14], q[15]; +cx q[16], q[17]; +cx q[18], q[19]; +U(2.13558233955113236, 1.24698623707435401, 1.87230403996857353) q[0]; +U(2.39088804922756458, 0.38260820930792871, 0.52193769905042285) q[1]; +U(0.65132451830901545, 0.42948730749821191, 2.78651267156938220) q[2]; +U(1.46398918375765565, 2.30966016540379264, 2.11747875922496738) q[3]; +U(1.64686376160513595, 1.63305365108715846, 0.89787061611970619) q[4]; +U(0.82633797982645023, 1.91187788586524475, 1.33863824620585032) q[5]; +U(0.38384857194878761, 0.31394900760027112, 2.76764192696759948) q[6]; +U(2.67088418131365035, 2.44482347600092364, 1.37974025609419083) q[7]; +U(0.81177136298751845, 0.43014833381207995, 1.28667966872150434) q[8]; +U(0.74129100177101878, 0.90895231512451774, 1.13972490929346119) q[9]; +U(0.20402544695710553, 0.88194602761372955, 0.30041658286295767) q[10]; +U(2.36867862142989714, 1.34500227956638233, 1.52046631669223661) q[11]; +U(2.48505722148570100, 1.04602014065354968, 0.95653424700835843) q[12]; +U(1.33091791733784131, 1.81819622368224274, 0.97054710375386311) q[13]; +U(2.43749687132345759, 1.23817715859316421, 2.35600254356428465) q[14]; +U(1.22873033464528187, 0.93177638821729750, 1.77634063619467944) q[15]; +U(2.08821597736914455, 0.03768733792737878, 0.72414085336501882) q[16]; +U(1.83553065610236592, 2.97510620591479831, 1.90215852022120873) q[17]; +U(2.48305759141455990, 0.40467582602065578, 2.46543885459178876) q[18]; +U(1.41404625227621362, 1.68150639970318320, 2.04253229544863055) q[19]; +cx q[1], q[2]; +cx q[3], q[4]; +cx q[5], q[6]; +cx q[7], q[8]; +cx q[9], q[10]; +cx q[11], q[12]; +cx q[13], q[14]; +cx q[15], q[16]; +cx q[17], q[18]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/small_angle_k16.qasm b/wai/quantum-cross-simulator/corpus/qasm/small_angle_k16.qasm new file mode 100644 index 000000000..babf11beb --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/small_angle_k16.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +h q[0]; +p(pi/32768) q[0]; +h q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/small_angle_k24.qasm b/wai/quantum-cross-simulator/corpus/qasm/small_angle_k24.qasm new file mode 100644 index 000000000..1e96725dd --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/small_angle_k24.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +h q[0]; +p(pi/8388608) q[0]; +h q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/small_angle_k26.qasm b/wai/quantum-cross-simulator/corpus/qasm/small_angle_k26.qasm new file mode 100644 index 000000000..c15225b15 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/small_angle_k26.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +h q[0]; +p(pi/33554432) q[0]; +h q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/small_angle_k28.qasm b/wai/quantum-cross-simulator/corpus/qasm/small_angle_k28.qasm new file mode 100644 index 000000000..0a302922a --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/small_angle_k28.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +h q[0]; +p(pi/134217728) q[0]; +h q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/small_angle_k30.qasm b/wai/quantum-cross-simulator/corpus/qasm/small_angle_k30.qasm new file mode 100644 index 000000000..813b4670b --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/small_angle_k30.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +h q[0]; +p(pi/536870912) q[0]; +h q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/small_angle_k32.qasm b/wai/quantum-cross-simulator/corpus/qasm/small_angle_k32.qasm new file mode 100644 index 000000000..339254fc1 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/small_angle_k32.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +h q[0]; +p(pi/2147483648) q[0]; +h q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/small_angle_k8.qasm b/wai/quantum-cross-simulator/corpus/qasm/small_angle_k8.qasm new file mode 100644 index 000000000..8bb6a51ea --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/small_angle_k8.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +h q[0]; +p(pi/128) q[0]; +h q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/teleport.qasm b/wai/quantum-cross-simulator/corpus/qasm/teleport.qasm new file mode 100644 index 000000000..d9dcf67c5 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/teleport.qasm @@ -0,0 +1,14 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[3] q; +bit[3] c; +ry(pi/16) q[0]; +h q[1]; +cx q[1], q[2]; +cx q[0], q[1]; +h q[0]; +c[0] = measure q[0]; +c[1] = measure q[1]; +if (c[1] == 1) { x q[2]; } +if (c[0] == 1) { z q[2]; } +c[2] = measure q[2]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/tiny_radians.qasm b/wai/quantum-cross-simulator/corpus/qasm/tiny_radians.qasm new file mode 100644 index 000000000..fdf6b3c0a --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/tiny_radians.qasm @@ -0,0 +1,6 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[1] q; +h q[0]; +rz(1e-12) q[0]; +h q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/tn_mirror_n40.qasm b/wai/quantum-cross-simulator/corpus/qasm/tn_mirror_n40.qasm new file mode 100644 index 000000000..f2581bed2 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/tn_mirror_n40.qasm @@ -0,0 +1,361 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[40] q; +rx(pi*26515/16384) q[0]; +rx(pi*23623/32768) q[1]; +rx(pi*61719/32768) q[2]; +rx(pi*9595/8192) q[3]; +rz(pi*5509/16384) q[4]; +ry(pi*61591/32768) q[5]; +ry(pi*525/512) q[6]; +rz(pi*51209/32768) q[7]; +rz(pi*21073/32768) q[8]; +rz(pi*17661/16384) q[9]; +ry(pi*6959/16384) q[10]; +rx(pi*20841/32768) q[11]; +rz(pi*27611/16384) q[12]; +rx(pi*22071/32768) q[13]; +rz(pi*26039/16384) q[14]; +rz(pi*26249/16384) q[15]; +ry(pi*46155/32768) q[16]; +rx(pi*835/4096) q[17]; +ry(pi*52799/32768) q[18]; +rx(pi*1171/16384) q[19]; +ry(pi*4393/4096) q[20]; +rz(pi*9091/32768) q[21]; +rz(pi*22353/16384) q[22]; +rz(pi*19221/32768) q[23]; +rx(pi*4769/4096) q[24]; +rz(pi*3975/2048) q[25]; +rz(pi*87/512) q[26]; +rx(pi*52793/32768) q[27]; +ry(pi*1767/4096) q[28]; +rz(pi*12893/32768) q[29]; +rz(pi*3951/8192) q[30]; +rx(pi*17657/16384) q[31]; +ry(pi*11309/16384) q[32]; +ry(pi*885/8192) q[33]; +ry(pi*41735/32768) q[34]; +rz(pi*28911/32768) q[35]; +ry(pi*8993/8192) q[36]; +rx(pi*11937/8192) q[37]; +rx(pi*22211/32768) q[38]; +rz(pi*489/32768) q[39]; +cz q[0], q[1]; +cz q[2], q[3]; +cz q[4], q[5]; +cz q[6], q[7]; +cz q[8], q[9]; +cz q[10], q[11]; +cz q[12], q[13]; +cz q[14], q[15]; +cz q[16], q[17]; +cz q[18], q[19]; +cz q[20], q[21]; +cz q[22], q[23]; +cz q[24], q[25]; +cz q[26], q[27]; +cz q[28], q[29]; +cz q[30], q[31]; +cz q[32], q[33]; +cz q[34], q[35]; +cz q[36], q[37]; +cz q[38], q[39]; +ry(pi*31977/32768) q[0]; +ry(pi*45367/32768) q[1]; +rx(pi*11395/8192) q[2]; +rz(pi*40569/32768) q[3]; +rz(pi*22809/16384) q[4]; +ry(pi*15671/16384) q[5]; +rz(pi*24709/16384) q[6]; +rx(pi*6935/16384) q[7]; +rx(pi*13401/8192) q[8]; +rz(pi*45733/32768) q[9]; +ry(pi*5249/4096) q[10]; +ry(pi*19679/16384) q[11]; +ry(pi*4635/32768) q[12]; +rx(pi*20831/16384) q[13]; +rz(pi*58875/32768) q[14]; +ry(pi*20817/32768) q[15]; +rx(pi*13481/32768) q[16]; +rx(pi*31657/16384) q[17]; +ry(pi*13667/16384) q[18]; +rx(pi*29101/16384) q[19]; +rz(pi*32655/16384) q[20]; +rx(pi*11183/32768) q[21]; +rz(pi*4315/16384) q[22]; +ry(pi*26079/16384) q[23]; +ry(pi*30901/16384) q[24]; +rz(pi*37199/32768) q[25]; +rz(pi*5255/16384) q[26]; +rx(pi*231/128) q[27]; +rx(pi*27499/32768) q[28]; +rx(pi*15293/8192) q[29]; +rz(pi*32771/32768) q[30]; +rz(pi*23919/16384) q[31]; +rz(pi*21407/16384) q[32]; +ry(pi*1699/32768) q[33]; +rx(pi*31601/32768) q[34]; +rx(pi*3317/2048) q[35]; +rz(pi*54823/32768) q[36]; +rx(pi*9973/8192) q[37]; +rz(pi*48081/32768) q[38]; +rx(pi*12403/8192) q[39]; +cz q[1], q[2]; +cz q[3], q[4]; +cz q[5], q[6]; +cz q[7], q[8]; +cz q[9], q[10]; +cz q[11], q[12]; +cz q[13], q[14]; +cz q[15], q[16]; +cz q[17], q[18]; +cz q[19], q[20]; +cz q[21], q[22]; +cz q[23], q[24]; +cz q[25], q[26]; +cz q[27], q[28]; +cz q[29], q[30]; +cz q[31], q[32]; +cz q[33], q[34]; +cz q[35], q[36]; +cz q[37], q[38]; +rz(pi*2333/16384) q[0]; +ry(pi*6659/4096) q[1]; +ry(pi*17811/16384) q[2]; +rz(pi*5483/32768) q[3]; +rx(pi*46441/32768) q[4]; +ry(pi*35565/32768) q[5]; +ry(pi*22001/32768) q[6]; +rx(pi*687/32768) q[7]; +ry(pi*7429/16384) q[8]; +ry(pi*2183/2048) q[9]; +rx(pi*201/128) q[10]; +rx(pi*41367/32768) q[11]; +rx(pi*22465/16384) q[12]; +rz(pi*47867/32768) q[13]; +rx(pi*52137/32768) q[14]; +rx(pi*3887/4096) q[15]; +rx(pi*38647/32768) q[16]; +rx(pi*40391/32768) q[17]; +ry(pi*33225/32768) q[18]; +rz(pi*18597/16384) q[19]; +rz(pi*7131/32768) q[20]; +ry(pi*1337/4096) q[21]; +rz(pi*897/2048) q[22]; +rz(pi*8257/8192) q[23]; +rx(pi*24691/32768) q[24]; +rx(pi*2113/32768) q[25]; +rx(pi*2259/2048) q[26]; +ry(pi*46129/32768) q[27]; +rz(pi*31861/16384) q[28]; +ry(pi*10021/32768) q[29]; +rz(pi*7609/32768) q[30]; +rx(pi*8683/8192) q[31]; +rz(pi*15641/16384) q[32]; +ry(pi*42233/32768) q[33]; +ry(pi*377/2048) q[34]; +rx(pi*1693/16384) q[35]; +rz(pi*27389/32768) q[36]; +rx(pi*27899/16384) q[37]; +rz(pi*36149/32768) q[38]; +rz(pi*32533/32768) q[39]; +cz q[0], q[1]; +cz q[2], q[3]; +cz q[4], q[5]; +cz q[6], q[7]; +cz q[8], q[9]; +cz q[10], q[11]; +cz q[12], q[13]; +cz q[14], q[15]; +cz q[16], q[17]; +cz q[18], q[19]; +cz q[20], q[21]; +cz q[22], q[23]; +cz q[24], q[25]; +cz q[26], q[27]; +cz q[28], q[29]; +cz q[30], q[31]; +cz q[32], q[33]; +cz q[34], q[35]; +cz q[36], q[37]; +cz q[38], q[39]; +cz q[38], q[39]; +cz q[36], q[37]; +cz q[34], q[35]; +cz q[32], q[33]; +cz q[30], q[31]; +cz q[28], q[29]; +cz q[26], q[27]; +cz q[24], q[25]; +cz q[22], q[23]; +cz q[20], q[21]; +cz q[18], q[19]; +cz q[16], q[17]; +cz q[14], q[15]; +cz q[12], q[13]; +cz q[10], q[11]; +cz q[8], q[9]; +cz q[6], q[7]; +cz q[4], q[5]; +cz q[2], q[3]; +cz q[0], q[1]; +rz(-pi*32533/32768) q[39]; +rz(-pi*36149/32768) q[38]; +rx(-pi*27899/16384) q[37]; +rz(-pi*27389/32768) q[36]; +rx(-pi*1693/16384) q[35]; +ry(-pi*377/2048) q[34]; +ry(-pi*42233/32768) q[33]; +rz(-pi*15641/16384) q[32]; +rx(-pi*8683/8192) q[31]; +rz(-pi*7609/32768) q[30]; +ry(-pi*10021/32768) q[29]; +rz(-pi*31861/16384) q[28]; +ry(-pi*46129/32768) q[27]; +rx(-pi*2259/2048) q[26]; +rx(-pi*2113/32768) q[25]; +rx(-pi*24691/32768) q[24]; +rz(-pi*8257/8192) q[23]; +rz(-pi*897/2048) q[22]; +ry(-pi*1337/4096) q[21]; +rz(-pi*7131/32768) q[20]; +rz(-pi*18597/16384) q[19]; +ry(-pi*33225/32768) q[18]; +rx(-pi*40391/32768) q[17]; +rx(-pi*38647/32768) q[16]; +rx(-pi*3887/4096) q[15]; +rx(-pi*52137/32768) q[14]; +rz(-pi*47867/32768) q[13]; +rx(-pi*22465/16384) q[12]; +rx(-pi*41367/32768) q[11]; +rx(-pi*201/128) q[10]; +ry(-pi*2183/2048) q[9]; +ry(-pi*7429/16384) q[8]; +rx(-pi*687/32768) q[7]; +ry(-pi*22001/32768) q[6]; +ry(-pi*35565/32768) q[5]; +rx(-pi*46441/32768) q[4]; +rz(-pi*5483/32768) q[3]; +ry(-pi*17811/16384) q[2]; +ry(-pi*6659/4096) q[1]; +rz(-pi*2333/16384) q[0]; +cz q[37], q[38]; +cz q[35], q[36]; +cz q[33], q[34]; +cz q[31], q[32]; +cz q[29], q[30]; +cz q[27], q[28]; +cz q[25], q[26]; +cz q[23], q[24]; +cz q[21], q[22]; +cz q[19], q[20]; +cz q[17], q[18]; +cz q[15], q[16]; +cz q[13], q[14]; +cz q[11], q[12]; +cz q[9], q[10]; +cz q[7], q[8]; +cz q[5], q[6]; +cz q[3], q[4]; +cz q[1], q[2]; +rx(-pi*12403/8192) q[39]; +rz(-pi*48081/32768) q[38]; +rx(-pi*9973/8192) q[37]; +rz(-pi*54823/32768) q[36]; +rx(-pi*3317/2048) q[35]; +rx(-pi*31601/32768) q[34]; +ry(-pi*1699/32768) q[33]; +rz(-pi*21407/16384) q[32]; +rz(-pi*23919/16384) q[31]; +rz(-pi*32771/32768) q[30]; +rx(-pi*15293/8192) q[29]; +rx(-pi*27499/32768) q[28]; +rx(-pi*231/128) q[27]; +rz(-pi*5255/16384) q[26]; +rz(-pi*37199/32768) q[25]; +ry(-pi*30901/16384) q[24]; +ry(-pi*26079/16384) q[23]; +rz(-pi*4315/16384) q[22]; +rx(-pi*11183/32768) q[21]; +rz(-pi*32655/16384) q[20]; +rx(-pi*29101/16384) q[19]; +ry(-pi*13667/16384) q[18]; +rx(-pi*31657/16384) q[17]; +rx(-pi*13481/32768) q[16]; +ry(-pi*20817/32768) q[15]; +rz(-pi*58875/32768) q[14]; +rx(-pi*20831/16384) q[13]; +ry(-pi*4635/32768) q[12]; +ry(-pi*19679/16384) q[11]; +ry(-pi*5249/4096) q[10]; +rz(-pi*45733/32768) q[9]; +rx(-pi*13401/8192) q[8]; +rx(-pi*6935/16384) q[7]; +rz(-pi*24709/16384) q[6]; +ry(-pi*15671/16384) q[5]; +rz(-pi*22809/16384) q[4]; +rz(-pi*40569/32768) q[3]; +rx(-pi*11395/8192) q[2]; +ry(-pi*45367/32768) q[1]; +ry(-pi*31977/32768) q[0]; +cz q[38], q[39]; +cz q[36], q[37]; +cz q[34], q[35]; +cz q[32], q[33]; +cz q[30], q[31]; +cz q[28], q[29]; +cz q[26], q[27]; +cz q[24], q[25]; +cz q[22], q[23]; +cz q[20], q[21]; +cz q[18], q[19]; +cz q[16], q[17]; +cz q[14], q[15]; +cz q[12], q[13]; +cz q[10], q[11]; +cz q[8], q[9]; +cz q[6], q[7]; +cz q[4], q[5]; +cz q[2], q[3]; +cz q[0], q[1]; +rz(-pi*489/32768) q[39]; +rx(-pi*22211/32768) q[38]; +rx(-pi*11937/8192) q[37]; +ry(-pi*8993/8192) q[36]; +rz(-pi*28911/32768) q[35]; +ry(-pi*41735/32768) q[34]; +ry(-pi*885/8192) q[33]; +ry(-pi*11309/16384) q[32]; +rx(-pi*17657/16384) q[31]; +rz(-pi*3951/8192) q[30]; +rz(-pi*12893/32768) q[29]; +ry(-pi*1767/4096) q[28]; +rx(-pi*52793/32768) q[27]; +rz(-pi*87/512) q[26]; +rz(-pi*3975/2048) q[25]; +rx(-pi*4769/4096) q[24]; +rz(-pi*19221/32768) q[23]; +rz(-pi*22353/16384) q[22]; +rz(-pi*9091/32768) q[21]; +ry(-pi*4393/4096) q[20]; +rx(-pi*1171/16384) q[19]; +ry(-pi*52799/32768) q[18]; +rx(-pi*835/4096) q[17]; +ry(-pi*46155/32768) q[16]; +rz(-pi*26249/16384) q[15]; +rz(-pi*26039/16384) q[14]; +rx(-pi*22071/32768) q[13]; +rz(-pi*27611/16384) q[12]; +rx(-pi*20841/32768) q[11]; +ry(-pi*6959/16384) q[10]; +rz(-pi*17661/16384) q[9]; +rz(-pi*21073/32768) q[8]; +rz(-pi*51209/32768) q[7]; +ry(-pi*525/512) q[6]; +ry(-pi*61591/32768) q[5]; +rz(-pi*5509/16384) q[4]; +rx(-pi*9595/8192) q[3]; +rx(-pi*61719/32768) q[2]; +rx(-pi*23623/32768) q[1]; +rx(-pi*26515/16384) q[0]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/tn_shallow_n26.qasm b/wai/quantum-cross-simulator/corpus/qasm/tn_shallow_n26.qasm new file mode 100644 index 000000000..8e5031e72 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/tn_shallow_n26.qasm @@ -0,0 +1,196 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[26] q; +U(0.28921225976413933, 2.13378350042675569, 0.54315949693516716) q[0]; +U(1.35613967444062799, 0.34987531930656981, 2.44661754277362562) q[1]; +U(2.51568557274920423, 2.20794772386979299, 2.12026248649258342) q[2]; +U(2.57102508509970004, 2.51738988119452073, 2.56528294743257370) q[3]; +U(2.44669480382253831, 0.47534517539978303, 0.28458558964804128) q[4]; +U(2.24293903271935247, 2.45105370427144580, 0.41976624368000888) q[5]; +U(2.72102842312215692, 2.54114081981177957, 0.81873374583129396) q[6]; +U(1.01539592506962234, 1.74225582871509264, 0.86992375172224456) q[7]; +U(0.39663157082749336, 2.27400789363666668, 1.95472328453787719) q[8]; +U(0.15678082614323413, 1.41553253942740078, 0.71762811400807724) q[9]; +U(2.68861688078254798, 0.91655613533290272, 0.07510599441440601) q[10]; +U(0.97620805028523038, 0.71549006858975711, 1.68751167439424418) q[11]; +U(1.36212678080945541, 0.21723331466542363, 2.68721663932024367) q[12]; +U(2.96800576471636026, 0.28783487847778422, 2.66816156046702555) q[13]; +U(1.34896678312692678, 0.97851645270143033, 0.57860479041641127) q[14]; +U(0.35571213228654498, 1.36194811938358962, 0.16379622404783697) q[15]; +U(0.30666075411324555, 1.65337294927316601, 2.42936676935982654) q[16]; +U(2.02719240401644403, 1.17656670189194510, 2.56695128019721491) q[17]; +U(1.47451680694782506, 2.39513097614234125, 2.66054108871172831) q[18]; +U(0.86522230118940318, 2.72714703590825203, 2.80113187076782783) q[19]; +U(0.15010365328568755, 2.71662237264069935, 1.27562122121937995) q[20]; +U(1.66284664545736726, 1.80012184628741879, 1.84774945802991332) q[21]; +U(2.25316172532630307, 2.65421853706031639, 2.55737192078390618) q[22]; +U(0.46691334550016849, 2.15981346032440303, 0.30083321668661685) q[23]; +U(0.08961012070570302, 0.16289090674645599, 2.36865927049395561) q[24]; +U(0.72853644661118910, 0.26329195961119011, 0.33831241624009485) q[25]; +cx q[0], q[1]; +cx q[2], q[3]; +cx q[4], q[5]; +cx q[6], q[7]; +cx q[8], q[9]; +cx q[10], q[11]; +cx q[12], q[13]; +cx q[14], q[15]; +cx q[16], q[17]; +cx q[18], q[19]; +cx q[20], q[21]; +cx q[22], q[23]; +cx q[24], q[25]; +U(1.47849583308367078, 0.94157620945561358, 2.52594072394489160) q[0]; +U(1.56777307300767299, 1.48549000331278048, 1.88599928265559866) q[1]; +U(1.34668260755464919, 2.59840914343434248, 1.93384351517847334) q[2]; +U(0.43016740196083500, 0.11394176057341462, 1.30325023866859932) q[3]; +U(1.90467921807573472, 2.31162006186099734, 2.32869211311180597) q[4]; +U(0.09609187848107627, 0.52269430763217583, 1.66760078189857995) q[5]; +U(1.03092838359013085, 0.70108541029771053, 0.70480401865770561) q[6]; +U(2.06058927170451358, 1.53541373152644972, 2.62815490412942366) q[7]; +U(0.01238623745520077, 2.58187392898489626, 2.03041934938370070) q[8]; +U(0.67723990167063485, 2.38539919895078700, 0.19742657126204180) q[9]; +U(2.34851325434225582, 0.95840789830214467, 2.96427698876003327) q[10]; +U(0.20953547901185675, 2.27953066194348475, 2.65363329725065337) q[11]; +U(1.50171623427984035, 2.86758019456390693, 1.15229397122141617) q[12]; +U(0.43418741716635235, 1.10084899043586670, 0.34834048981917266) q[13]; +U(0.20323136921100678, 1.28291083680612116, 0.28038974618045819) q[14]; +U(2.94685592113749639, 0.37705974543678673, 0.86200550868480203) q[15]; +U(1.46550249088423166, 1.45845003363471525, 1.24814741087469782) q[16]; +U(2.22578483130685159, 0.85253489046599317, 2.14619152125341914) q[17]; +U(0.91438012370725719, 0.81784827528716429, 0.69682657123694169) q[18]; +U(2.91861775300058239, 2.86546968144821402, 1.73322260258349483) q[19]; +U(2.98377846072404403, 0.26428170241555094, 1.60709562776214177) q[20]; +U(1.69096305586401945, 0.28942614388708256, 0.38049673954421859) q[21]; +U(2.26081565483164383, 1.46149629749515133, 1.51674435680780620) q[22]; +U(1.56149859981260070, 2.87142055848072393, 1.54686539480816263) q[23]; +U(1.05148726575722253, 1.72399000203986245, 2.22295579045025936) q[24]; +U(1.60137531556916844, 1.72516011120474624, 1.44981469928289442) q[25]; +cx q[1], q[2]; +cx q[3], q[4]; +cx q[5], q[6]; +cx q[7], q[8]; +cx q[9], q[10]; +cx q[11], q[12]; +cx q[13], q[14]; +cx q[15], q[16]; +cx q[17], q[18]; +cx q[19], q[20]; +cx q[21], q[22]; +cx q[23], q[24]; +U(0.15285339341795662, 1.02969332787743337, 2.45725161762993663) q[0]; +U(2.14656153098433413, 2.16925446611404448, 2.04419698881737124) q[1]; +U(1.50409510706591801, 0.82857245013194622, 1.75275980181519757) q[2]; +U(1.14730246680389225, 1.46800743317950635, 0.60548899995745219) q[3]; +U(2.76422516047928439, 1.64840894721796451, 1.57967692121735663) q[4]; +U(1.42483026909010025, 1.30719012565057022, 1.96936622478720540) q[5]; +U(0.54829323713611462, 0.55185569335862407, 1.72518783250081990) q[6]; +U(1.16115104126838598, 2.51500339549230196, 2.49642098322420939) q[7]; +U(0.16717786953131999, 1.08009986115677509, 2.74038618845420618) q[8]; +U(2.93345444339504050, 2.11831510147012574, 1.58666492181064182) q[9]; +U(1.48023614940327390, 2.06176528424185999, 0.07826037572101456) q[10]; +U(2.01999359500185410, 0.99853577278169907, 2.82308367281201789) q[11]; +U(1.90181350800646319, 1.72558743179683623, 1.43086036830881009) q[12]; +U(0.47365025869096567, 0.69812237815805373, 1.25127001401979460) q[13]; +U(1.95950913557300971, 1.97161992415821295, 0.75935609473879546) q[14]; +U(1.92711769055155497, 1.52364923831006385, 0.77502414449030717) q[15]; +U(2.33115326053306660, 0.18328943565392824, 1.17519367198169442) q[16]; +U(2.82428522189215998, 2.80221712420474438, 0.94808882623055921) q[17]; +U(1.11987224717147546, 1.87454473275542177, 1.75834043381443645) q[18]; +U(2.88879826543950429, 1.56851217769043242, 2.28810436627216473) q[19]; +U(0.95006552998405151, 1.68214614964306332, 1.75593989424479830) q[20]; +U(2.28087034405093754, 2.14071077938703475, 2.50678053993371216) q[21]; +U(2.30548144532201551, 1.95243904216968586, 2.22671207310705704) q[22]; +U(1.03594731984298614, 2.23271795637600252, 1.84790481743891780) q[23]; +U(2.66130507841139027, 2.73626405179474605, 1.21363210117516510) q[24]; +U(1.67422511319485985, 0.05557348828811935, 0.22109746088969676) q[25]; +cx q[0], q[1]; +cx q[2], q[3]; +cx q[4], q[5]; +cx q[6], q[7]; +cx q[8], q[9]; +cx q[10], q[11]; +cx q[12], q[13]; +cx q[14], q[15]; +cx q[16], q[17]; +cx q[18], q[19]; +cx q[20], q[21]; +cx q[22], q[23]; +cx q[24], q[25]; +U(2.72488059384152830, 2.03845557335818459, 2.92452679112498747) q[0]; +U(1.45323252098682506, 0.38801395719652180, 2.81179926069441444) q[1]; +U(2.54028328501402533, 2.87545775959449306, 1.15889018252445765) q[2]; +U(0.12311894966759943, 2.20101235150252938, 0.22591803372914574) q[3]; +U(2.67976567462108929, 1.88468096710200861, 2.59047099570055174) q[4]; +U(2.11858411639352016, 0.66497500026339918, 1.13015472875561267) q[5]; +U(0.21311094987007065, 1.94144786072791548, 0.06095175401447012) q[6]; +U(2.27955111335838751, 1.55292435364892926, 1.12304621609343454) q[7]; +U(1.35431022409162667, 2.08648287348213517, 2.83253034762416338) q[8]; +U(2.77248317292118602, 0.72178624659699750, 0.44537761455121695) q[9]; +U(0.03649398424477329, 0.80482440831566999, 1.56142977099029271) q[10]; +U(0.27551937878126083, 0.52278604774716640, 0.31150731323887304) q[11]; +U(1.60817143747595168, 2.30060155355966953, 2.42696535157589414) q[12]; +U(1.63024005404851755, 2.11388413095685295, 2.41616454913179132) q[13]; +U(2.57263147483774253, 1.75151741543281436, 0.37228535533022659) q[14]; +U(2.18920768655424351, 0.75727219782156081, 1.06461972742205263) q[15]; +U(0.94464013157483469, 0.32457679213566477, 2.46755725083615051) q[16]; +U(2.91861606518219903, 1.18165816235252908, 2.40197010822675787) q[17]; +U(0.50924552213490884, 2.04641119549528655, 0.33590909404532843) q[18]; +U(2.96525926843046878, 0.51850426714571520, 0.31212761578157355) q[19]; +U(2.29511381682494021, 0.98843903183005559, 0.70449897205716108) q[20]; +U(1.28819666679407473, 1.80934507361645253, 0.16113326933563802) q[21]; +U(2.32769127973316360, 0.38405886361359763, 0.20790229047527495) q[22]; +U(0.16690568004876994, 1.54925316144896330, 0.04253685949301125) q[23]; +U(1.89845780163227604, 2.63517070431555205, 1.87282804220476379) q[24]; +U(1.31667767966131700, 0.45945669716486907, 1.29174570537905875) q[25]; +cx q[1], q[2]; +cx q[3], q[4]; +cx q[5], q[6]; +cx q[7], q[8]; +cx q[9], q[10]; +cx q[11], q[12]; +cx q[13], q[14]; +cx q[15], q[16]; +cx q[17], q[18]; +cx q[19], q[20]; +cx q[21], q[22]; +cx q[23], q[24]; +U(2.75361610347005924, 2.29512694403438659, 0.04351032225260778) q[0]; +U(2.57534813314434716, 2.05648032923994805, 0.23971948720475619) q[1]; +U(1.61065007377397477, 1.74838101093954571, 0.11955241952757462) q[2]; +U(2.37569733402602027, 2.66714783421644457, 1.47092964683248770) q[3]; +U(1.35597500598051126, 2.07878142774099604, 0.92074533836573968) q[4]; +U(0.45061977759494271, 2.57762479098089144, 2.92063356868713676) q[5]; +U(2.98885699496554960, 2.24149718816404777, 1.96274598837894421) q[6]; +U(2.37088029321606361, 2.26838822395827782, 2.32540727768936955) q[7]; +U(0.38244554084203584, 1.04495162922089595, 1.22668903221623366) q[8]; +U(1.96169429954651215, 0.05666935394530516, 2.74839256572664941) q[9]; +U(0.38423846801513716, 0.50291450218067726, 1.03341440222573227) q[10]; +U(2.36823007761389652, 1.31861229726032604, 0.81232062634987690) q[11]; +U(0.93366612641865582, 2.37889294711486399, 0.67460510300217786) q[12]; +U(2.68976789984843133, 1.35262522789414407, 1.90716903419632351) q[13]; +U(2.37804882996650283, 2.09795604080139930, 2.18854269713953313) q[14]; +U(2.22626427134823426, 2.49986884565977436, 0.00250076612780896) q[15]; +U(1.60313745336371034, 1.15779498411483432, 1.31921832498240553) q[16]; +U(0.57654796954528563, 1.23035735282864327, 0.67646588304841521) q[17]; +U(2.57713470605112908, 0.50100994400841285, 0.49841839744016081) q[18]; +U(0.58976915737784300, 0.17055567554997997, 2.78209713699621061) q[19]; +U(2.30952915684217438, 2.79787665507733937, 2.96047757479471362) q[20]; +U(1.05507800001958687, 0.03902011774735460, 2.23908312197381860) q[21]; +U(2.82984769789893181, 1.52497879584918821, 1.10657182406680995) q[22]; +U(1.08370314409946159, 2.58747882963041422, 0.38187366123158792) q[23]; +U(2.64113032006194805, 2.67391914116341279, 2.49705957981057667) q[24]; +U(0.96194036745219214, 2.95700016227676077, 1.74220290745303404) q[25]; +cx q[0], q[1]; +cx q[2], q[3]; +cx q[4], q[5]; +cx q[6], q[7]; +cx q[8], q[9]; +cx q[10], q[11]; +cx q[12], q[13]; +cx q[14], q[15]; +cx q[16], q[17]; +cx q[18], q[19]; +cx q[20], q[21]; +cx q[22], q[23]; +cx q[24], q[25]; diff --git a/wai/quantum-cross-simulator/corpus/qasm/top_index_n20.qasm b/wai/quantum-cross-simulator/corpus/qasm/top_index_n20.qasm new file mode 100644 index 000000000..8cb2b13d8 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qasm/top_index_n20.qasm @@ -0,0 +1,5 @@ +OPENQASM 3.0; +include "stdgates.inc"; +qubit[20] q; +x q[19]; +h q[18]; diff --git a/wai/quantum-cross-simulator/corpus/qec-hand-written.json b/wai/quantum-cross-simulator/corpus/qec-hand-written.json new file mode 100644 index 000000000..bfb420cd1 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qec-hand-written.json @@ -0,0 +1,30 @@ +{ + "qec_inverted_and_tagged": { + "reason": "A measurement target inverted, which flips its value and no detection event, and a tag on noise.", + "text": "R 0 1\nX_ERROR[leak](0.01) 0\nCX 0 1\nM !0 1\nDETECTOR rec[-1] rec[-2]\nOBSERVABLE_INCLUDE(0) rec[-1]\n" + }, + "qec_measure_flip_noise": { + "reason": "Measurement flip noise in both bases, and a reset in X.", + "text": "R 0\nRX 1\nM(0.02) 0\nMX(0.03) 1\nDETECTOR rec[-2]\nDETECTOR rec[-1]\n" + }, + "qec_depolarize_merge": { + "reason": "Two channels whose mechanisms have the same symptoms merge by the XOR rule, p1 + p2 - 2 p1 p2.", + "text": "R 0 1\nDEPOLARIZE1(0.01) 0\nX_ERROR(0.02) 0\nDEPOLARIZE2(0.03) 0 1\nM 0 1\nDETECTOR rec[-2]\nDETECTOR rec[-1]\n" + }, + "qec_pauli_observable": { + "reason": "An observable on Pauli targets rather than measurement records.", + "text": "R 0 1 2\nH 0\nCX 0 1 1 2\nZ_ERROR(0.01) 1\nOBSERVABLE_INCLUDE(0) X0 X1 X2\n" + }, + "qec_refused_correlated": { + "reason": "A correlated error, which the frame simulator does not implement: it must be refused with its line.", + "text": "R 0 1\nE(0.01) X0 X1\nM 0 1\nDETECTOR rec[-1]\n" + }, + "qec_refused_pauli_channel": { + "reason": "A general Pauli channel, which it does not implement either.", + "text": "R 0\nPAULI_CHANNEL_1(0.01, 0.02, 0.03) 0\nM 0\nDETECTOR rec[-1]\n" + }, + "qec_refused_random_detector": { + "reason": "A detector that is random without noise is no detector: it must be refused.", + "text": "RX 0\nM 0\nDETECTOR rec[-1]\n" + } +} diff --git a/wai/quantum-cross-simulator/corpus/qec/color_d3.circuit b/wai/quantum-cross-simulator/corpus/qec/color_d3.circuit new file mode 100644 index 000000000..ed9ce2033 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qec/color_d3.circuit @@ -0,0 +1,79 @@ +QUBIT_COORDS(0, 0) 0 +QUBIT_COORDS(1, 0) 1 +QUBIT_COORDS(2, 0) 2 +QUBIT_COORDS(3, 0) 3 +QUBIT_COORDS(0.5, 1) 4 +QUBIT_COORDS(1.5, 1) 5 +QUBIT_COORDS(2.5, 1) 6 +QUBIT_COORDS(1, 2) 7 +QUBIT_COORDS(2, 2) 8 +QUBIT_COORDS(1.5, 3) 9 +R 0 1 2 3 4 5 6 7 8 9 +X_ERROR(0.002) 0 1 2 3 4 5 6 7 8 9 +REPEAT 2 { + TICK + DEPOLARIZE1(0.002) 0 1 3 5 6 7 9 + C_XYZ 0 1 3 5 6 7 9 + DEPOLARIZE1(0.002) 0 1 3 5 6 7 9 + TICK + CX 5 4 3 2 + DEPOLARIZE2(0.002) 5 4 3 2 + TICK + CX 7 4 6 2 + DEPOLARIZE2(0.002) 7 4 6 2 + TICK + CX 1 4 6 8 + DEPOLARIZE2(0.002) 1 4 6 8 + TICK + CX 1 2 7 8 + DEPOLARIZE2(0.002) 1 2 7 8 + TICK + CX 5 2 9 8 + DEPOLARIZE2(0.002) 5 2 9 8 + TICK + CX 0 4 5 8 + DEPOLARIZE2(0.002) 0 4 5 8 + TICK + X_ERROR(0.002) 2 4 8 + MR 2 4 8 + X_ERROR(0.002) 2 4 8 +} +DETECTOR(2, 0, 0) rec[-3] rec[-6] +DETECTOR(0.5, 1, 0) rec[-2] rec[-5] +DETECTOR(2, 2, 0) rec[-1] rec[-4] +TICK +DEPOLARIZE1(0.002) 0 1 3 5 6 7 9 +C_XYZ 0 1 3 5 6 7 9 +DEPOLARIZE1(0.002) 0 1 3 5 6 7 9 +TICK +CX 5 4 3 2 +DEPOLARIZE2(0.002) 5 4 3 2 +TICK +CX 7 4 6 2 +DEPOLARIZE2(0.002) 7 4 6 2 +TICK +CX 1 4 6 8 +DEPOLARIZE2(0.002) 1 4 6 8 +TICK +CX 1 2 7 8 +DEPOLARIZE2(0.002) 1 2 7 8 +TICK +CX 5 2 9 8 +DEPOLARIZE2(0.002) 5 2 9 8 +TICK +CX 0 4 5 8 +DEPOLARIZE2(0.002) 0 4 5 8 +TICK +X_ERROR(0.002) 2 4 8 +MR 2 4 8 +X_ERROR(0.002) 2 4 8 +SHIFT_COORDS(0, 0, 1) +DETECTOR(2, 0, 0) rec[-3] rec[-6] rec[-9] +DETECTOR(0.5, 1, 0) rec[-2] rec[-5] rec[-8] +DETECTOR(2, 2, 0) rec[-1] rec[-4] rec[-7] +X_ERROR(0.002) 0 1 3 5 6 7 9 +M 0 1 3 5 6 7 9 +DETECTOR(2, 0, 1) rec[-3] rec[-4] rec[-5] rec[-6] rec[-10] +DETECTOR(0.5, 1, 1) rec[-2] rec[-4] rec[-6] rec[-7] rec[-9] +DETECTOR(2, 2, 1) rec[-1] rec[-2] rec[-3] rec[-4] rec[-8] +OBSERVABLE_INCLUDE(0) rec[-5] rec[-6] rec[-7] diff --git a/wai/quantum-cross-simulator/corpus/qec/repetition_d25.circuit b/wai/quantum-cross-simulator/corpus/qec/repetition_d25.circuit new file mode 100644 index 000000000..b5ed6243c --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qec/repetition_d25.circuit @@ -0,0 +1,102 @@ +R 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 +X_ERROR(0.005) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 +TICK +DEPOLARIZE1(0.005) 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 +CX 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 +DEPOLARIZE2(0.005) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 +TICK +CX 2 1 4 3 6 5 8 7 10 9 12 11 14 13 16 15 18 17 20 19 22 21 24 23 26 25 28 27 30 29 32 31 34 33 36 35 38 37 40 39 42 41 44 43 46 45 48 47 +DEPOLARIZE2(0.005) 2 1 4 3 6 5 8 7 10 9 12 11 14 13 16 15 18 17 20 19 22 21 24 23 26 25 28 27 30 29 32 31 34 33 36 35 38 37 40 39 42 41 44 43 46 45 48 47 +TICK +X_ERROR(0.005) 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 +MR 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 +X_ERROR(0.005) 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 +DETECTOR(1, 0) rec[-24] +DETECTOR(3, 0) rec[-23] +DETECTOR(5, 0) rec[-22] +DETECTOR(7, 0) rec[-21] +DETECTOR(9, 0) rec[-20] +DETECTOR(11, 0) rec[-19] +DETECTOR(13, 0) rec[-18] +DETECTOR(15, 0) rec[-17] +DETECTOR(17, 0) rec[-16] +DETECTOR(19, 0) rec[-15] +DETECTOR(21, 0) rec[-14] +DETECTOR(23, 0) rec[-13] +DETECTOR(25, 0) rec[-12] +DETECTOR(27, 0) rec[-11] +DETECTOR(29, 0) rec[-10] +DETECTOR(31, 0) rec[-9] +DETECTOR(33, 0) rec[-8] +DETECTOR(35, 0) rec[-7] +DETECTOR(37, 0) rec[-6] +DETECTOR(39, 0) rec[-5] +DETECTOR(41, 0) rec[-4] +DETECTOR(43, 0) rec[-3] +DETECTOR(45, 0) rec[-2] +DETECTOR(47, 0) rec[-1] +REPEAT 24 { + TICK + DEPOLARIZE1(0.005) 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 + CX 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + DEPOLARIZE2(0.005) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 + TICK + CX 2 1 4 3 6 5 8 7 10 9 12 11 14 13 16 15 18 17 20 19 22 21 24 23 26 25 28 27 30 29 32 31 34 33 36 35 38 37 40 39 42 41 44 43 46 45 48 47 + DEPOLARIZE2(0.005) 2 1 4 3 6 5 8 7 10 9 12 11 14 13 16 15 18 17 20 19 22 21 24 23 26 25 28 27 30 29 32 31 34 33 36 35 38 37 40 39 42 41 44 43 46 45 48 47 + TICK + X_ERROR(0.005) 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 + MR 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 + X_ERROR(0.005) 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 + SHIFT_COORDS(0, 1) + DETECTOR(1, 0) rec[-24] rec[-48] + DETECTOR(3, 0) rec[-23] rec[-47] + DETECTOR(5, 0) rec[-22] rec[-46] + DETECTOR(7, 0) rec[-21] rec[-45] + DETECTOR(9, 0) rec[-20] rec[-44] + DETECTOR(11, 0) rec[-19] rec[-43] + DETECTOR(13, 0) rec[-18] rec[-42] + DETECTOR(15, 0) rec[-17] rec[-41] + DETECTOR(17, 0) rec[-16] rec[-40] + DETECTOR(19, 0) rec[-15] rec[-39] + DETECTOR(21, 0) rec[-14] rec[-38] + DETECTOR(23, 0) rec[-13] rec[-37] + DETECTOR(25, 0) rec[-12] rec[-36] + DETECTOR(27, 0) rec[-11] rec[-35] + DETECTOR(29, 0) rec[-10] rec[-34] + DETECTOR(31, 0) rec[-9] rec[-33] + DETECTOR(33, 0) rec[-8] rec[-32] + DETECTOR(35, 0) rec[-7] rec[-31] + DETECTOR(37, 0) rec[-6] rec[-30] + DETECTOR(39, 0) rec[-5] rec[-29] + DETECTOR(41, 0) rec[-4] rec[-28] + DETECTOR(43, 0) rec[-3] rec[-27] + DETECTOR(45, 0) rec[-2] rec[-26] + DETECTOR(47, 0) rec[-1] rec[-25] +} +X_ERROR(0.005) 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 +M 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 +DETECTOR(1, 1) rec[-24] rec[-25] rec[-49] +DETECTOR(3, 1) rec[-23] rec[-24] rec[-48] +DETECTOR(5, 1) rec[-22] rec[-23] rec[-47] +DETECTOR(7, 1) rec[-21] rec[-22] rec[-46] +DETECTOR(9, 1) rec[-20] rec[-21] rec[-45] +DETECTOR(11, 1) rec[-19] rec[-20] rec[-44] +DETECTOR(13, 1) rec[-18] rec[-19] rec[-43] +DETECTOR(15, 1) rec[-17] rec[-18] rec[-42] +DETECTOR(17, 1) rec[-16] rec[-17] rec[-41] +DETECTOR(19, 1) rec[-15] rec[-16] rec[-40] +DETECTOR(21, 1) rec[-14] rec[-15] rec[-39] +DETECTOR(23, 1) rec[-13] rec[-14] rec[-38] +DETECTOR(25, 1) rec[-12] rec[-13] rec[-37] +DETECTOR(27, 1) rec[-11] rec[-12] rec[-36] +DETECTOR(29, 1) rec[-10] rec[-11] rec[-35] +DETECTOR(31, 1) rec[-9] rec[-10] rec[-34] +DETECTOR(33, 1) rec[-8] rec[-9] rec[-33] +DETECTOR(35, 1) rec[-7] rec[-8] rec[-32] +DETECTOR(37, 1) rec[-6] rec[-7] rec[-31] +DETECTOR(39, 1) rec[-5] rec[-6] rec[-30] +DETECTOR(41, 1) rec[-4] rec[-5] rec[-29] +DETECTOR(43, 1) rec[-3] rec[-4] rec[-28] +DETECTOR(45, 1) rec[-2] rec[-3] rec[-27] +DETECTOR(47, 1) rec[-1] rec[-2] rec[-26] +OBSERVABLE_INCLUDE(0) rec[-1] diff --git a/wai/quantum-cross-simulator/corpus/qec/repetition_d3.circuit b/wai/quantum-cross-simulator/corpus/qec/repetition_d3.circuit new file mode 100644 index 000000000..12104ddef --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qec/repetition_d3.circuit @@ -0,0 +1,36 @@ +R 0 1 2 3 4 +X_ERROR(0.005) 0 1 2 3 4 +TICK +DEPOLARIZE1(0.005) 0 2 4 +CX 0 1 2 3 +DEPOLARIZE2(0.005) 0 1 2 3 +TICK +CX 2 1 4 3 +DEPOLARIZE2(0.005) 2 1 4 3 +TICK +X_ERROR(0.005) 1 3 +MR 1 3 +X_ERROR(0.005) 1 3 +DETECTOR(1, 0) rec[-2] +DETECTOR(3, 0) rec[-1] +REPEAT 2 { + TICK + DEPOLARIZE1(0.005) 0 2 4 + CX 0 1 2 3 + DEPOLARIZE2(0.005) 0 1 2 3 + TICK + CX 2 1 4 3 + DEPOLARIZE2(0.005) 2 1 4 3 + TICK + X_ERROR(0.005) 1 3 + MR 1 3 + X_ERROR(0.005) 1 3 + SHIFT_COORDS(0, 1) + DETECTOR(1, 0) rec[-2] rec[-4] + DETECTOR(3, 0) rec[-1] rec[-3] +} +X_ERROR(0.005) 0 2 4 +M 0 2 4 +DETECTOR(1, 1) rec[-2] rec[-3] rec[-5] +DETECTOR(3, 1) rec[-1] rec[-2] rec[-4] +OBSERVABLE_INCLUDE(0) rec[-1] diff --git a/wai/quantum-cross-simulator/corpus/qec/repetition_d9.circuit b/wai/quantum-cross-simulator/corpus/qec/repetition_d9.circuit new file mode 100644 index 000000000..9d36c1b1b --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qec/repetition_d9.circuit @@ -0,0 +1,54 @@ +R 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +X_ERROR(0.005) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +TICK +DEPOLARIZE1(0.005) 0 2 4 6 8 10 12 14 16 +CX 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 +DEPOLARIZE2(0.005) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 +TICK +CX 2 1 4 3 6 5 8 7 10 9 12 11 14 13 16 15 +DEPOLARIZE2(0.005) 2 1 4 3 6 5 8 7 10 9 12 11 14 13 16 15 +TICK +X_ERROR(0.005) 1 3 5 7 9 11 13 15 +MR 1 3 5 7 9 11 13 15 +X_ERROR(0.005) 1 3 5 7 9 11 13 15 +DETECTOR(1, 0) rec[-8] +DETECTOR(3, 0) rec[-7] +DETECTOR(5, 0) rec[-6] +DETECTOR(7, 0) rec[-5] +DETECTOR(9, 0) rec[-4] +DETECTOR(11, 0) rec[-3] +DETECTOR(13, 0) rec[-2] +DETECTOR(15, 0) rec[-1] +REPEAT 8 { + TICK + DEPOLARIZE1(0.005) 0 2 4 6 8 10 12 14 16 + CX 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + DEPOLARIZE2(0.005) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + TICK + CX 2 1 4 3 6 5 8 7 10 9 12 11 14 13 16 15 + DEPOLARIZE2(0.005) 2 1 4 3 6 5 8 7 10 9 12 11 14 13 16 15 + TICK + X_ERROR(0.005) 1 3 5 7 9 11 13 15 + MR 1 3 5 7 9 11 13 15 + X_ERROR(0.005) 1 3 5 7 9 11 13 15 + SHIFT_COORDS(0, 1) + DETECTOR(1, 0) rec[-8] rec[-16] + DETECTOR(3, 0) rec[-7] rec[-15] + DETECTOR(5, 0) rec[-6] rec[-14] + DETECTOR(7, 0) rec[-5] rec[-13] + DETECTOR(9, 0) rec[-4] rec[-12] + DETECTOR(11, 0) rec[-3] rec[-11] + DETECTOR(13, 0) rec[-2] rec[-10] + DETECTOR(15, 0) rec[-1] rec[-9] +} +X_ERROR(0.005) 0 2 4 6 8 10 12 14 16 +M 0 2 4 6 8 10 12 14 16 +DETECTOR(1, 1) rec[-8] rec[-9] rec[-17] +DETECTOR(3, 1) rec[-7] rec[-8] rec[-16] +DETECTOR(5, 1) rec[-6] rec[-7] rec[-15] +DETECTOR(7, 1) rec[-5] rec[-6] rec[-14] +DETECTOR(9, 1) rec[-4] rec[-5] rec[-13] +DETECTOR(11, 1) rec[-3] rec[-4] rec[-12] +DETECTOR(13, 1) rec[-2] rec[-3] rec[-11] +DETECTOR(15, 1) rec[-1] rec[-2] rec[-10] +OBSERVABLE_INCLUDE(0) rec[-1] diff --git a/wai/quantum-cross-simulator/corpus/qec/surface_x_d3.circuit b/wai/quantum-cross-simulator/corpus/qec/surface_x_d3.circuit new file mode 100644 index 000000000..2de135e0e --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qec/surface_x_d3.circuit @@ -0,0 +1,89 @@ +QUBIT_COORDS(1, 1) 1 +QUBIT_COORDS(2, 0) 2 +QUBIT_COORDS(3, 1) 3 +QUBIT_COORDS(5, 1) 5 +QUBIT_COORDS(1, 3) 8 +QUBIT_COORDS(2, 2) 9 +QUBIT_COORDS(3, 3) 10 +QUBIT_COORDS(4, 2) 11 +QUBIT_COORDS(5, 3) 12 +QUBIT_COORDS(6, 2) 13 +QUBIT_COORDS(0, 4) 14 +QUBIT_COORDS(1, 5) 15 +QUBIT_COORDS(2, 4) 16 +QUBIT_COORDS(3, 5) 17 +QUBIT_COORDS(4, 4) 18 +QUBIT_COORDS(5, 5) 19 +QUBIT_COORDS(4, 6) 25 +RX 1 3 5 8 10 12 15 17 19 +Z_ERROR(0.001) 1 3 5 8 10 12 15 17 19 +R 2 9 11 13 14 16 18 25 +X_ERROR(0.001) 2 9 11 13 14 16 18 25 +TICK +DEPOLARIZE1(0.001) 1 3 5 8 10 12 15 17 19 +H 2 11 16 25 +DEPOLARIZE1(0.001) 2 11 16 25 +TICK +CX 2 3 16 17 11 12 15 14 10 9 19 18 +DEPOLARIZE2(0.001) 2 3 16 17 11 12 15 14 10 9 19 18 +TICK +CX 2 1 16 15 11 10 8 14 3 9 12 18 +DEPOLARIZE2(0.001) 2 1 16 15 11 10 8 14 3 9 12 18 +TICK +CX 16 10 11 5 25 19 8 9 17 18 12 13 +DEPOLARIZE2(0.001) 16 10 11 5 25 19 8 9 17 18 12 13 +TICK +CX 16 8 11 3 25 17 1 9 10 18 5 13 +DEPOLARIZE2(0.001) 16 8 11 3 25 17 1 9 10 18 5 13 +TICK +H 2 11 16 25 +DEPOLARIZE1(0.001) 2 11 16 25 +TICK +X_ERROR(0.001) 2 9 11 13 14 16 18 25 +MR 2 9 11 13 14 16 18 25 +X_ERROR(0.001) 2 9 11 13 14 16 18 25 +DETECTOR(2, 0, 0) rec[-8] +DETECTOR(2, 4, 0) rec[-3] +DETECTOR(4, 2, 0) rec[-6] +DETECTOR(4, 6, 0) rec[-1] +REPEAT 2 { + TICK + DEPOLARIZE1(0.001) 1 3 5 8 10 12 15 17 19 + H 2 11 16 25 + DEPOLARIZE1(0.001) 2 11 16 25 + TICK + CX 2 3 16 17 11 12 15 14 10 9 19 18 + DEPOLARIZE2(0.001) 2 3 16 17 11 12 15 14 10 9 19 18 + TICK + CX 2 1 16 15 11 10 8 14 3 9 12 18 + DEPOLARIZE2(0.001) 2 1 16 15 11 10 8 14 3 9 12 18 + TICK + CX 16 10 11 5 25 19 8 9 17 18 12 13 + DEPOLARIZE2(0.001) 16 10 11 5 25 19 8 9 17 18 12 13 + TICK + CX 16 8 11 3 25 17 1 9 10 18 5 13 + DEPOLARIZE2(0.001) 16 8 11 3 25 17 1 9 10 18 5 13 + TICK + H 2 11 16 25 + DEPOLARIZE1(0.001) 2 11 16 25 + TICK + X_ERROR(0.001) 2 9 11 13 14 16 18 25 + MR 2 9 11 13 14 16 18 25 + X_ERROR(0.001) 2 9 11 13 14 16 18 25 + SHIFT_COORDS(0, 0, 1) + DETECTOR(2, 0, 0) rec[-8] rec[-16] + DETECTOR(2, 2, 0) rec[-7] rec[-15] + DETECTOR(4, 2, 0) rec[-6] rec[-14] + DETECTOR(6, 2, 0) rec[-5] rec[-13] + DETECTOR(0, 4, 0) rec[-4] rec[-12] + DETECTOR(2, 4, 0) rec[-3] rec[-11] + DETECTOR(4, 4, 0) rec[-2] rec[-10] + DETECTOR(4, 6, 0) rec[-1] rec[-9] +} +Z_ERROR(0.001) 1 3 5 8 10 12 15 17 19 +MX 1 3 5 8 10 12 15 17 19 +DETECTOR(2, 0, 1) rec[-8] rec[-9] rec[-17] +DETECTOR(2, 4, 1) rec[-2] rec[-3] rec[-5] rec[-6] rec[-12] +DETECTOR(4, 2, 1) rec[-4] rec[-5] rec[-7] rec[-8] rec[-15] +DETECTOR(4, 6, 1) rec[-1] rec[-2] rec[-10] +OBSERVABLE_INCLUDE(0) rec[-3] rec[-6] rec[-9] diff --git a/wai/quantum-cross-simulator/corpus/qec/surface_x_d5.circuit b/wai/quantum-cross-simulator/corpus/qec/surface_x_d5.circuit new file mode 100644 index 000000000..7a54f2cf1 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qec/surface_x_d5.circuit @@ -0,0 +1,153 @@ +QUBIT_COORDS(1, 1) 1 +QUBIT_COORDS(2, 0) 2 +QUBIT_COORDS(3, 1) 3 +QUBIT_COORDS(5, 1) 5 +QUBIT_COORDS(6, 0) 6 +QUBIT_COORDS(7, 1) 7 +QUBIT_COORDS(9, 1) 9 +QUBIT_COORDS(1, 3) 12 +QUBIT_COORDS(2, 2) 13 +QUBIT_COORDS(3, 3) 14 +QUBIT_COORDS(4, 2) 15 +QUBIT_COORDS(5, 3) 16 +QUBIT_COORDS(6, 2) 17 +QUBIT_COORDS(7, 3) 18 +QUBIT_COORDS(8, 2) 19 +QUBIT_COORDS(9, 3) 20 +QUBIT_COORDS(10, 2) 21 +QUBIT_COORDS(0, 4) 22 +QUBIT_COORDS(1, 5) 23 +QUBIT_COORDS(2, 4) 24 +QUBIT_COORDS(3, 5) 25 +QUBIT_COORDS(4, 4) 26 +QUBIT_COORDS(5, 5) 27 +QUBIT_COORDS(6, 4) 28 +QUBIT_COORDS(7, 5) 29 +QUBIT_COORDS(8, 4) 30 +QUBIT_COORDS(9, 5) 31 +QUBIT_COORDS(1, 7) 34 +QUBIT_COORDS(2, 6) 35 +QUBIT_COORDS(3, 7) 36 +QUBIT_COORDS(4, 6) 37 +QUBIT_COORDS(5, 7) 38 +QUBIT_COORDS(6, 6) 39 +QUBIT_COORDS(7, 7) 40 +QUBIT_COORDS(8, 6) 41 +QUBIT_COORDS(9, 7) 42 +QUBIT_COORDS(10, 6) 43 +QUBIT_COORDS(0, 8) 44 +QUBIT_COORDS(1, 9) 45 +QUBIT_COORDS(2, 8) 46 +QUBIT_COORDS(3, 9) 47 +QUBIT_COORDS(4, 8) 48 +QUBIT_COORDS(5, 9) 49 +QUBIT_COORDS(6, 8) 50 +QUBIT_COORDS(7, 9) 51 +QUBIT_COORDS(8, 8) 52 +QUBIT_COORDS(9, 9) 53 +QUBIT_COORDS(4, 10) 59 +QUBIT_COORDS(8, 10) 63 +RX 1 3 5 7 9 12 14 16 18 20 23 25 27 29 31 34 36 38 40 42 45 47 49 51 53 +Z_ERROR(0.001) 1 3 5 7 9 12 14 16 18 20 23 25 27 29 31 34 36 38 40 42 45 47 49 51 53 +R 2 6 13 15 17 19 21 22 24 26 28 30 35 37 39 41 43 44 46 48 50 52 59 63 +X_ERROR(0.001) 2 6 13 15 17 19 21 22 24 26 28 30 35 37 39 41 43 44 46 48 50 52 59 63 +TICK +DEPOLARIZE1(0.001) 1 3 5 7 9 12 14 16 18 20 23 25 27 29 31 34 36 38 40 42 45 47 49 51 53 +H 2 6 15 19 24 28 37 41 46 50 59 63 +DEPOLARIZE1(0.001) 2 6 15 19 24 28 37 41 46 50 59 63 +TICK +CX 2 3 24 25 46 47 15 16 37 38 6 7 28 29 50 51 19 20 41 42 23 22 45 44 14 13 36 35 27 26 49 48 18 17 40 39 31 30 53 52 +DEPOLARIZE2(0.001) 2 3 24 25 46 47 15 16 37 38 6 7 28 29 50 51 19 20 41 42 23 22 45 44 14 13 36 35 27 26 49 48 18 17 40 39 31 30 53 52 +TICK +CX 2 1 24 23 46 45 15 14 37 36 6 5 28 27 50 49 19 18 41 40 12 22 34 44 3 13 25 35 16 26 38 48 7 17 29 39 20 30 42 52 +DEPOLARIZE2(0.001) 2 1 24 23 46 45 15 14 37 36 6 5 28 27 50 49 19 18 41 40 12 22 34 44 3 13 25 35 16 26 38 48 7 17 29 39 20 30 42 52 +TICK +CX 24 14 46 36 15 5 37 27 59 49 28 18 50 40 19 9 41 31 63 53 12 13 34 35 25 26 47 48 16 17 38 39 29 30 51 52 20 21 42 43 +DEPOLARIZE2(0.001) 24 14 46 36 15 5 37 27 59 49 28 18 50 40 19 9 41 31 63 53 12 13 34 35 25 26 47 48 16 17 38 39 29 30 51 52 20 21 42 43 +TICK +CX 24 12 46 34 15 3 37 25 59 47 28 16 50 38 19 7 41 29 63 51 1 13 23 35 14 26 36 48 5 17 27 39 18 30 40 52 9 21 31 43 +DEPOLARIZE2(0.001) 24 12 46 34 15 3 37 25 59 47 28 16 50 38 19 7 41 29 63 51 1 13 23 35 14 26 36 48 5 17 27 39 18 30 40 52 9 21 31 43 +TICK +H 2 6 15 19 24 28 37 41 46 50 59 63 +DEPOLARIZE1(0.001) 2 6 15 19 24 28 37 41 46 50 59 63 +TICK +X_ERROR(0.001) 2 6 13 15 17 19 21 22 24 26 28 30 35 37 39 41 43 44 46 48 50 52 59 63 +MR 2 6 13 15 17 19 21 22 24 26 28 30 35 37 39 41 43 44 46 48 50 52 59 63 +X_ERROR(0.001) 2 6 13 15 17 19 21 22 24 26 28 30 35 37 39 41 43 44 46 48 50 52 59 63 +DETECTOR(2, 0, 0) rec[-24] +DETECTOR(2, 4, 0) rec[-16] +DETECTOR(2, 8, 0) rec[-6] +DETECTOR(4, 2, 0) rec[-21] +DETECTOR(4, 6, 0) rec[-11] +DETECTOR(4, 10, 0) rec[-2] +DETECTOR(6, 0, 0) rec[-23] +DETECTOR(6, 4, 0) rec[-14] +DETECTOR(6, 8, 0) rec[-4] +DETECTOR(8, 2, 0) rec[-19] +DETECTOR(8, 6, 0) rec[-9] +DETECTOR(8, 10, 0) rec[-1] +REPEAT 4 { + TICK + DEPOLARIZE1(0.001) 1 3 5 7 9 12 14 16 18 20 23 25 27 29 31 34 36 38 40 42 45 47 49 51 53 + H 2 6 15 19 24 28 37 41 46 50 59 63 + DEPOLARIZE1(0.001) 2 6 15 19 24 28 37 41 46 50 59 63 + TICK + CX 2 3 24 25 46 47 15 16 37 38 6 7 28 29 50 51 19 20 41 42 23 22 45 44 14 13 36 35 27 26 49 48 18 17 40 39 31 30 53 52 + DEPOLARIZE2(0.001) 2 3 24 25 46 47 15 16 37 38 6 7 28 29 50 51 19 20 41 42 23 22 45 44 14 13 36 35 27 26 49 48 18 17 40 39 31 30 53 52 + TICK + CX 2 1 24 23 46 45 15 14 37 36 6 5 28 27 50 49 19 18 41 40 12 22 34 44 3 13 25 35 16 26 38 48 7 17 29 39 20 30 42 52 + DEPOLARIZE2(0.001) 2 1 24 23 46 45 15 14 37 36 6 5 28 27 50 49 19 18 41 40 12 22 34 44 3 13 25 35 16 26 38 48 7 17 29 39 20 30 42 52 + TICK + CX 24 14 46 36 15 5 37 27 59 49 28 18 50 40 19 9 41 31 63 53 12 13 34 35 25 26 47 48 16 17 38 39 29 30 51 52 20 21 42 43 + DEPOLARIZE2(0.001) 24 14 46 36 15 5 37 27 59 49 28 18 50 40 19 9 41 31 63 53 12 13 34 35 25 26 47 48 16 17 38 39 29 30 51 52 20 21 42 43 + TICK + CX 24 12 46 34 15 3 37 25 59 47 28 16 50 38 19 7 41 29 63 51 1 13 23 35 14 26 36 48 5 17 27 39 18 30 40 52 9 21 31 43 + DEPOLARIZE2(0.001) 24 12 46 34 15 3 37 25 59 47 28 16 50 38 19 7 41 29 63 51 1 13 23 35 14 26 36 48 5 17 27 39 18 30 40 52 9 21 31 43 + TICK + H 2 6 15 19 24 28 37 41 46 50 59 63 + DEPOLARIZE1(0.001) 2 6 15 19 24 28 37 41 46 50 59 63 + TICK + X_ERROR(0.001) 2 6 13 15 17 19 21 22 24 26 28 30 35 37 39 41 43 44 46 48 50 52 59 63 + MR 2 6 13 15 17 19 21 22 24 26 28 30 35 37 39 41 43 44 46 48 50 52 59 63 + X_ERROR(0.001) 2 6 13 15 17 19 21 22 24 26 28 30 35 37 39 41 43 44 46 48 50 52 59 63 + SHIFT_COORDS(0, 0, 1) + DETECTOR(2, 0, 0) rec[-24] rec[-48] + DETECTOR(6, 0, 0) rec[-23] rec[-47] + DETECTOR(2, 2, 0) rec[-22] rec[-46] + DETECTOR(4, 2, 0) rec[-21] rec[-45] + DETECTOR(6, 2, 0) rec[-20] rec[-44] + DETECTOR(8, 2, 0) rec[-19] rec[-43] + DETECTOR(10, 2, 0) rec[-18] rec[-42] + DETECTOR(0, 4, 0) rec[-17] rec[-41] + DETECTOR(2, 4, 0) rec[-16] rec[-40] + DETECTOR(4, 4, 0) rec[-15] rec[-39] + DETECTOR(6, 4, 0) rec[-14] rec[-38] + DETECTOR(8, 4, 0) rec[-13] rec[-37] + DETECTOR(2, 6, 0) rec[-12] rec[-36] + DETECTOR(4, 6, 0) rec[-11] rec[-35] + DETECTOR(6, 6, 0) rec[-10] rec[-34] + DETECTOR(8, 6, 0) rec[-9] rec[-33] + DETECTOR(10, 6, 0) rec[-8] rec[-32] + DETECTOR(0, 8, 0) rec[-7] rec[-31] + DETECTOR(2, 8, 0) rec[-6] rec[-30] + DETECTOR(4, 8, 0) rec[-5] rec[-29] + DETECTOR(6, 8, 0) rec[-4] rec[-28] + DETECTOR(8, 8, 0) rec[-3] rec[-27] + DETECTOR(4, 10, 0) rec[-2] rec[-26] + DETECTOR(8, 10, 0) rec[-1] rec[-25] +} +Z_ERROR(0.001) 1 3 5 7 9 12 14 16 18 20 23 25 27 29 31 34 36 38 40 42 45 47 49 51 53 +MX 1 3 5 7 9 12 14 16 18 20 23 25 27 29 31 34 36 38 40 42 45 47 49 51 53 +DETECTOR(2, 0, 1) rec[-24] rec[-25] rec[-49] +DETECTOR(2, 4, 1) rec[-14] rec[-15] rec[-19] rec[-20] rec[-41] +DETECTOR(2, 8, 1) rec[-4] rec[-5] rec[-9] rec[-10] rec[-31] +DETECTOR(4, 2, 1) rec[-18] rec[-19] rec[-23] rec[-24] rec[-46] +DETECTOR(4, 6, 1) rec[-8] rec[-9] rec[-13] rec[-14] rec[-36] +DETECTOR(4, 10, 1) rec[-3] rec[-4] rec[-27] +DETECTOR(6, 0, 1) rec[-22] rec[-23] rec[-48] +DETECTOR(6, 4, 1) rec[-12] rec[-13] rec[-17] rec[-18] rec[-39] +DETECTOR(6, 8, 1) rec[-2] rec[-3] rec[-7] rec[-8] rec[-29] +DETECTOR(8, 2, 1) rec[-16] rec[-17] rec[-21] rec[-22] rec[-44] +DETECTOR(8, 6, 1) rec[-6] rec[-7] rec[-11] rec[-12] rec[-34] +DETECTOR(8, 10, 1) rec[-1] rec[-2] rec[-26] +OBSERVABLE_INCLUDE(0) rec[-5] rec[-10] rec[-15] rec[-20] rec[-25] diff --git a/wai/quantum-cross-simulator/corpus/qec/surface_x_d7.circuit b/wai/quantum-cross-simulator/corpus/qec/surface_x_d7.circuit new file mode 100644 index 000000000..488b0a7b2 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qec/surface_x_d7.circuit @@ -0,0 +1,249 @@ +QUBIT_COORDS(1, 1) 1 +QUBIT_COORDS(2, 0) 2 +QUBIT_COORDS(3, 1) 3 +QUBIT_COORDS(5, 1) 5 +QUBIT_COORDS(6, 0) 6 +QUBIT_COORDS(7, 1) 7 +QUBIT_COORDS(9, 1) 9 +QUBIT_COORDS(10, 0) 10 +QUBIT_COORDS(11, 1) 11 +QUBIT_COORDS(13, 1) 13 +QUBIT_COORDS(1, 3) 16 +QUBIT_COORDS(2, 2) 17 +QUBIT_COORDS(3, 3) 18 +QUBIT_COORDS(4, 2) 19 +QUBIT_COORDS(5, 3) 20 +QUBIT_COORDS(6, 2) 21 +QUBIT_COORDS(7, 3) 22 +QUBIT_COORDS(8, 2) 23 +QUBIT_COORDS(9, 3) 24 +QUBIT_COORDS(10, 2) 25 +QUBIT_COORDS(11, 3) 26 +QUBIT_COORDS(12, 2) 27 +QUBIT_COORDS(13, 3) 28 +QUBIT_COORDS(14, 2) 29 +QUBIT_COORDS(0, 4) 30 +QUBIT_COORDS(1, 5) 31 +QUBIT_COORDS(2, 4) 32 +QUBIT_COORDS(3, 5) 33 +QUBIT_COORDS(4, 4) 34 +QUBIT_COORDS(5, 5) 35 +QUBIT_COORDS(6, 4) 36 +QUBIT_COORDS(7, 5) 37 +QUBIT_COORDS(8, 4) 38 +QUBIT_COORDS(9, 5) 39 +QUBIT_COORDS(10, 4) 40 +QUBIT_COORDS(11, 5) 41 +QUBIT_COORDS(12, 4) 42 +QUBIT_COORDS(13, 5) 43 +QUBIT_COORDS(1, 7) 46 +QUBIT_COORDS(2, 6) 47 +QUBIT_COORDS(3, 7) 48 +QUBIT_COORDS(4, 6) 49 +QUBIT_COORDS(5, 7) 50 +QUBIT_COORDS(6, 6) 51 +QUBIT_COORDS(7, 7) 52 +QUBIT_COORDS(8, 6) 53 +QUBIT_COORDS(9, 7) 54 +QUBIT_COORDS(10, 6) 55 +QUBIT_COORDS(11, 7) 56 +QUBIT_COORDS(12, 6) 57 +QUBIT_COORDS(13, 7) 58 +QUBIT_COORDS(14, 6) 59 +QUBIT_COORDS(0, 8) 60 +QUBIT_COORDS(1, 9) 61 +QUBIT_COORDS(2, 8) 62 +QUBIT_COORDS(3, 9) 63 +QUBIT_COORDS(4, 8) 64 +QUBIT_COORDS(5, 9) 65 +QUBIT_COORDS(6, 8) 66 +QUBIT_COORDS(7, 9) 67 +QUBIT_COORDS(8, 8) 68 +QUBIT_COORDS(9, 9) 69 +QUBIT_COORDS(10, 8) 70 +QUBIT_COORDS(11, 9) 71 +QUBIT_COORDS(12, 8) 72 +QUBIT_COORDS(13, 9) 73 +QUBIT_COORDS(1, 11) 76 +QUBIT_COORDS(2, 10) 77 +QUBIT_COORDS(3, 11) 78 +QUBIT_COORDS(4, 10) 79 +QUBIT_COORDS(5, 11) 80 +QUBIT_COORDS(6, 10) 81 +QUBIT_COORDS(7, 11) 82 +QUBIT_COORDS(8, 10) 83 +QUBIT_COORDS(9, 11) 84 +QUBIT_COORDS(10, 10) 85 +QUBIT_COORDS(11, 11) 86 +QUBIT_COORDS(12, 10) 87 +QUBIT_COORDS(13, 11) 88 +QUBIT_COORDS(14, 10) 89 +QUBIT_COORDS(0, 12) 90 +QUBIT_COORDS(1, 13) 91 +QUBIT_COORDS(2, 12) 92 +QUBIT_COORDS(3, 13) 93 +QUBIT_COORDS(4, 12) 94 +QUBIT_COORDS(5, 13) 95 +QUBIT_COORDS(6, 12) 96 +QUBIT_COORDS(7, 13) 97 +QUBIT_COORDS(8, 12) 98 +QUBIT_COORDS(9, 13) 99 +QUBIT_COORDS(10, 12) 100 +QUBIT_COORDS(11, 13) 101 +QUBIT_COORDS(12, 12) 102 +QUBIT_COORDS(13, 13) 103 +QUBIT_COORDS(4, 14) 109 +QUBIT_COORDS(8, 14) 113 +QUBIT_COORDS(12, 14) 117 +RX 1 3 5 7 9 11 13 16 18 20 22 24 26 28 31 33 35 37 39 41 43 46 48 50 52 54 56 58 61 63 65 67 69 71 73 76 78 80 82 84 86 88 91 93 95 97 99 101 103 +Z_ERROR(0.001) 1 3 5 7 9 11 13 16 18 20 22 24 26 28 31 33 35 37 39 41 43 46 48 50 52 54 56 58 61 63 65 67 69 71 73 76 78 80 82 84 86 88 91 93 95 97 99 101 103 +R 2 6 10 17 19 21 23 25 27 29 30 32 34 36 38 40 42 47 49 51 53 55 57 59 60 62 64 66 68 70 72 77 79 81 83 85 87 89 90 92 94 96 98 100 102 109 113 117 +X_ERROR(0.001) 2 6 10 17 19 21 23 25 27 29 30 32 34 36 38 40 42 47 49 51 53 55 57 59 60 62 64 66 68 70 72 77 79 81 83 85 87 89 90 92 94 96 98 100 102 109 113 117 +TICK +DEPOLARIZE1(0.001) 1 3 5 7 9 11 13 16 18 20 22 24 26 28 31 33 35 37 39 41 43 46 48 50 52 54 56 58 61 63 65 67 69 71 73 76 78 80 82 84 86 88 91 93 95 97 99 101 103 +H 2 6 10 19 23 27 32 36 40 49 53 57 62 66 70 79 83 87 92 96 100 109 113 117 +DEPOLARIZE1(0.001) 2 6 10 19 23 27 32 36 40 49 53 57 62 66 70 79 83 87 92 96 100 109 113 117 +TICK +CX 2 3 32 33 62 63 92 93 19 20 49 50 79 80 6 7 36 37 66 67 96 97 23 24 53 54 83 84 10 11 40 41 70 71 100 101 27 28 57 58 87 88 31 30 61 60 91 90 18 17 48 47 78 77 35 34 65 64 95 94 22 21 52 51 82 81 39 38 69 68 99 98 26 25 56 55 86 85 43 42 73 72 103 102 +DEPOLARIZE2(0.001) 2 3 32 33 62 63 92 93 19 20 49 50 79 80 6 7 36 37 66 67 96 97 23 24 53 54 83 84 10 11 40 41 70 71 100 101 27 28 57 58 87 88 31 30 61 60 91 90 18 17 48 47 78 77 35 34 65 64 95 94 22 21 52 51 82 81 39 38 69 68 99 98 26 25 56 55 86 85 43 42 73 72 103 102 +TICK +CX 2 1 32 31 62 61 92 91 19 18 49 48 79 78 6 5 36 35 66 65 96 95 23 22 53 52 83 82 10 9 40 39 70 69 100 99 27 26 57 56 87 86 16 30 46 60 76 90 3 17 33 47 63 77 20 34 50 64 80 94 7 21 37 51 67 81 24 38 54 68 84 98 11 25 41 55 71 85 28 42 58 72 88 102 +DEPOLARIZE2(0.001) 2 1 32 31 62 61 92 91 19 18 49 48 79 78 6 5 36 35 66 65 96 95 23 22 53 52 83 82 10 9 40 39 70 69 100 99 27 26 57 56 87 86 16 30 46 60 76 90 3 17 33 47 63 77 20 34 50 64 80 94 7 21 37 51 67 81 24 38 54 68 84 98 11 25 41 55 71 85 28 42 58 72 88 102 +TICK +CX 32 18 62 48 92 78 19 5 49 35 79 65 109 95 36 22 66 52 96 82 23 9 53 39 83 69 113 99 40 26 70 56 100 86 27 13 57 43 87 73 117 103 16 17 46 47 76 77 33 34 63 64 93 94 20 21 50 51 80 81 37 38 67 68 97 98 24 25 54 55 84 85 41 42 71 72 101 102 28 29 58 59 88 89 +DEPOLARIZE2(0.001) 32 18 62 48 92 78 19 5 49 35 79 65 109 95 36 22 66 52 96 82 23 9 53 39 83 69 113 99 40 26 70 56 100 86 27 13 57 43 87 73 117 103 16 17 46 47 76 77 33 34 63 64 93 94 20 21 50 51 80 81 37 38 67 68 97 98 24 25 54 55 84 85 41 42 71 72 101 102 28 29 58 59 88 89 +TICK +CX 32 16 62 46 92 76 19 3 49 33 79 63 109 93 36 20 66 50 96 80 23 7 53 37 83 67 113 97 40 24 70 54 100 84 27 11 57 41 87 71 117 101 1 17 31 47 61 77 18 34 48 64 78 94 5 21 35 51 65 81 22 38 52 68 82 98 9 25 39 55 69 85 26 42 56 72 86 102 13 29 43 59 73 89 +DEPOLARIZE2(0.001) 32 16 62 46 92 76 19 3 49 33 79 63 109 93 36 20 66 50 96 80 23 7 53 37 83 67 113 97 40 24 70 54 100 84 27 11 57 41 87 71 117 101 1 17 31 47 61 77 18 34 48 64 78 94 5 21 35 51 65 81 22 38 52 68 82 98 9 25 39 55 69 85 26 42 56 72 86 102 13 29 43 59 73 89 +TICK +H 2 6 10 19 23 27 32 36 40 49 53 57 62 66 70 79 83 87 92 96 100 109 113 117 +DEPOLARIZE1(0.001) 2 6 10 19 23 27 32 36 40 49 53 57 62 66 70 79 83 87 92 96 100 109 113 117 +TICK +X_ERROR(0.001) 2 6 10 17 19 21 23 25 27 29 30 32 34 36 38 40 42 47 49 51 53 55 57 59 60 62 64 66 68 70 72 77 79 81 83 85 87 89 90 92 94 96 98 100 102 109 113 117 +MR 2 6 10 17 19 21 23 25 27 29 30 32 34 36 38 40 42 47 49 51 53 55 57 59 60 62 64 66 68 70 72 77 79 81 83 85 87 89 90 92 94 96 98 100 102 109 113 117 +X_ERROR(0.001) 2 6 10 17 19 21 23 25 27 29 30 32 34 36 38 40 42 47 49 51 53 55 57 59 60 62 64 66 68 70 72 77 79 81 83 85 87 89 90 92 94 96 98 100 102 109 113 117 +DETECTOR(2, 0, 0) rec[-48] +DETECTOR(2, 4, 0) rec[-37] +DETECTOR(2, 8, 0) rec[-23] +DETECTOR(2, 12, 0) rec[-9] +DETECTOR(4, 2, 0) rec[-44] +DETECTOR(4, 6, 0) rec[-30] +DETECTOR(4, 10, 0) rec[-16] +DETECTOR(4, 14, 0) rec[-3] +DETECTOR(6, 0, 0) rec[-47] +DETECTOR(6, 4, 0) rec[-35] +DETECTOR(6, 8, 0) rec[-21] +DETECTOR(6, 12, 0) rec[-7] +DETECTOR(8, 2, 0) rec[-42] +DETECTOR(8, 6, 0) rec[-28] +DETECTOR(8, 10, 0) rec[-14] +DETECTOR(8, 14, 0) rec[-2] +DETECTOR(10, 0, 0) rec[-46] +DETECTOR(10, 4, 0) rec[-33] +DETECTOR(10, 8, 0) rec[-19] +DETECTOR(10, 12, 0) rec[-5] +DETECTOR(12, 2, 0) rec[-40] +DETECTOR(12, 6, 0) rec[-26] +DETECTOR(12, 10, 0) rec[-12] +DETECTOR(12, 14, 0) rec[-1] +REPEAT 6 { + TICK + DEPOLARIZE1(0.001) 1 3 5 7 9 11 13 16 18 20 22 24 26 28 31 33 35 37 39 41 43 46 48 50 52 54 56 58 61 63 65 67 69 71 73 76 78 80 82 84 86 88 91 93 95 97 99 101 103 + H 2 6 10 19 23 27 32 36 40 49 53 57 62 66 70 79 83 87 92 96 100 109 113 117 + DEPOLARIZE1(0.001) 2 6 10 19 23 27 32 36 40 49 53 57 62 66 70 79 83 87 92 96 100 109 113 117 + TICK + CX 2 3 32 33 62 63 92 93 19 20 49 50 79 80 6 7 36 37 66 67 96 97 23 24 53 54 83 84 10 11 40 41 70 71 100 101 27 28 57 58 87 88 31 30 61 60 91 90 18 17 48 47 78 77 35 34 65 64 95 94 22 21 52 51 82 81 39 38 69 68 99 98 26 25 56 55 86 85 43 42 73 72 103 102 + DEPOLARIZE2(0.001) 2 3 32 33 62 63 92 93 19 20 49 50 79 80 6 7 36 37 66 67 96 97 23 24 53 54 83 84 10 11 40 41 70 71 100 101 27 28 57 58 87 88 31 30 61 60 91 90 18 17 48 47 78 77 35 34 65 64 95 94 22 21 52 51 82 81 39 38 69 68 99 98 26 25 56 55 86 85 43 42 73 72 103 102 + TICK + CX 2 1 32 31 62 61 92 91 19 18 49 48 79 78 6 5 36 35 66 65 96 95 23 22 53 52 83 82 10 9 40 39 70 69 100 99 27 26 57 56 87 86 16 30 46 60 76 90 3 17 33 47 63 77 20 34 50 64 80 94 7 21 37 51 67 81 24 38 54 68 84 98 11 25 41 55 71 85 28 42 58 72 88 102 + DEPOLARIZE2(0.001) 2 1 32 31 62 61 92 91 19 18 49 48 79 78 6 5 36 35 66 65 96 95 23 22 53 52 83 82 10 9 40 39 70 69 100 99 27 26 57 56 87 86 16 30 46 60 76 90 3 17 33 47 63 77 20 34 50 64 80 94 7 21 37 51 67 81 24 38 54 68 84 98 11 25 41 55 71 85 28 42 58 72 88 102 + TICK + CX 32 18 62 48 92 78 19 5 49 35 79 65 109 95 36 22 66 52 96 82 23 9 53 39 83 69 113 99 40 26 70 56 100 86 27 13 57 43 87 73 117 103 16 17 46 47 76 77 33 34 63 64 93 94 20 21 50 51 80 81 37 38 67 68 97 98 24 25 54 55 84 85 41 42 71 72 101 102 28 29 58 59 88 89 + DEPOLARIZE2(0.001) 32 18 62 48 92 78 19 5 49 35 79 65 109 95 36 22 66 52 96 82 23 9 53 39 83 69 113 99 40 26 70 56 100 86 27 13 57 43 87 73 117 103 16 17 46 47 76 77 33 34 63 64 93 94 20 21 50 51 80 81 37 38 67 68 97 98 24 25 54 55 84 85 41 42 71 72 101 102 28 29 58 59 88 89 + TICK + CX 32 16 62 46 92 76 19 3 49 33 79 63 109 93 36 20 66 50 96 80 23 7 53 37 83 67 113 97 40 24 70 54 100 84 27 11 57 41 87 71 117 101 1 17 31 47 61 77 18 34 48 64 78 94 5 21 35 51 65 81 22 38 52 68 82 98 9 25 39 55 69 85 26 42 56 72 86 102 13 29 43 59 73 89 + DEPOLARIZE2(0.001) 32 16 62 46 92 76 19 3 49 33 79 63 109 93 36 20 66 50 96 80 23 7 53 37 83 67 113 97 40 24 70 54 100 84 27 11 57 41 87 71 117 101 1 17 31 47 61 77 18 34 48 64 78 94 5 21 35 51 65 81 22 38 52 68 82 98 9 25 39 55 69 85 26 42 56 72 86 102 13 29 43 59 73 89 + TICK + H 2 6 10 19 23 27 32 36 40 49 53 57 62 66 70 79 83 87 92 96 100 109 113 117 + DEPOLARIZE1(0.001) 2 6 10 19 23 27 32 36 40 49 53 57 62 66 70 79 83 87 92 96 100 109 113 117 + TICK + X_ERROR(0.001) 2 6 10 17 19 21 23 25 27 29 30 32 34 36 38 40 42 47 49 51 53 55 57 59 60 62 64 66 68 70 72 77 79 81 83 85 87 89 90 92 94 96 98 100 102 109 113 117 + MR 2 6 10 17 19 21 23 25 27 29 30 32 34 36 38 40 42 47 49 51 53 55 57 59 60 62 64 66 68 70 72 77 79 81 83 85 87 89 90 92 94 96 98 100 102 109 113 117 + X_ERROR(0.001) 2 6 10 17 19 21 23 25 27 29 30 32 34 36 38 40 42 47 49 51 53 55 57 59 60 62 64 66 68 70 72 77 79 81 83 85 87 89 90 92 94 96 98 100 102 109 113 117 + SHIFT_COORDS(0, 0, 1) + DETECTOR(2, 0, 0) rec[-48] rec[-96] + DETECTOR(6, 0, 0) rec[-47] rec[-95] + DETECTOR(10, 0, 0) rec[-46] rec[-94] + DETECTOR(2, 2, 0) rec[-45] rec[-93] + DETECTOR(4, 2, 0) rec[-44] rec[-92] + DETECTOR(6, 2, 0) rec[-43] rec[-91] + DETECTOR(8, 2, 0) rec[-42] rec[-90] + DETECTOR(10, 2, 0) rec[-41] rec[-89] + DETECTOR(12, 2, 0) rec[-40] rec[-88] + DETECTOR(14, 2, 0) rec[-39] rec[-87] + DETECTOR(0, 4, 0) rec[-38] rec[-86] + DETECTOR(2, 4, 0) rec[-37] rec[-85] + DETECTOR(4, 4, 0) rec[-36] rec[-84] + DETECTOR(6, 4, 0) rec[-35] rec[-83] + DETECTOR(8, 4, 0) rec[-34] rec[-82] + DETECTOR(10, 4, 0) rec[-33] rec[-81] + DETECTOR(12, 4, 0) rec[-32] rec[-80] + DETECTOR(2, 6, 0) rec[-31] rec[-79] + DETECTOR(4, 6, 0) rec[-30] rec[-78] + DETECTOR(6, 6, 0) rec[-29] rec[-77] + DETECTOR(8, 6, 0) rec[-28] rec[-76] + DETECTOR(10, 6, 0) rec[-27] rec[-75] + DETECTOR(12, 6, 0) rec[-26] rec[-74] + DETECTOR(14, 6, 0) rec[-25] rec[-73] + DETECTOR(0, 8, 0) rec[-24] rec[-72] + DETECTOR(2, 8, 0) rec[-23] rec[-71] + DETECTOR(4, 8, 0) rec[-22] rec[-70] + DETECTOR(6, 8, 0) rec[-21] rec[-69] + DETECTOR(8, 8, 0) rec[-20] rec[-68] + DETECTOR(10, 8, 0) rec[-19] rec[-67] + DETECTOR(12, 8, 0) rec[-18] rec[-66] + DETECTOR(2, 10, 0) rec[-17] rec[-65] + DETECTOR(4, 10, 0) rec[-16] rec[-64] + DETECTOR(6, 10, 0) rec[-15] rec[-63] + DETECTOR(8, 10, 0) rec[-14] rec[-62] + DETECTOR(10, 10, 0) rec[-13] rec[-61] + DETECTOR(12, 10, 0) rec[-12] rec[-60] + DETECTOR(14, 10, 0) rec[-11] rec[-59] + DETECTOR(0, 12, 0) rec[-10] rec[-58] + DETECTOR(2, 12, 0) rec[-9] rec[-57] + DETECTOR(4, 12, 0) rec[-8] rec[-56] + DETECTOR(6, 12, 0) rec[-7] rec[-55] + DETECTOR(8, 12, 0) rec[-6] rec[-54] + DETECTOR(10, 12, 0) rec[-5] rec[-53] + DETECTOR(12, 12, 0) rec[-4] rec[-52] + DETECTOR(4, 14, 0) rec[-3] rec[-51] + DETECTOR(8, 14, 0) rec[-2] rec[-50] + DETECTOR(12, 14, 0) rec[-1] rec[-49] +} +Z_ERROR(0.001) 1 3 5 7 9 11 13 16 18 20 22 24 26 28 31 33 35 37 39 41 43 46 48 50 52 54 56 58 61 63 65 67 69 71 73 76 78 80 82 84 86 88 91 93 95 97 99 101 103 +MX 1 3 5 7 9 11 13 16 18 20 22 24 26 28 31 33 35 37 39 41 43 46 48 50 52 54 56 58 61 63 65 67 69 71 73 76 78 80 82 84 86 88 91 93 95 97 99 101 103 +DETECTOR(2, 0, 1) rec[-48] rec[-49] rec[-97] +DETECTOR(2, 4, 1) rec[-34] rec[-35] rec[-41] rec[-42] rec[-86] +DETECTOR(2, 8, 1) rec[-20] rec[-21] rec[-27] rec[-28] rec[-72] +DETECTOR(2, 12, 1) rec[-6] rec[-7] rec[-13] rec[-14] rec[-58] +DETECTOR(4, 2, 1) rec[-40] rec[-41] rec[-47] rec[-48] rec[-93] +DETECTOR(4, 6, 1) rec[-26] rec[-27] rec[-33] rec[-34] rec[-79] +DETECTOR(4, 10, 1) rec[-12] rec[-13] rec[-19] rec[-20] rec[-65] +DETECTOR(4, 14, 1) rec[-5] rec[-6] rec[-52] +DETECTOR(6, 0, 1) rec[-46] rec[-47] rec[-96] +DETECTOR(6, 4, 1) rec[-32] rec[-33] rec[-39] rec[-40] rec[-84] +DETECTOR(6, 8, 1) rec[-18] rec[-19] rec[-25] rec[-26] rec[-70] +DETECTOR(6, 12, 1) rec[-4] rec[-5] rec[-11] rec[-12] rec[-56] +DETECTOR(8, 2, 1) rec[-38] rec[-39] rec[-45] rec[-46] rec[-91] +DETECTOR(8, 6, 1) rec[-24] rec[-25] rec[-31] rec[-32] rec[-77] +DETECTOR(8, 10, 1) rec[-10] rec[-11] rec[-17] rec[-18] rec[-63] +DETECTOR(8, 14, 1) rec[-3] rec[-4] rec[-51] +DETECTOR(10, 0, 1) rec[-44] rec[-45] rec[-95] +DETECTOR(10, 4, 1) rec[-30] rec[-31] rec[-37] rec[-38] rec[-82] +DETECTOR(10, 8, 1) rec[-16] rec[-17] rec[-23] rec[-24] rec[-68] +DETECTOR(10, 12, 1) rec[-2] rec[-3] rec[-9] rec[-10] rec[-54] +DETECTOR(12, 2, 1) rec[-36] rec[-37] rec[-43] rec[-44] rec[-89] +DETECTOR(12, 6, 1) rec[-22] rec[-23] rec[-29] rec[-30] rec[-75] +DETECTOR(12, 10, 1) rec[-8] rec[-9] rec[-15] rec[-16] rec[-61] +DETECTOR(12, 14, 1) rec[-1] rec[-2] rec[-50] +OBSERVABLE_INCLUDE(0) rec[-7] rec[-14] rec[-21] rec[-28] rec[-35] rec[-42] rec[-49] diff --git a/wai/quantum-cross-simulator/corpus/qec/surface_z_d11.circuit b/wai/quantum-cross-simulator/corpus/qec/surface_z_d11.circuit new file mode 100644 index 000000000..c5d1da693 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qec/surface_z_d11.circuit @@ -0,0 +1,537 @@ +QUBIT_COORDS(1, 1) 1 +QUBIT_COORDS(2, 0) 2 +QUBIT_COORDS(3, 1) 3 +QUBIT_COORDS(5, 1) 5 +QUBIT_COORDS(6, 0) 6 +QUBIT_COORDS(7, 1) 7 +QUBIT_COORDS(9, 1) 9 +QUBIT_COORDS(10, 0) 10 +QUBIT_COORDS(11, 1) 11 +QUBIT_COORDS(13, 1) 13 +QUBIT_COORDS(14, 0) 14 +QUBIT_COORDS(15, 1) 15 +QUBIT_COORDS(17, 1) 17 +QUBIT_COORDS(18, 0) 18 +QUBIT_COORDS(19, 1) 19 +QUBIT_COORDS(21, 1) 21 +QUBIT_COORDS(1, 3) 24 +QUBIT_COORDS(2, 2) 25 +QUBIT_COORDS(3, 3) 26 +QUBIT_COORDS(4, 2) 27 +QUBIT_COORDS(5, 3) 28 +QUBIT_COORDS(6, 2) 29 +QUBIT_COORDS(7, 3) 30 +QUBIT_COORDS(8, 2) 31 +QUBIT_COORDS(9, 3) 32 +QUBIT_COORDS(10, 2) 33 +QUBIT_COORDS(11, 3) 34 +QUBIT_COORDS(12, 2) 35 +QUBIT_COORDS(13, 3) 36 +QUBIT_COORDS(14, 2) 37 +QUBIT_COORDS(15, 3) 38 +QUBIT_COORDS(16, 2) 39 +QUBIT_COORDS(17, 3) 40 +QUBIT_COORDS(18, 2) 41 +QUBIT_COORDS(19, 3) 42 +QUBIT_COORDS(20, 2) 43 +QUBIT_COORDS(21, 3) 44 +QUBIT_COORDS(22, 2) 45 +QUBIT_COORDS(0, 4) 46 +QUBIT_COORDS(1, 5) 47 +QUBIT_COORDS(2, 4) 48 +QUBIT_COORDS(3, 5) 49 +QUBIT_COORDS(4, 4) 50 +QUBIT_COORDS(5, 5) 51 +QUBIT_COORDS(6, 4) 52 +QUBIT_COORDS(7, 5) 53 +QUBIT_COORDS(8, 4) 54 +QUBIT_COORDS(9, 5) 55 +QUBIT_COORDS(10, 4) 56 +QUBIT_COORDS(11, 5) 57 +QUBIT_COORDS(12, 4) 58 +QUBIT_COORDS(13, 5) 59 +QUBIT_COORDS(14, 4) 60 +QUBIT_COORDS(15, 5) 61 +QUBIT_COORDS(16, 4) 62 +QUBIT_COORDS(17, 5) 63 +QUBIT_COORDS(18, 4) 64 +QUBIT_COORDS(19, 5) 65 +QUBIT_COORDS(20, 4) 66 +QUBIT_COORDS(21, 5) 67 +QUBIT_COORDS(1, 7) 70 +QUBIT_COORDS(2, 6) 71 +QUBIT_COORDS(3, 7) 72 +QUBIT_COORDS(4, 6) 73 +QUBIT_COORDS(5, 7) 74 +QUBIT_COORDS(6, 6) 75 +QUBIT_COORDS(7, 7) 76 +QUBIT_COORDS(8, 6) 77 +QUBIT_COORDS(9, 7) 78 +QUBIT_COORDS(10, 6) 79 +QUBIT_COORDS(11, 7) 80 +QUBIT_COORDS(12, 6) 81 +QUBIT_COORDS(13, 7) 82 +QUBIT_COORDS(14, 6) 83 +QUBIT_COORDS(15, 7) 84 +QUBIT_COORDS(16, 6) 85 +QUBIT_COORDS(17, 7) 86 +QUBIT_COORDS(18, 6) 87 +QUBIT_COORDS(19, 7) 88 +QUBIT_COORDS(20, 6) 89 +QUBIT_COORDS(21, 7) 90 +QUBIT_COORDS(22, 6) 91 +QUBIT_COORDS(0, 8) 92 +QUBIT_COORDS(1, 9) 93 +QUBIT_COORDS(2, 8) 94 +QUBIT_COORDS(3, 9) 95 +QUBIT_COORDS(4, 8) 96 +QUBIT_COORDS(5, 9) 97 +QUBIT_COORDS(6, 8) 98 +QUBIT_COORDS(7, 9) 99 +QUBIT_COORDS(8, 8) 100 +QUBIT_COORDS(9, 9) 101 +QUBIT_COORDS(10, 8) 102 +QUBIT_COORDS(11, 9) 103 +QUBIT_COORDS(12, 8) 104 +QUBIT_COORDS(13, 9) 105 +QUBIT_COORDS(14, 8) 106 +QUBIT_COORDS(15, 9) 107 +QUBIT_COORDS(16, 8) 108 +QUBIT_COORDS(17, 9) 109 +QUBIT_COORDS(18, 8) 110 +QUBIT_COORDS(19, 9) 111 +QUBIT_COORDS(20, 8) 112 +QUBIT_COORDS(21, 9) 113 +QUBIT_COORDS(1, 11) 116 +QUBIT_COORDS(2, 10) 117 +QUBIT_COORDS(3, 11) 118 +QUBIT_COORDS(4, 10) 119 +QUBIT_COORDS(5, 11) 120 +QUBIT_COORDS(6, 10) 121 +QUBIT_COORDS(7, 11) 122 +QUBIT_COORDS(8, 10) 123 +QUBIT_COORDS(9, 11) 124 +QUBIT_COORDS(10, 10) 125 +QUBIT_COORDS(11, 11) 126 +QUBIT_COORDS(12, 10) 127 +QUBIT_COORDS(13, 11) 128 +QUBIT_COORDS(14, 10) 129 +QUBIT_COORDS(15, 11) 130 +QUBIT_COORDS(16, 10) 131 +QUBIT_COORDS(17, 11) 132 +QUBIT_COORDS(18, 10) 133 +QUBIT_COORDS(19, 11) 134 +QUBIT_COORDS(20, 10) 135 +QUBIT_COORDS(21, 11) 136 +QUBIT_COORDS(22, 10) 137 +QUBIT_COORDS(0, 12) 138 +QUBIT_COORDS(1, 13) 139 +QUBIT_COORDS(2, 12) 140 +QUBIT_COORDS(3, 13) 141 +QUBIT_COORDS(4, 12) 142 +QUBIT_COORDS(5, 13) 143 +QUBIT_COORDS(6, 12) 144 +QUBIT_COORDS(7, 13) 145 +QUBIT_COORDS(8, 12) 146 +QUBIT_COORDS(9, 13) 147 +QUBIT_COORDS(10, 12) 148 +QUBIT_COORDS(11, 13) 149 +QUBIT_COORDS(12, 12) 150 +QUBIT_COORDS(13, 13) 151 +QUBIT_COORDS(14, 12) 152 +QUBIT_COORDS(15, 13) 153 +QUBIT_COORDS(16, 12) 154 +QUBIT_COORDS(17, 13) 155 +QUBIT_COORDS(18, 12) 156 +QUBIT_COORDS(19, 13) 157 +QUBIT_COORDS(20, 12) 158 +QUBIT_COORDS(21, 13) 159 +QUBIT_COORDS(1, 15) 162 +QUBIT_COORDS(2, 14) 163 +QUBIT_COORDS(3, 15) 164 +QUBIT_COORDS(4, 14) 165 +QUBIT_COORDS(5, 15) 166 +QUBIT_COORDS(6, 14) 167 +QUBIT_COORDS(7, 15) 168 +QUBIT_COORDS(8, 14) 169 +QUBIT_COORDS(9, 15) 170 +QUBIT_COORDS(10, 14) 171 +QUBIT_COORDS(11, 15) 172 +QUBIT_COORDS(12, 14) 173 +QUBIT_COORDS(13, 15) 174 +QUBIT_COORDS(14, 14) 175 +QUBIT_COORDS(15, 15) 176 +QUBIT_COORDS(16, 14) 177 +QUBIT_COORDS(17, 15) 178 +QUBIT_COORDS(18, 14) 179 +QUBIT_COORDS(19, 15) 180 +QUBIT_COORDS(20, 14) 181 +QUBIT_COORDS(21, 15) 182 +QUBIT_COORDS(22, 14) 183 +QUBIT_COORDS(0, 16) 184 +QUBIT_COORDS(1, 17) 185 +QUBIT_COORDS(2, 16) 186 +QUBIT_COORDS(3, 17) 187 +QUBIT_COORDS(4, 16) 188 +QUBIT_COORDS(5, 17) 189 +QUBIT_COORDS(6, 16) 190 +QUBIT_COORDS(7, 17) 191 +QUBIT_COORDS(8, 16) 192 +QUBIT_COORDS(9, 17) 193 +QUBIT_COORDS(10, 16) 194 +QUBIT_COORDS(11, 17) 195 +QUBIT_COORDS(12, 16) 196 +QUBIT_COORDS(13, 17) 197 +QUBIT_COORDS(14, 16) 198 +QUBIT_COORDS(15, 17) 199 +QUBIT_COORDS(16, 16) 200 +QUBIT_COORDS(17, 17) 201 +QUBIT_COORDS(18, 16) 202 +QUBIT_COORDS(19, 17) 203 +QUBIT_COORDS(20, 16) 204 +QUBIT_COORDS(21, 17) 205 +QUBIT_COORDS(1, 19) 208 +QUBIT_COORDS(2, 18) 209 +QUBIT_COORDS(3, 19) 210 +QUBIT_COORDS(4, 18) 211 +QUBIT_COORDS(5, 19) 212 +QUBIT_COORDS(6, 18) 213 +QUBIT_COORDS(7, 19) 214 +QUBIT_COORDS(8, 18) 215 +QUBIT_COORDS(9, 19) 216 +QUBIT_COORDS(10, 18) 217 +QUBIT_COORDS(11, 19) 218 +QUBIT_COORDS(12, 18) 219 +QUBIT_COORDS(13, 19) 220 +QUBIT_COORDS(14, 18) 221 +QUBIT_COORDS(15, 19) 222 +QUBIT_COORDS(16, 18) 223 +QUBIT_COORDS(17, 19) 224 +QUBIT_COORDS(18, 18) 225 +QUBIT_COORDS(19, 19) 226 +QUBIT_COORDS(20, 18) 227 +QUBIT_COORDS(21, 19) 228 +QUBIT_COORDS(22, 18) 229 +QUBIT_COORDS(0, 20) 230 +QUBIT_COORDS(1, 21) 231 +QUBIT_COORDS(2, 20) 232 +QUBIT_COORDS(3, 21) 233 +QUBIT_COORDS(4, 20) 234 +QUBIT_COORDS(5, 21) 235 +QUBIT_COORDS(6, 20) 236 +QUBIT_COORDS(7, 21) 237 +QUBIT_COORDS(8, 20) 238 +QUBIT_COORDS(9, 21) 239 +QUBIT_COORDS(10, 20) 240 +QUBIT_COORDS(11, 21) 241 +QUBIT_COORDS(12, 20) 242 +QUBIT_COORDS(13, 21) 243 +QUBIT_COORDS(14, 20) 244 +QUBIT_COORDS(15, 21) 245 +QUBIT_COORDS(16, 20) 246 +QUBIT_COORDS(17, 21) 247 +QUBIT_COORDS(18, 20) 248 +QUBIT_COORDS(19, 21) 249 +QUBIT_COORDS(20, 20) 250 +QUBIT_COORDS(21, 21) 251 +QUBIT_COORDS(4, 22) 257 +QUBIT_COORDS(8, 22) 261 +QUBIT_COORDS(12, 22) 265 +QUBIT_COORDS(16, 22) 269 +QUBIT_COORDS(20, 22) 273 +R 1 3 5 7 9 11 13 15 17 19 21 24 26 28 30 32 34 36 38 40 42 44 47 49 51 53 55 57 59 61 63 65 67 70 72 74 76 78 80 82 84 86 88 90 93 95 97 99 101 103 105 107 109 111 113 116 118 120 122 124 126 128 130 132 134 136 139 141 143 145 147 149 151 153 155 157 159 162 164 166 168 170 172 174 176 178 180 182 185 187 189 191 193 195 197 199 201 203 205 208 210 212 214 216 218 220 222 224 226 228 231 233 235 237 239 241 243 245 247 249 251 +X_ERROR(0.001) 1 3 5 7 9 11 13 15 17 19 21 24 26 28 30 32 34 36 38 40 42 44 47 49 51 53 55 57 59 61 63 65 67 70 72 74 76 78 80 82 84 86 88 90 93 95 97 99 101 103 105 107 109 111 113 116 118 120 122 124 126 128 130 132 134 136 139 141 143 145 147 149 151 153 155 157 159 162 164 166 168 170 172 174 176 178 180 182 185 187 189 191 193 195 197 199 201 203 205 208 210 212 214 216 218 220 222 224 226 228 231 233 235 237 239 241 243 245 247 249 251 +R 2 6 10 14 18 25 27 29 31 33 35 37 39 41 43 45 46 48 50 52 54 56 58 60 62 64 66 71 73 75 77 79 81 83 85 87 89 91 92 94 96 98 100 102 104 106 108 110 112 117 119 121 123 125 127 129 131 133 135 137 138 140 142 144 146 148 150 152 154 156 158 163 165 167 169 171 173 175 177 179 181 183 184 186 188 190 192 194 196 198 200 202 204 209 211 213 215 217 219 221 223 225 227 229 230 232 234 236 238 240 242 244 246 248 250 257 261 265 269 273 +X_ERROR(0.001) 2 6 10 14 18 25 27 29 31 33 35 37 39 41 43 45 46 48 50 52 54 56 58 60 62 64 66 71 73 75 77 79 81 83 85 87 89 91 92 94 96 98 100 102 104 106 108 110 112 117 119 121 123 125 127 129 131 133 135 137 138 140 142 144 146 148 150 152 154 156 158 163 165 167 169 171 173 175 177 179 181 183 184 186 188 190 192 194 196 198 200 202 204 209 211 213 215 217 219 221 223 225 227 229 230 232 234 236 238 240 242 244 246 248 250 257 261 265 269 273 +TICK +DEPOLARIZE1(0.001) 1 3 5 7 9 11 13 15 17 19 21 24 26 28 30 32 34 36 38 40 42 44 47 49 51 53 55 57 59 61 63 65 67 70 72 74 76 78 80 82 84 86 88 90 93 95 97 99 101 103 105 107 109 111 113 116 118 120 122 124 126 128 130 132 134 136 139 141 143 145 147 149 151 153 155 157 159 162 164 166 168 170 172 174 176 178 180 182 185 187 189 191 193 195 197 199 201 203 205 208 210 212 214 216 218 220 222 224 226 228 231 233 235 237 239 241 243 245 247 249 251 +H 2 6 10 14 18 27 31 35 39 43 48 52 56 60 64 73 77 81 85 89 94 98 102 106 110 119 123 127 131 135 140 144 148 152 156 165 169 173 177 181 186 190 194 198 202 211 215 219 223 227 232 236 240 244 248 257 261 265 269 273 +DEPOLARIZE1(0.001) 2 6 10 14 18 27 31 35 39 43 48 52 56 60 64 73 77 81 85 89 94 98 102 106 110 119 123 127 131 135 140 144 148 152 156 165 169 173 177 181 186 190 194 198 202 211 215 219 223 227 232 236 240 244 248 257 261 265 269 273 +TICK +CX 2 3 48 49 94 95 140 141 186 187 232 233 27 28 73 74 119 120 165 166 211 212 6 7 52 53 98 99 144 145 190 191 236 237 31 32 77 78 123 124 169 170 215 216 10 11 56 57 102 103 148 149 194 195 240 241 35 36 81 82 127 128 173 174 219 220 14 15 60 61 106 107 152 153 198 199 244 245 39 40 85 86 131 132 177 178 223 224 18 19 64 65 110 111 156 157 202 203 248 249 43 44 89 90 135 136 181 182 227 228 47 46 93 92 139 138 185 184 231 230 26 25 72 71 118 117 164 163 210 209 51 50 97 96 143 142 189 188 235 234 30 29 76 75 122 121 168 167 214 213 55 54 101 100 147 146 193 192 239 238 34 33 80 79 126 125 172 171 218 217 59 58 105 104 151 150 197 196 243 242 38 37 84 83 130 129 176 175 222 221 63 62 109 108 155 154 201 200 247 246 42 41 88 87 134 133 180 179 226 225 67 66 113 112 159 158 205 204 251 250 +DEPOLARIZE2(0.001) 2 3 48 49 94 95 140 141 186 187 232 233 27 28 73 74 119 120 165 166 211 212 6 7 52 53 98 99 144 145 190 191 236 237 31 32 77 78 123 124 169 170 215 216 10 11 56 57 102 103 148 149 194 195 240 241 35 36 81 82 127 128 173 174 219 220 14 15 60 61 106 107 152 153 198 199 244 245 39 40 85 86 131 132 177 178 223 224 18 19 64 65 110 111 156 157 202 203 248 249 43 44 89 90 135 136 181 182 227 228 47 46 93 92 139 138 185 184 231 230 26 25 72 71 118 117 164 163 210 209 51 50 97 96 143 142 189 188 235 234 30 29 76 75 122 121 168 167 214 213 55 54 101 100 147 146 193 192 239 238 34 33 80 79 126 125 172 171 218 217 59 58 105 104 151 150 197 196 243 242 38 37 84 83 130 129 176 175 222 221 63 62 109 108 155 154 201 200 247 246 42 41 88 87 134 133 180 179 226 225 67 66 113 112 159 158 205 204 251 250 +TICK +CX 2 1 48 47 94 93 140 139 186 185 232 231 27 26 73 72 119 118 165 164 211 210 6 5 52 51 98 97 144 143 190 189 236 235 31 30 77 76 123 122 169 168 215 214 10 9 56 55 102 101 148 147 194 193 240 239 35 34 81 80 127 126 173 172 219 218 14 13 60 59 106 105 152 151 198 197 244 243 39 38 85 84 131 130 177 176 223 222 18 17 64 63 110 109 156 155 202 201 248 247 43 42 89 88 135 134 181 180 227 226 24 46 70 92 116 138 162 184 208 230 3 25 49 71 95 117 141 163 187 209 28 50 74 96 120 142 166 188 212 234 7 29 53 75 99 121 145 167 191 213 32 54 78 100 124 146 170 192 216 238 11 33 57 79 103 125 149 171 195 217 36 58 82 104 128 150 174 196 220 242 15 37 61 83 107 129 153 175 199 221 40 62 86 108 132 154 178 200 224 246 19 41 65 87 111 133 157 179 203 225 44 66 90 112 136 158 182 204 228 250 +DEPOLARIZE2(0.001) 2 1 48 47 94 93 140 139 186 185 232 231 27 26 73 72 119 118 165 164 211 210 6 5 52 51 98 97 144 143 190 189 236 235 31 30 77 76 123 122 169 168 215 214 10 9 56 55 102 101 148 147 194 193 240 239 35 34 81 80 127 126 173 172 219 218 14 13 60 59 106 105 152 151 198 197 244 243 39 38 85 84 131 130 177 176 223 222 18 17 64 63 110 109 156 155 202 201 248 247 43 42 89 88 135 134 181 180 227 226 24 46 70 92 116 138 162 184 208 230 3 25 49 71 95 117 141 163 187 209 28 50 74 96 120 142 166 188 212 234 7 29 53 75 99 121 145 167 191 213 32 54 78 100 124 146 170 192 216 238 11 33 57 79 103 125 149 171 195 217 36 58 82 104 128 150 174 196 220 242 15 37 61 83 107 129 153 175 199 221 40 62 86 108 132 154 178 200 224 246 19 41 65 87 111 133 157 179 203 225 44 66 90 112 136 158 182 204 228 250 +TICK +CX 48 26 94 72 140 118 186 164 232 210 27 5 73 51 119 97 165 143 211 189 257 235 52 30 98 76 144 122 190 168 236 214 31 9 77 55 123 101 169 147 215 193 261 239 56 34 102 80 148 126 194 172 240 218 35 13 81 59 127 105 173 151 219 197 265 243 60 38 106 84 152 130 198 176 244 222 39 17 85 63 131 109 177 155 223 201 269 247 64 42 110 88 156 134 202 180 248 226 43 21 89 67 135 113 181 159 227 205 273 251 24 25 70 71 116 117 162 163 208 209 49 50 95 96 141 142 187 188 233 234 28 29 74 75 120 121 166 167 212 213 53 54 99 100 145 146 191 192 237 238 32 33 78 79 124 125 170 171 216 217 57 58 103 104 149 150 195 196 241 242 36 37 82 83 128 129 174 175 220 221 61 62 107 108 153 154 199 200 245 246 40 41 86 87 132 133 178 179 224 225 65 66 111 112 157 158 203 204 249 250 44 45 90 91 136 137 182 183 228 229 +DEPOLARIZE2(0.001) 48 26 94 72 140 118 186 164 232 210 27 5 73 51 119 97 165 143 211 189 257 235 52 30 98 76 144 122 190 168 236 214 31 9 77 55 123 101 169 147 215 193 261 239 56 34 102 80 148 126 194 172 240 218 35 13 81 59 127 105 173 151 219 197 265 243 60 38 106 84 152 130 198 176 244 222 39 17 85 63 131 109 177 155 223 201 269 247 64 42 110 88 156 134 202 180 248 226 43 21 89 67 135 113 181 159 227 205 273 251 24 25 70 71 116 117 162 163 208 209 49 50 95 96 141 142 187 188 233 234 28 29 74 75 120 121 166 167 212 213 53 54 99 100 145 146 191 192 237 238 32 33 78 79 124 125 170 171 216 217 57 58 103 104 149 150 195 196 241 242 36 37 82 83 128 129 174 175 220 221 61 62 107 108 153 154 199 200 245 246 40 41 86 87 132 133 178 179 224 225 65 66 111 112 157 158 203 204 249 250 44 45 90 91 136 137 182 183 228 229 +TICK +CX 48 24 94 70 140 116 186 162 232 208 27 3 73 49 119 95 165 141 211 187 257 233 52 28 98 74 144 120 190 166 236 212 31 7 77 53 123 99 169 145 215 191 261 237 56 32 102 78 148 124 194 170 240 216 35 11 81 57 127 103 173 149 219 195 265 241 60 36 106 82 152 128 198 174 244 220 39 15 85 61 131 107 177 153 223 199 269 245 64 40 110 86 156 132 202 178 248 224 43 19 89 65 135 111 181 157 227 203 273 249 1 25 47 71 93 117 139 163 185 209 26 50 72 96 118 142 164 188 210 234 5 29 51 75 97 121 143 167 189 213 30 54 76 100 122 146 168 192 214 238 9 33 55 79 101 125 147 171 193 217 34 58 80 104 126 150 172 196 218 242 13 37 59 83 105 129 151 175 197 221 38 62 84 108 130 154 176 200 222 246 17 41 63 87 109 133 155 179 201 225 42 66 88 112 134 158 180 204 226 250 21 45 67 91 113 137 159 183 205 229 +DEPOLARIZE2(0.001) 48 24 94 70 140 116 186 162 232 208 27 3 73 49 119 95 165 141 211 187 257 233 52 28 98 74 144 120 190 166 236 212 31 7 77 53 123 99 169 145 215 191 261 237 56 32 102 78 148 124 194 170 240 216 35 11 81 57 127 103 173 149 219 195 265 241 60 36 106 82 152 128 198 174 244 220 39 15 85 61 131 107 177 153 223 199 269 245 64 40 110 86 156 132 202 178 248 224 43 19 89 65 135 111 181 157 227 203 273 249 1 25 47 71 93 117 139 163 185 209 26 50 72 96 118 142 164 188 210 234 5 29 51 75 97 121 143 167 189 213 30 54 76 100 122 146 168 192 214 238 9 33 55 79 101 125 147 171 193 217 34 58 80 104 126 150 172 196 218 242 13 37 59 83 105 129 151 175 197 221 38 62 84 108 130 154 176 200 222 246 17 41 63 87 109 133 155 179 201 225 42 66 88 112 134 158 180 204 226 250 21 45 67 91 113 137 159 183 205 229 +TICK +H 2 6 10 14 18 27 31 35 39 43 48 52 56 60 64 73 77 81 85 89 94 98 102 106 110 119 123 127 131 135 140 144 148 152 156 165 169 173 177 181 186 190 194 198 202 211 215 219 223 227 232 236 240 244 248 257 261 265 269 273 +DEPOLARIZE1(0.001) 2 6 10 14 18 27 31 35 39 43 48 52 56 60 64 73 77 81 85 89 94 98 102 106 110 119 123 127 131 135 140 144 148 152 156 165 169 173 177 181 186 190 194 198 202 211 215 219 223 227 232 236 240 244 248 257 261 265 269 273 +TICK +X_ERROR(0.001) 2 6 10 14 18 25 27 29 31 33 35 37 39 41 43 45 46 48 50 52 54 56 58 60 62 64 66 71 73 75 77 79 81 83 85 87 89 91 92 94 96 98 100 102 104 106 108 110 112 117 119 121 123 125 127 129 131 133 135 137 138 140 142 144 146 148 150 152 154 156 158 163 165 167 169 171 173 175 177 179 181 183 184 186 188 190 192 194 196 198 200 202 204 209 211 213 215 217 219 221 223 225 227 229 230 232 234 236 238 240 242 244 246 248 250 257 261 265 269 273 +MR 2 6 10 14 18 25 27 29 31 33 35 37 39 41 43 45 46 48 50 52 54 56 58 60 62 64 66 71 73 75 77 79 81 83 85 87 89 91 92 94 96 98 100 102 104 106 108 110 112 117 119 121 123 125 127 129 131 133 135 137 138 140 142 144 146 148 150 152 154 156 158 163 165 167 169 171 173 175 177 179 181 183 184 186 188 190 192 194 196 198 200 202 204 209 211 213 215 217 219 221 223 225 227 229 230 232 234 236 238 240 242 244 246 248 250 257 261 265 269 273 +X_ERROR(0.001) 2 6 10 14 18 25 27 29 31 33 35 37 39 41 43 45 46 48 50 52 54 56 58 60 62 64 66 71 73 75 77 79 81 83 85 87 89 91 92 94 96 98 100 102 104 106 108 110 112 117 119 121 123 125 127 129 131 133 135 137 138 140 142 144 146 148 150 152 154 156 158 163 165 167 169 171 173 175 177 179 181 183 184 186 188 190 192 194 196 198 200 202 204 209 211 213 215 217 219 221 223 225 227 229 230 232 234 236 238 240 242 244 246 248 250 257 261 265 269 273 +DETECTOR(0, 4, 0) rec[-104] +DETECTOR(0, 8, 0) rec[-82] +DETECTOR(0, 12, 0) rec[-60] +DETECTOR(0, 16, 0) rec[-38] +DETECTOR(0, 20, 0) rec[-16] +DETECTOR(2, 2, 0) rec[-115] +DETECTOR(2, 6, 0) rec[-93] +DETECTOR(2, 10, 0) rec[-71] +DETECTOR(2, 14, 0) rec[-49] +DETECTOR(2, 18, 0) rec[-27] +DETECTOR(4, 4, 0) rec[-102] +DETECTOR(4, 8, 0) rec[-80] +DETECTOR(4, 12, 0) rec[-58] +DETECTOR(4, 16, 0) rec[-36] +DETECTOR(4, 20, 0) rec[-14] +DETECTOR(6, 2, 0) rec[-113] +DETECTOR(6, 6, 0) rec[-91] +DETECTOR(6, 10, 0) rec[-69] +DETECTOR(6, 14, 0) rec[-47] +DETECTOR(6, 18, 0) rec[-25] +DETECTOR(8, 4, 0) rec[-100] +DETECTOR(8, 8, 0) rec[-78] +DETECTOR(8, 12, 0) rec[-56] +DETECTOR(8, 16, 0) rec[-34] +DETECTOR(8, 20, 0) rec[-12] +DETECTOR(10, 2, 0) rec[-111] +DETECTOR(10, 6, 0) rec[-89] +DETECTOR(10, 10, 0) rec[-67] +DETECTOR(10, 14, 0) rec[-45] +DETECTOR(10, 18, 0) rec[-23] +DETECTOR(12, 4, 0) rec[-98] +DETECTOR(12, 8, 0) rec[-76] +DETECTOR(12, 12, 0) rec[-54] +DETECTOR(12, 16, 0) rec[-32] +DETECTOR(12, 20, 0) rec[-10] +DETECTOR(14, 2, 0) rec[-109] +DETECTOR(14, 6, 0) rec[-87] +DETECTOR(14, 10, 0) rec[-65] +DETECTOR(14, 14, 0) rec[-43] +DETECTOR(14, 18, 0) rec[-21] +DETECTOR(16, 4, 0) rec[-96] +DETECTOR(16, 8, 0) rec[-74] +DETECTOR(16, 12, 0) rec[-52] +DETECTOR(16, 16, 0) rec[-30] +DETECTOR(16, 20, 0) rec[-8] +DETECTOR(18, 2, 0) rec[-107] +DETECTOR(18, 6, 0) rec[-85] +DETECTOR(18, 10, 0) rec[-63] +DETECTOR(18, 14, 0) rec[-41] +DETECTOR(18, 18, 0) rec[-19] +DETECTOR(20, 4, 0) rec[-94] +DETECTOR(20, 8, 0) rec[-72] +DETECTOR(20, 12, 0) rec[-50] +DETECTOR(20, 16, 0) rec[-28] +DETECTOR(20, 20, 0) rec[-6] +DETECTOR(22, 2, 0) rec[-105] +DETECTOR(22, 6, 0) rec[-83] +DETECTOR(22, 10, 0) rec[-61] +DETECTOR(22, 14, 0) rec[-39] +DETECTOR(22, 18, 0) rec[-17] +REPEAT 10 { + TICK + DEPOLARIZE1(0.001) 1 3 5 7 9 11 13 15 17 19 21 24 26 28 30 32 34 36 38 40 42 44 47 49 51 53 55 57 59 61 63 65 67 70 72 74 76 78 80 82 84 86 88 90 93 95 97 99 101 103 105 107 109 111 113 116 118 120 122 124 126 128 130 132 134 136 139 141 143 145 147 149 151 153 155 157 159 162 164 166 168 170 172 174 176 178 180 182 185 187 189 191 193 195 197 199 201 203 205 208 210 212 214 216 218 220 222 224 226 228 231 233 235 237 239 241 243 245 247 249 251 + H 2 6 10 14 18 27 31 35 39 43 48 52 56 60 64 73 77 81 85 89 94 98 102 106 110 119 123 127 131 135 140 144 148 152 156 165 169 173 177 181 186 190 194 198 202 211 215 219 223 227 232 236 240 244 248 257 261 265 269 273 + DEPOLARIZE1(0.001) 2 6 10 14 18 27 31 35 39 43 48 52 56 60 64 73 77 81 85 89 94 98 102 106 110 119 123 127 131 135 140 144 148 152 156 165 169 173 177 181 186 190 194 198 202 211 215 219 223 227 232 236 240 244 248 257 261 265 269 273 + TICK + CX 2 3 48 49 94 95 140 141 186 187 232 233 27 28 73 74 119 120 165 166 211 212 6 7 52 53 98 99 144 145 190 191 236 237 31 32 77 78 123 124 169 170 215 216 10 11 56 57 102 103 148 149 194 195 240 241 35 36 81 82 127 128 173 174 219 220 14 15 60 61 106 107 152 153 198 199 244 245 39 40 85 86 131 132 177 178 223 224 18 19 64 65 110 111 156 157 202 203 248 249 43 44 89 90 135 136 181 182 227 228 47 46 93 92 139 138 185 184 231 230 26 25 72 71 118 117 164 163 210 209 51 50 97 96 143 142 189 188 235 234 30 29 76 75 122 121 168 167 214 213 55 54 101 100 147 146 193 192 239 238 34 33 80 79 126 125 172 171 218 217 59 58 105 104 151 150 197 196 243 242 38 37 84 83 130 129 176 175 222 221 63 62 109 108 155 154 201 200 247 246 42 41 88 87 134 133 180 179 226 225 67 66 113 112 159 158 205 204 251 250 + DEPOLARIZE2(0.001) 2 3 48 49 94 95 140 141 186 187 232 233 27 28 73 74 119 120 165 166 211 212 6 7 52 53 98 99 144 145 190 191 236 237 31 32 77 78 123 124 169 170 215 216 10 11 56 57 102 103 148 149 194 195 240 241 35 36 81 82 127 128 173 174 219 220 14 15 60 61 106 107 152 153 198 199 244 245 39 40 85 86 131 132 177 178 223 224 18 19 64 65 110 111 156 157 202 203 248 249 43 44 89 90 135 136 181 182 227 228 47 46 93 92 139 138 185 184 231 230 26 25 72 71 118 117 164 163 210 209 51 50 97 96 143 142 189 188 235 234 30 29 76 75 122 121 168 167 214 213 55 54 101 100 147 146 193 192 239 238 34 33 80 79 126 125 172 171 218 217 59 58 105 104 151 150 197 196 243 242 38 37 84 83 130 129 176 175 222 221 63 62 109 108 155 154 201 200 247 246 42 41 88 87 134 133 180 179 226 225 67 66 113 112 159 158 205 204 251 250 + TICK + CX 2 1 48 47 94 93 140 139 186 185 232 231 27 26 73 72 119 118 165 164 211 210 6 5 52 51 98 97 144 143 190 189 236 235 31 30 77 76 123 122 169 168 215 214 10 9 56 55 102 101 148 147 194 193 240 239 35 34 81 80 127 126 173 172 219 218 14 13 60 59 106 105 152 151 198 197 244 243 39 38 85 84 131 130 177 176 223 222 18 17 64 63 110 109 156 155 202 201 248 247 43 42 89 88 135 134 181 180 227 226 24 46 70 92 116 138 162 184 208 230 3 25 49 71 95 117 141 163 187 209 28 50 74 96 120 142 166 188 212 234 7 29 53 75 99 121 145 167 191 213 32 54 78 100 124 146 170 192 216 238 11 33 57 79 103 125 149 171 195 217 36 58 82 104 128 150 174 196 220 242 15 37 61 83 107 129 153 175 199 221 40 62 86 108 132 154 178 200 224 246 19 41 65 87 111 133 157 179 203 225 44 66 90 112 136 158 182 204 228 250 + DEPOLARIZE2(0.001) 2 1 48 47 94 93 140 139 186 185 232 231 27 26 73 72 119 118 165 164 211 210 6 5 52 51 98 97 144 143 190 189 236 235 31 30 77 76 123 122 169 168 215 214 10 9 56 55 102 101 148 147 194 193 240 239 35 34 81 80 127 126 173 172 219 218 14 13 60 59 106 105 152 151 198 197 244 243 39 38 85 84 131 130 177 176 223 222 18 17 64 63 110 109 156 155 202 201 248 247 43 42 89 88 135 134 181 180 227 226 24 46 70 92 116 138 162 184 208 230 3 25 49 71 95 117 141 163 187 209 28 50 74 96 120 142 166 188 212 234 7 29 53 75 99 121 145 167 191 213 32 54 78 100 124 146 170 192 216 238 11 33 57 79 103 125 149 171 195 217 36 58 82 104 128 150 174 196 220 242 15 37 61 83 107 129 153 175 199 221 40 62 86 108 132 154 178 200 224 246 19 41 65 87 111 133 157 179 203 225 44 66 90 112 136 158 182 204 228 250 + TICK + CX 48 26 94 72 140 118 186 164 232 210 27 5 73 51 119 97 165 143 211 189 257 235 52 30 98 76 144 122 190 168 236 214 31 9 77 55 123 101 169 147 215 193 261 239 56 34 102 80 148 126 194 172 240 218 35 13 81 59 127 105 173 151 219 197 265 243 60 38 106 84 152 130 198 176 244 222 39 17 85 63 131 109 177 155 223 201 269 247 64 42 110 88 156 134 202 180 248 226 43 21 89 67 135 113 181 159 227 205 273 251 24 25 70 71 116 117 162 163 208 209 49 50 95 96 141 142 187 188 233 234 28 29 74 75 120 121 166 167 212 213 53 54 99 100 145 146 191 192 237 238 32 33 78 79 124 125 170 171 216 217 57 58 103 104 149 150 195 196 241 242 36 37 82 83 128 129 174 175 220 221 61 62 107 108 153 154 199 200 245 246 40 41 86 87 132 133 178 179 224 225 65 66 111 112 157 158 203 204 249 250 44 45 90 91 136 137 182 183 228 229 + DEPOLARIZE2(0.001) 48 26 94 72 140 118 186 164 232 210 27 5 73 51 119 97 165 143 211 189 257 235 52 30 98 76 144 122 190 168 236 214 31 9 77 55 123 101 169 147 215 193 261 239 56 34 102 80 148 126 194 172 240 218 35 13 81 59 127 105 173 151 219 197 265 243 60 38 106 84 152 130 198 176 244 222 39 17 85 63 131 109 177 155 223 201 269 247 64 42 110 88 156 134 202 180 248 226 43 21 89 67 135 113 181 159 227 205 273 251 24 25 70 71 116 117 162 163 208 209 49 50 95 96 141 142 187 188 233 234 28 29 74 75 120 121 166 167 212 213 53 54 99 100 145 146 191 192 237 238 32 33 78 79 124 125 170 171 216 217 57 58 103 104 149 150 195 196 241 242 36 37 82 83 128 129 174 175 220 221 61 62 107 108 153 154 199 200 245 246 40 41 86 87 132 133 178 179 224 225 65 66 111 112 157 158 203 204 249 250 44 45 90 91 136 137 182 183 228 229 + TICK + CX 48 24 94 70 140 116 186 162 232 208 27 3 73 49 119 95 165 141 211 187 257 233 52 28 98 74 144 120 190 166 236 212 31 7 77 53 123 99 169 145 215 191 261 237 56 32 102 78 148 124 194 170 240 216 35 11 81 57 127 103 173 149 219 195 265 241 60 36 106 82 152 128 198 174 244 220 39 15 85 61 131 107 177 153 223 199 269 245 64 40 110 86 156 132 202 178 248 224 43 19 89 65 135 111 181 157 227 203 273 249 1 25 47 71 93 117 139 163 185 209 26 50 72 96 118 142 164 188 210 234 5 29 51 75 97 121 143 167 189 213 30 54 76 100 122 146 168 192 214 238 9 33 55 79 101 125 147 171 193 217 34 58 80 104 126 150 172 196 218 242 13 37 59 83 105 129 151 175 197 221 38 62 84 108 130 154 176 200 222 246 17 41 63 87 109 133 155 179 201 225 42 66 88 112 134 158 180 204 226 250 21 45 67 91 113 137 159 183 205 229 + DEPOLARIZE2(0.001) 48 24 94 70 140 116 186 162 232 208 27 3 73 49 119 95 165 141 211 187 257 233 52 28 98 74 144 120 190 166 236 212 31 7 77 53 123 99 169 145 215 191 261 237 56 32 102 78 148 124 194 170 240 216 35 11 81 57 127 103 173 149 219 195 265 241 60 36 106 82 152 128 198 174 244 220 39 15 85 61 131 107 177 153 223 199 269 245 64 40 110 86 156 132 202 178 248 224 43 19 89 65 135 111 181 157 227 203 273 249 1 25 47 71 93 117 139 163 185 209 26 50 72 96 118 142 164 188 210 234 5 29 51 75 97 121 143 167 189 213 30 54 76 100 122 146 168 192 214 238 9 33 55 79 101 125 147 171 193 217 34 58 80 104 126 150 172 196 218 242 13 37 59 83 105 129 151 175 197 221 38 62 84 108 130 154 176 200 222 246 17 41 63 87 109 133 155 179 201 225 42 66 88 112 134 158 180 204 226 250 21 45 67 91 113 137 159 183 205 229 + TICK + H 2 6 10 14 18 27 31 35 39 43 48 52 56 60 64 73 77 81 85 89 94 98 102 106 110 119 123 127 131 135 140 144 148 152 156 165 169 173 177 181 186 190 194 198 202 211 215 219 223 227 232 236 240 244 248 257 261 265 269 273 + DEPOLARIZE1(0.001) 2 6 10 14 18 27 31 35 39 43 48 52 56 60 64 73 77 81 85 89 94 98 102 106 110 119 123 127 131 135 140 144 148 152 156 165 169 173 177 181 186 190 194 198 202 211 215 219 223 227 232 236 240 244 248 257 261 265 269 273 + TICK + X_ERROR(0.001) 2 6 10 14 18 25 27 29 31 33 35 37 39 41 43 45 46 48 50 52 54 56 58 60 62 64 66 71 73 75 77 79 81 83 85 87 89 91 92 94 96 98 100 102 104 106 108 110 112 117 119 121 123 125 127 129 131 133 135 137 138 140 142 144 146 148 150 152 154 156 158 163 165 167 169 171 173 175 177 179 181 183 184 186 188 190 192 194 196 198 200 202 204 209 211 213 215 217 219 221 223 225 227 229 230 232 234 236 238 240 242 244 246 248 250 257 261 265 269 273 + MR 2 6 10 14 18 25 27 29 31 33 35 37 39 41 43 45 46 48 50 52 54 56 58 60 62 64 66 71 73 75 77 79 81 83 85 87 89 91 92 94 96 98 100 102 104 106 108 110 112 117 119 121 123 125 127 129 131 133 135 137 138 140 142 144 146 148 150 152 154 156 158 163 165 167 169 171 173 175 177 179 181 183 184 186 188 190 192 194 196 198 200 202 204 209 211 213 215 217 219 221 223 225 227 229 230 232 234 236 238 240 242 244 246 248 250 257 261 265 269 273 + X_ERROR(0.001) 2 6 10 14 18 25 27 29 31 33 35 37 39 41 43 45 46 48 50 52 54 56 58 60 62 64 66 71 73 75 77 79 81 83 85 87 89 91 92 94 96 98 100 102 104 106 108 110 112 117 119 121 123 125 127 129 131 133 135 137 138 140 142 144 146 148 150 152 154 156 158 163 165 167 169 171 173 175 177 179 181 183 184 186 188 190 192 194 196 198 200 202 204 209 211 213 215 217 219 221 223 225 227 229 230 232 234 236 238 240 242 244 246 248 250 257 261 265 269 273 + SHIFT_COORDS(0, 0, 1) + DETECTOR(2, 0, 0) rec[-120] rec[-240] + DETECTOR(6, 0, 0) rec[-119] rec[-239] + DETECTOR(10, 0, 0) rec[-118] rec[-238] + DETECTOR(14, 0, 0) rec[-117] rec[-237] + DETECTOR(18, 0, 0) rec[-116] rec[-236] + DETECTOR(2, 2, 0) rec[-115] rec[-235] + DETECTOR(4, 2, 0) rec[-114] rec[-234] + DETECTOR(6, 2, 0) rec[-113] rec[-233] + DETECTOR(8, 2, 0) rec[-112] rec[-232] + DETECTOR(10, 2, 0) rec[-111] rec[-231] + DETECTOR(12, 2, 0) rec[-110] rec[-230] + DETECTOR(14, 2, 0) rec[-109] rec[-229] + DETECTOR(16, 2, 0) rec[-108] rec[-228] + DETECTOR(18, 2, 0) rec[-107] rec[-227] + DETECTOR(20, 2, 0) rec[-106] rec[-226] + DETECTOR(22, 2, 0) rec[-105] rec[-225] + DETECTOR(0, 4, 0) rec[-104] rec[-224] + DETECTOR(2, 4, 0) rec[-103] rec[-223] + DETECTOR(4, 4, 0) rec[-102] rec[-222] + DETECTOR(6, 4, 0) rec[-101] rec[-221] + DETECTOR(8, 4, 0) rec[-100] rec[-220] + DETECTOR(10, 4, 0) rec[-99] rec[-219] + DETECTOR(12, 4, 0) rec[-98] rec[-218] + DETECTOR(14, 4, 0) rec[-97] rec[-217] + DETECTOR(16, 4, 0) rec[-96] rec[-216] + DETECTOR(18, 4, 0) rec[-95] rec[-215] + DETECTOR(20, 4, 0) rec[-94] rec[-214] + DETECTOR(2, 6, 0) rec[-93] rec[-213] + DETECTOR(4, 6, 0) rec[-92] rec[-212] + DETECTOR(6, 6, 0) rec[-91] rec[-211] + DETECTOR(8, 6, 0) rec[-90] rec[-210] + DETECTOR(10, 6, 0) rec[-89] rec[-209] + DETECTOR(12, 6, 0) rec[-88] rec[-208] + DETECTOR(14, 6, 0) rec[-87] rec[-207] + DETECTOR(16, 6, 0) rec[-86] rec[-206] + DETECTOR(18, 6, 0) rec[-85] rec[-205] + DETECTOR(20, 6, 0) rec[-84] rec[-204] + DETECTOR(22, 6, 0) rec[-83] rec[-203] + DETECTOR(0, 8, 0) rec[-82] rec[-202] + DETECTOR(2, 8, 0) rec[-81] rec[-201] + DETECTOR(4, 8, 0) rec[-80] rec[-200] + DETECTOR(6, 8, 0) rec[-79] rec[-199] + DETECTOR(8, 8, 0) rec[-78] rec[-198] + DETECTOR(10, 8, 0) rec[-77] rec[-197] + DETECTOR(12, 8, 0) rec[-76] rec[-196] + DETECTOR(14, 8, 0) rec[-75] rec[-195] + DETECTOR(16, 8, 0) rec[-74] rec[-194] + DETECTOR(18, 8, 0) rec[-73] rec[-193] + DETECTOR(20, 8, 0) rec[-72] rec[-192] + DETECTOR(2, 10, 0) rec[-71] rec[-191] + DETECTOR(4, 10, 0) rec[-70] rec[-190] + DETECTOR(6, 10, 0) rec[-69] rec[-189] + DETECTOR(8, 10, 0) rec[-68] rec[-188] + DETECTOR(10, 10, 0) rec[-67] rec[-187] + DETECTOR(12, 10, 0) rec[-66] rec[-186] + DETECTOR(14, 10, 0) rec[-65] rec[-185] + DETECTOR(16, 10, 0) rec[-64] rec[-184] + DETECTOR(18, 10, 0) rec[-63] rec[-183] + DETECTOR(20, 10, 0) rec[-62] rec[-182] + DETECTOR(22, 10, 0) rec[-61] rec[-181] + DETECTOR(0, 12, 0) rec[-60] rec[-180] + DETECTOR(2, 12, 0) rec[-59] rec[-179] + DETECTOR(4, 12, 0) rec[-58] rec[-178] + DETECTOR(6, 12, 0) rec[-57] rec[-177] + DETECTOR(8, 12, 0) rec[-56] rec[-176] + DETECTOR(10, 12, 0) rec[-55] rec[-175] + DETECTOR(12, 12, 0) rec[-54] rec[-174] + DETECTOR(14, 12, 0) rec[-53] rec[-173] + DETECTOR(16, 12, 0) rec[-52] rec[-172] + DETECTOR(18, 12, 0) rec[-51] rec[-171] + DETECTOR(20, 12, 0) rec[-50] rec[-170] + DETECTOR(2, 14, 0) rec[-49] rec[-169] + DETECTOR(4, 14, 0) rec[-48] rec[-168] + DETECTOR(6, 14, 0) rec[-47] rec[-167] + DETECTOR(8, 14, 0) rec[-46] rec[-166] + DETECTOR(10, 14, 0) rec[-45] rec[-165] + DETECTOR(12, 14, 0) rec[-44] rec[-164] + DETECTOR(14, 14, 0) rec[-43] rec[-163] + DETECTOR(16, 14, 0) rec[-42] rec[-162] + DETECTOR(18, 14, 0) rec[-41] rec[-161] + DETECTOR(20, 14, 0) rec[-40] rec[-160] + DETECTOR(22, 14, 0) rec[-39] rec[-159] + DETECTOR(0, 16, 0) rec[-38] rec[-158] + DETECTOR(2, 16, 0) rec[-37] rec[-157] + DETECTOR(4, 16, 0) rec[-36] rec[-156] + DETECTOR(6, 16, 0) rec[-35] rec[-155] + DETECTOR(8, 16, 0) rec[-34] rec[-154] + DETECTOR(10, 16, 0) rec[-33] rec[-153] + DETECTOR(12, 16, 0) rec[-32] rec[-152] + DETECTOR(14, 16, 0) rec[-31] rec[-151] + DETECTOR(16, 16, 0) rec[-30] rec[-150] + DETECTOR(18, 16, 0) rec[-29] rec[-149] + DETECTOR(20, 16, 0) rec[-28] rec[-148] + DETECTOR(2, 18, 0) rec[-27] rec[-147] + DETECTOR(4, 18, 0) rec[-26] rec[-146] + DETECTOR(6, 18, 0) rec[-25] rec[-145] + DETECTOR(8, 18, 0) rec[-24] rec[-144] + DETECTOR(10, 18, 0) rec[-23] rec[-143] + DETECTOR(12, 18, 0) rec[-22] rec[-142] + DETECTOR(14, 18, 0) rec[-21] rec[-141] + DETECTOR(16, 18, 0) rec[-20] rec[-140] + DETECTOR(18, 18, 0) rec[-19] rec[-139] + DETECTOR(20, 18, 0) rec[-18] rec[-138] + DETECTOR(22, 18, 0) rec[-17] rec[-137] + DETECTOR(0, 20, 0) rec[-16] rec[-136] + DETECTOR(2, 20, 0) rec[-15] rec[-135] + DETECTOR(4, 20, 0) rec[-14] rec[-134] + DETECTOR(6, 20, 0) rec[-13] rec[-133] + DETECTOR(8, 20, 0) rec[-12] rec[-132] + DETECTOR(10, 20, 0) rec[-11] rec[-131] + DETECTOR(12, 20, 0) rec[-10] rec[-130] + DETECTOR(14, 20, 0) rec[-9] rec[-129] + DETECTOR(16, 20, 0) rec[-8] rec[-128] + DETECTOR(18, 20, 0) rec[-7] rec[-127] + DETECTOR(20, 20, 0) rec[-6] rec[-126] + DETECTOR(4, 22, 0) rec[-5] rec[-125] + DETECTOR(8, 22, 0) rec[-4] rec[-124] + DETECTOR(12, 22, 0) rec[-3] rec[-123] + DETECTOR(16, 22, 0) rec[-2] rec[-122] + DETECTOR(20, 22, 0) rec[-1] rec[-121] +} +X_ERROR(0.001) 1 3 5 7 9 11 13 15 17 19 21 24 26 28 30 32 34 36 38 40 42 44 47 49 51 53 55 57 59 61 63 65 67 70 72 74 76 78 80 82 84 86 88 90 93 95 97 99 101 103 105 107 109 111 113 116 118 120 122 124 126 128 130 132 134 136 139 141 143 145 147 149 151 153 155 157 159 162 164 166 168 170 172 174 176 178 180 182 185 187 189 191 193 195 197 199 201 203 205 208 210 212 214 216 218 220 222 224 226 228 231 233 235 237 239 241 243 245 247 249 251 +M 1 3 5 7 9 11 13 15 17 19 21 24 26 28 30 32 34 36 38 40 42 44 47 49 51 53 55 57 59 61 63 65 67 70 72 74 76 78 80 82 84 86 88 90 93 95 97 99 101 103 105 107 109 111 113 116 118 120 122 124 126 128 130 132 134 136 139 141 143 145 147 149 151 153 155 157 159 162 164 166 168 170 172 174 176 178 180 182 185 187 189 191 193 195 197 199 201 203 205 208 210 212 214 216 218 220 222 224 226 228 231 233 235 237 239 241 243 245 247 249 251 +DETECTOR(0, 4, 1) rec[-99] rec[-110] rec[-225] +DETECTOR(0, 8, 1) rec[-77] rec[-88] rec[-203] +DETECTOR(0, 12, 1) rec[-55] rec[-66] rec[-181] +DETECTOR(0, 16, 1) rec[-33] rec[-44] rec[-159] +DETECTOR(0, 20, 1) rec[-11] rec[-22] rec[-137] +DETECTOR(2, 2, 1) rec[-109] rec[-110] rec[-120] rec[-121] rec[-236] +DETECTOR(2, 6, 1) rec[-87] rec[-88] rec[-98] rec[-99] rec[-214] +DETECTOR(2, 10, 1) rec[-65] rec[-66] rec[-76] rec[-77] rec[-192] +DETECTOR(2, 14, 1) rec[-43] rec[-44] rec[-54] rec[-55] rec[-170] +DETECTOR(2, 18, 1) rec[-21] rec[-22] rec[-32] rec[-33] rec[-148] +DETECTOR(4, 4, 1) rec[-97] rec[-98] rec[-108] rec[-109] rec[-223] +DETECTOR(4, 8, 1) rec[-75] rec[-76] rec[-86] rec[-87] rec[-201] +DETECTOR(4, 12, 1) rec[-53] rec[-54] rec[-64] rec[-65] rec[-179] +DETECTOR(4, 16, 1) rec[-31] rec[-32] rec[-42] rec[-43] rec[-157] +DETECTOR(4, 20, 1) rec[-9] rec[-10] rec[-20] rec[-21] rec[-135] +DETECTOR(6, 2, 1) rec[-107] rec[-108] rec[-118] rec[-119] rec[-234] +DETECTOR(6, 6, 1) rec[-85] rec[-86] rec[-96] rec[-97] rec[-212] +DETECTOR(6, 10, 1) rec[-63] rec[-64] rec[-74] rec[-75] rec[-190] +DETECTOR(6, 14, 1) rec[-41] rec[-42] rec[-52] rec[-53] rec[-168] +DETECTOR(6, 18, 1) rec[-19] rec[-20] rec[-30] rec[-31] rec[-146] +DETECTOR(8, 4, 1) rec[-95] rec[-96] rec[-106] rec[-107] rec[-221] +DETECTOR(8, 8, 1) rec[-73] rec[-74] rec[-84] rec[-85] rec[-199] +DETECTOR(8, 12, 1) rec[-51] rec[-52] rec[-62] rec[-63] rec[-177] +DETECTOR(8, 16, 1) rec[-29] rec[-30] rec[-40] rec[-41] rec[-155] +DETECTOR(8, 20, 1) rec[-7] rec[-8] rec[-18] rec[-19] rec[-133] +DETECTOR(10, 2, 1) rec[-105] rec[-106] rec[-116] rec[-117] rec[-232] +DETECTOR(10, 6, 1) rec[-83] rec[-84] rec[-94] rec[-95] rec[-210] +DETECTOR(10, 10, 1) rec[-61] rec[-62] rec[-72] rec[-73] rec[-188] +DETECTOR(10, 14, 1) rec[-39] rec[-40] rec[-50] rec[-51] rec[-166] +DETECTOR(10, 18, 1) rec[-17] rec[-18] rec[-28] rec[-29] rec[-144] +DETECTOR(12, 4, 1) rec[-93] rec[-94] rec[-104] rec[-105] rec[-219] +DETECTOR(12, 8, 1) rec[-71] rec[-72] rec[-82] rec[-83] rec[-197] +DETECTOR(12, 12, 1) rec[-49] rec[-50] rec[-60] rec[-61] rec[-175] +DETECTOR(12, 16, 1) rec[-27] rec[-28] rec[-38] rec[-39] rec[-153] +DETECTOR(12, 20, 1) rec[-5] rec[-6] rec[-16] rec[-17] rec[-131] +DETECTOR(14, 2, 1) rec[-103] rec[-104] rec[-114] rec[-115] rec[-230] +DETECTOR(14, 6, 1) rec[-81] rec[-82] rec[-92] rec[-93] rec[-208] +DETECTOR(14, 10, 1) rec[-59] rec[-60] rec[-70] rec[-71] rec[-186] +DETECTOR(14, 14, 1) rec[-37] rec[-38] rec[-48] rec[-49] rec[-164] +DETECTOR(14, 18, 1) rec[-15] rec[-16] rec[-26] rec[-27] rec[-142] +DETECTOR(16, 4, 1) rec[-91] rec[-92] rec[-102] rec[-103] rec[-217] +DETECTOR(16, 8, 1) rec[-69] rec[-70] rec[-80] rec[-81] rec[-195] +DETECTOR(16, 12, 1) rec[-47] rec[-48] rec[-58] rec[-59] rec[-173] +DETECTOR(16, 16, 1) rec[-25] rec[-26] rec[-36] rec[-37] rec[-151] +DETECTOR(16, 20, 1) rec[-3] rec[-4] rec[-14] rec[-15] rec[-129] +DETECTOR(18, 2, 1) rec[-101] rec[-102] rec[-112] rec[-113] rec[-228] +DETECTOR(18, 6, 1) rec[-79] rec[-80] rec[-90] rec[-91] rec[-206] +DETECTOR(18, 10, 1) rec[-57] rec[-58] rec[-68] rec[-69] rec[-184] +DETECTOR(18, 14, 1) rec[-35] rec[-36] rec[-46] rec[-47] rec[-162] +DETECTOR(18, 18, 1) rec[-13] rec[-14] rec[-24] rec[-25] rec[-140] +DETECTOR(20, 4, 1) rec[-89] rec[-90] rec[-100] rec[-101] rec[-215] +DETECTOR(20, 8, 1) rec[-67] rec[-68] rec[-78] rec[-79] rec[-193] +DETECTOR(20, 12, 1) rec[-45] rec[-46] rec[-56] rec[-57] rec[-171] +DETECTOR(20, 16, 1) rec[-23] rec[-24] rec[-34] rec[-35] rec[-149] +DETECTOR(20, 20, 1) rec[-1] rec[-2] rec[-12] rec[-13] rec[-127] +DETECTOR(22, 2, 1) rec[-100] rec[-111] rec[-226] +DETECTOR(22, 6, 1) rec[-78] rec[-89] rec[-204] +DETECTOR(22, 10, 1) rec[-56] rec[-67] rec[-182] +DETECTOR(22, 14, 1) rec[-34] rec[-45] rec[-160] +DETECTOR(22, 18, 1) rec[-12] rec[-23] rec[-138] +OBSERVABLE_INCLUDE(0) rec[-111] rec[-112] rec[-113] rec[-114] rec[-115] rec[-116] rec[-117] rec[-118] rec[-119] rec[-120] rec[-121] diff --git a/wai/quantum-cross-simulator/corpus/qec/surface_z_d15.circuit b/wai/quantum-cross-simulator/corpus/qec/surface_z_d15.circuit new file mode 100644 index 000000000..5abd7c0ae --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qec/surface_z_d15.circuit @@ -0,0 +1,953 @@ +QUBIT_COORDS(1, 1) 1 +QUBIT_COORDS(2, 0) 2 +QUBIT_COORDS(3, 1) 3 +QUBIT_COORDS(5, 1) 5 +QUBIT_COORDS(6, 0) 6 +QUBIT_COORDS(7, 1) 7 +QUBIT_COORDS(9, 1) 9 +QUBIT_COORDS(10, 0) 10 +QUBIT_COORDS(11, 1) 11 +QUBIT_COORDS(13, 1) 13 +QUBIT_COORDS(14, 0) 14 +QUBIT_COORDS(15, 1) 15 +QUBIT_COORDS(17, 1) 17 +QUBIT_COORDS(18, 0) 18 +QUBIT_COORDS(19, 1) 19 +QUBIT_COORDS(21, 1) 21 +QUBIT_COORDS(22, 0) 22 +QUBIT_COORDS(23, 1) 23 +QUBIT_COORDS(25, 1) 25 +QUBIT_COORDS(26, 0) 26 +QUBIT_COORDS(27, 1) 27 +QUBIT_COORDS(29, 1) 29 +QUBIT_COORDS(1, 3) 32 +QUBIT_COORDS(2, 2) 33 +QUBIT_COORDS(3, 3) 34 +QUBIT_COORDS(4, 2) 35 +QUBIT_COORDS(5, 3) 36 +QUBIT_COORDS(6, 2) 37 +QUBIT_COORDS(7, 3) 38 +QUBIT_COORDS(8, 2) 39 +QUBIT_COORDS(9, 3) 40 +QUBIT_COORDS(10, 2) 41 +QUBIT_COORDS(11, 3) 42 +QUBIT_COORDS(12, 2) 43 +QUBIT_COORDS(13, 3) 44 +QUBIT_COORDS(14, 2) 45 +QUBIT_COORDS(15, 3) 46 +QUBIT_COORDS(16, 2) 47 +QUBIT_COORDS(17, 3) 48 +QUBIT_COORDS(18, 2) 49 +QUBIT_COORDS(19, 3) 50 +QUBIT_COORDS(20, 2) 51 +QUBIT_COORDS(21, 3) 52 +QUBIT_COORDS(22, 2) 53 +QUBIT_COORDS(23, 3) 54 +QUBIT_COORDS(24, 2) 55 +QUBIT_COORDS(25, 3) 56 +QUBIT_COORDS(26, 2) 57 +QUBIT_COORDS(27, 3) 58 +QUBIT_COORDS(28, 2) 59 +QUBIT_COORDS(29, 3) 60 +QUBIT_COORDS(30, 2) 61 +QUBIT_COORDS(0, 4) 62 +QUBIT_COORDS(1, 5) 63 +QUBIT_COORDS(2, 4) 64 +QUBIT_COORDS(3, 5) 65 +QUBIT_COORDS(4, 4) 66 +QUBIT_COORDS(5, 5) 67 +QUBIT_COORDS(6, 4) 68 +QUBIT_COORDS(7, 5) 69 +QUBIT_COORDS(8, 4) 70 +QUBIT_COORDS(9, 5) 71 +QUBIT_COORDS(10, 4) 72 +QUBIT_COORDS(11, 5) 73 +QUBIT_COORDS(12, 4) 74 +QUBIT_COORDS(13, 5) 75 +QUBIT_COORDS(14, 4) 76 +QUBIT_COORDS(15, 5) 77 +QUBIT_COORDS(16, 4) 78 +QUBIT_COORDS(17, 5) 79 +QUBIT_COORDS(18, 4) 80 +QUBIT_COORDS(19, 5) 81 +QUBIT_COORDS(20, 4) 82 +QUBIT_COORDS(21, 5) 83 +QUBIT_COORDS(22, 4) 84 +QUBIT_COORDS(23, 5) 85 +QUBIT_COORDS(24, 4) 86 +QUBIT_COORDS(25, 5) 87 +QUBIT_COORDS(26, 4) 88 +QUBIT_COORDS(27, 5) 89 +QUBIT_COORDS(28, 4) 90 +QUBIT_COORDS(29, 5) 91 +QUBIT_COORDS(1, 7) 94 +QUBIT_COORDS(2, 6) 95 +QUBIT_COORDS(3, 7) 96 +QUBIT_COORDS(4, 6) 97 +QUBIT_COORDS(5, 7) 98 +QUBIT_COORDS(6, 6) 99 +QUBIT_COORDS(7, 7) 100 +QUBIT_COORDS(8, 6) 101 +QUBIT_COORDS(9, 7) 102 +QUBIT_COORDS(10, 6) 103 +QUBIT_COORDS(11, 7) 104 +QUBIT_COORDS(12, 6) 105 +QUBIT_COORDS(13, 7) 106 +QUBIT_COORDS(14, 6) 107 +QUBIT_COORDS(15, 7) 108 +QUBIT_COORDS(16, 6) 109 +QUBIT_COORDS(17, 7) 110 +QUBIT_COORDS(18, 6) 111 +QUBIT_COORDS(19, 7) 112 +QUBIT_COORDS(20, 6) 113 +QUBIT_COORDS(21, 7) 114 +QUBIT_COORDS(22, 6) 115 +QUBIT_COORDS(23, 7) 116 +QUBIT_COORDS(24, 6) 117 +QUBIT_COORDS(25, 7) 118 +QUBIT_COORDS(26, 6) 119 +QUBIT_COORDS(27, 7) 120 +QUBIT_COORDS(28, 6) 121 +QUBIT_COORDS(29, 7) 122 +QUBIT_COORDS(30, 6) 123 +QUBIT_COORDS(0, 8) 124 +QUBIT_COORDS(1, 9) 125 +QUBIT_COORDS(2, 8) 126 +QUBIT_COORDS(3, 9) 127 +QUBIT_COORDS(4, 8) 128 +QUBIT_COORDS(5, 9) 129 +QUBIT_COORDS(6, 8) 130 +QUBIT_COORDS(7, 9) 131 +QUBIT_COORDS(8, 8) 132 +QUBIT_COORDS(9, 9) 133 +QUBIT_COORDS(10, 8) 134 +QUBIT_COORDS(11, 9) 135 +QUBIT_COORDS(12, 8) 136 +QUBIT_COORDS(13, 9) 137 +QUBIT_COORDS(14, 8) 138 +QUBIT_COORDS(15, 9) 139 +QUBIT_COORDS(16, 8) 140 +QUBIT_COORDS(17, 9) 141 +QUBIT_COORDS(18, 8) 142 +QUBIT_COORDS(19, 9) 143 +QUBIT_COORDS(20, 8) 144 +QUBIT_COORDS(21, 9) 145 +QUBIT_COORDS(22, 8) 146 +QUBIT_COORDS(23, 9) 147 +QUBIT_COORDS(24, 8) 148 +QUBIT_COORDS(25, 9) 149 +QUBIT_COORDS(26, 8) 150 +QUBIT_COORDS(27, 9) 151 +QUBIT_COORDS(28, 8) 152 +QUBIT_COORDS(29, 9) 153 +QUBIT_COORDS(1, 11) 156 +QUBIT_COORDS(2, 10) 157 +QUBIT_COORDS(3, 11) 158 +QUBIT_COORDS(4, 10) 159 +QUBIT_COORDS(5, 11) 160 +QUBIT_COORDS(6, 10) 161 +QUBIT_COORDS(7, 11) 162 +QUBIT_COORDS(8, 10) 163 +QUBIT_COORDS(9, 11) 164 +QUBIT_COORDS(10, 10) 165 +QUBIT_COORDS(11, 11) 166 +QUBIT_COORDS(12, 10) 167 +QUBIT_COORDS(13, 11) 168 +QUBIT_COORDS(14, 10) 169 +QUBIT_COORDS(15, 11) 170 +QUBIT_COORDS(16, 10) 171 +QUBIT_COORDS(17, 11) 172 +QUBIT_COORDS(18, 10) 173 +QUBIT_COORDS(19, 11) 174 +QUBIT_COORDS(20, 10) 175 +QUBIT_COORDS(21, 11) 176 +QUBIT_COORDS(22, 10) 177 +QUBIT_COORDS(23, 11) 178 +QUBIT_COORDS(24, 10) 179 +QUBIT_COORDS(25, 11) 180 +QUBIT_COORDS(26, 10) 181 +QUBIT_COORDS(27, 11) 182 +QUBIT_COORDS(28, 10) 183 +QUBIT_COORDS(29, 11) 184 +QUBIT_COORDS(30, 10) 185 +QUBIT_COORDS(0, 12) 186 +QUBIT_COORDS(1, 13) 187 +QUBIT_COORDS(2, 12) 188 +QUBIT_COORDS(3, 13) 189 +QUBIT_COORDS(4, 12) 190 +QUBIT_COORDS(5, 13) 191 +QUBIT_COORDS(6, 12) 192 +QUBIT_COORDS(7, 13) 193 +QUBIT_COORDS(8, 12) 194 +QUBIT_COORDS(9, 13) 195 +QUBIT_COORDS(10, 12) 196 +QUBIT_COORDS(11, 13) 197 +QUBIT_COORDS(12, 12) 198 +QUBIT_COORDS(13, 13) 199 +QUBIT_COORDS(14, 12) 200 +QUBIT_COORDS(15, 13) 201 +QUBIT_COORDS(16, 12) 202 +QUBIT_COORDS(17, 13) 203 +QUBIT_COORDS(18, 12) 204 +QUBIT_COORDS(19, 13) 205 +QUBIT_COORDS(20, 12) 206 +QUBIT_COORDS(21, 13) 207 +QUBIT_COORDS(22, 12) 208 +QUBIT_COORDS(23, 13) 209 +QUBIT_COORDS(24, 12) 210 +QUBIT_COORDS(25, 13) 211 +QUBIT_COORDS(26, 12) 212 +QUBIT_COORDS(27, 13) 213 +QUBIT_COORDS(28, 12) 214 +QUBIT_COORDS(29, 13) 215 +QUBIT_COORDS(1, 15) 218 +QUBIT_COORDS(2, 14) 219 +QUBIT_COORDS(3, 15) 220 +QUBIT_COORDS(4, 14) 221 +QUBIT_COORDS(5, 15) 222 +QUBIT_COORDS(6, 14) 223 +QUBIT_COORDS(7, 15) 224 +QUBIT_COORDS(8, 14) 225 +QUBIT_COORDS(9, 15) 226 +QUBIT_COORDS(10, 14) 227 +QUBIT_COORDS(11, 15) 228 +QUBIT_COORDS(12, 14) 229 +QUBIT_COORDS(13, 15) 230 +QUBIT_COORDS(14, 14) 231 +QUBIT_COORDS(15, 15) 232 +QUBIT_COORDS(16, 14) 233 +QUBIT_COORDS(17, 15) 234 +QUBIT_COORDS(18, 14) 235 +QUBIT_COORDS(19, 15) 236 +QUBIT_COORDS(20, 14) 237 +QUBIT_COORDS(21, 15) 238 +QUBIT_COORDS(22, 14) 239 +QUBIT_COORDS(23, 15) 240 +QUBIT_COORDS(24, 14) 241 +QUBIT_COORDS(25, 15) 242 +QUBIT_COORDS(26, 14) 243 +QUBIT_COORDS(27, 15) 244 +QUBIT_COORDS(28, 14) 245 +QUBIT_COORDS(29, 15) 246 +QUBIT_COORDS(30, 14) 247 +QUBIT_COORDS(0, 16) 248 +QUBIT_COORDS(1, 17) 249 +QUBIT_COORDS(2, 16) 250 +QUBIT_COORDS(3, 17) 251 +QUBIT_COORDS(4, 16) 252 +QUBIT_COORDS(5, 17) 253 +QUBIT_COORDS(6, 16) 254 +QUBIT_COORDS(7, 17) 255 +QUBIT_COORDS(8, 16) 256 +QUBIT_COORDS(9, 17) 257 +QUBIT_COORDS(10, 16) 258 +QUBIT_COORDS(11, 17) 259 +QUBIT_COORDS(12, 16) 260 +QUBIT_COORDS(13, 17) 261 +QUBIT_COORDS(14, 16) 262 +QUBIT_COORDS(15, 17) 263 +QUBIT_COORDS(16, 16) 264 +QUBIT_COORDS(17, 17) 265 +QUBIT_COORDS(18, 16) 266 +QUBIT_COORDS(19, 17) 267 +QUBIT_COORDS(20, 16) 268 +QUBIT_COORDS(21, 17) 269 +QUBIT_COORDS(22, 16) 270 +QUBIT_COORDS(23, 17) 271 +QUBIT_COORDS(24, 16) 272 +QUBIT_COORDS(25, 17) 273 +QUBIT_COORDS(26, 16) 274 +QUBIT_COORDS(27, 17) 275 +QUBIT_COORDS(28, 16) 276 +QUBIT_COORDS(29, 17) 277 +QUBIT_COORDS(1, 19) 280 +QUBIT_COORDS(2, 18) 281 +QUBIT_COORDS(3, 19) 282 +QUBIT_COORDS(4, 18) 283 +QUBIT_COORDS(5, 19) 284 +QUBIT_COORDS(6, 18) 285 +QUBIT_COORDS(7, 19) 286 +QUBIT_COORDS(8, 18) 287 +QUBIT_COORDS(9, 19) 288 +QUBIT_COORDS(10, 18) 289 +QUBIT_COORDS(11, 19) 290 +QUBIT_COORDS(12, 18) 291 +QUBIT_COORDS(13, 19) 292 +QUBIT_COORDS(14, 18) 293 +QUBIT_COORDS(15, 19) 294 +QUBIT_COORDS(16, 18) 295 +QUBIT_COORDS(17, 19) 296 +QUBIT_COORDS(18, 18) 297 +QUBIT_COORDS(19, 19) 298 +QUBIT_COORDS(20, 18) 299 +QUBIT_COORDS(21, 19) 300 +QUBIT_COORDS(22, 18) 301 +QUBIT_COORDS(23, 19) 302 +QUBIT_COORDS(24, 18) 303 +QUBIT_COORDS(25, 19) 304 +QUBIT_COORDS(26, 18) 305 +QUBIT_COORDS(27, 19) 306 +QUBIT_COORDS(28, 18) 307 +QUBIT_COORDS(29, 19) 308 +QUBIT_COORDS(30, 18) 309 +QUBIT_COORDS(0, 20) 310 +QUBIT_COORDS(1, 21) 311 +QUBIT_COORDS(2, 20) 312 +QUBIT_COORDS(3, 21) 313 +QUBIT_COORDS(4, 20) 314 +QUBIT_COORDS(5, 21) 315 +QUBIT_COORDS(6, 20) 316 +QUBIT_COORDS(7, 21) 317 +QUBIT_COORDS(8, 20) 318 +QUBIT_COORDS(9, 21) 319 +QUBIT_COORDS(10, 20) 320 +QUBIT_COORDS(11, 21) 321 +QUBIT_COORDS(12, 20) 322 +QUBIT_COORDS(13, 21) 323 +QUBIT_COORDS(14, 20) 324 +QUBIT_COORDS(15, 21) 325 +QUBIT_COORDS(16, 20) 326 +QUBIT_COORDS(17, 21) 327 +QUBIT_COORDS(18, 20) 328 +QUBIT_COORDS(19, 21) 329 +QUBIT_COORDS(20, 20) 330 +QUBIT_COORDS(21, 21) 331 +QUBIT_COORDS(22, 20) 332 +QUBIT_COORDS(23, 21) 333 +QUBIT_COORDS(24, 20) 334 +QUBIT_COORDS(25, 21) 335 +QUBIT_COORDS(26, 20) 336 +QUBIT_COORDS(27, 21) 337 +QUBIT_COORDS(28, 20) 338 +QUBIT_COORDS(29, 21) 339 +QUBIT_COORDS(1, 23) 342 +QUBIT_COORDS(2, 22) 343 +QUBIT_COORDS(3, 23) 344 +QUBIT_COORDS(4, 22) 345 +QUBIT_COORDS(5, 23) 346 +QUBIT_COORDS(6, 22) 347 +QUBIT_COORDS(7, 23) 348 +QUBIT_COORDS(8, 22) 349 +QUBIT_COORDS(9, 23) 350 +QUBIT_COORDS(10, 22) 351 +QUBIT_COORDS(11, 23) 352 +QUBIT_COORDS(12, 22) 353 +QUBIT_COORDS(13, 23) 354 +QUBIT_COORDS(14, 22) 355 +QUBIT_COORDS(15, 23) 356 +QUBIT_COORDS(16, 22) 357 +QUBIT_COORDS(17, 23) 358 +QUBIT_COORDS(18, 22) 359 +QUBIT_COORDS(19, 23) 360 +QUBIT_COORDS(20, 22) 361 +QUBIT_COORDS(21, 23) 362 +QUBIT_COORDS(22, 22) 363 +QUBIT_COORDS(23, 23) 364 +QUBIT_COORDS(24, 22) 365 +QUBIT_COORDS(25, 23) 366 +QUBIT_COORDS(26, 22) 367 +QUBIT_COORDS(27, 23) 368 +QUBIT_COORDS(28, 22) 369 +QUBIT_COORDS(29, 23) 370 +QUBIT_COORDS(30, 22) 371 +QUBIT_COORDS(0, 24) 372 +QUBIT_COORDS(1, 25) 373 +QUBIT_COORDS(2, 24) 374 +QUBIT_COORDS(3, 25) 375 +QUBIT_COORDS(4, 24) 376 +QUBIT_COORDS(5, 25) 377 +QUBIT_COORDS(6, 24) 378 +QUBIT_COORDS(7, 25) 379 +QUBIT_COORDS(8, 24) 380 +QUBIT_COORDS(9, 25) 381 +QUBIT_COORDS(10, 24) 382 +QUBIT_COORDS(11, 25) 383 +QUBIT_COORDS(12, 24) 384 +QUBIT_COORDS(13, 25) 385 +QUBIT_COORDS(14, 24) 386 +QUBIT_COORDS(15, 25) 387 +QUBIT_COORDS(16, 24) 388 +QUBIT_COORDS(17, 25) 389 +QUBIT_COORDS(18, 24) 390 +QUBIT_COORDS(19, 25) 391 +QUBIT_COORDS(20, 24) 392 +QUBIT_COORDS(21, 25) 393 +QUBIT_COORDS(22, 24) 394 +QUBIT_COORDS(23, 25) 395 +QUBIT_COORDS(24, 24) 396 +QUBIT_COORDS(25, 25) 397 +QUBIT_COORDS(26, 24) 398 +QUBIT_COORDS(27, 25) 399 +QUBIT_COORDS(28, 24) 400 +QUBIT_COORDS(29, 25) 401 +QUBIT_COORDS(1, 27) 404 +QUBIT_COORDS(2, 26) 405 +QUBIT_COORDS(3, 27) 406 +QUBIT_COORDS(4, 26) 407 +QUBIT_COORDS(5, 27) 408 +QUBIT_COORDS(6, 26) 409 +QUBIT_COORDS(7, 27) 410 +QUBIT_COORDS(8, 26) 411 +QUBIT_COORDS(9, 27) 412 +QUBIT_COORDS(10, 26) 413 +QUBIT_COORDS(11, 27) 414 +QUBIT_COORDS(12, 26) 415 +QUBIT_COORDS(13, 27) 416 +QUBIT_COORDS(14, 26) 417 +QUBIT_COORDS(15, 27) 418 +QUBIT_COORDS(16, 26) 419 +QUBIT_COORDS(17, 27) 420 +QUBIT_COORDS(18, 26) 421 +QUBIT_COORDS(19, 27) 422 +QUBIT_COORDS(20, 26) 423 +QUBIT_COORDS(21, 27) 424 +QUBIT_COORDS(22, 26) 425 +QUBIT_COORDS(23, 27) 426 +QUBIT_COORDS(24, 26) 427 +QUBIT_COORDS(25, 27) 428 +QUBIT_COORDS(26, 26) 429 +QUBIT_COORDS(27, 27) 430 +QUBIT_COORDS(28, 26) 431 +QUBIT_COORDS(29, 27) 432 +QUBIT_COORDS(30, 26) 433 +QUBIT_COORDS(0, 28) 434 +QUBIT_COORDS(1, 29) 435 +QUBIT_COORDS(2, 28) 436 +QUBIT_COORDS(3, 29) 437 +QUBIT_COORDS(4, 28) 438 +QUBIT_COORDS(5, 29) 439 +QUBIT_COORDS(6, 28) 440 +QUBIT_COORDS(7, 29) 441 +QUBIT_COORDS(8, 28) 442 +QUBIT_COORDS(9, 29) 443 +QUBIT_COORDS(10, 28) 444 +QUBIT_COORDS(11, 29) 445 +QUBIT_COORDS(12, 28) 446 +QUBIT_COORDS(13, 29) 447 +QUBIT_COORDS(14, 28) 448 +QUBIT_COORDS(15, 29) 449 +QUBIT_COORDS(16, 28) 450 +QUBIT_COORDS(17, 29) 451 +QUBIT_COORDS(18, 28) 452 +QUBIT_COORDS(19, 29) 453 +QUBIT_COORDS(20, 28) 454 +QUBIT_COORDS(21, 29) 455 +QUBIT_COORDS(22, 28) 456 +QUBIT_COORDS(23, 29) 457 +QUBIT_COORDS(24, 28) 458 +QUBIT_COORDS(25, 29) 459 +QUBIT_COORDS(26, 28) 460 +QUBIT_COORDS(27, 29) 461 +QUBIT_COORDS(28, 28) 462 +QUBIT_COORDS(29, 29) 463 +QUBIT_COORDS(4, 30) 469 +QUBIT_COORDS(8, 30) 473 +QUBIT_COORDS(12, 30) 477 +QUBIT_COORDS(16, 30) 481 +QUBIT_COORDS(20, 30) 485 +QUBIT_COORDS(24, 30) 489 +QUBIT_COORDS(28, 30) 493 +R 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 94 96 98 100 102 104 106 108 110 112 114 116 118 120 122 125 127 129 131 133 135 137 139 141 143 145 147 149 151 153 156 158 160 162 164 166 168 170 172 174 176 178 180 182 184 187 189 191 193 195 197 199 201 203 205 207 209 211 213 215 218 220 222 224 226 228 230 232 234 236 238 240 242 244 246 249 251 253 255 257 259 261 263 265 267 269 271 273 275 277 280 282 284 286 288 290 292 294 296 298 300 302 304 306 308 311 313 315 317 319 321 323 325 327 329 331 333 335 337 339 342 344 346 348 350 352 354 356 358 360 362 364 366 368 370 373 375 377 379 381 383 385 387 389 391 393 395 397 399 401 404 406 408 410 412 414 416 418 420 422 424 426 428 430 432 435 437 439 441 443 445 447 449 451 453 455 457 459 461 463 +X_ERROR(0.001) 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 94 96 98 100 102 104 106 108 110 112 114 116 118 120 122 125 127 129 131 133 135 137 139 141 143 145 147 149 151 153 156 158 160 162 164 166 168 170 172 174 176 178 180 182 184 187 189 191 193 195 197 199 201 203 205 207 209 211 213 215 218 220 222 224 226 228 230 232 234 236 238 240 242 244 246 249 251 253 255 257 259 261 263 265 267 269 271 273 275 277 280 282 284 286 288 290 292 294 296 298 300 302 304 306 308 311 313 315 317 319 321 323 325 327 329 331 333 335 337 339 342 344 346 348 350 352 354 356 358 360 362 364 366 368 370 373 375 377 379 381 383 385 387 389 391 393 395 397 399 401 404 406 408 410 412 414 416 418 420 422 424 426 428 430 432 435 437 439 441 443 445 447 449 451 453 455 457 459 461 463 +R 2 6 10 14 18 22 26 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 95 97 99 101 103 105 107 109 111 113 115 117 119 121 123 124 126 128 130 132 134 136 138 140 142 144 146 148 150 152 157 159 161 163 165 167 169 171 173 175 177 179 181 183 185 186 188 190 192 194 196 198 200 202 204 206 208 210 212 214 219 221 223 225 227 229 231 233 235 237 239 241 243 245 247 248 250 252 254 256 258 260 262 264 266 268 270 272 274 276 281 283 285 287 289 291 293 295 297 299 301 303 305 307 309 310 312 314 316 318 320 322 324 326 328 330 332 334 336 338 343 345 347 349 351 353 355 357 359 361 363 365 367 369 371 372 374 376 378 380 382 384 386 388 390 392 394 396 398 400 405 407 409 411 413 415 417 419 421 423 425 427 429 431 433 434 436 438 440 442 444 446 448 450 452 454 456 458 460 462 469 473 477 481 485 489 493 +X_ERROR(0.001) 2 6 10 14 18 22 26 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 95 97 99 101 103 105 107 109 111 113 115 117 119 121 123 124 126 128 130 132 134 136 138 140 142 144 146 148 150 152 157 159 161 163 165 167 169 171 173 175 177 179 181 183 185 186 188 190 192 194 196 198 200 202 204 206 208 210 212 214 219 221 223 225 227 229 231 233 235 237 239 241 243 245 247 248 250 252 254 256 258 260 262 264 266 268 270 272 274 276 281 283 285 287 289 291 293 295 297 299 301 303 305 307 309 310 312 314 316 318 320 322 324 326 328 330 332 334 336 338 343 345 347 349 351 353 355 357 359 361 363 365 367 369 371 372 374 376 378 380 382 384 386 388 390 392 394 396 398 400 405 407 409 411 413 415 417 419 421 423 425 427 429 431 433 434 436 438 440 442 444 446 448 450 452 454 456 458 460 462 469 473 477 481 485 489 493 +TICK +DEPOLARIZE1(0.001) 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 94 96 98 100 102 104 106 108 110 112 114 116 118 120 122 125 127 129 131 133 135 137 139 141 143 145 147 149 151 153 156 158 160 162 164 166 168 170 172 174 176 178 180 182 184 187 189 191 193 195 197 199 201 203 205 207 209 211 213 215 218 220 222 224 226 228 230 232 234 236 238 240 242 244 246 249 251 253 255 257 259 261 263 265 267 269 271 273 275 277 280 282 284 286 288 290 292 294 296 298 300 302 304 306 308 311 313 315 317 319 321 323 325 327 329 331 333 335 337 339 342 344 346 348 350 352 354 356 358 360 362 364 366 368 370 373 375 377 379 381 383 385 387 389 391 393 395 397 399 401 404 406 408 410 412 414 416 418 420 422 424 426 428 430 432 435 437 439 441 443 445 447 449 451 453 455 457 459 461 463 +H 2 6 10 14 18 22 26 35 39 43 47 51 55 59 64 68 72 76 80 84 88 97 101 105 109 113 117 121 126 130 134 138 142 146 150 159 163 167 171 175 179 183 188 192 196 200 204 208 212 221 225 229 233 237 241 245 250 254 258 262 266 270 274 283 287 291 295 299 303 307 312 316 320 324 328 332 336 345 349 353 357 361 365 369 374 378 382 386 390 394 398 407 411 415 419 423 427 431 436 440 444 448 452 456 460 469 473 477 481 485 489 493 +DEPOLARIZE1(0.001) 2 6 10 14 18 22 26 35 39 43 47 51 55 59 64 68 72 76 80 84 88 97 101 105 109 113 117 121 126 130 134 138 142 146 150 159 163 167 171 175 179 183 188 192 196 200 204 208 212 221 225 229 233 237 241 245 250 254 258 262 266 270 274 283 287 291 295 299 303 307 312 316 320 324 328 332 336 345 349 353 357 361 365 369 374 378 382 386 390 394 398 407 411 415 419 423 427 431 436 440 444 448 452 456 460 469 473 477 481 485 489 493 +TICK +CX 2 3 64 65 126 127 188 189 250 251 312 313 374 375 436 437 35 36 97 98 159 160 221 222 283 284 345 346 407 408 6 7 68 69 130 131 192 193 254 255 316 317 378 379 440 441 39 40 101 102 163 164 225 226 287 288 349 350 411 412 10 11 72 73 134 135 196 197 258 259 320 321 382 383 444 445 43 44 105 106 167 168 229 230 291 292 353 354 415 416 14 15 76 77 138 139 200 201 262 263 324 325 386 387 448 449 47 48 109 110 171 172 233 234 295 296 357 358 419 420 18 19 80 81 142 143 204 205 266 267 328 329 390 391 452 453 51 52 113 114 175 176 237 238 299 300 361 362 423 424 22 23 84 85 146 147 208 209 270 271 332 333 394 395 456 457 55 56 117 118 179 180 241 242 303 304 365 366 427 428 26 27 88 89 150 151 212 213 274 275 336 337 398 399 460 461 59 60 121 122 183 184 245 246 307 308 369 370 431 432 63 62 125 124 187 186 249 248 311 310 373 372 435 434 34 33 96 95 158 157 220 219 282 281 344 343 406 405 67 66 129 128 191 190 253 252 315 314 377 376 439 438 38 37 100 99 162 161 224 223 286 285 348 347 410 409 71 70 133 132 195 194 257 256 319 318 381 380 443 442 42 41 104 103 166 165 228 227 290 289 352 351 414 413 75 74 137 136 199 198 261 260 323 322 385 384 447 446 46 45 108 107 170 169 232 231 294 293 356 355 418 417 79 78 141 140 203 202 265 264 327 326 389 388 451 450 50 49 112 111 174 173 236 235 298 297 360 359 422 421 83 82 145 144 207 206 269 268 331 330 393 392 455 454 54 53 116 115 178 177 240 239 302 301 364 363 426 425 87 86 149 148 211 210 273 272 335 334 397 396 459 458 58 57 120 119 182 181 244 243 306 305 368 367 430 429 91 90 153 152 215 214 277 276 339 338 401 400 463 462 +DEPOLARIZE2(0.001) 2 3 64 65 126 127 188 189 250 251 312 313 374 375 436 437 35 36 97 98 159 160 221 222 283 284 345 346 407 408 6 7 68 69 130 131 192 193 254 255 316 317 378 379 440 441 39 40 101 102 163 164 225 226 287 288 349 350 411 412 10 11 72 73 134 135 196 197 258 259 320 321 382 383 444 445 43 44 105 106 167 168 229 230 291 292 353 354 415 416 14 15 76 77 138 139 200 201 262 263 324 325 386 387 448 449 47 48 109 110 171 172 233 234 295 296 357 358 419 420 18 19 80 81 142 143 204 205 266 267 328 329 390 391 452 453 51 52 113 114 175 176 237 238 299 300 361 362 423 424 22 23 84 85 146 147 208 209 270 271 332 333 394 395 456 457 55 56 117 118 179 180 241 242 303 304 365 366 427 428 26 27 88 89 150 151 212 213 274 275 336 337 398 399 460 461 59 60 121 122 183 184 245 246 307 308 369 370 431 432 63 62 125 124 187 186 249 248 311 310 373 372 435 434 34 33 96 95 158 157 220 219 282 281 344 343 406 405 67 66 129 128 191 190 253 252 315 314 377 376 439 438 38 37 100 99 162 161 224 223 286 285 348 347 410 409 71 70 133 132 195 194 257 256 319 318 381 380 443 442 42 41 104 103 166 165 228 227 290 289 352 351 414 413 75 74 137 136 199 198 261 260 323 322 385 384 447 446 46 45 108 107 170 169 232 231 294 293 356 355 418 417 79 78 141 140 203 202 265 264 327 326 389 388 451 450 50 49 112 111 174 173 236 235 298 297 360 359 422 421 83 82 145 144 207 206 269 268 331 330 393 392 455 454 54 53 116 115 178 177 240 239 302 301 364 363 426 425 87 86 149 148 211 210 273 272 335 334 397 396 459 458 58 57 120 119 182 181 244 243 306 305 368 367 430 429 91 90 153 152 215 214 277 276 339 338 401 400 463 462 +TICK +CX 2 1 64 63 126 125 188 187 250 249 312 311 374 373 436 435 35 34 97 96 159 158 221 220 283 282 345 344 407 406 6 5 68 67 130 129 192 191 254 253 316 315 378 377 440 439 39 38 101 100 163 162 225 224 287 286 349 348 411 410 10 9 72 71 134 133 196 195 258 257 320 319 382 381 444 443 43 42 105 104 167 166 229 228 291 290 353 352 415 414 14 13 76 75 138 137 200 199 262 261 324 323 386 385 448 447 47 46 109 108 171 170 233 232 295 294 357 356 419 418 18 17 80 79 142 141 204 203 266 265 328 327 390 389 452 451 51 50 113 112 175 174 237 236 299 298 361 360 423 422 22 21 84 83 146 145 208 207 270 269 332 331 394 393 456 455 55 54 117 116 179 178 241 240 303 302 365 364 427 426 26 25 88 87 150 149 212 211 274 273 336 335 398 397 460 459 59 58 121 120 183 182 245 244 307 306 369 368 431 430 32 62 94 124 156 186 218 248 280 310 342 372 404 434 3 33 65 95 127 157 189 219 251 281 313 343 375 405 36 66 98 128 160 190 222 252 284 314 346 376 408 438 7 37 69 99 131 161 193 223 255 285 317 347 379 409 40 70 102 132 164 194 226 256 288 318 350 380 412 442 11 41 73 103 135 165 197 227 259 289 321 351 383 413 44 74 106 136 168 198 230 260 292 322 354 384 416 446 15 45 77 107 139 169 201 231 263 293 325 355 387 417 48 78 110 140 172 202 234 264 296 326 358 388 420 450 19 49 81 111 143 173 205 235 267 297 329 359 391 421 52 82 114 144 176 206 238 268 300 330 362 392 424 454 23 53 85 115 147 177 209 239 271 301 333 363 395 425 56 86 118 148 180 210 242 272 304 334 366 396 428 458 27 57 89 119 151 181 213 243 275 305 337 367 399 429 60 90 122 152 184 214 246 276 308 338 370 400 432 462 +DEPOLARIZE2(0.001) 2 1 64 63 126 125 188 187 250 249 312 311 374 373 436 435 35 34 97 96 159 158 221 220 283 282 345 344 407 406 6 5 68 67 130 129 192 191 254 253 316 315 378 377 440 439 39 38 101 100 163 162 225 224 287 286 349 348 411 410 10 9 72 71 134 133 196 195 258 257 320 319 382 381 444 443 43 42 105 104 167 166 229 228 291 290 353 352 415 414 14 13 76 75 138 137 200 199 262 261 324 323 386 385 448 447 47 46 109 108 171 170 233 232 295 294 357 356 419 418 18 17 80 79 142 141 204 203 266 265 328 327 390 389 452 451 51 50 113 112 175 174 237 236 299 298 361 360 423 422 22 21 84 83 146 145 208 207 270 269 332 331 394 393 456 455 55 54 117 116 179 178 241 240 303 302 365 364 427 426 26 25 88 87 150 149 212 211 274 273 336 335 398 397 460 459 59 58 121 120 183 182 245 244 307 306 369 368 431 430 32 62 94 124 156 186 218 248 280 310 342 372 404 434 3 33 65 95 127 157 189 219 251 281 313 343 375 405 36 66 98 128 160 190 222 252 284 314 346 376 408 438 7 37 69 99 131 161 193 223 255 285 317 347 379 409 40 70 102 132 164 194 226 256 288 318 350 380 412 442 11 41 73 103 135 165 197 227 259 289 321 351 383 413 44 74 106 136 168 198 230 260 292 322 354 384 416 446 15 45 77 107 139 169 201 231 263 293 325 355 387 417 48 78 110 140 172 202 234 264 296 326 358 388 420 450 19 49 81 111 143 173 205 235 267 297 329 359 391 421 52 82 114 144 176 206 238 268 300 330 362 392 424 454 23 53 85 115 147 177 209 239 271 301 333 363 395 425 56 86 118 148 180 210 242 272 304 334 366 396 428 458 27 57 89 119 151 181 213 243 275 305 337 367 399 429 60 90 122 152 184 214 246 276 308 338 370 400 432 462 +TICK +CX 64 34 126 96 188 158 250 220 312 282 374 344 436 406 35 5 97 67 159 129 221 191 283 253 345 315 407 377 469 439 68 38 130 100 192 162 254 224 316 286 378 348 440 410 39 9 101 71 163 133 225 195 287 257 349 319 411 381 473 443 72 42 134 104 196 166 258 228 320 290 382 352 444 414 43 13 105 75 167 137 229 199 291 261 353 323 415 385 477 447 76 46 138 108 200 170 262 232 324 294 386 356 448 418 47 17 109 79 171 141 233 203 295 265 357 327 419 389 481 451 80 50 142 112 204 174 266 236 328 298 390 360 452 422 51 21 113 83 175 145 237 207 299 269 361 331 423 393 485 455 84 54 146 116 208 178 270 240 332 302 394 364 456 426 55 25 117 87 179 149 241 211 303 273 365 335 427 397 489 459 88 58 150 120 212 182 274 244 336 306 398 368 460 430 59 29 121 91 183 153 245 215 307 277 369 339 431 401 493 463 32 33 94 95 156 157 218 219 280 281 342 343 404 405 65 66 127 128 189 190 251 252 313 314 375 376 437 438 36 37 98 99 160 161 222 223 284 285 346 347 408 409 69 70 131 132 193 194 255 256 317 318 379 380 441 442 40 41 102 103 164 165 226 227 288 289 350 351 412 413 73 74 135 136 197 198 259 260 321 322 383 384 445 446 44 45 106 107 168 169 230 231 292 293 354 355 416 417 77 78 139 140 201 202 263 264 325 326 387 388 449 450 48 49 110 111 172 173 234 235 296 297 358 359 420 421 81 82 143 144 205 206 267 268 329 330 391 392 453 454 52 53 114 115 176 177 238 239 300 301 362 363 424 425 85 86 147 148 209 210 271 272 333 334 395 396 457 458 56 57 118 119 180 181 242 243 304 305 366 367 428 429 89 90 151 152 213 214 275 276 337 338 399 400 461 462 60 61 122 123 184 185 246 247 308 309 370 371 432 433 +DEPOLARIZE2(0.001) 64 34 126 96 188 158 250 220 312 282 374 344 436 406 35 5 97 67 159 129 221 191 283 253 345 315 407 377 469 439 68 38 130 100 192 162 254 224 316 286 378 348 440 410 39 9 101 71 163 133 225 195 287 257 349 319 411 381 473 443 72 42 134 104 196 166 258 228 320 290 382 352 444 414 43 13 105 75 167 137 229 199 291 261 353 323 415 385 477 447 76 46 138 108 200 170 262 232 324 294 386 356 448 418 47 17 109 79 171 141 233 203 295 265 357 327 419 389 481 451 80 50 142 112 204 174 266 236 328 298 390 360 452 422 51 21 113 83 175 145 237 207 299 269 361 331 423 393 485 455 84 54 146 116 208 178 270 240 332 302 394 364 456 426 55 25 117 87 179 149 241 211 303 273 365 335 427 397 489 459 88 58 150 120 212 182 274 244 336 306 398 368 460 430 59 29 121 91 183 153 245 215 307 277 369 339 431 401 493 463 32 33 94 95 156 157 218 219 280 281 342 343 404 405 65 66 127 128 189 190 251 252 313 314 375 376 437 438 36 37 98 99 160 161 222 223 284 285 346 347 408 409 69 70 131 132 193 194 255 256 317 318 379 380 441 442 40 41 102 103 164 165 226 227 288 289 350 351 412 413 73 74 135 136 197 198 259 260 321 322 383 384 445 446 44 45 106 107 168 169 230 231 292 293 354 355 416 417 77 78 139 140 201 202 263 264 325 326 387 388 449 450 48 49 110 111 172 173 234 235 296 297 358 359 420 421 81 82 143 144 205 206 267 268 329 330 391 392 453 454 52 53 114 115 176 177 238 239 300 301 362 363 424 425 85 86 147 148 209 210 271 272 333 334 395 396 457 458 56 57 118 119 180 181 242 243 304 305 366 367 428 429 89 90 151 152 213 214 275 276 337 338 399 400 461 462 60 61 122 123 184 185 246 247 308 309 370 371 432 433 +TICK +CX 64 32 126 94 188 156 250 218 312 280 374 342 436 404 35 3 97 65 159 127 221 189 283 251 345 313 407 375 469 437 68 36 130 98 192 160 254 222 316 284 378 346 440 408 39 7 101 69 163 131 225 193 287 255 349 317 411 379 473 441 72 40 134 102 196 164 258 226 320 288 382 350 444 412 43 11 105 73 167 135 229 197 291 259 353 321 415 383 477 445 76 44 138 106 200 168 262 230 324 292 386 354 448 416 47 15 109 77 171 139 233 201 295 263 357 325 419 387 481 449 80 48 142 110 204 172 266 234 328 296 390 358 452 420 51 19 113 81 175 143 237 205 299 267 361 329 423 391 485 453 84 52 146 114 208 176 270 238 332 300 394 362 456 424 55 23 117 85 179 147 241 209 303 271 365 333 427 395 489 457 88 56 150 118 212 180 274 242 336 304 398 366 460 428 59 27 121 89 183 151 245 213 307 275 369 337 431 399 493 461 1 33 63 95 125 157 187 219 249 281 311 343 373 405 34 66 96 128 158 190 220 252 282 314 344 376 406 438 5 37 67 99 129 161 191 223 253 285 315 347 377 409 38 70 100 132 162 194 224 256 286 318 348 380 410 442 9 41 71 103 133 165 195 227 257 289 319 351 381 413 42 74 104 136 166 198 228 260 290 322 352 384 414 446 13 45 75 107 137 169 199 231 261 293 323 355 385 417 46 78 108 140 170 202 232 264 294 326 356 388 418 450 17 49 79 111 141 173 203 235 265 297 327 359 389 421 50 82 112 144 174 206 236 268 298 330 360 392 422 454 21 53 83 115 145 177 207 239 269 301 331 363 393 425 54 86 116 148 178 210 240 272 302 334 364 396 426 458 25 57 87 119 149 181 211 243 273 305 335 367 397 429 58 90 120 152 182 214 244 276 306 338 368 400 430 462 29 61 91 123 153 185 215 247 277 309 339 371 401 433 +DEPOLARIZE2(0.001) 64 32 126 94 188 156 250 218 312 280 374 342 436 404 35 3 97 65 159 127 221 189 283 251 345 313 407 375 469 437 68 36 130 98 192 160 254 222 316 284 378 346 440 408 39 7 101 69 163 131 225 193 287 255 349 317 411 379 473 441 72 40 134 102 196 164 258 226 320 288 382 350 444 412 43 11 105 73 167 135 229 197 291 259 353 321 415 383 477 445 76 44 138 106 200 168 262 230 324 292 386 354 448 416 47 15 109 77 171 139 233 201 295 263 357 325 419 387 481 449 80 48 142 110 204 172 266 234 328 296 390 358 452 420 51 19 113 81 175 143 237 205 299 267 361 329 423 391 485 453 84 52 146 114 208 176 270 238 332 300 394 362 456 424 55 23 117 85 179 147 241 209 303 271 365 333 427 395 489 457 88 56 150 118 212 180 274 242 336 304 398 366 460 428 59 27 121 89 183 151 245 213 307 275 369 337 431 399 493 461 1 33 63 95 125 157 187 219 249 281 311 343 373 405 34 66 96 128 158 190 220 252 282 314 344 376 406 438 5 37 67 99 129 161 191 223 253 285 315 347 377 409 38 70 100 132 162 194 224 256 286 318 348 380 410 442 9 41 71 103 133 165 195 227 257 289 319 351 381 413 42 74 104 136 166 198 228 260 290 322 352 384 414 446 13 45 75 107 137 169 199 231 261 293 323 355 385 417 46 78 108 140 170 202 232 264 294 326 356 388 418 450 17 49 79 111 141 173 203 235 265 297 327 359 389 421 50 82 112 144 174 206 236 268 298 330 360 392 422 454 21 53 83 115 145 177 207 239 269 301 331 363 393 425 54 86 116 148 178 210 240 272 302 334 364 396 426 458 25 57 87 119 149 181 211 243 273 305 335 367 397 429 58 90 120 152 182 214 244 276 306 338 368 400 430 462 29 61 91 123 153 185 215 247 277 309 339 371 401 433 +TICK +H 2 6 10 14 18 22 26 35 39 43 47 51 55 59 64 68 72 76 80 84 88 97 101 105 109 113 117 121 126 130 134 138 142 146 150 159 163 167 171 175 179 183 188 192 196 200 204 208 212 221 225 229 233 237 241 245 250 254 258 262 266 270 274 283 287 291 295 299 303 307 312 316 320 324 328 332 336 345 349 353 357 361 365 369 374 378 382 386 390 394 398 407 411 415 419 423 427 431 436 440 444 448 452 456 460 469 473 477 481 485 489 493 +DEPOLARIZE1(0.001) 2 6 10 14 18 22 26 35 39 43 47 51 55 59 64 68 72 76 80 84 88 97 101 105 109 113 117 121 126 130 134 138 142 146 150 159 163 167 171 175 179 183 188 192 196 200 204 208 212 221 225 229 233 237 241 245 250 254 258 262 266 270 274 283 287 291 295 299 303 307 312 316 320 324 328 332 336 345 349 353 357 361 365 369 374 378 382 386 390 394 398 407 411 415 419 423 427 431 436 440 444 448 452 456 460 469 473 477 481 485 489 493 +TICK +X_ERROR(0.001) 2 6 10 14 18 22 26 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 95 97 99 101 103 105 107 109 111 113 115 117 119 121 123 124 126 128 130 132 134 136 138 140 142 144 146 148 150 152 157 159 161 163 165 167 169 171 173 175 177 179 181 183 185 186 188 190 192 194 196 198 200 202 204 206 208 210 212 214 219 221 223 225 227 229 231 233 235 237 239 241 243 245 247 248 250 252 254 256 258 260 262 264 266 268 270 272 274 276 281 283 285 287 289 291 293 295 297 299 301 303 305 307 309 310 312 314 316 318 320 322 324 326 328 330 332 334 336 338 343 345 347 349 351 353 355 357 359 361 363 365 367 369 371 372 374 376 378 380 382 384 386 388 390 392 394 396 398 400 405 407 409 411 413 415 417 419 421 423 425 427 429 431 433 434 436 438 440 442 444 446 448 450 452 454 456 458 460 462 469 473 477 481 485 489 493 +MR 2 6 10 14 18 22 26 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 95 97 99 101 103 105 107 109 111 113 115 117 119 121 123 124 126 128 130 132 134 136 138 140 142 144 146 148 150 152 157 159 161 163 165 167 169 171 173 175 177 179 181 183 185 186 188 190 192 194 196 198 200 202 204 206 208 210 212 214 219 221 223 225 227 229 231 233 235 237 239 241 243 245 247 248 250 252 254 256 258 260 262 264 266 268 270 272 274 276 281 283 285 287 289 291 293 295 297 299 301 303 305 307 309 310 312 314 316 318 320 322 324 326 328 330 332 334 336 338 343 345 347 349 351 353 355 357 359 361 363 365 367 369 371 372 374 376 378 380 382 384 386 388 390 392 394 396 398 400 405 407 409 411 413 415 417 419 421 423 425 427 429 431 433 434 436 438 440 442 444 446 448 450 452 454 456 458 460 462 469 473 477 481 485 489 493 +X_ERROR(0.001) 2 6 10 14 18 22 26 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 95 97 99 101 103 105 107 109 111 113 115 117 119 121 123 124 126 128 130 132 134 136 138 140 142 144 146 148 150 152 157 159 161 163 165 167 169 171 173 175 177 179 181 183 185 186 188 190 192 194 196 198 200 202 204 206 208 210 212 214 219 221 223 225 227 229 231 233 235 237 239 241 243 245 247 248 250 252 254 256 258 260 262 264 266 268 270 272 274 276 281 283 285 287 289 291 293 295 297 299 301 303 305 307 309 310 312 314 316 318 320 322 324 326 328 330 332 334 336 338 343 345 347 349 351 353 355 357 359 361 363 365 367 369 371 372 374 376 378 380 382 384 386 388 390 392 394 396 398 400 405 407 409 411 413 415 417 419 421 423 425 427 429 431 433 434 436 438 440 442 444 446 448 450 452 454 456 458 460 462 469 473 477 481 485 489 493 +DETECTOR(0, 4, 0) rec[-202] +DETECTOR(0, 8, 0) rec[-172] +DETECTOR(0, 12, 0) rec[-142] +DETECTOR(0, 16, 0) rec[-112] +DETECTOR(0, 20, 0) rec[-82] +DETECTOR(0, 24, 0) rec[-52] +DETECTOR(0, 28, 0) rec[-22] +DETECTOR(2, 2, 0) rec[-217] +DETECTOR(2, 6, 0) rec[-187] +DETECTOR(2, 10, 0) rec[-157] +DETECTOR(2, 14, 0) rec[-127] +DETECTOR(2, 18, 0) rec[-97] +DETECTOR(2, 22, 0) rec[-67] +DETECTOR(2, 26, 0) rec[-37] +DETECTOR(4, 4, 0) rec[-200] +DETECTOR(4, 8, 0) rec[-170] +DETECTOR(4, 12, 0) rec[-140] +DETECTOR(4, 16, 0) rec[-110] +DETECTOR(4, 20, 0) rec[-80] +DETECTOR(4, 24, 0) rec[-50] +DETECTOR(4, 28, 0) rec[-20] +DETECTOR(6, 2, 0) rec[-215] +DETECTOR(6, 6, 0) rec[-185] +DETECTOR(6, 10, 0) rec[-155] +DETECTOR(6, 14, 0) rec[-125] +DETECTOR(6, 18, 0) rec[-95] +DETECTOR(6, 22, 0) rec[-65] +DETECTOR(6, 26, 0) rec[-35] +DETECTOR(8, 4, 0) rec[-198] +DETECTOR(8, 8, 0) rec[-168] +DETECTOR(8, 12, 0) rec[-138] +DETECTOR(8, 16, 0) rec[-108] +DETECTOR(8, 20, 0) rec[-78] +DETECTOR(8, 24, 0) rec[-48] +DETECTOR(8, 28, 0) rec[-18] +DETECTOR(10, 2, 0) rec[-213] +DETECTOR(10, 6, 0) rec[-183] +DETECTOR(10, 10, 0) rec[-153] +DETECTOR(10, 14, 0) rec[-123] +DETECTOR(10, 18, 0) rec[-93] +DETECTOR(10, 22, 0) rec[-63] +DETECTOR(10, 26, 0) rec[-33] +DETECTOR(12, 4, 0) rec[-196] +DETECTOR(12, 8, 0) rec[-166] +DETECTOR(12, 12, 0) rec[-136] +DETECTOR(12, 16, 0) rec[-106] +DETECTOR(12, 20, 0) rec[-76] +DETECTOR(12, 24, 0) rec[-46] +DETECTOR(12, 28, 0) rec[-16] +DETECTOR(14, 2, 0) rec[-211] +DETECTOR(14, 6, 0) rec[-181] +DETECTOR(14, 10, 0) rec[-151] +DETECTOR(14, 14, 0) rec[-121] +DETECTOR(14, 18, 0) rec[-91] +DETECTOR(14, 22, 0) rec[-61] +DETECTOR(14, 26, 0) rec[-31] +DETECTOR(16, 4, 0) rec[-194] +DETECTOR(16, 8, 0) rec[-164] +DETECTOR(16, 12, 0) rec[-134] +DETECTOR(16, 16, 0) rec[-104] +DETECTOR(16, 20, 0) rec[-74] +DETECTOR(16, 24, 0) rec[-44] +DETECTOR(16, 28, 0) rec[-14] +DETECTOR(18, 2, 0) rec[-209] +DETECTOR(18, 6, 0) rec[-179] +DETECTOR(18, 10, 0) rec[-149] +DETECTOR(18, 14, 0) rec[-119] +DETECTOR(18, 18, 0) rec[-89] +DETECTOR(18, 22, 0) rec[-59] +DETECTOR(18, 26, 0) rec[-29] +DETECTOR(20, 4, 0) rec[-192] +DETECTOR(20, 8, 0) rec[-162] +DETECTOR(20, 12, 0) rec[-132] +DETECTOR(20, 16, 0) rec[-102] +DETECTOR(20, 20, 0) rec[-72] +DETECTOR(20, 24, 0) rec[-42] +DETECTOR(20, 28, 0) rec[-12] +DETECTOR(22, 2, 0) rec[-207] +DETECTOR(22, 6, 0) rec[-177] +DETECTOR(22, 10, 0) rec[-147] +DETECTOR(22, 14, 0) rec[-117] +DETECTOR(22, 18, 0) rec[-87] +DETECTOR(22, 22, 0) rec[-57] +DETECTOR(22, 26, 0) rec[-27] +DETECTOR(24, 4, 0) rec[-190] +DETECTOR(24, 8, 0) rec[-160] +DETECTOR(24, 12, 0) rec[-130] +DETECTOR(24, 16, 0) rec[-100] +DETECTOR(24, 20, 0) rec[-70] +DETECTOR(24, 24, 0) rec[-40] +DETECTOR(24, 28, 0) rec[-10] +DETECTOR(26, 2, 0) rec[-205] +DETECTOR(26, 6, 0) rec[-175] +DETECTOR(26, 10, 0) rec[-145] +DETECTOR(26, 14, 0) rec[-115] +DETECTOR(26, 18, 0) rec[-85] +DETECTOR(26, 22, 0) rec[-55] +DETECTOR(26, 26, 0) rec[-25] +DETECTOR(28, 4, 0) rec[-188] +DETECTOR(28, 8, 0) rec[-158] +DETECTOR(28, 12, 0) rec[-128] +DETECTOR(28, 16, 0) rec[-98] +DETECTOR(28, 20, 0) rec[-68] +DETECTOR(28, 24, 0) rec[-38] +DETECTOR(28, 28, 0) rec[-8] +DETECTOR(30, 2, 0) rec[-203] +DETECTOR(30, 6, 0) rec[-173] +DETECTOR(30, 10, 0) rec[-143] +DETECTOR(30, 14, 0) rec[-113] +DETECTOR(30, 18, 0) rec[-83] +DETECTOR(30, 22, 0) rec[-53] +DETECTOR(30, 26, 0) rec[-23] +REPEAT 14 { + TICK + DEPOLARIZE1(0.001) 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 94 96 98 100 102 104 106 108 110 112 114 116 118 120 122 125 127 129 131 133 135 137 139 141 143 145 147 149 151 153 156 158 160 162 164 166 168 170 172 174 176 178 180 182 184 187 189 191 193 195 197 199 201 203 205 207 209 211 213 215 218 220 222 224 226 228 230 232 234 236 238 240 242 244 246 249 251 253 255 257 259 261 263 265 267 269 271 273 275 277 280 282 284 286 288 290 292 294 296 298 300 302 304 306 308 311 313 315 317 319 321 323 325 327 329 331 333 335 337 339 342 344 346 348 350 352 354 356 358 360 362 364 366 368 370 373 375 377 379 381 383 385 387 389 391 393 395 397 399 401 404 406 408 410 412 414 416 418 420 422 424 426 428 430 432 435 437 439 441 443 445 447 449 451 453 455 457 459 461 463 + H 2 6 10 14 18 22 26 35 39 43 47 51 55 59 64 68 72 76 80 84 88 97 101 105 109 113 117 121 126 130 134 138 142 146 150 159 163 167 171 175 179 183 188 192 196 200 204 208 212 221 225 229 233 237 241 245 250 254 258 262 266 270 274 283 287 291 295 299 303 307 312 316 320 324 328 332 336 345 349 353 357 361 365 369 374 378 382 386 390 394 398 407 411 415 419 423 427 431 436 440 444 448 452 456 460 469 473 477 481 485 489 493 + DEPOLARIZE1(0.001) 2 6 10 14 18 22 26 35 39 43 47 51 55 59 64 68 72 76 80 84 88 97 101 105 109 113 117 121 126 130 134 138 142 146 150 159 163 167 171 175 179 183 188 192 196 200 204 208 212 221 225 229 233 237 241 245 250 254 258 262 266 270 274 283 287 291 295 299 303 307 312 316 320 324 328 332 336 345 349 353 357 361 365 369 374 378 382 386 390 394 398 407 411 415 419 423 427 431 436 440 444 448 452 456 460 469 473 477 481 485 489 493 + TICK + CX 2 3 64 65 126 127 188 189 250 251 312 313 374 375 436 437 35 36 97 98 159 160 221 222 283 284 345 346 407 408 6 7 68 69 130 131 192 193 254 255 316 317 378 379 440 441 39 40 101 102 163 164 225 226 287 288 349 350 411 412 10 11 72 73 134 135 196 197 258 259 320 321 382 383 444 445 43 44 105 106 167 168 229 230 291 292 353 354 415 416 14 15 76 77 138 139 200 201 262 263 324 325 386 387 448 449 47 48 109 110 171 172 233 234 295 296 357 358 419 420 18 19 80 81 142 143 204 205 266 267 328 329 390 391 452 453 51 52 113 114 175 176 237 238 299 300 361 362 423 424 22 23 84 85 146 147 208 209 270 271 332 333 394 395 456 457 55 56 117 118 179 180 241 242 303 304 365 366 427 428 26 27 88 89 150 151 212 213 274 275 336 337 398 399 460 461 59 60 121 122 183 184 245 246 307 308 369 370 431 432 63 62 125 124 187 186 249 248 311 310 373 372 435 434 34 33 96 95 158 157 220 219 282 281 344 343 406 405 67 66 129 128 191 190 253 252 315 314 377 376 439 438 38 37 100 99 162 161 224 223 286 285 348 347 410 409 71 70 133 132 195 194 257 256 319 318 381 380 443 442 42 41 104 103 166 165 228 227 290 289 352 351 414 413 75 74 137 136 199 198 261 260 323 322 385 384 447 446 46 45 108 107 170 169 232 231 294 293 356 355 418 417 79 78 141 140 203 202 265 264 327 326 389 388 451 450 50 49 112 111 174 173 236 235 298 297 360 359 422 421 83 82 145 144 207 206 269 268 331 330 393 392 455 454 54 53 116 115 178 177 240 239 302 301 364 363 426 425 87 86 149 148 211 210 273 272 335 334 397 396 459 458 58 57 120 119 182 181 244 243 306 305 368 367 430 429 91 90 153 152 215 214 277 276 339 338 401 400 463 462 + DEPOLARIZE2(0.001) 2 3 64 65 126 127 188 189 250 251 312 313 374 375 436 437 35 36 97 98 159 160 221 222 283 284 345 346 407 408 6 7 68 69 130 131 192 193 254 255 316 317 378 379 440 441 39 40 101 102 163 164 225 226 287 288 349 350 411 412 10 11 72 73 134 135 196 197 258 259 320 321 382 383 444 445 43 44 105 106 167 168 229 230 291 292 353 354 415 416 14 15 76 77 138 139 200 201 262 263 324 325 386 387 448 449 47 48 109 110 171 172 233 234 295 296 357 358 419 420 18 19 80 81 142 143 204 205 266 267 328 329 390 391 452 453 51 52 113 114 175 176 237 238 299 300 361 362 423 424 22 23 84 85 146 147 208 209 270 271 332 333 394 395 456 457 55 56 117 118 179 180 241 242 303 304 365 366 427 428 26 27 88 89 150 151 212 213 274 275 336 337 398 399 460 461 59 60 121 122 183 184 245 246 307 308 369 370 431 432 63 62 125 124 187 186 249 248 311 310 373 372 435 434 34 33 96 95 158 157 220 219 282 281 344 343 406 405 67 66 129 128 191 190 253 252 315 314 377 376 439 438 38 37 100 99 162 161 224 223 286 285 348 347 410 409 71 70 133 132 195 194 257 256 319 318 381 380 443 442 42 41 104 103 166 165 228 227 290 289 352 351 414 413 75 74 137 136 199 198 261 260 323 322 385 384 447 446 46 45 108 107 170 169 232 231 294 293 356 355 418 417 79 78 141 140 203 202 265 264 327 326 389 388 451 450 50 49 112 111 174 173 236 235 298 297 360 359 422 421 83 82 145 144 207 206 269 268 331 330 393 392 455 454 54 53 116 115 178 177 240 239 302 301 364 363 426 425 87 86 149 148 211 210 273 272 335 334 397 396 459 458 58 57 120 119 182 181 244 243 306 305 368 367 430 429 91 90 153 152 215 214 277 276 339 338 401 400 463 462 + TICK + CX 2 1 64 63 126 125 188 187 250 249 312 311 374 373 436 435 35 34 97 96 159 158 221 220 283 282 345 344 407 406 6 5 68 67 130 129 192 191 254 253 316 315 378 377 440 439 39 38 101 100 163 162 225 224 287 286 349 348 411 410 10 9 72 71 134 133 196 195 258 257 320 319 382 381 444 443 43 42 105 104 167 166 229 228 291 290 353 352 415 414 14 13 76 75 138 137 200 199 262 261 324 323 386 385 448 447 47 46 109 108 171 170 233 232 295 294 357 356 419 418 18 17 80 79 142 141 204 203 266 265 328 327 390 389 452 451 51 50 113 112 175 174 237 236 299 298 361 360 423 422 22 21 84 83 146 145 208 207 270 269 332 331 394 393 456 455 55 54 117 116 179 178 241 240 303 302 365 364 427 426 26 25 88 87 150 149 212 211 274 273 336 335 398 397 460 459 59 58 121 120 183 182 245 244 307 306 369 368 431 430 32 62 94 124 156 186 218 248 280 310 342 372 404 434 3 33 65 95 127 157 189 219 251 281 313 343 375 405 36 66 98 128 160 190 222 252 284 314 346 376 408 438 7 37 69 99 131 161 193 223 255 285 317 347 379 409 40 70 102 132 164 194 226 256 288 318 350 380 412 442 11 41 73 103 135 165 197 227 259 289 321 351 383 413 44 74 106 136 168 198 230 260 292 322 354 384 416 446 15 45 77 107 139 169 201 231 263 293 325 355 387 417 48 78 110 140 172 202 234 264 296 326 358 388 420 450 19 49 81 111 143 173 205 235 267 297 329 359 391 421 52 82 114 144 176 206 238 268 300 330 362 392 424 454 23 53 85 115 147 177 209 239 271 301 333 363 395 425 56 86 118 148 180 210 242 272 304 334 366 396 428 458 27 57 89 119 151 181 213 243 275 305 337 367 399 429 60 90 122 152 184 214 246 276 308 338 370 400 432 462 + DEPOLARIZE2(0.001) 2 1 64 63 126 125 188 187 250 249 312 311 374 373 436 435 35 34 97 96 159 158 221 220 283 282 345 344 407 406 6 5 68 67 130 129 192 191 254 253 316 315 378 377 440 439 39 38 101 100 163 162 225 224 287 286 349 348 411 410 10 9 72 71 134 133 196 195 258 257 320 319 382 381 444 443 43 42 105 104 167 166 229 228 291 290 353 352 415 414 14 13 76 75 138 137 200 199 262 261 324 323 386 385 448 447 47 46 109 108 171 170 233 232 295 294 357 356 419 418 18 17 80 79 142 141 204 203 266 265 328 327 390 389 452 451 51 50 113 112 175 174 237 236 299 298 361 360 423 422 22 21 84 83 146 145 208 207 270 269 332 331 394 393 456 455 55 54 117 116 179 178 241 240 303 302 365 364 427 426 26 25 88 87 150 149 212 211 274 273 336 335 398 397 460 459 59 58 121 120 183 182 245 244 307 306 369 368 431 430 32 62 94 124 156 186 218 248 280 310 342 372 404 434 3 33 65 95 127 157 189 219 251 281 313 343 375 405 36 66 98 128 160 190 222 252 284 314 346 376 408 438 7 37 69 99 131 161 193 223 255 285 317 347 379 409 40 70 102 132 164 194 226 256 288 318 350 380 412 442 11 41 73 103 135 165 197 227 259 289 321 351 383 413 44 74 106 136 168 198 230 260 292 322 354 384 416 446 15 45 77 107 139 169 201 231 263 293 325 355 387 417 48 78 110 140 172 202 234 264 296 326 358 388 420 450 19 49 81 111 143 173 205 235 267 297 329 359 391 421 52 82 114 144 176 206 238 268 300 330 362 392 424 454 23 53 85 115 147 177 209 239 271 301 333 363 395 425 56 86 118 148 180 210 242 272 304 334 366 396 428 458 27 57 89 119 151 181 213 243 275 305 337 367 399 429 60 90 122 152 184 214 246 276 308 338 370 400 432 462 + TICK + CX 64 34 126 96 188 158 250 220 312 282 374 344 436 406 35 5 97 67 159 129 221 191 283 253 345 315 407 377 469 439 68 38 130 100 192 162 254 224 316 286 378 348 440 410 39 9 101 71 163 133 225 195 287 257 349 319 411 381 473 443 72 42 134 104 196 166 258 228 320 290 382 352 444 414 43 13 105 75 167 137 229 199 291 261 353 323 415 385 477 447 76 46 138 108 200 170 262 232 324 294 386 356 448 418 47 17 109 79 171 141 233 203 295 265 357 327 419 389 481 451 80 50 142 112 204 174 266 236 328 298 390 360 452 422 51 21 113 83 175 145 237 207 299 269 361 331 423 393 485 455 84 54 146 116 208 178 270 240 332 302 394 364 456 426 55 25 117 87 179 149 241 211 303 273 365 335 427 397 489 459 88 58 150 120 212 182 274 244 336 306 398 368 460 430 59 29 121 91 183 153 245 215 307 277 369 339 431 401 493 463 32 33 94 95 156 157 218 219 280 281 342 343 404 405 65 66 127 128 189 190 251 252 313 314 375 376 437 438 36 37 98 99 160 161 222 223 284 285 346 347 408 409 69 70 131 132 193 194 255 256 317 318 379 380 441 442 40 41 102 103 164 165 226 227 288 289 350 351 412 413 73 74 135 136 197 198 259 260 321 322 383 384 445 446 44 45 106 107 168 169 230 231 292 293 354 355 416 417 77 78 139 140 201 202 263 264 325 326 387 388 449 450 48 49 110 111 172 173 234 235 296 297 358 359 420 421 81 82 143 144 205 206 267 268 329 330 391 392 453 454 52 53 114 115 176 177 238 239 300 301 362 363 424 425 85 86 147 148 209 210 271 272 333 334 395 396 457 458 56 57 118 119 180 181 242 243 304 305 366 367 428 429 89 90 151 152 213 214 275 276 337 338 399 400 461 462 60 61 122 123 184 185 246 247 308 309 370 371 432 433 + DEPOLARIZE2(0.001) 64 34 126 96 188 158 250 220 312 282 374 344 436 406 35 5 97 67 159 129 221 191 283 253 345 315 407 377 469 439 68 38 130 100 192 162 254 224 316 286 378 348 440 410 39 9 101 71 163 133 225 195 287 257 349 319 411 381 473 443 72 42 134 104 196 166 258 228 320 290 382 352 444 414 43 13 105 75 167 137 229 199 291 261 353 323 415 385 477 447 76 46 138 108 200 170 262 232 324 294 386 356 448 418 47 17 109 79 171 141 233 203 295 265 357 327 419 389 481 451 80 50 142 112 204 174 266 236 328 298 390 360 452 422 51 21 113 83 175 145 237 207 299 269 361 331 423 393 485 455 84 54 146 116 208 178 270 240 332 302 394 364 456 426 55 25 117 87 179 149 241 211 303 273 365 335 427 397 489 459 88 58 150 120 212 182 274 244 336 306 398 368 460 430 59 29 121 91 183 153 245 215 307 277 369 339 431 401 493 463 32 33 94 95 156 157 218 219 280 281 342 343 404 405 65 66 127 128 189 190 251 252 313 314 375 376 437 438 36 37 98 99 160 161 222 223 284 285 346 347 408 409 69 70 131 132 193 194 255 256 317 318 379 380 441 442 40 41 102 103 164 165 226 227 288 289 350 351 412 413 73 74 135 136 197 198 259 260 321 322 383 384 445 446 44 45 106 107 168 169 230 231 292 293 354 355 416 417 77 78 139 140 201 202 263 264 325 326 387 388 449 450 48 49 110 111 172 173 234 235 296 297 358 359 420 421 81 82 143 144 205 206 267 268 329 330 391 392 453 454 52 53 114 115 176 177 238 239 300 301 362 363 424 425 85 86 147 148 209 210 271 272 333 334 395 396 457 458 56 57 118 119 180 181 242 243 304 305 366 367 428 429 89 90 151 152 213 214 275 276 337 338 399 400 461 462 60 61 122 123 184 185 246 247 308 309 370 371 432 433 + TICK + CX 64 32 126 94 188 156 250 218 312 280 374 342 436 404 35 3 97 65 159 127 221 189 283 251 345 313 407 375 469 437 68 36 130 98 192 160 254 222 316 284 378 346 440 408 39 7 101 69 163 131 225 193 287 255 349 317 411 379 473 441 72 40 134 102 196 164 258 226 320 288 382 350 444 412 43 11 105 73 167 135 229 197 291 259 353 321 415 383 477 445 76 44 138 106 200 168 262 230 324 292 386 354 448 416 47 15 109 77 171 139 233 201 295 263 357 325 419 387 481 449 80 48 142 110 204 172 266 234 328 296 390 358 452 420 51 19 113 81 175 143 237 205 299 267 361 329 423 391 485 453 84 52 146 114 208 176 270 238 332 300 394 362 456 424 55 23 117 85 179 147 241 209 303 271 365 333 427 395 489 457 88 56 150 118 212 180 274 242 336 304 398 366 460 428 59 27 121 89 183 151 245 213 307 275 369 337 431 399 493 461 1 33 63 95 125 157 187 219 249 281 311 343 373 405 34 66 96 128 158 190 220 252 282 314 344 376 406 438 5 37 67 99 129 161 191 223 253 285 315 347 377 409 38 70 100 132 162 194 224 256 286 318 348 380 410 442 9 41 71 103 133 165 195 227 257 289 319 351 381 413 42 74 104 136 166 198 228 260 290 322 352 384 414 446 13 45 75 107 137 169 199 231 261 293 323 355 385 417 46 78 108 140 170 202 232 264 294 326 356 388 418 450 17 49 79 111 141 173 203 235 265 297 327 359 389 421 50 82 112 144 174 206 236 268 298 330 360 392 422 454 21 53 83 115 145 177 207 239 269 301 331 363 393 425 54 86 116 148 178 210 240 272 302 334 364 396 426 458 25 57 87 119 149 181 211 243 273 305 335 367 397 429 58 90 120 152 182 214 244 276 306 338 368 400 430 462 29 61 91 123 153 185 215 247 277 309 339 371 401 433 + DEPOLARIZE2(0.001) 64 32 126 94 188 156 250 218 312 280 374 342 436 404 35 3 97 65 159 127 221 189 283 251 345 313 407 375 469 437 68 36 130 98 192 160 254 222 316 284 378 346 440 408 39 7 101 69 163 131 225 193 287 255 349 317 411 379 473 441 72 40 134 102 196 164 258 226 320 288 382 350 444 412 43 11 105 73 167 135 229 197 291 259 353 321 415 383 477 445 76 44 138 106 200 168 262 230 324 292 386 354 448 416 47 15 109 77 171 139 233 201 295 263 357 325 419 387 481 449 80 48 142 110 204 172 266 234 328 296 390 358 452 420 51 19 113 81 175 143 237 205 299 267 361 329 423 391 485 453 84 52 146 114 208 176 270 238 332 300 394 362 456 424 55 23 117 85 179 147 241 209 303 271 365 333 427 395 489 457 88 56 150 118 212 180 274 242 336 304 398 366 460 428 59 27 121 89 183 151 245 213 307 275 369 337 431 399 493 461 1 33 63 95 125 157 187 219 249 281 311 343 373 405 34 66 96 128 158 190 220 252 282 314 344 376 406 438 5 37 67 99 129 161 191 223 253 285 315 347 377 409 38 70 100 132 162 194 224 256 286 318 348 380 410 442 9 41 71 103 133 165 195 227 257 289 319 351 381 413 42 74 104 136 166 198 228 260 290 322 352 384 414 446 13 45 75 107 137 169 199 231 261 293 323 355 385 417 46 78 108 140 170 202 232 264 294 326 356 388 418 450 17 49 79 111 141 173 203 235 265 297 327 359 389 421 50 82 112 144 174 206 236 268 298 330 360 392 422 454 21 53 83 115 145 177 207 239 269 301 331 363 393 425 54 86 116 148 178 210 240 272 302 334 364 396 426 458 25 57 87 119 149 181 211 243 273 305 335 367 397 429 58 90 120 152 182 214 244 276 306 338 368 400 430 462 29 61 91 123 153 185 215 247 277 309 339 371 401 433 + TICK + H 2 6 10 14 18 22 26 35 39 43 47 51 55 59 64 68 72 76 80 84 88 97 101 105 109 113 117 121 126 130 134 138 142 146 150 159 163 167 171 175 179 183 188 192 196 200 204 208 212 221 225 229 233 237 241 245 250 254 258 262 266 270 274 283 287 291 295 299 303 307 312 316 320 324 328 332 336 345 349 353 357 361 365 369 374 378 382 386 390 394 398 407 411 415 419 423 427 431 436 440 444 448 452 456 460 469 473 477 481 485 489 493 + DEPOLARIZE1(0.001) 2 6 10 14 18 22 26 35 39 43 47 51 55 59 64 68 72 76 80 84 88 97 101 105 109 113 117 121 126 130 134 138 142 146 150 159 163 167 171 175 179 183 188 192 196 200 204 208 212 221 225 229 233 237 241 245 250 254 258 262 266 270 274 283 287 291 295 299 303 307 312 316 320 324 328 332 336 345 349 353 357 361 365 369 374 378 382 386 390 394 398 407 411 415 419 423 427 431 436 440 444 448 452 456 460 469 473 477 481 485 489 493 + TICK + X_ERROR(0.001) 2 6 10 14 18 22 26 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 95 97 99 101 103 105 107 109 111 113 115 117 119 121 123 124 126 128 130 132 134 136 138 140 142 144 146 148 150 152 157 159 161 163 165 167 169 171 173 175 177 179 181 183 185 186 188 190 192 194 196 198 200 202 204 206 208 210 212 214 219 221 223 225 227 229 231 233 235 237 239 241 243 245 247 248 250 252 254 256 258 260 262 264 266 268 270 272 274 276 281 283 285 287 289 291 293 295 297 299 301 303 305 307 309 310 312 314 316 318 320 322 324 326 328 330 332 334 336 338 343 345 347 349 351 353 355 357 359 361 363 365 367 369 371 372 374 376 378 380 382 384 386 388 390 392 394 396 398 400 405 407 409 411 413 415 417 419 421 423 425 427 429 431 433 434 436 438 440 442 444 446 448 450 452 454 456 458 460 462 469 473 477 481 485 489 493 + MR 2 6 10 14 18 22 26 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 95 97 99 101 103 105 107 109 111 113 115 117 119 121 123 124 126 128 130 132 134 136 138 140 142 144 146 148 150 152 157 159 161 163 165 167 169 171 173 175 177 179 181 183 185 186 188 190 192 194 196 198 200 202 204 206 208 210 212 214 219 221 223 225 227 229 231 233 235 237 239 241 243 245 247 248 250 252 254 256 258 260 262 264 266 268 270 272 274 276 281 283 285 287 289 291 293 295 297 299 301 303 305 307 309 310 312 314 316 318 320 322 324 326 328 330 332 334 336 338 343 345 347 349 351 353 355 357 359 361 363 365 367 369 371 372 374 376 378 380 382 384 386 388 390 392 394 396 398 400 405 407 409 411 413 415 417 419 421 423 425 427 429 431 433 434 436 438 440 442 444 446 448 450 452 454 456 458 460 462 469 473 477 481 485 489 493 + X_ERROR(0.001) 2 6 10 14 18 22 26 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 95 97 99 101 103 105 107 109 111 113 115 117 119 121 123 124 126 128 130 132 134 136 138 140 142 144 146 148 150 152 157 159 161 163 165 167 169 171 173 175 177 179 181 183 185 186 188 190 192 194 196 198 200 202 204 206 208 210 212 214 219 221 223 225 227 229 231 233 235 237 239 241 243 245 247 248 250 252 254 256 258 260 262 264 266 268 270 272 274 276 281 283 285 287 289 291 293 295 297 299 301 303 305 307 309 310 312 314 316 318 320 322 324 326 328 330 332 334 336 338 343 345 347 349 351 353 355 357 359 361 363 365 367 369 371 372 374 376 378 380 382 384 386 388 390 392 394 396 398 400 405 407 409 411 413 415 417 419 421 423 425 427 429 431 433 434 436 438 440 442 444 446 448 450 452 454 456 458 460 462 469 473 477 481 485 489 493 + SHIFT_COORDS(0, 0, 1) + DETECTOR(2, 0, 0) rec[-224] rec[-448] + DETECTOR(6, 0, 0) rec[-223] rec[-447] + DETECTOR(10, 0, 0) rec[-222] rec[-446] + DETECTOR(14, 0, 0) rec[-221] rec[-445] + DETECTOR(18, 0, 0) rec[-220] rec[-444] + DETECTOR(22, 0, 0) rec[-219] rec[-443] + DETECTOR(26, 0, 0) rec[-218] rec[-442] + DETECTOR(2, 2, 0) rec[-217] rec[-441] + DETECTOR(4, 2, 0) rec[-216] rec[-440] + DETECTOR(6, 2, 0) rec[-215] rec[-439] + DETECTOR(8, 2, 0) rec[-214] rec[-438] + DETECTOR(10, 2, 0) rec[-213] rec[-437] + DETECTOR(12, 2, 0) rec[-212] rec[-436] + DETECTOR(14, 2, 0) rec[-211] rec[-435] + DETECTOR(16, 2, 0) rec[-210] rec[-434] + DETECTOR(18, 2, 0) rec[-209] rec[-433] + DETECTOR(20, 2, 0) rec[-208] rec[-432] + DETECTOR(22, 2, 0) rec[-207] rec[-431] + DETECTOR(24, 2, 0) rec[-206] rec[-430] + DETECTOR(26, 2, 0) rec[-205] rec[-429] + DETECTOR(28, 2, 0) rec[-204] rec[-428] + DETECTOR(30, 2, 0) rec[-203] rec[-427] + DETECTOR(0, 4, 0) rec[-202] rec[-426] + DETECTOR(2, 4, 0) rec[-201] rec[-425] + DETECTOR(4, 4, 0) rec[-200] rec[-424] + DETECTOR(6, 4, 0) rec[-199] rec[-423] + DETECTOR(8, 4, 0) rec[-198] rec[-422] + DETECTOR(10, 4, 0) rec[-197] rec[-421] + DETECTOR(12, 4, 0) rec[-196] rec[-420] + DETECTOR(14, 4, 0) rec[-195] rec[-419] + DETECTOR(16, 4, 0) rec[-194] rec[-418] + DETECTOR(18, 4, 0) rec[-193] rec[-417] + DETECTOR(20, 4, 0) rec[-192] rec[-416] + DETECTOR(22, 4, 0) rec[-191] rec[-415] + DETECTOR(24, 4, 0) rec[-190] rec[-414] + DETECTOR(26, 4, 0) rec[-189] rec[-413] + DETECTOR(28, 4, 0) rec[-188] rec[-412] + DETECTOR(2, 6, 0) rec[-187] rec[-411] + DETECTOR(4, 6, 0) rec[-186] rec[-410] + DETECTOR(6, 6, 0) rec[-185] rec[-409] + DETECTOR(8, 6, 0) rec[-184] rec[-408] + DETECTOR(10, 6, 0) rec[-183] rec[-407] + DETECTOR(12, 6, 0) rec[-182] rec[-406] + DETECTOR(14, 6, 0) rec[-181] rec[-405] + DETECTOR(16, 6, 0) rec[-180] rec[-404] + DETECTOR(18, 6, 0) rec[-179] rec[-403] + DETECTOR(20, 6, 0) rec[-178] rec[-402] + DETECTOR(22, 6, 0) rec[-177] rec[-401] + DETECTOR(24, 6, 0) rec[-176] rec[-400] + DETECTOR(26, 6, 0) rec[-175] rec[-399] + DETECTOR(28, 6, 0) rec[-174] rec[-398] + DETECTOR(30, 6, 0) rec[-173] rec[-397] + DETECTOR(0, 8, 0) rec[-172] rec[-396] + DETECTOR(2, 8, 0) rec[-171] rec[-395] + DETECTOR(4, 8, 0) rec[-170] rec[-394] + DETECTOR(6, 8, 0) rec[-169] rec[-393] + DETECTOR(8, 8, 0) rec[-168] rec[-392] + DETECTOR(10, 8, 0) rec[-167] rec[-391] + DETECTOR(12, 8, 0) rec[-166] rec[-390] + DETECTOR(14, 8, 0) rec[-165] rec[-389] + DETECTOR(16, 8, 0) rec[-164] rec[-388] + DETECTOR(18, 8, 0) rec[-163] rec[-387] + DETECTOR(20, 8, 0) rec[-162] rec[-386] + DETECTOR(22, 8, 0) rec[-161] rec[-385] + DETECTOR(24, 8, 0) rec[-160] rec[-384] + DETECTOR(26, 8, 0) rec[-159] rec[-383] + DETECTOR(28, 8, 0) rec[-158] rec[-382] + DETECTOR(2, 10, 0) rec[-157] rec[-381] + DETECTOR(4, 10, 0) rec[-156] rec[-380] + DETECTOR(6, 10, 0) rec[-155] rec[-379] + DETECTOR(8, 10, 0) rec[-154] rec[-378] + DETECTOR(10, 10, 0) rec[-153] rec[-377] + DETECTOR(12, 10, 0) rec[-152] rec[-376] + DETECTOR(14, 10, 0) rec[-151] rec[-375] + DETECTOR(16, 10, 0) rec[-150] rec[-374] + DETECTOR(18, 10, 0) rec[-149] rec[-373] + DETECTOR(20, 10, 0) rec[-148] rec[-372] + DETECTOR(22, 10, 0) rec[-147] rec[-371] + DETECTOR(24, 10, 0) rec[-146] rec[-370] + DETECTOR(26, 10, 0) rec[-145] rec[-369] + DETECTOR(28, 10, 0) rec[-144] rec[-368] + DETECTOR(30, 10, 0) rec[-143] rec[-367] + DETECTOR(0, 12, 0) rec[-142] rec[-366] + DETECTOR(2, 12, 0) rec[-141] rec[-365] + DETECTOR(4, 12, 0) rec[-140] rec[-364] + DETECTOR(6, 12, 0) rec[-139] rec[-363] + DETECTOR(8, 12, 0) rec[-138] rec[-362] + DETECTOR(10, 12, 0) rec[-137] rec[-361] + DETECTOR(12, 12, 0) rec[-136] rec[-360] + DETECTOR(14, 12, 0) rec[-135] rec[-359] + DETECTOR(16, 12, 0) rec[-134] rec[-358] + DETECTOR(18, 12, 0) rec[-133] rec[-357] + DETECTOR(20, 12, 0) rec[-132] rec[-356] + DETECTOR(22, 12, 0) rec[-131] rec[-355] + DETECTOR(24, 12, 0) rec[-130] rec[-354] + DETECTOR(26, 12, 0) rec[-129] rec[-353] + DETECTOR(28, 12, 0) rec[-128] rec[-352] + DETECTOR(2, 14, 0) rec[-127] rec[-351] + DETECTOR(4, 14, 0) rec[-126] rec[-350] + DETECTOR(6, 14, 0) rec[-125] rec[-349] + DETECTOR(8, 14, 0) rec[-124] rec[-348] + DETECTOR(10, 14, 0) rec[-123] rec[-347] + DETECTOR(12, 14, 0) rec[-122] rec[-346] + DETECTOR(14, 14, 0) rec[-121] rec[-345] + DETECTOR(16, 14, 0) rec[-120] rec[-344] + DETECTOR(18, 14, 0) rec[-119] rec[-343] + DETECTOR(20, 14, 0) rec[-118] rec[-342] + DETECTOR(22, 14, 0) rec[-117] rec[-341] + DETECTOR(24, 14, 0) rec[-116] rec[-340] + DETECTOR(26, 14, 0) rec[-115] rec[-339] + DETECTOR(28, 14, 0) rec[-114] rec[-338] + DETECTOR(30, 14, 0) rec[-113] rec[-337] + DETECTOR(0, 16, 0) rec[-112] rec[-336] + DETECTOR(2, 16, 0) rec[-111] rec[-335] + DETECTOR(4, 16, 0) rec[-110] rec[-334] + DETECTOR(6, 16, 0) rec[-109] rec[-333] + DETECTOR(8, 16, 0) rec[-108] rec[-332] + DETECTOR(10, 16, 0) rec[-107] rec[-331] + DETECTOR(12, 16, 0) rec[-106] rec[-330] + DETECTOR(14, 16, 0) rec[-105] rec[-329] + DETECTOR(16, 16, 0) rec[-104] rec[-328] + DETECTOR(18, 16, 0) rec[-103] rec[-327] + DETECTOR(20, 16, 0) rec[-102] rec[-326] + DETECTOR(22, 16, 0) rec[-101] rec[-325] + DETECTOR(24, 16, 0) rec[-100] rec[-324] + DETECTOR(26, 16, 0) rec[-99] rec[-323] + DETECTOR(28, 16, 0) rec[-98] rec[-322] + DETECTOR(2, 18, 0) rec[-97] rec[-321] + DETECTOR(4, 18, 0) rec[-96] rec[-320] + DETECTOR(6, 18, 0) rec[-95] rec[-319] + DETECTOR(8, 18, 0) rec[-94] rec[-318] + DETECTOR(10, 18, 0) rec[-93] rec[-317] + DETECTOR(12, 18, 0) rec[-92] rec[-316] + DETECTOR(14, 18, 0) rec[-91] rec[-315] + DETECTOR(16, 18, 0) rec[-90] rec[-314] + DETECTOR(18, 18, 0) rec[-89] rec[-313] + DETECTOR(20, 18, 0) rec[-88] rec[-312] + DETECTOR(22, 18, 0) rec[-87] rec[-311] + DETECTOR(24, 18, 0) rec[-86] rec[-310] + DETECTOR(26, 18, 0) rec[-85] rec[-309] + DETECTOR(28, 18, 0) rec[-84] rec[-308] + DETECTOR(30, 18, 0) rec[-83] rec[-307] + DETECTOR(0, 20, 0) rec[-82] rec[-306] + DETECTOR(2, 20, 0) rec[-81] rec[-305] + DETECTOR(4, 20, 0) rec[-80] rec[-304] + DETECTOR(6, 20, 0) rec[-79] rec[-303] + DETECTOR(8, 20, 0) rec[-78] rec[-302] + DETECTOR(10, 20, 0) rec[-77] rec[-301] + DETECTOR(12, 20, 0) rec[-76] rec[-300] + DETECTOR(14, 20, 0) rec[-75] rec[-299] + DETECTOR(16, 20, 0) rec[-74] rec[-298] + DETECTOR(18, 20, 0) rec[-73] rec[-297] + DETECTOR(20, 20, 0) rec[-72] rec[-296] + DETECTOR(22, 20, 0) rec[-71] rec[-295] + DETECTOR(24, 20, 0) rec[-70] rec[-294] + DETECTOR(26, 20, 0) rec[-69] rec[-293] + DETECTOR(28, 20, 0) rec[-68] rec[-292] + DETECTOR(2, 22, 0) rec[-67] rec[-291] + DETECTOR(4, 22, 0) rec[-66] rec[-290] + DETECTOR(6, 22, 0) rec[-65] rec[-289] + DETECTOR(8, 22, 0) rec[-64] rec[-288] + DETECTOR(10, 22, 0) rec[-63] rec[-287] + DETECTOR(12, 22, 0) rec[-62] rec[-286] + DETECTOR(14, 22, 0) rec[-61] rec[-285] + DETECTOR(16, 22, 0) rec[-60] rec[-284] + DETECTOR(18, 22, 0) rec[-59] rec[-283] + DETECTOR(20, 22, 0) rec[-58] rec[-282] + DETECTOR(22, 22, 0) rec[-57] rec[-281] + DETECTOR(24, 22, 0) rec[-56] rec[-280] + DETECTOR(26, 22, 0) rec[-55] rec[-279] + DETECTOR(28, 22, 0) rec[-54] rec[-278] + DETECTOR(30, 22, 0) rec[-53] rec[-277] + DETECTOR(0, 24, 0) rec[-52] rec[-276] + DETECTOR(2, 24, 0) rec[-51] rec[-275] + DETECTOR(4, 24, 0) rec[-50] rec[-274] + DETECTOR(6, 24, 0) rec[-49] rec[-273] + DETECTOR(8, 24, 0) rec[-48] rec[-272] + DETECTOR(10, 24, 0) rec[-47] rec[-271] + DETECTOR(12, 24, 0) rec[-46] rec[-270] + DETECTOR(14, 24, 0) rec[-45] rec[-269] + DETECTOR(16, 24, 0) rec[-44] rec[-268] + DETECTOR(18, 24, 0) rec[-43] rec[-267] + DETECTOR(20, 24, 0) rec[-42] rec[-266] + DETECTOR(22, 24, 0) rec[-41] rec[-265] + DETECTOR(24, 24, 0) rec[-40] rec[-264] + DETECTOR(26, 24, 0) rec[-39] rec[-263] + DETECTOR(28, 24, 0) rec[-38] rec[-262] + DETECTOR(2, 26, 0) rec[-37] rec[-261] + DETECTOR(4, 26, 0) rec[-36] rec[-260] + DETECTOR(6, 26, 0) rec[-35] rec[-259] + DETECTOR(8, 26, 0) rec[-34] rec[-258] + DETECTOR(10, 26, 0) rec[-33] rec[-257] + DETECTOR(12, 26, 0) rec[-32] rec[-256] + DETECTOR(14, 26, 0) rec[-31] rec[-255] + DETECTOR(16, 26, 0) rec[-30] rec[-254] + DETECTOR(18, 26, 0) rec[-29] rec[-253] + DETECTOR(20, 26, 0) rec[-28] rec[-252] + DETECTOR(22, 26, 0) rec[-27] rec[-251] + DETECTOR(24, 26, 0) rec[-26] rec[-250] + DETECTOR(26, 26, 0) rec[-25] rec[-249] + DETECTOR(28, 26, 0) rec[-24] rec[-248] + DETECTOR(30, 26, 0) rec[-23] rec[-247] + DETECTOR(0, 28, 0) rec[-22] rec[-246] + DETECTOR(2, 28, 0) rec[-21] rec[-245] + DETECTOR(4, 28, 0) rec[-20] rec[-244] + DETECTOR(6, 28, 0) rec[-19] rec[-243] + DETECTOR(8, 28, 0) rec[-18] rec[-242] + DETECTOR(10, 28, 0) rec[-17] rec[-241] + DETECTOR(12, 28, 0) rec[-16] rec[-240] + DETECTOR(14, 28, 0) rec[-15] rec[-239] + DETECTOR(16, 28, 0) rec[-14] rec[-238] + DETECTOR(18, 28, 0) rec[-13] rec[-237] + DETECTOR(20, 28, 0) rec[-12] rec[-236] + DETECTOR(22, 28, 0) rec[-11] rec[-235] + DETECTOR(24, 28, 0) rec[-10] rec[-234] + DETECTOR(26, 28, 0) rec[-9] rec[-233] + DETECTOR(28, 28, 0) rec[-8] rec[-232] + DETECTOR(4, 30, 0) rec[-7] rec[-231] + DETECTOR(8, 30, 0) rec[-6] rec[-230] + DETECTOR(12, 30, 0) rec[-5] rec[-229] + DETECTOR(16, 30, 0) rec[-4] rec[-228] + DETECTOR(20, 30, 0) rec[-3] rec[-227] + DETECTOR(24, 30, 0) rec[-2] rec[-226] + DETECTOR(28, 30, 0) rec[-1] rec[-225] +} +X_ERROR(0.001) 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 94 96 98 100 102 104 106 108 110 112 114 116 118 120 122 125 127 129 131 133 135 137 139 141 143 145 147 149 151 153 156 158 160 162 164 166 168 170 172 174 176 178 180 182 184 187 189 191 193 195 197 199 201 203 205 207 209 211 213 215 218 220 222 224 226 228 230 232 234 236 238 240 242 244 246 249 251 253 255 257 259 261 263 265 267 269 271 273 275 277 280 282 284 286 288 290 292 294 296 298 300 302 304 306 308 311 313 315 317 319 321 323 325 327 329 331 333 335 337 339 342 344 346 348 350 352 354 356 358 360 362 364 366 368 370 373 375 377 379 381 383 385 387 389 391 393 395 397 399 401 404 406 408 410 412 414 416 418 420 422 424 426 428 430 432 435 437 439 441 443 445 447 449 451 453 455 457 459 461 463 +M 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 94 96 98 100 102 104 106 108 110 112 114 116 118 120 122 125 127 129 131 133 135 137 139 141 143 145 147 149 151 153 156 158 160 162 164 166 168 170 172 174 176 178 180 182 184 187 189 191 193 195 197 199 201 203 205 207 209 211 213 215 218 220 222 224 226 228 230 232 234 236 238 240 242 244 246 249 251 253 255 257 259 261 263 265 267 269 271 273 275 277 280 282 284 286 288 290 292 294 296 298 300 302 304 306 308 311 313 315 317 319 321 323 325 327 329 331 333 335 337 339 342 344 346 348 350 352 354 356 358 360 362 364 366 368 370 373 375 377 379 381 383 385 387 389 391 393 395 397 399 401 404 406 408 410 412 414 416 418 420 422 424 426 428 430 432 435 437 439 441 443 445 447 449 451 453 455 457 459 461 463 +DETECTOR(0, 4, 1) rec[-195] rec[-210] rec[-427] +DETECTOR(0, 8, 1) rec[-165] rec[-180] rec[-397] +DETECTOR(0, 12, 1) rec[-135] rec[-150] rec[-367] +DETECTOR(0, 16, 1) rec[-105] rec[-120] rec[-337] +DETECTOR(0, 20, 1) rec[-75] rec[-90] rec[-307] +DETECTOR(0, 24, 1) rec[-45] rec[-60] rec[-277] +DETECTOR(0, 28, 1) rec[-15] rec[-30] rec[-247] +DETECTOR(2, 2, 1) rec[-209] rec[-210] rec[-224] rec[-225] rec[-442] +DETECTOR(2, 6, 1) rec[-179] rec[-180] rec[-194] rec[-195] rec[-412] +DETECTOR(2, 10, 1) rec[-149] rec[-150] rec[-164] rec[-165] rec[-382] +DETECTOR(2, 14, 1) rec[-119] rec[-120] rec[-134] rec[-135] rec[-352] +DETECTOR(2, 18, 1) rec[-89] rec[-90] rec[-104] rec[-105] rec[-322] +DETECTOR(2, 22, 1) rec[-59] rec[-60] rec[-74] rec[-75] rec[-292] +DETECTOR(2, 26, 1) rec[-29] rec[-30] rec[-44] rec[-45] rec[-262] +DETECTOR(4, 4, 1) rec[-193] rec[-194] rec[-208] rec[-209] rec[-425] +DETECTOR(4, 8, 1) rec[-163] rec[-164] rec[-178] rec[-179] rec[-395] +DETECTOR(4, 12, 1) rec[-133] rec[-134] rec[-148] rec[-149] rec[-365] +DETECTOR(4, 16, 1) rec[-103] rec[-104] rec[-118] rec[-119] rec[-335] +DETECTOR(4, 20, 1) rec[-73] rec[-74] rec[-88] rec[-89] rec[-305] +DETECTOR(4, 24, 1) rec[-43] rec[-44] rec[-58] rec[-59] rec[-275] +DETECTOR(4, 28, 1) rec[-13] rec[-14] rec[-28] rec[-29] rec[-245] +DETECTOR(6, 2, 1) rec[-207] rec[-208] rec[-222] rec[-223] rec[-440] +DETECTOR(6, 6, 1) rec[-177] rec[-178] rec[-192] rec[-193] rec[-410] +DETECTOR(6, 10, 1) rec[-147] rec[-148] rec[-162] rec[-163] rec[-380] +DETECTOR(6, 14, 1) rec[-117] rec[-118] rec[-132] rec[-133] rec[-350] +DETECTOR(6, 18, 1) rec[-87] rec[-88] rec[-102] rec[-103] rec[-320] +DETECTOR(6, 22, 1) rec[-57] rec[-58] rec[-72] rec[-73] rec[-290] +DETECTOR(6, 26, 1) rec[-27] rec[-28] rec[-42] rec[-43] rec[-260] +DETECTOR(8, 4, 1) rec[-191] rec[-192] rec[-206] rec[-207] rec[-423] +DETECTOR(8, 8, 1) rec[-161] rec[-162] rec[-176] rec[-177] rec[-393] +DETECTOR(8, 12, 1) rec[-131] rec[-132] rec[-146] rec[-147] rec[-363] +DETECTOR(8, 16, 1) rec[-101] rec[-102] rec[-116] rec[-117] rec[-333] +DETECTOR(8, 20, 1) rec[-71] rec[-72] rec[-86] rec[-87] rec[-303] +DETECTOR(8, 24, 1) rec[-41] rec[-42] rec[-56] rec[-57] rec[-273] +DETECTOR(8, 28, 1) rec[-11] rec[-12] rec[-26] rec[-27] rec[-243] +DETECTOR(10, 2, 1) rec[-205] rec[-206] rec[-220] rec[-221] rec[-438] +DETECTOR(10, 6, 1) rec[-175] rec[-176] rec[-190] rec[-191] rec[-408] +DETECTOR(10, 10, 1) rec[-145] rec[-146] rec[-160] rec[-161] rec[-378] +DETECTOR(10, 14, 1) rec[-115] rec[-116] rec[-130] rec[-131] rec[-348] +DETECTOR(10, 18, 1) rec[-85] rec[-86] rec[-100] rec[-101] rec[-318] +DETECTOR(10, 22, 1) rec[-55] rec[-56] rec[-70] rec[-71] rec[-288] +DETECTOR(10, 26, 1) rec[-25] rec[-26] rec[-40] rec[-41] rec[-258] +DETECTOR(12, 4, 1) rec[-189] rec[-190] rec[-204] rec[-205] rec[-421] +DETECTOR(12, 8, 1) rec[-159] rec[-160] rec[-174] rec[-175] rec[-391] +DETECTOR(12, 12, 1) rec[-129] rec[-130] rec[-144] rec[-145] rec[-361] +DETECTOR(12, 16, 1) rec[-99] rec[-100] rec[-114] rec[-115] rec[-331] +DETECTOR(12, 20, 1) rec[-69] rec[-70] rec[-84] rec[-85] rec[-301] +DETECTOR(12, 24, 1) rec[-39] rec[-40] rec[-54] rec[-55] rec[-271] +DETECTOR(12, 28, 1) rec[-9] rec[-10] rec[-24] rec[-25] rec[-241] +DETECTOR(14, 2, 1) rec[-203] rec[-204] rec[-218] rec[-219] rec[-436] +DETECTOR(14, 6, 1) rec[-173] rec[-174] rec[-188] rec[-189] rec[-406] +DETECTOR(14, 10, 1) rec[-143] rec[-144] rec[-158] rec[-159] rec[-376] +DETECTOR(14, 14, 1) rec[-113] rec[-114] rec[-128] rec[-129] rec[-346] +DETECTOR(14, 18, 1) rec[-83] rec[-84] rec[-98] rec[-99] rec[-316] +DETECTOR(14, 22, 1) rec[-53] rec[-54] rec[-68] rec[-69] rec[-286] +DETECTOR(14, 26, 1) rec[-23] rec[-24] rec[-38] rec[-39] rec[-256] +DETECTOR(16, 4, 1) rec[-187] rec[-188] rec[-202] rec[-203] rec[-419] +DETECTOR(16, 8, 1) rec[-157] rec[-158] rec[-172] rec[-173] rec[-389] +DETECTOR(16, 12, 1) rec[-127] rec[-128] rec[-142] rec[-143] rec[-359] +DETECTOR(16, 16, 1) rec[-97] rec[-98] rec[-112] rec[-113] rec[-329] +DETECTOR(16, 20, 1) rec[-67] rec[-68] rec[-82] rec[-83] rec[-299] +DETECTOR(16, 24, 1) rec[-37] rec[-38] rec[-52] rec[-53] rec[-269] +DETECTOR(16, 28, 1) rec[-7] rec[-8] rec[-22] rec[-23] rec[-239] +DETECTOR(18, 2, 1) rec[-201] rec[-202] rec[-216] rec[-217] rec[-434] +DETECTOR(18, 6, 1) rec[-171] rec[-172] rec[-186] rec[-187] rec[-404] +DETECTOR(18, 10, 1) rec[-141] rec[-142] rec[-156] rec[-157] rec[-374] +DETECTOR(18, 14, 1) rec[-111] rec[-112] rec[-126] rec[-127] rec[-344] +DETECTOR(18, 18, 1) rec[-81] rec[-82] rec[-96] rec[-97] rec[-314] +DETECTOR(18, 22, 1) rec[-51] rec[-52] rec[-66] rec[-67] rec[-284] +DETECTOR(18, 26, 1) rec[-21] rec[-22] rec[-36] rec[-37] rec[-254] +DETECTOR(20, 4, 1) rec[-185] rec[-186] rec[-200] rec[-201] rec[-417] +DETECTOR(20, 8, 1) rec[-155] rec[-156] rec[-170] rec[-171] rec[-387] +DETECTOR(20, 12, 1) rec[-125] rec[-126] rec[-140] rec[-141] rec[-357] +DETECTOR(20, 16, 1) rec[-95] rec[-96] rec[-110] rec[-111] rec[-327] +DETECTOR(20, 20, 1) rec[-65] rec[-66] rec[-80] rec[-81] rec[-297] +DETECTOR(20, 24, 1) rec[-35] rec[-36] rec[-50] rec[-51] rec[-267] +DETECTOR(20, 28, 1) rec[-5] rec[-6] rec[-20] rec[-21] rec[-237] +DETECTOR(22, 2, 1) rec[-199] rec[-200] rec[-214] rec[-215] rec[-432] +DETECTOR(22, 6, 1) rec[-169] rec[-170] rec[-184] rec[-185] rec[-402] +DETECTOR(22, 10, 1) rec[-139] rec[-140] rec[-154] rec[-155] rec[-372] +DETECTOR(22, 14, 1) rec[-109] rec[-110] rec[-124] rec[-125] rec[-342] +DETECTOR(22, 18, 1) rec[-79] rec[-80] rec[-94] rec[-95] rec[-312] +DETECTOR(22, 22, 1) rec[-49] rec[-50] rec[-64] rec[-65] rec[-282] +DETECTOR(22, 26, 1) rec[-19] rec[-20] rec[-34] rec[-35] rec[-252] +DETECTOR(24, 4, 1) rec[-183] rec[-184] rec[-198] rec[-199] rec[-415] +DETECTOR(24, 8, 1) rec[-153] rec[-154] rec[-168] rec[-169] rec[-385] +DETECTOR(24, 12, 1) rec[-123] rec[-124] rec[-138] rec[-139] rec[-355] +DETECTOR(24, 16, 1) rec[-93] rec[-94] rec[-108] rec[-109] rec[-325] +DETECTOR(24, 20, 1) rec[-63] rec[-64] rec[-78] rec[-79] rec[-295] +DETECTOR(24, 24, 1) rec[-33] rec[-34] rec[-48] rec[-49] rec[-265] +DETECTOR(24, 28, 1) rec[-3] rec[-4] rec[-18] rec[-19] rec[-235] +DETECTOR(26, 2, 1) rec[-197] rec[-198] rec[-212] rec[-213] rec[-430] +DETECTOR(26, 6, 1) rec[-167] rec[-168] rec[-182] rec[-183] rec[-400] +DETECTOR(26, 10, 1) rec[-137] rec[-138] rec[-152] rec[-153] rec[-370] +DETECTOR(26, 14, 1) rec[-107] rec[-108] rec[-122] rec[-123] rec[-340] +DETECTOR(26, 18, 1) rec[-77] rec[-78] rec[-92] rec[-93] rec[-310] +DETECTOR(26, 22, 1) rec[-47] rec[-48] rec[-62] rec[-63] rec[-280] +DETECTOR(26, 26, 1) rec[-17] rec[-18] rec[-32] rec[-33] rec[-250] +DETECTOR(28, 4, 1) rec[-181] rec[-182] rec[-196] rec[-197] rec[-413] +DETECTOR(28, 8, 1) rec[-151] rec[-152] rec[-166] rec[-167] rec[-383] +DETECTOR(28, 12, 1) rec[-121] rec[-122] rec[-136] rec[-137] rec[-353] +DETECTOR(28, 16, 1) rec[-91] rec[-92] rec[-106] rec[-107] rec[-323] +DETECTOR(28, 20, 1) rec[-61] rec[-62] rec[-76] rec[-77] rec[-293] +DETECTOR(28, 24, 1) rec[-31] rec[-32] rec[-46] rec[-47] rec[-263] +DETECTOR(28, 28, 1) rec[-1] rec[-2] rec[-16] rec[-17] rec[-233] +DETECTOR(30, 2, 1) rec[-196] rec[-211] rec[-428] +DETECTOR(30, 6, 1) rec[-166] rec[-181] rec[-398] +DETECTOR(30, 10, 1) rec[-136] rec[-151] rec[-368] +DETECTOR(30, 14, 1) rec[-106] rec[-121] rec[-338] +DETECTOR(30, 18, 1) rec[-76] rec[-91] rec[-308] +DETECTOR(30, 22, 1) rec[-46] rec[-61] rec[-278] +DETECTOR(30, 26, 1) rec[-16] rec[-31] rec[-248] +OBSERVABLE_INCLUDE(0) rec[-211] rec[-212] rec[-213] rec[-214] rec[-215] rec[-216] rec[-217] rec[-218] rec[-219] rec[-220] rec[-221] rec[-222] rec[-223] rec[-224] rec[-225] diff --git a/wai/quantum-cross-simulator/corpus/qec/surface_z_d3.circuit b/wai/quantum-cross-simulator/corpus/qec/surface_z_d3.circuit new file mode 100644 index 000000000..f0db99aef --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qec/surface_z_d3.circuit @@ -0,0 +1,89 @@ +QUBIT_COORDS(1, 1) 1 +QUBIT_COORDS(2, 0) 2 +QUBIT_COORDS(3, 1) 3 +QUBIT_COORDS(5, 1) 5 +QUBIT_COORDS(1, 3) 8 +QUBIT_COORDS(2, 2) 9 +QUBIT_COORDS(3, 3) 10 +QUBIT_COORDS(4, 2) 11 +QUBIT_COORDS(5, 3) 12 +QUBIT_COORDS(6, 2) 13 +QUBIT_COORDS(0, 4) 14 +QUBIT_COORDS(1, 5) 15 +QUBIT_COORDS(2, 4) 16 +QUBIT_COORDS(3, 5) 17 +QUBIT_COORDS(4, 4) 18 +QUBIT_COORDS(5, 5) 19 +QUBIT_COORDS(4, 6) 25 +R 1 3 5 8 10 12 15 17 19 +X_ERROR(0.001) 1 3 5 8 10 12 15 17 19 +R 2 9 11 13 14 16 18 25 +X_ERROR(0.001) 2 9 11 13 14 16 18 25 +TICK +DEPOLARIZE1(0.001) 1 3 5 8 10 12 15 17 19 +H 2 11 16 25 +DEPOLARIZE1(0.001) 2 11 16 25 +TICK +CX 2 3 16 17 11 12 15 14 10 9 19 18 +DEPOLARIZE2(0.001) 2 3 16 17 11 12 15 14 10 9 19 18 +TICK +CX 2 1 16 15 11 10 8 14 3 9 12 18 +DEPOLARIZE2(0.001) 2 1 16 15 11 10 8 14 3 9 12 18 +TICK +CX 16 10 11 5 25 19 8 9 17 18 12 13 +DEPOLARIZE2(0.001) 16 10 11 5 25 19 8 9 17 18 12 13 +TICK +CX 16 8 11 3 25 17 1 9 10 18 5 13 +DEPOLARIZE2(0.001) 16 8 11 3 25 17 1 9 10 18 5 13 +TICK +H 2 11 16 25 +DEPOLARIZE1(0.001) 2 11 16 25 +TICK +X_ERROR(0.001) 2 9 11 13 14 16 18 25 +MR 2 9 11 13 14 16 18 25 +X_ERROR(0.001) 2 9 11 13 14 16 18 25 +DETECTOR(0, 4, 0) rec[-4] +DETECTOR(2, 2, 0) rec[-7] +DETECTOR(4, 4, 0) rec[-2] +DETECTOR(6, 2, 0) rec[-5] +REPEAT 2 { + TICK + DEPOLARIZE1(0.001) 1 3 5 8 10 12 15 17 19 + H 2 11 16 25 + DEPOLARIZE1(0.001) 2 11 16 25 + TICK + CX 2 3 16 17 11 12 15 14 10 9 19 18 + DEPOLARIZE2(0.001) 2 3 16 17 11 12 15 14 10 9 19 18 + TICK + CX 2 1 16 15 11 10 8 14 3 9 12 18 + DEPOLARIZE2(0.001) 2 1 16 15 11 10 8 14 3 9 12 18 + TICK + CX 16 10 11 5 25 19 8 9 17 18 12 13 + DEPOLARIZE2(0.001) 16 10 11 5 25 19 8 9 17 18 12 13 + TICK + CX 16 8 11 3 25 17 1 9 10 18 5 13 + DEPOLARIZE2(0.001) 16 8 11 3 25 17 1 9 10 18 5 13 + TICK + H 2 11 16 25 + DEPOLARIZE1(0.001) 2 11 16 25 + TICK + X_ERROR(0.001) 2 9 11 13 14 16 18 25 + MR 2 9 11 13 14 16 18 25 + X_ERROR(0.001) 2 9 11 13 14 16 18 25 + SHIFT_COORDS(0, 0, 1) + DETECTOR(2, 0, 0) rec[-8] rec[-16] + DETECTOR(2, 2, 0) rec[-7] rec[-15] + DETECTOR(4, 2, 0) rec[-6] rec[-14] + DETECTOR(6, 2, 0) rec[-5] rec[-13] + DETECTOR(0, 4, 0) rec[-4] rec[-12] + DETECTOR(2, 4, 0) rec[-3] rec[-11] + DETECTOR(4, 4, 0) rec[-2] rec[-10] + DETECTOR(4, 6, 0) rec[-1] rec[-9] +} +X_ERROR(0.001) 1 3 5 8 10 12 15 17 19 +M 1 3 5 8 10 12 15 17 19 +DETECTOR(0, 4, 1) rec[-3] rec[-6] rec[-13] +DETECTOR(2, 2, 1) rec[-5] rec[-6] rec[-8] rec[-9] rec[-16] +DETECTOR(4, 4, 1) rec[-1] rec[-2] rec[-4] rec[-5] rec[-11] +DETECTOR(6, 2, 1) rec[-4] rec[-7] rec[-14] +OBSERVABLE_INCLUDE(0) rec[-7] rec[-8] rec[-9] diff --git a/wai/quantum-cross-simulator/corpus/qec/surface_z_d5.circuit b/wai/quantum-cross-simulator/corpus/qec/surface_z_d5.circuit new file mode 100644 index 000000000..86cbe35fc --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qec/surface_z_d5.circuit @@ -0,0 +1,153 @@ +QUBIT_COORDS(1, 1) 1 +QUBIT_COORDS(2, 0) 2 +QUBIT_COORDS(3, 1) 3 +QUBIT_COORDS(5, 1) 5 +QUBIT_COORDS(6, 0) 6 +QUBIT_COORDS(7, 1) 7 +QUBIT_COORDS(9, 1) 9 +QUBIT_COORDS(1, 3) 12 +QUBIT_COORDS(2, 2) 13 +QUBIT_COORDS(3, 3) 14 +QUBIT_COORDS(4, 2) 15 +QUBIT_COORDS(5, 3) 16 +QUBIT_COORDS(6, 2) 17 +QUBIT_COORDS(7, 3) 18 +QUBIT_COORDS(8, 2) 19 +QUBIT_COORDS(9, 3) 20 +QUBIT_COORDS(10, 2) 21 +QUBIT_COORDS(0, 4) 22 +QUBIT_COORDS(1, 5) 23 +QUBIT_COORDS(2, 4) 24 +QUBIT_COORDS(3, 5) 25 +QUBIT_COORDS(4, 4) 26 +QUBIT_COORDS(5, 5) 27 +QUBIT_COORDS(6, 4) 28 +QUBIT_COORDS(7, 5) 29 +QUBIT_COORDS(8, 4) 30 +QUBIT_COORDS(9, 5) 31 +QUBIT_COORDS(1, 7) 34 +QUBIT_COORDS(2, 6) 35 +QUBIT_COORDS(3, 7) 36 +QUBIT_COORDS(4, 6) 37 +QUBIT_COORDS(5, 7) 38 +QUBIT_COORDS(6, 6) 39 +QUBIT_COORDS(7, 7) 40 +QUBIT_COORDS(8, 6) 41 +QUBIT_COORDS(9, 7) 42 +QUBIT_COORDS(10, 6) 43 +QUBIT_COORDS(0, 8) 44 +QUBIT_COORDS(1, 9) 45 +QUBIT_COORDS(2, 8) 46 +QUBIT_COORDS(3, 9) 47 +QUBIT_COORDS(4, 8) 48 +QUBIT_COORDS(5, 9) 49 +QUBIT_COORDS(6, 8) 50 +QUBIT_COORDS(7, 9) 51 +QUBIT_COORDS(8, 8) 52 +QUBIT_COORDS(9, 9) 53 +QUBIT_COORDS(4, 10) 59 +QUBIT_COORDS(8, 10) 63 +R 1 3 5 7 9 12 14 16 18 20 23 25 27 29 31 34 36 38 40 42 45 47 49 51 53 +X_ERROR(0.001) 1 3 5 7 9 12 14 16 18 20 23 25 27 29 31 34 36 38 40 42 45 47 49 51 53 +R 2 6 13 15 17 19 21 22 24 26 28 30 35 37 39 41 43 44 46 48 50 52 59 63 +X_ERROR(0.001) 2 6 13 15 17 19 21 22 24 26 28 30 35 37 39 41 43 44 46 48 50 52 59 63 +TICK +DEPOLARIZE1(0.001) 1 3 5 7 9 12 14 16 18 20 23 25 27 29 31 34 36 38 40 42 45 47 49 51 53 +H 2 6 15 19 24 28 37 41 46 50 59 63 +DEPOLARIZE1(0.001) 2 6 15 19 24 28 37 41 46 50 59 63 +TICK +CX 2 3 24 25 46 47 15 16 37 38 6 7 28 29 50 51 19 20 41 42 23 22 45 44 14 13 36 35 27 26 49 48 18 17 40 39 31 30 53 52 +DEPOLARIZE2(0.001) 2 3 24 25 46 47 15 16 37 38 6 7 28 29 50 51 19 20 41 42 23 22 45 44 14 13 36 35 27 26 49 48 18 17 40 39 31 30 53 52 +TICK +CX 2 1 24 23 46 45 15 14 37 36 6 5 28 27 50 49 19 18 41 40 12 22 34 44 3 13 25 35 16 26 38 48 7 17 29 39 20 30 42 52 +DEPOLARIZE2(0.001) 2 1 24 23 46 45 15 14 37 36 6 5 28 27 50 49 19 18 41 40 12 22 34 44 3 13 25 35 16 26 38 48 7 17 29 39 20 30 42 52 +TICK +CX 24 14 46 36 15 5 37 27 59 49 28 18 50 40 19 9 41 31 63 53 12 13 34 35 25 26 47 48 16 17 38 39 29 30 51 52 20 21 42 43 +DEPOLARIZE2(0.001) 24 14 46 36 15 5 37 27 59 49 28 18 50 40 19 9 41 31 63 53 12 13 34 35 25 26 47 48 16 17 38 39 29 30 51 52 20 21 42 43 +TICK +CX 24 12 46 34 15 3 37 25 59 47 28 16 50 38 19 7 41 29 63 51 1 13 23 35 14 26 36 48 5 17 27 39 18 30 40 52 9 21 31 43 +DEPOLARIZE2(0.001) 24 12 46 34 15 3 37 25 59 47 28 16 50 38 19 7 41 29 63 51 1 13 23 35 14 26 36 48 5 17 27 39 18 30 40 52 9 21 31 43 +TICK +H 2 6 15 19 24 28 37 41 46 50 59 63 +DEPOLARIZE1(0.001) 2 6 15 19 24 28 37 41 46 50 59 63 +TICK +X_ERROR(0.001) 2 6 13 15 17 19 21 22 24 26 28 30 35 37 39 41 43 44 46 48 50 52 59 63 +MR 2 6 13 15 17 19 21 22 24 26 28 30 35 37 39 41 43 44 46 48 50 52 59 63 +X_ERROR(0.001) 2 6 13 15 17 19 21 22 24 26 28 30 35 37 39 41 43 44 46 48 50 52 59 63 +DETECTOR(0, 4, 0) rec[-17] +DETECTOR(0, 8, 0) rec[-7] +DETECTOR(2, 2, 0) rec[-22] +DETECTOR(2, 6, 0) rec[-12] +DETECTOR(4, 4, 0) rec[-15] +DETECTOR(4, 8, 0) rec[-5] +DETECTOR(6, 2, 0) rec[-20] +DETECTOR(6, 6, 0) rec[-10] +DETECTOR(8, 4, 0) rec[-13] +DETECTOR(8, 8, 0) rec[-3] +DETECTOR(10, 2, 0) rec[-18] +DETECTOR(10, 6, 0) rec[-8] +REPEAT 4 { + TICK + DEPOLARIZE1(0.001) 1 3 5 7 9 12 14 16 18 20 23 25 27 29 31 34 36 38 40 42 45 47 49 51 53 + H 2 6 15 19 24 28 37 41 46 50 59 63 + DEPOLARIZE1(0.001) 2 6 15 19 24 28 37 41 46 50 59 63 + TICK + CX 2 3 24 25 46 47 15 16 37 38 6 7 28 29 50 51 19 20 41 42 23 22 45 44 14 13 36 35 27 26 49 48 18 17 40 39 31 30 53 52 + DEPOLARIZE2(0.001) 2 3 24 25 46 47 15 16 37 38 6 7 28 29 50 51 19 20 41 42 23 22 45 44 14 13 36 35 27 26 49 48 18 17 40 39 31 30 53 52 + TICK + CX 2 1 24 23 46 45 15 14 37 36 6 5 28 27 50 49 19 18 41 40 12 22 34 44 3 13 25 35 16 26 38 48 7 17 29 39 20 30 42 52 + DEPOLARIZE2(0.001) 2 1 24 23 46 45 15 14 37 36 6 5 28 27 50 49 19 18 41 40 12 22 34 44 3 13 25 35 16 26 38 48 7 17 29 39 20 30 42 52 + TICK + CX 24 14 46 36 15 5 37 27 59 49 28 18 50 40 19 9 41 31 63 53 12 13 34 35 25 26 47 48 16 17 38 39 29 30 51 52 20 21 42 43 + DEPOLARIZE2(0.001) 24 14 46 36 15 5 37 27 59 49 28 18 50 40 19 9 41 31 63 53 12 13 34 35 25 26 47 48 16 17 38 39 29 30 51 52 20 21 42 43 + TICK + CX 24 12 46 34 15 3 37 25 59 47 28 16 50 38 19 7 41 29 63 51 1 13 23 35 14 26 36 48 5 17 27 39 18 30 40 52 9 21 31 43 + DEPOLARIZE2(0.001) 24 12 46 34 15 3 37 25 59 47 28 16 50 38 19 7 41 29 63 51 1 13 23 35 14 26 36 48 5 17 27 39 18 30 40 52 9 21 31 43 + TICK + H 2 6 15 19 24 28 37 41 46 50 59 63 + DEPOLARIZE1(0.001) 2 6 15 19 24 28 37 41 46 50 59 63 + TICK + X_ERROR(0.001) 2 6 13 15 17 19 21 22 24 26 28 30 35 37 39 41 43 44 46 48 50 52 59 63 + MR 2 6 13 15 17 19 21 22 24 26 28 30 35 37 39 41 43 44 46 48 50 52 59 63 + X_ERROR(0.001) 2 6 13 15 17 19 21 22 24 26 28 30 35 37 39 41 43 44 46 48 50 52 59 63 + SHIFT_COORDS(0, 0, 1) + DETECTOR(2, 0, 0) rec[-24] rec[-48] + DETECTOR(6, 0, 0) rec[-23] rec[-47] + DETECTOR(2, 2, 0) rec[-22] rec[-46] + DETECTOR(4, 2, 0) rec[-21] rec[-45] + DETECTOR(6, 2, 0) rec[-20] rec[-44] + DETECTOR(8, 2, 0) rec[-19] rec[-43] + DETECTOR(10, 2, 0) rec[-18] rec[-42] + DETECTOR(0, 4, 0) rec[-17] rec[-41] + DETECTOR(2, 4, 0) rec[-16] rec[-40] + DETECTOR(4, 4, 0) rec[-15] rec[-39] + DETECTOR(6, 4, 0) rec[-14] rec[-38] + DETECTOR(8, 4, 0) rec[-13] rec[-37] + DETECTOR(2, 6, 0) rec[-12] rec[-36] + DETECTOR(4, 6, 0) rec[-11] rec[-35] + DETECTOR(6, 6, 0) rec[-10] rec[-34] + DETECTOR(8, 6, 0) rec[-9] rec[-33] + DETECTOR(10, 6, 0) rec[-8] rec[-32] + DETECTOR(0, 8, 0) rec[-7] rec[-31] + DETECTOR(2, 8, 0) rec[-6] rec[-30] + DETECTOR(4, 8, 0) rec[-5] rec[-29] + DETECTOR(6, 8, 0) rec[-4] rec[-28] + DETECTOR(8, 8, 0) rec[-3] rec[-27] + DETECTOR(4, 10, 0) rec[-2] rec[-26] + DETECTOR(8, 10, 0) rec[-1] rec[-25] +} +X_ERROR(0.001) 1 3 5 7 9 12 14 16 18 20 23 25 27 29 31 34 36 38 40 42 45 47 49 51 53 +M 1 3 5 7 9 12 14 16 18 20 23 25 27 29 31 34 36 38 40 42 45 47 49 51 53 +DETECTOR(0, 4, 1) rec[-15] rec[-20] rec[-42] +DETECTOR(0, 8, 1) rec[-5] rec[-10] rec[-32] +DETECTOR(2, 2, 1) rec[-19] rec[-20] rec[-24] rec[-25] rec[-47] +DETECTOR(2, 6, 1) rec[-9] rec[-10] rec[-14] rec[-15] rec[-37] +DETECTOR(4, 4, 1) rec[-13] rec[-14] rec[-18] rec[-19] rec[-40] +DETECTOR(4, 8, 1) rec[-3] rec[-4] rec[-8] rec[-9] rec[-30] +DETECTOR(6, 2, 1) rec[-17] rec[-18] rec[-22] rec[-23] rec[-45] +DETECTOR(6, 6, 1) rec[-7] rec[-8] rec[-12] rec[-13] rec[-35] +DETECTOR(8, 4, 1) rec[-11] rec[-12] rec[-16] rec[-17] rec[-38] +DETECTOR(8, 8, 1) rec[-1] rec[-2] rec[-6] rec[-7] rec[-28] +DETECTOR(10, 2, 1) rec[-16] rec[-21] rec[-43] +DETECTOR(10, 6, 1) rec[-6] rec[-11] rec[-33] +OBSERVABLE_INCLUDE(0) rec[-21] rec[-22] rec[-23] rec[-24] rec[-25] diff --git a/wai/quantum-cross-simulator/corpus/qec/surface_z_d5_noiseless.circuit b/wai/quantum-cross-simulator/corpus/qec/surface_z_d5_noiseless.circuit new file mode 100644 index 000000000..6a959c862 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qec/surface_z_d5_noiseless.circuit @@ -0,0 +1,131 @@ +QUBIT_COORDS(1, 1) 1 +QUBIT_COORDS(2, 0) 2 +QUBIT_COORDS(3, 1) 3 +QUBIT_COORDS(5, 1) 5 +QUBIT_COORDS(6, 0) 6 +QUBIT_COORDS(7, 1) 7 +QUBIT_COORDS(9, 1) 9 +QUBIT_COORDS(1, 3) 12 +QUBIT_COORDS(2, 2) 13 +QUBIT_COORDS(3, 3) 14 +QUBIT_COORDS(4, 2) 15 +QUBIT_COORDS(5, 3) 16 +QUBIT_COORDS(6, 2) 17 +QUBIT_COORDS(7, 3) 18 +QUBIT_COORDS(8, 2) 19 +QUBIT_COORDS(9, 3) 20 +QUBIT_COORDS(10, 2) 21 +QUBIT_COORDS(0, 4) 22 +QUBIT_COORDS(1, 5) 23 +QUBIT_COORDS(2, 4) 24 +QUBIT_COORDS(3, 5) 25 +QUBIT_COORDS(4, 4) 26 +QUBIT_COORDS(5, 5) 27 +QUBIT_COORDS(6, 4) 28 +QUBIT_COORDS(7, 5) 29 +QUBIT_COORDS(8, 4) 30 +QUBIT_COORDS(9, 5) 31 +QUBIT_COORDS(1, 7) 34 +QUBIT_COORDS(2, 6) 35 +QUBIT_COORDS(3, 7) 36 +QUBIT_COORDS(4, 6) 37 +QUBIT_COORDS(5, 7) 38 +QUBIT_COORDS(6, 6) 39 +QUBIT_COORDS(7, 7) 40 +QUBIT_COORDS(8, 6) 41 +QUBIT_COORDS(9, 7) 42 +QUBIT_COORDS(10, 6) 43 +QUBIT_COORDS(0, 8) 44 +QUBIT_COORDS(1, 9) 45 +QUBIT_COORDS(2, 8) 46 +QUBIT_COORDS(3, 9) 47 +QUBIT_COORDS(4, 8) 48 +QUBIT_COORDS(5, 9) 49 +QUBIT_COORDS(6, 8) 50 +QUBIT_COORDS(7, 9) 51 +QUBIT_COORDS(8, 8) 52 +QUBIT_COORDS(9, 9) 53 +QUBIT_COORDS(4, 10) 59 +QUBIT_COORDS(8, 10) 63 +R 1 3 5 7 9 12 14 16 18 20 23 25 27 29 31 34 36 38 40 42 45 47 49 51 53 2 6 13 15 17 19 21 22 24 26 28 30 35 37 39 41 43 44 46 48 50 52 59 63 +TICK +H 2 6 15 19 24 28 37 41 46 50 59 63 +TICK +CX 2 3 24 25 46 47 15 16 37 38 6 7 28 29 50 51 19 20 41 42 23 22 45 44 14 13 36 35 27 26 49 48 18 17 40 39 31 30 53 52 +TICK +CX 2 1 24 23 46 45 15 14 37 36 6 5 28 27 50 49 19 18 41 40 12 22 34 44 3 13 25 35 16 26 38 48 7 17 29 39 20 30 42 52 +TICK +CX 24 14 46 36 15 5 37 27 59 49 28 18 50 40 19 9 41 31 63 53 12 13 34 35 25 26 47 48 16 17 38 39 29 30 51 52 20 21 42 43 +TICK +CX 24 12 46 34 15 3 37 25 59 47 28 16 50 38 19 7 41 29 63 51 1 13 23 35 14 26 36 48 5 17 27 39 18 30 40 52 9 21 31 43 +TICK +H 2 6 15 19 24 28 37 41 46 50 59 63 +TICK +MR 2 6 13 15 17 19 21 22 24 26 28 30 35 37 39 41 43 44 46 48 50 52 59 63 +DETECTOR(0, 4, 0) rec[-17] +DETECTOR(0, 8, 0) rec[-7] +DETECTOR(2, 2, 0) rec[-22] +DETECTOR(2, 6, 0) rec[-12] +DETECTOR(4, 4, 0) rec[-15] +DETECTOR(4, 8, 0) rec[-5] +DETECTOR(6, 2, 0) rec[-20] +DETECTOR(6, 6, 0) rec[-10] +DETECTOR(8, 4, 0) rec[-13] +DETECTOR(8, 8, 0) rec[-3] +DETECTOR(10, 2, 0) rec[-18] +DETECTOR(10, 6, 0) rec[-8] +REPEAT 4 { + TICK + H 2 6 15 19 24 28 37 41 46 50 59 63 + TICK + CX 2 3 24 25 46 47 15 16 37 38 6 7 28 29 50 51 19 20 41 42 23 22 45 44 14 13 36 35 27 26 49 48 18 17 40 39 31 30 53 52 + TICK + CX 2 1 24 23 46 45 15 14 37 36 6 5 28 27 50 49 19 18 41 40 12 22 34 44 3 13 25 35 16 26 38 48 7 17 29 39 20 30 42 52 + TICK + CX 24 14 46 36 15 5 37 27 59 49 28 18 50 40 19 9 41 31 63 53 12 13 34 35 25 26 47 48 16 17 38 39 29 30 51 52 20 21 42 43 + TICK + CX 24 12 46 34 15 3 37 25 59 47 28 16 50 38 19 7 41 29 63 51 1 13 23 35 14 26 36 48 5 17 27 39 18 30 40 52 9 21 31 43 + TICK + H 2 6 15 19 24 28 37 41 46 50 59 63 + TICK + MR 2 6 13 15 17 19 21 22 24 26 28 30 35 37 39 41 43 44 46 48 50 52 59 63 + SHIFT_COORDS(0, 0, 1) + DETECTOR(2, 0, 0) rec[-24] rec[-48] + DETECTOR(6, 0, 0) rec[-23] rec[-47] + DETECTOR(2, 2, 0) rec[-22] rec[-46] + DETECTOR(4, 2, 0) rec[-21] rec[-45] + DETECTOR(6, 2, 0) rec[-20] rec[-44] + DETECTOR(8, 2, 0) rec[-19] rec[-43] + DETECTOR(10, 2, 0) rec[-18] rec[-42] + DETECTOR(0, 4, 0) rec[-17] rec[-41] + DETECTOR(2, 4, 0) rec[-16] rec[-40] + DETECTOR(4, 4, 0) rec[-15] rec[-39] + DETECTOR(6, 4, 0) rec[-14] rec[-38] + DETECTOR(8, 4, 0) rec[-13] rec[-37] + DETECTOR(2, 6, 0) rec[-12] rec[-36] + DETECTOR(4, 6, 0) rec[-11] rec[-35] + DETECTOR(6, 6, 0) rec[-10] rec[-34] + DETECTOR(8, 6, 0) rec[-9] rec[-33] + DETECTOR(10, 6, 0) rec[-8] rec[-32] + DETECTOR(0, 8, 0) rec[-7] rec[-31] + DETECTOR(2, 8, 0) rec[-6] rec[-30] + DETECTOR(4, 8, 0) rec[-5] rec[-29] + DETECTOR(6, 8, 0) rec[-4] rec[-28] + DETECTOR(8, 8, 0) rec[-3] rec[-27] + DETECTOR(4, 10, 0) rec[-2] rec[-26] + DETECTOR(8, 10, 0) rec[-1] rec[-25] +} +M 1 3 5 7 9 12 14 16 18 20 23 25 27 29 31 34 36 38 40 42 45 47 49 51 53 +DETECTOR(0, 4, 1) rec[-15] rec[-20] rec[-42] +DETECTOR(0, 8, 1) rec[-5] rec[-10] rec[-32] +DETECTOR(2, 2, 1) rec[-19] rec[-20] rec[-24] rec[-25] rec[-47] +DETECTOR(2, 6, 1) rec[-9] rec[-10] rec[-14] rec[-15] rec[-37] +DETECTOR(4, 4, 1) rec[-13] rec[-14] rec[-18] rec[-19] rec[-40] +DETECTOR(4, 8, 1) rec[-3] rec[-4] rec[-8] rec[-9] rec[-30] +DETECTOR(6, 2, 1) rec[-17] rec[-18] rec[-22] rec[-23] rec[-45] +DETECTOR(6, 6, 1) rec[-7] rec[-8] rec[-12] rec[-13] rec[-35] +DETECTOR(8, 4, 1) rec[-11] rec[-12] rec[-16] rec[-17] rec[-38] +DETECTOR(8, 8, 1) rec[-1] rec[-2] rec[-6] rec[-7] rec[-28] +DETECTOR(10, 2, 1) rec[-16] rec[-21] rec[-43] +DETECTOR(10, 6, 1) rec[-6] rec[-11] rec[-33] +OBSERVABLE_INCLUDE(0) rec[-21] rec[-22] rec[-23] rec[-24] rec[-25] diff --git a/wai/quantum-cross-simulator/corpus/qec/surface_z_d7.circuit b/wai/quantum-cross-simulator/corpus/qec/surface_z_d7.circuit new file mode 100644 index 000000000..fbc3b7104 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qec/surface_z_d7.circuit @@ -0,0 +1,249 @@ +QUBIT_COORDS(1, 1) 1 +QUBIT_COORDS(2, 0) 2 +QUBIT_COORDS(3, 1) 3 +QUBIT_COORDS(5, 1) 5 +QUBIT_COORDS(6, 0) 6 +QUBIT_COORDS(7, 1) 7 +QUBIT_COORDS(9, 1) 9 +QUBIT_COORDS(10, 0) 10 +QUBIT_COORDS(11, 1) 11 +QUBIT_COORDS(13, 1) 13 +QUBIT_COORDS(1, 3) 16 +QUBIT_COORDS(2, 2) 17 +QUBIT_COORDS(3, 3) 18 +QUBIT_COORDS(4, 2) 19 +QUBIT_COORDS(5, 3) 20 +QUBIT_COORDS(6, 2) 21 +QUBIT_COORDS(7, 3) 22 +QUBIT_COORDS(8, 2) 23 +QUBIT_COORDS(9, 3) 24 +QUBIT_COORDS(10, 2) 25 +QUBIT_COORDS(11, 3) 26 +QUBIT_COORDS(12, 2) 27 +QUBIT_COORDS(13, 3) 28 +QUBIT_COORDS(14, 2) 29 +QUBIT_COORDS(0, 4) 30 +QUBIT_COORDS(1, 5) 31 +QUBIT_COORDS(2, 4) 32 +QUBIT_COORDS(3, 5) 33 +QUBIT_COORDS(4, 4) 34 +QUBIT_COORDS(5, 5) 35 +QUBIT_COORDS(6, 4) 36 +QUBIT_COORDS(7, 5) 37 +QUBIT_COORDS(8, 4) 38 +QUBIT_COORDS(9, 5) 39 +QUBIT_COORDS(10, 4) 40 +QUBIT_COORDS(11, 5) 41 +QUBIT_COORDS(12, 4) 42 +QUBIT_COORDS(13, 5) 43 +QUBIT_COORDS(1, 7) 46 +QUBIT_COORDS(2, 6) 47 +QUBIT_COORDS(3, 7) 48 +QUBIT_COORDS(4, 6) 49 +QUBIT_COORDS(5, 7) 50 +QUBIT_COORDS(6, 6) 51 +QUBIT_COORDS(7, 7) 52 +QUBIT_COORDS(8, 6) 53 +QUBIT_COORDS(9, 7) 54 +QUBIT_COORDS(10, 6) 55 +QUBIT_COORDS(11, 7) 56 +QUBIT_COORDS(12, 6) 57 +QUBIT_COORDS(13, 7) 58 +QUBIT_COORDS(14, 6) 59 +QUBIT_COORDS(0, 8) 60 +QUBIT_COORDS(1, 9) 61 +QUBIT_COORDS(2, 8) 62 +QUBIT_COORDS(3, 9) 63 +QUBIT_COORDS(4, 8) 64 +QUBIT_COORDS(5, 9) 65 +QUBIT_COORDS(6, 8) 66 +QUBIT_COORDS(7, 9) 67 +QUBIT_COORDS(8, 8) 68 +QUBIT_COORDS(9, 9) 69 +QUBIT_COORDS(10, 8) 70 +QUBIT_COORDS(11, 9) 71 +QUBIT_COORDS(12, 8) 72 +QUBIT_COORDS(13, 9) 73 +QUBIT_COORDS(1, 11) 76 +QUBIT_COORDS(2, 10) 77 +QUBIT_COORDS(3, 11) 78 +QUBIT_COORDS(4, 10) 79 +QUBIT_COORDS(5, 11) 80 +QUBIT_COORDS(6, 10) 81 +QUBIT_COORDS(7, 11) 82 +QUBIT_COORDS(8, 10) 83 +QUBIT_COORDS(9, 11) 84 +QUBIT_COORDS(10, 10) 85 +QUBIT_COORDS(11, 11) 86 +QUBIT_COORDS(12, 10) 87 +QUBIT_COORDS(13, 11) 88 +QUBIT_COORDS(14, 10) 89 +QUBIT_COORDS(0, 12) 90 +QUBIT_COORDS(1, 13) 91 +QUBIT_COORDS(2, 12) 92 +QUBIT_COORDS(3, 13) 93 +QUBIT_COORDS(4, 12) 94 +QUBIT_COORDS(5, 13) 95 +QUBIT_COORDS(6, 12) 96 +QUBIT_COORDS(7, 13) 97 +QUBIT_COORDS(8, 12) 98 +QUBIT_COORDS(9, 13) 99 +QUBIT_COORDS(10, 12) 100 +QUBIT_COORDS(11, 13) 101 +QUBIT_COORDS(12, 12) 102 +QUBIT_COORDS(13, 13) 103 +QUBIT_COORDS(4, 14) 109 +QUBIT_COORDS(8, 14) 113 +QUBIT_COORDS(12, 14) 117 +R 1 3 5 7 9 11 13 16 18 20 22 24 26 28 31 33 35 37 39 41 43 46 48 50 52 54 56 58 61 63 65 67 69 71 73 76 78 80 82 84 86 88 91 93 95 97 99 101 103 +X_ERROR(0.001) 1 3 5 7 9 11 13 16 18 20 22 24 26 28 31 33 35 37 39 41 43 46 48 50 52 54 56 58 61 63 65 67 69 71 73 76 78 80 82 84 86 88 91 93 95 97 99 101 103 +R 2 6 10 17 19 21 23 25 27 29 30 32 34 36 38 40 42 47 49 51 53 55 57 59 60 62 64 66 68 70 72 77 79 81 83 85 87 89 90 92 94 96 98 100 102 109 113 117 +X_ERROR(0.001) 2 6 10 17 19 21 23 25 27 29 30 32 34 36 38 40 42 47 49 51 53 55 57 59 60 62 64 66 68 70 72 77 79 81 83 85 87 89 90 92 94 96 98 100 102 109 113 117 +TICK +DEPOLARIZE1(0.001) 1 3 5 7 9 11 13 16 18 20 22 24 26 28 31 33 35 37 39 41 43 46 48 50 52 54 56 58 61 63 65 67 69 71 73 76 78 80 82 84 86 88 91 93 95 97 99 101 103 +H 2 6 10 19 23 27 32 36 40 49 53 57 62 66 70 79 83 87 92 96 100 109 113 117 +DEPOLARIZE1(0.001) 2 6 10 19 23 27 32 36 40 49 53 57 62 66 70 79 83 87 92 96 100 109 113 117 +TICK +CX 2 3 32 33 62 63 92 93 19 20 49 50 79 80 6 7 36 37 66 67 96 97 23 24 53 54 83 84 10 11 40 41 70 71 100 101 27 28 57 58 87 88 31 30 61 60 91 90 18 17 48 47 78 77 35 34 65 64 95 94 22 21 52 51 82 81 39 38 69 68 99 98 26 25 56 55 86 85 43 42 73 72 103 102 +DEPOLARIZE2(0.001) 2 3 32 33 62 63 92 93 19 20 49 50 79 80 6 7 36 37 66 67 96 97 23 24 53 54 83 84 10 11 40 41 70 71 100 101 27 28 57 58 87 88 31 30 61 60 91 90 18 17 48 47 78 77 35 34 65 64 95 94 22 21 52 51 82 81 39 38 69 68 99 98 26 25 56 55 86 85 43 42 73 72 103 102 +TICK +CX 2 1 32 31 62 61 92 91 19 18 49 48 79 78 6 5 36 35 66 65 96 95 23 22 53 52 83 82 10 9 40 39 70 69 100 99 27 26 57 56 87 86 16 30 46 60 76 90 3 17 33 47 63 77 20 34 50 64 80 94 7 21 37 51 67 81 24 38 54 68 84 98 11 25 41 55 71 85 28 42 58 72 88 102 +DEPOLARIZE2(0.001) 2 1 32 31 62 61 92 91 19 18 49 48 79 78 6 5 36 35 66 65 96 95 23 22 53 52 83 82 10 9 40 39 70 69 100 99 27 26 57 56 87 86 16 30 46 60 76 90 3 17 33 47 63 77 20 34 50 64 80 94 7 21 37 51 67 81 24 38 54 68 84 98 11 25 41 55 71 85 28 42 58 72 88 102 +TICK +CX 32 18 62 48 92 78 19 5 49 35 79 65 109 95 36 22 66 52 96 82 23 9 53 39 83 69 113 99 40 26 70 56 100 86 27 13 57 43 87 73 117 103 16 17 46 47 76 77 33 34 63 64 93 94 20 21 50 51 80 81 37 38 67 68 97 98 24 25 54 55 84 85 41 42 71 72 101 102 28 29 58 59 88 89 +DEPOLARIZE2(0.001) 32 18 62 48 92 78 19 5 49 35 79 65 109 95 36 22 66 52 96 82 23 9 53 39 83 69 113 99 40 26 70 56 100 86 27 13 57 43 87 73 117 103 16 17 46 47 76 77 33 34 63 64 93 94 20 21 50 51 80 81 37 38 67 68 97 98 24 25 54 55 84 85 41 42 71 72 101 102 28 29 58 59 88 89 +TICK +CX 32 16 62 46 92 76 19 3 49 33 79 63 109 93 36 20 66 50 96 80 23 7 53 37 83 67 113 97 40 24 70 54 100 84 27 11 57 41 87 71 117 101 1 17 31 47 61 77 18 34 48 64 78 94 5 21 35 51 65 81 22 38 52 68 82 98 9 25 39 55 69 85 26 42 56 72 86 102 13 29 43 59 73 89 +DEPOLARIZE2(0.001) 32 16 62 46 92 76 19 3 49 33 79 63 109 93 36 20 66 50 96 80 23 7 53 37 83 67 113 97 40 24 70 54 100 84 27 11 57 41 87 71 117 101 1 17 31 47 61 77 18 34 48 64 78 94 5 21 35 51 65 81 22 38 52 68 82 98 9 25 39 55 69 85 26 42 56 72 86 102 13 29 43 59 73 89 +TICK +H 2 6 10 19 23 27 32 36 40 49 53 57 62 66 70 79 83 87 92 96 100 109 113 117 +DEPOLARIZE1(0.001) 2 6 10 19 23 27 32 36 40 49 53 57 62 66 70 79 83 87 92 96 100 109 113 117 +TICK +X_ERROR(0.001) 2 6 10 17 19 21 23 25 27 29 30 32 34 36 38 40 42 47 49 51 53 55 57 59 60 62 64 66 68 70 72 77 79 81 83 85 87 89 90 92 94 96 98 100 102 109 113 117 +MR 2 6 10 17 19 21 23 25 27 29 30 32 34 36 38 40 42 47 49 51 53 55 57 59 60 62 64 66 68 70 72 77 79 81 83 85 87 89 90 92 94 96 98 100 102 109 113 117 +X_ERROR(0.001) 2 6 10 17 19 21 23 25 27 29 30 32 34 36 38 40 42 47 49 51 53 55 57 59 60 62 64 66 68 70 72 77 79 81 83 85 87 89 90 92 94 96 98 100 102 109 113 117 +DETECTOR(0, 4, 0) rec[-38] +DETECTOR(0, 8, 0) rec[-24] +DETECTOR(0, 12, 0) rec[-10] +DETECTOR(2, 2, 0) rec[-45] +DETECTOR(2, 6, 0) rec[-31] +DETECTOR(2, 10, 0) rec[-17] +DETECTOR(4, 4, 0) rec[-36] +DETECTOR(4, 8, 0) rec[-22] +DETECTOR(4, 12, 0) rec[-8] +DETECTOR(6, 2, 0) rec[-43] +DETECTOR(6, 6, 0) rec[-29] +DETECTOR(6, 10, 0) rec[-15] +DETECTOR(8, 4, 0) rec[-34] +DETECTOR(8, 8, 0) rec[-20] +DETECTOR(8, 12, 0) rec[-6] +DETECTOR(10, 2, 0) rec[-41] +DETECTOR(10, 6, 0) rec[-27] +DETECTOR(10, 10, 0) rec[-13] +DETECTOR(12, 4, 0) rec[-32] +DETECTOR(12, 8, 0) rec[-18] +DETECTOR(12, 12, 0) rec[-4] +DETECTOR(14, 2, 0) rec[-39] +DETECTOR(14, 6, 0) rec[-25] +DETECTOR(14, 10, 0) rec[-11] +REPEAT 6 { + TICK + DEPOLARIZE1(0.001) 1 3 5 7 9 11 13 16 18 20 22 24 26 28 31 33 35 37 39 41 43 46 48 50 52 54 56 58 61 63 65 67 69 71 73 76 78 80 82 84 86 88 91 93 95 97 99 101 103 + H 2 6 10 19 23 27 32 36 40 49 53 57 62 66 70 79 83 87 92 96 100 109 113 117 + DEPOLARIZE1(0.001) 2 6 10 19 23 27 32 36 40 49 53 57 62 66 70 79 83 87 92 96 100 109 113 117 + TICK + CX 2 3 32 33 62 63 92 93 19 20 49 50 79 80 6 7 36 37 66 67 96 97 23 24 53 54 83 84 10 11 40 41 70 71 100 101 27 28 57 58 87 88 31 30 61 60 91 90 18 17 48 47 78 77 35 34 65 64 95 94 22 21 52 51 82 81 39 38 69 68 99 98 26 25 56 55 86 85 43 42 73 72 103 102 + DEPOLARIZE2(0.001) 2 3 32 33 62 63 92 93 19 20 49 50 79 80 6 7 36 37 66 67 96 97 23 24 53 54 83 84 10 11 40 41 70 71 100 101 27 28 57 58 87 88 31 30 61 60 91 90 18 17 48 47 78 77 35 34 65 64 95 94 22 21 52 51 82 81 39 38 69 68 99 98 26 25 56 55 86 85 43 42 73 72 103 102 + TICK + CX 2 1 32 31 62 61 92 91 19 18 49 48 79 78 6 5 36 35 66 65 96 95 23 22 53 52 83 82 10 9 40 39 70 69 100 99 27 26 57 56 87 86 16 30 46 60 76 90 3 17 33 47 63 77 20 34 50 64 80 94 7 21 37 51 67 81 24 38 54 68 84 98 11 25 41 55 71 85 28 42 58 72 88 102 + DEPOLARIZE2(0.001) 2 1 32 31 62 61 92 91 19 18 49 48 79 78 6 5 36 35 66 65 96 95 23 22 53 52 83 82 10 9 40 39 70 69 100 99 27 26 57 56 87 86 16 30 46 60 76 90 3 17 33 47 63 77 20 34 50 64 80 94 7 21 37 51 67 81 24 38 54 68 84 98 11 25 41 55 71 85 28 42 58 72 88 102 + TICK + CX 32 18 62 48 92 78 19 5 49 35 79 65 109 95 36 22 66 52 96 82 23 9 53 39 83 69 113 99 40 26 70 56 100 86 27 13 57 43 87 73 117 103 16 17 46 47 76 77 33 34 63 64 93 94 20 21 50 51 80 81 37 38 67 68 97 98 24 25 54 55 84 85 41 42 71 72 101 102 28 29 58 59 88 89 + DEPOLARIZE2(0.001) 32 18 62 48 92 78 19 5 49 35 79 65 109 95 36 22 66 52 96 82 23 9 53 39 83 69 113 99 40 26 70 56 100 86 27 13 57 43 87 73 117 103 16 17 46 47 76 77 33 34 63 64 93 94 20 21 50 51 80 81 37 38 67 68 97 98 24 25 54 55 84 85 41 42 71 72 101 102 28 29 58 59 88 89 + TICK + CX 32 16 62 46 92 76 19 3 49 33 79 63 109 93 36 20 66 50 96 80 23 7 53 37 83 67 113 97 40 24 70 54 100 84 27 11 57 41 87 71 117 101 1 17 31 47 61 77 18 34 48 64 78 94 5 21 35 51 65 81 22 38 52 68 82 98 9 25 39 55 69 85 26 42 56 72 86 102 13 29 43 59 73 89 + DEPOLARIZE2(0.001) 32 16 62 46 92 76 19 3 49 33 79 63 109 93 36 20 66 50 96 80 23 7 53 37 83 67 113 97 40 24 70 54 100 84 27 11 57 41 87 71 117 101 1 17 31 47 61 77 18 34 48 64 78 94 5 21 35 51 65 81 22 38 52 68 82 98 9 25 39 55 69 85 26 42 56 72 86 102 13 29 43 59 73 89 + TICK + H 2 6 10 19 23 27 32 36 40 49 53 57 62 66 70 79 83 87 92 96 100 109 113 117 + DEPOLARIZE1(0.001) 2 6 10 19 23 27 32 36 40 49 53 57 62 66 70 79 83 87 92 96 100 109 113 117 + TICK + X_ERROR(0.001) 2 6 10 17 19 21 23 25 27 29 30 32 34 36 38 40 42 47 49 51 53 55 57 59 60 62 64 66 68 70 72 77 79 81 83 85 87 89 90 92 94 96 98 100 102 109 113 117 + MR 2 6 10 17 19 21 23 25 27 29 30 32 34 36 38 40 42 47 49 51 53 55 57 59 60 62 64 66 68 70 72 77 79 81 83 85 87 89 90 92 94 96 98 100 102 109 113 117 + X_ERROR(0.001) 2 6 10 17 19 21 23 25 27 29 30 32 34 36 38 40 42 47 49 51 53 55 57 59 60 62 64 66 68 70 72 77 79 81 83 85 87 89 90 92 94 96 98 100 102 109 113 117 + SHIFT_COORDS(0, 0, 1) + DETECTOR(2, 0, 0) rec[-48] rec[-96] + DETECTOR(6, 0, 0) rec[-47] rec[-95] + DETECTOR(10, 0, 0) rec[-46] rec[-94] + DETECTOR(2, 2, 0) rec[-45] rec[-93] + DETECTOR(4, 2, 0) rec[-44] rec[-92] + DETECTOR(6, 2, 0) rec[-43] rec[-91] + DETECTOR(8, 2, 0) rec[-42] rec[-90] + DETECTOR(10, 2, 0) rec[-41] rec[-89] + DETECTOR(12, 2, 0) rec[-40] rec[-88] + DETECTOR(14, 2, 0) rec[-39] rec[-87] + DETECTOR(0, 4, 0) rec[-38] rec[-86] + DETECTOR(2, 4, 0) rec[-37] rec[-85] + DETECTOR(4, 4, 0) rec[-36] rec[-84] + DETECTOR(6, 4, 0) rec[-35] rec[-83] + DETECTOR(8, 4, 0) rec[-34] rec[-82] + DETECTOR(10, 4, 0) rec[-33] rec[-81] + DETECTOR(12, 4, 0) rec[-32] rec[-80] + DETECTOR(2, 6, 0) rec[-31] rec[-79] + DETECTOR(4, 6, 0) rec[-30] rec[-78] + DETECTOR(6, 6, 0) rec[-29] rec[-77] + DETECTOR(8, 6, 0) rec[-28] rec[-76] + DETECTOR(10, 6, 0) rec[-27] rec[-75] + DETECTOR(12, 6, 0) rec[-26] rec[-74] + DETECTOR(14, 6, 0) rec[-25] rec[-73] + DETECTOR(0, 8, 0) rec[-24] rec[-72] + DETECTOR(2, 8, 0) rec[-23] rec[-71] + DETECTOR(4, 8, 0) rec[-22] rec[-70] + DETECTOR(6, 8, 0) rec[-21] rec[-69] + DETECTOR(8, 8, 0) rec[-20] rec[-68] + DETECTOR(10, 8, 0) rec[-19] rec[-67] + DETECTOR(12, 8, 0) rec[-18] rec[-66] + DETECTOR(2, 10, 0) rec[-17] rec[-65] + DETECTOR(4, 10, 0) rec[-16] rec[-64] + DETECTOR(6, 10, 0) rec[-15] rec[-63] + DETECTOR(8, 10, 0) rec[-14] rec[-62] + DETECTOR(10, 10, 0) rec[-13] rec[-61] + DETECTOR(12, 10, 0) rec[-12] rec[-60] + DETECTOR(14, 10, 0) rec[-11] rec[-59] + DETECTOR(0, 12, 0) rec[-10] rec[-58] + DETECTOR(2, 12, 0) rec[-9] rec[-57] + DETECTOR(4, 12, 0) rec[-8] rec[-56] + DETECTOR(6, 12, 0) rec[-7] rec[-55] + DETECTOR(8, 12, 0) rec[-6] rec[-54] + DETECTOR(10, 12, 0) rec[-5] rec[-53] + DETECTOR(12, 12, 0) rec[-4] rec[-52] + DETECTOR(4, 14, 0) rec[-3] rec[-51] + DETECTOR(8, 14, 0) rec[-2] rec[-50] + DETECTOR(12, 14, 0) rec[-1] rec[-49] +} +X_ERROR(0.001) 1 3 5 7 9 11 13 16 18 20 22 24 26 28 31 33 35 37 39 41 43 46 48 50 52 54 56 58 61 63 65 67 69 71 73 76 78 80 82 84 86 88 91 93 95 97 99 101 103 +M 1 3 5 7 9 11 13 16 18 20 22 24 26 28 31 33 35 37 39 41 43 46 48 50 52 54 56 58 61 63 65 67 69 71 73 76 78 80 82 84 86 88 91 93 95 97 99 101 103 +DETECTOR(0, 4, 1) rec[-35] rec[-42] rec[-87] +DETECTOR(0, 8, 1) rec[-21] rec[-28] rec[-73] +DETECTOR(0, 12, 1) rec[-7] rec[-14] rec[-59] +DETECTOR(2, 2, 1) rec[-41] rec[-42] rec[-48] rec[-49] rec[-94] +DETECTOR(2, 6, 1) rec[-27] rec[-28] rec[-34] rec[-35] rec[-80] +DETECTOR(2, 10, 1) rec[-13] rec[-14] rec[-20] rec[-21] rec[-66] +DETECTOR(4, 4, 1) rec[-33] rec[-34] rec[-40] rec[-41] rec[-85] +DETECTOR(4, 8, 1) rec[-19] rec[-20] rec[-26] rec[-27] rec[-71] +DETECTOR(4, 12, 1) rec[-5] rec[-6] rec[-12] rec[-13] rec[-57] +DETECTOR(6, 2, 1) rec[-39] rec[-40] rec[-46] rec[-47] rec[-92] +DETECTOR(6, 6, 1) rec[-25] rec[-26] rec[-32] rec[-33] rec[-78] +DETECTOR(6, 10, 1) rec[-11] rec[-12] rec[-18] rec[-19] rec[-64] +DETECTOR(8, 4, 1) rec[-31] rec[-32] rec[-38] rec[-39] rec[-83] +DETECTOR(8, 8, 1) rec[-17] rec[-18] rec[-24] rec[-25] rec[-69] +DETECTOR(8, 12, 1) rec[-3] rec[-4] rec[-10] rec[-11] rec[-55] +DETECTOR(10, 2, 1) rec[-37] rec[-38] rec[-44] rec[-45] rec[-90] +DETECTOR(10, 6, 1) rec[-23] rec[-24] rec[-30] rec[-31] rec[-76] +DETECTOR(10, 10, 1) rec[-9] rec[-10] rec[-16] rec[-17] rec[-62] +DETECTOR(12, 4, 1) rec[-29] rec[-30] rec[-36] rec[-37] rec[-81] +DETECTOR(12, 8, 1) rec[-15] rec[-16] rec[-22] rec[-23] rec[-67] +DETECTOR(12, 12, 1) rec[-1] rec[-2] rec[-8] rec[-9] rec[-53] +DETECTOR(14, 2, 1) rec[-36] rec[-43] rec[-88] +DETECTOR(14, 6, 1) rec[-22] rec[-29] rec[-74] +DETECTOR(14, 10, 1) rec[-8] rec[-15] rec[-60] +OBSERVABLE_INCLUDE(0) rec[-43] rec[-44] rec[-45] rec[-46] rec[-47] rec[-48] rec[-49] diff --git a/wai/quantum-cross-simulator/corpus/qec/surface_z_d9.circuit b/wai/quantum-cross-simulator/corpus/qec/surface_z_d9.circuit new file mode 100644 index 000000000..8a382f486 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qec/surface_z_d9.circuit @@ -0,0 +1,377 @@ +QUBIT_COORDS(1, 1) 1 +QUBIT_COORDS(2, 0) 2 +QUBIT_COORDS(3, 1) 3 +QUBIT_COORDS(5, 1) 5 +QUBIT_COORDS(6, 0) 6 +QUBIT_COORDS(7, 1) 7 +QUBIT_COORDS(9, 1) 9 +QUBIT_COORDS(10, 0) 10 +QUBIT_COORDS(11, 1) 11 +QUBIT_COORDS(13, 1) 13 +QUBIT_COORDS(14, 0) 14 +QUBIT_COORDS(15, 1) 15 +QUBIT_COORDS(17, 1) 17 +QUBIT_COORDS(1, 3) 20 +QUBIT_COORDS(2, 2) 21 +QUBIT_COORDS(3, 3) 22 +QUBIT_COORDS(4, 2) 23 +QUBIT_COORDS(5, 3) 24 +QUBIT_COORDS(6, 2) 25 +QUBIT_COORDS(7, 3) 26 +QUBIT_COORDS(8, 2) 27 +QUBIT_COORDS(9, 3) 28 +QUBIT_COORDS(10, 2) 29 +QUBIT_COORDS(11, 3) 30 +QUBIT_COORDS(12, 2) 31 +QUBIT_COORDS(13, 3) 32 +QUBIT_COORDS(14, 2) 33 +QUBIT_COORDS(15, 3) 34 +QUBIT_COORDS(16, 2) 35 +QUBIT_COORDS(17, 3) 36 +QUBIT_COORDS(18, 2) 37 +QUBIT_COORDS(0, 4) 38 +QUBIT_COORDS(1, 5) 39 +QUBIT_COORDS(2, 4) 40 +QUBIT_COORDS(3, 5) 41 +QUBIT_COORDS(4, 4) 42 +QUBIT_COORDS(5, 5) 43 +QUBIT_COORDS(6, 4) 44 +QUBIT_COORDS(7, 5) 45 +QUBIT_COORDS(8, 4) 46 +QUBIT_COORDS(9, 5) 47 +QUBIT_COORDS(10, 4) 48 +QUBIT_COORDS(11, 5) 49 +QUBIT_COORDS(12, 4) 50 +QUBIT_COORDS(13, 5) 51 +QUBIT_COORDS(14, 4) 52 +QUBIT_COORDS(15, 5) 53 +QUBIT_COORDS(16, 4) 54 +QUBIT_COORDS(17, 5) 55 +QUBIT_COORDS(1, 7) 58 +QUBIT_COORDS(2, 6) 59 +QUBIT_COORDS(3, 7) 60 +QUBIT_COORDS(4, 6) 61 +QUBIT_COORDS(5, 7) 62 +QUBIT_COORDS(6, 6) 63 +QUBIT_COORDS(7, 7) 64 +QUBIT_COORDS(8, 6) 65 +QUBIT_COORDS(9, 7) 66 +QUBIT_COORDS(10, 6) 67 +QUBIT_COORDS(11, 7) 68 +QUBIT_COORDS(12, 6) 69 +QUBIT_COORDS(13, 7) 70 +QUBIT_COORDS(14, 6) 71 +QUBIT_COORDS(15, 7) 72 +QUBIT_COORDS(16, 6) 73 +QUBIT_COORDS(17, 7) 74 +QUBIT_COORDS(18, 6) 75 +QUBIT_COORDS(0, 8) 76 +QUBIT_COORDS(1, 9) 77 +QUBIT_COORDS(2, 8) 78 +QUBIT_COORDS(3, 9) 79 +QUBIT_COORDS(4, 8) 80 +QUBIT_COORDS(5, 9) 81 +QUBIT_COORDS(6, 8) 82 +QUBIT_COORDS(7, 9) 83 +QUBIT_COORDS(8, 8) 84 +QUBIT_COORDS(9, 9) 85 +QUBIT_COORDS(10, 8) 86 +QUBIT_COORDS(11, 9) 87 +QUBIT_COORDS(12, 8) 88 +QUBIT_COORDS(13, 9) 89 +QUBIT_COORDS(14, 8) 90 +QUBIT_COORDS(15, 9) 91 +QUBIT_COORDS(16, 8) 92 +QUBIT_COORDS(17, 9) 93 +QUBIT_COORDS(1, 11) 96 +QUBIT_COORDS(2, 10) 97 +QUBIT_COORDS(3, 11) 98 +QUBIT_COORDS(4, 10) 99 +QUBIT_COORDS(5, 11) 100 +QUBIT_COORDS(6, 10) 101 +QUBIT_COORDS(7, 11) 102 +QUBIT_COORDS(8, 10) 103 +QUBIT_COORDS(9, 11) 104 +QUBIT_COORDS(10, 10) 105 +QUBIT_COORDS(11, 11) 106 +QUBIT_COORDS(12, 10) 107 +QUBIT_COORDS(13, 11) 108 +QUBIT_COORDS(14, 10) 109 +QUBIT_COORDS(15, 11) 110 +QUBIT_COORDS(16, 10) 111 +QUBIT_COORDS(17, 11) 112 +QUBIT_COORDS(18, 10) 113 +QUBIT_COORDS(0, 12) 114 +QUBIT_COORDS(1, 13) 115 +QUBIT_COORDS(2, 12) 116 +QUBIT_COORDS(3, 13) 117 +QUBIT_COORDS(4, 12) 118 +QUBIT_COORDS(5, 13) 119 +QUBIT_COORDS(6, 12) 120 +QUBIT_COORDS(7, 13) 121 +QUBIT_COORDS(8, 12) 122 +QUBIT_COORDS(9, 13) 123 +QUBIT_COORDS(10, 12) 124 +QUBIT_COORDS(11, 13) 125 +QUBIT_COORDS(12, 12) 126 +QUBIT_COORDS(13, 13) 127 +QUBIT_COORDS(14, 12) 128 +QUBIT_COORDS(15, 13) 129 +QUBIT_COORDS(16, 12) 130 +QUBIT_COORDS(17, 13) 131 +QUBIT_COORDS(1, 15) 134 +QUBIT_COORDS(2, 14) 135 +QUBIT_COORDS(3, 15) 136 +QUBIT_COORDS(4, 14) 137 +QUBIT_COORDS(5, 15) 138 +QUBIT_COORDS(6, 14) 139 +QUBIT_COORDS(7, 15) 140 +QUBIT_COORDS(8, 14) 141 +QUBIT_COORDS(9, 15) 142 +QUBIT_COORDS(10, 14) 143 +QUBIT_COORDS(11, 15) 144 +QUBIT_COORDS(12, 14) 145 +QUBIT_COORDS(13, 15) 146 +QUBIT_COORDS(14, 14) 147 +QUBIT_COORDS(15, 15) 148 +QUBIT_COORDS(16, 14) 149 +QUBIT_COORDS(17, 15) 150 +QUBIT_COORDS(18, 14) 151 +QUBIT_COORDS(0, 16) 152 +QUBIT_COORDS(1, 17) 153 +QUBIT_COORDS(2, 16) 154 +QUBIT_COORDS(3, 17) 155 +QUBIT_COORDS(4, 16) 156 +QUBIT_COORDS(5, 17) 157 +QUBIT_COORDS(6, 16) 158 +QUBIT_COORDS(7, 17) 159 +QUBIT_COORDS(8, 16) 160 +QUBIT_COORDS(9, 17) 161 +QUBIT_COORDS(10, 16) 162 +QUBIT_COORDS(11, 17) 163 +QUBIT_COORDS(12, 16) 164 +QUBIT_COORDS(13, 17) 165 +QUBIT_COORDS(14, 16) 166 +QUBIT_COORDS(15, 17) 167 +QUBIT_COORDS(16, 16) 168 +QUBIT_COORDS(17, 17) 169 +QUBIT_COORDS(4, 18) 175 +QUBIT_COORDS(8, 18) 179 +QUBIT_COORDS(12, 18) 183 +QUBIT_COORDS(16, 18) 187 +R 1 3 5 7 9 11 13 15 17 20 22 24 26 28 30 32 34 36 39 41 43 45 47 49 51 53 55 58 60 62 64 66 68 70 72 74 77 79 81 83 85 87 89 91 93 96 98 100 102 104 106 108 110 112 115 117 119 121 123 125 127 129 131 134 136 138 140 142 144 146 148 150 153 155 157 159 161 163 165 167 169 +X_ERROR(0.001) 1 3 5 7 9 11 13 15 17 20 22 24 26 28 30 32 34 36 39 41 43 45 47 49 51 53 55 58 60 62 64 66 68 70 72 74 77 79 81 83 85 87 89 91 93 96 98 100 102 104 106 108 110 112 115 117 119 121 123 125 127 129 131 134 136 138 140 142 144 146 148 150 153 155 157 159 161 163 165 167 169 +R 2 6 10 14 21 23 25 27 29 31 33 35 37 38 40 42 44 46 48 50 52 54 59 61 63 65 67 69 71 73 75 76 78 80 82 84 86 88 90 92 97 99 101 103 105 107 109 111 113 114 116 118 120 122 124 126 128 130 135 137 139 141 143 145 147 149 151 152 154 156 158 160 162 164 166 168 175 179 183 187 +X_ERROR(0.001) 2 6 10 14 21 23 25 27 29 31 33 35 37 38 40 42 44 46 48 50 52 54 59 61 63 65 67 69 71 73 75 76 78 80 82 84 86 88 90 92 97 99 101 103 105 107 109 111 113 114 116 118 120 122 124 126 128 130 135 137 139 141 143 145 147 149 151 152 154 156 158 160 162 164 166 168 175 179 183 187 +TICK +DEPOLARIZE1(0.001) 1 3 5 7 9 11 13 15 17 20 22 24 26 28 30 32 34 36 39 41 43 45 47 49 51 53 55 58 60 62 64 66 68 70 72 74 77 79 81 83 85 87 89 91 93 96 98 100 102 104 106 108 110 112 115 117 119 121 123 125 127 129 131 134 136 138 140 142 144 146 148 150 153 155 157 159 161 163 165 167 169 +H 2 6 10 14 23 27 31 35 40 44 48 52 61 65 69 73 78 82 86 90 99 103 107 111 116 120 124 128 137 141 145 149 154 158 162 166 175 179 183 187 +DEPOLARIZE1(0.001) 2 6 10 14 23 27 31 35 40 44 48 52 61 65 69 73 78 82 86 90 99 103 107 111 116 120 124 128 137 141 145 149 154 158 162 166 175 179 183 187 +TICK +CX 2 3 40 41 78 79 116 117 154 155 23 24 61 62 99 100 137 138 6 7 44 45 82 83 120 121 158 159 27 28 65 66 103 104 141 142 10 11 48 49 86 87 124 125 162 163 31 32 69 70 107 108 145 146 14 15 52 53 90 91 128 129 166 167 35 36 73 74 111 112 149 150 39 38 77 76 115 114 153 152 22 21 60 59 98 97 136 135 43 42 81 80 119 118 157 156 26 25 64 63 102 101 140 139 47 46 85 84 123 122 161 160 30 29 68 67 106 105 144 143 51 50 89 88 127 126 165 164 34 33 72 71 110 109 148 147 55 54 93 92 131 130 169 168 +DEPOLARIZE2(0.001) 2 3 40 41 78 79 116 117 154 155 23 24 61 62 99 100 137 138 6 7 44 45 82 83 120 121 158 159 27 28 65 66 103 104 141 142 10 11 48 49 86 87 124 125 162 163 31 32 69 70 107 108 145 146 14 15 52 53 90 91 128 129 166 167 35 36 73 74 111 112 149 150 39 38 77 76 115 114 153 152 22 21 60 59 98 97 136 135 43 42 81 80 119 118 157 156 26 25 64 63 102 101 140 139 47 46 85 84 123 122 161 160 30 29 68 67 106 105 144 143 51 50 89 88 127 126 165 164 34 33 72 71 110 109 148 147 55 54 93 92 131 130 169 168 +TICK +CX 2 1 40 39 78 77 116 115 154 153 23 22 61 60 99 98 137 136 6 5 44 43 82 81 120 119 158 157 27 26 65 64 103 102 141 140 10 9 48 47 86 85 124 123 162 161 31 30 69 68 107 106 145 144 14 13 52 51 90 89 128 127 166 165 35 34 73 72 111 110 149 148 20 38 58 76 96 114 134 152 3 21 41 59 79 97 117 135 24 42 62 80 100 118 138 156 7 25 45 63 83 101 121 139 28 46 66 84 104 122 142 160 11 29 49 67 87 105 125 143 32 50 70 88 108 126 146 164 15 33 53 71 91 109 129 147 36 54 74 92 112 130 150 168 +DEPOLARIZE2(0.001) 2 1 40 39 78 77 116 115 154 153 23 22 61 60 99 98 137 136 6 5 44 43 82 81 120 119 158 157 27 26 65 64 103 102 141 140 10 9 48 47 86 85 124 123 162 161 31 30 69 68 107 106 145 144 14 13 52 51 90 89 128 127 166 165 35 34 73 72 111 110 149 148 20 38 58 76 96 114 134 152 3 21 41 59 79 97 117 135 24 42 62 80 100 118 138 156 7 25 45 63 83 101 121 139 28 46 66 84 104 122 142 160 11 29 49 67 87 105 125 143 32 50 70 88 108 126 146 164 15 33 53 71 91 109 129 147 36 54 74 92 112 130 150 168 +TICK +CX 40 22 78 60 116 98 154 136 23 5 61 43 99 81 137 119 175 157 44 26 82 64 120 102 158 140 27 9 65 47 103 85 141 123 179 161 48 30 86 68 124 106 162 144 31 13 69 51 107 89 145 127 183 165 52 34 90 72 128 110 166 148 35 17 73 55 111 93 149 131 187 169 20 21 58 59 96 97 134 135 41 42 79 80 117 118 155 156 24 25 62 63 100 101 138 139 45 46 83 84 121 122 159 160 28 29 66 67 104 105 142 143 49 50 87 88 125 126 163 164 32 33 70 71 108 109 146 147 53 54 91 92 129 130 167 168 36 37 74 75 112 113 150 151 +DEPOLARIZE2(0.001) 40 22 78 60 116 98 154 136 23 5 61 43 99 81 137 119 175 157 44 26 82 64 120 102 158 140 27 9 65 47 103 85 141 123 179 161 48 30 86 68 124 106 162 144 31 13 69 51 107 89 145 127 183 165 52 34 90 72 128 110 166 148 35 17 73 55 111 93 149 131 187 169 20 21 58 59 96 97 134 135 41 42 79 80 117 118 155 156 24 25 62 63 100 101 138 139 45 46 83 84 121 122 159 160 28 29 66 67 104 105 142 143 49 50 87 88 125 126 163 164 32 33 70 71 108 109 146 147 53 54 91 92 129 130 167 168 36 37 74 75 112 113 150 151 +TICK +CX 40 20 78 58 116 96 154 134 23 3 61 41 99 79 137 117 175 155 44 24 82 62 120 100 158 138 27 7 65 45 103 83 141 121 179 159 48 28 86 66 124 104 162 142 31 11 69 49 107 87 145 125 183 163 52 32 90 70 128 108 166 146 35 15 73 53 111 91 149 129 187 167 1 21 39 59 77 97 115 135 22 42 60 80 98 118 136 156 5 25 43 63 81 101 119 139 26 46 64 84 102 122 140 160 9 29 47 67 85 105 123 143 30 50 68 88 106 126 144 164 13 33 51 71 89 109 127 147 34 54 72 92 110 130 148 168 17 37 55 75 93 113 131 151 +DEPOLARIZE2(0.001) 40 20 78 58 116 96 154 134 23 3 61 41 99 79 137 117 175 155 44 24 82 62 120 100 158 138 27 7 65 45 103 83 141 121 179 159 48 28 86 66 124 104 162 142 31 11 69 49 107 87 145 125 183 163 52 32 90 70 128 108 166 146 35 15 73 53 111 91 149 129 187 167 1 21 39 59 77 97 115 135 22 42 60 80 98 118 136 156 5 25 43 63 81 101 119 139 26 46 64 84 102 122 140 160 9 29 47 67 85 105 123 143 30 50 68 88 106 126 144 164 13 33 51 71 89 109 127 147 34 54 72 92 110 130 148 168 17 37 55 75 93 113 131 151 +TICK +H 2 6 10 14 23 27 31 35 40 44 48 52 61 65 69 73 78 82 86 90 99 103 107 111 116 120 124 128 137 141 145 149 154 158 162 166 175 179 183 187 +DEPOLARIZE1(0.001) 2 6 10 14 23 27 31 35 40 44 48 52 61 65 69 73 78 82 86 90 99 103 107 111 116 120 124 128 137 141 145 149 154 158 162 166 175 179 183 187 +TICK +X_ERROR(0.001) 2 6 10 14 21 23 25 27 29 31 33 35 37 38 40 42 44 46 48 50 52 54 59 61 63 65 67 69 71 73 75 76 78 80 82 84 86 88 90 92 97 99 101 103 105 107 109 111 113 114 116 118 120 122 124 126 128 130 135 137 139 141 143 145 147 149 151 152 154 156 158 160 162 164 166 168 175 179 183 187 +MR 2 6 10 14 21 23 25 27 29 31 33 35 37 38 40 42 44 46 48 50 52 54 59 61 63 65 67 69 71 73 75 76 78 80 82 84 86 88 90 92 97 99 101 103 105 107 109 111 113 114 116 118 120 122 124 126 128 130 135 137 139 141 143 145 147 149 151 152 154 156 158 160 162 164 166 168 175 179 183 187 +X_ERROR(0.001) 2 6 10 14 21 23 25 27 29 31 33 35 37 38 40 42 44 46 48 50 52 54 59 61 63 65 67 69 71 73 75 76 78 80 82 84 86 88 90 92 97 99 101 103 105 107 109 111 113 114 116 118 120 122 124 126 128 130 135 137 139 141 143 145 147 149 151 152 154 156 158 160 162 164 166 168 175 179 183 187 +DETECTOR(0, 4, 0) rec[-67] +DETECTOR(0, 8, 0) rec[-49] +DETECTOR(0, 12, 0) rec[-31] +DETECTOR(0, 16, 0) rec[-13] +DETECTOR(2, 2, 0) rec[-76] +DETECTOR(2, 6, 0) rec[-58] +DETECTOR(2, 10, 0) rec[-40] +DETECTOR(2, 14, 0) rec[-22] +DETECTOR(4, 4, 0) rec[-65] +DETECTOR(4, 8, 0) rec[-47] +DETECTOR(4, 12, 0) rec[-29] +DETECTOR(4, 16, 0) rec[-11] +DETECTOR(6, 2, 0) rec[-74] +DETECTOR(6, 6, 0) rec[-56] +DETECTOR(6, 10, 0) rec[-38] +DETECTOR(6, 14, 0) rec[-20] +DETECTOR(8, 4, 0) rec[-63] +DETECTOR(8, 8, 0) rec[-45] +DETECTOR(8, 12, 0) rec[-27] +DETECTOR(8, 16, 0) rec[-9] +DETECTOR(10, 2, 0) rec[-72] +DETECTOR(10, 6, 0) rec[-54] +DETECTOR(10, 10, 0) rec[-36] +DETECTOR(10, 14, 0) rec[-18] +DETECTOR(12, 4, 0) rec[-61] +DETECTOR(12, 8, 0) rec[-43] +DETECTOR(12, 12, 0) rec[-25] +DETECTOR(12, 16, 0) rec[-7] +DETECTOR(14, 2, 0) rec[-70] +DETECTOR(14, 6, 0) rec[-52] +DETECTOR(14, 10, 0) rec[-34] +DETECTOR(14, 14, 0) rec[-16] +DETECTOR(16, 4, 0) rec[-59] +DETECTOR(16, 8, 0) rec[-41] +DETECTOR(16, 12, 0) rec[-23] +DETECTOR(16, 16, 0) rec[-5] +DETECTOR(18, 2, 0) rec[-68] +DETECTOR(18, 6, 0) rec[-50] +DETECTOR(18, 10, 0) rec[-32] +DETECTOR(18, 14, 0) rec[-14] +REPEAT 8 { + TICK + DEPOLARIZE1(0.001) 1 3 5 7 9 11 13 15 17 20 22 24 26 28 30 32 34 36 39 41 43 45 47 49 51 53 55 58 60 62 64 66 68 70 72 74 77 79 81 83 85 87 89 91 93 96 98 100 102 104 106 108 110 112 115 117 119 121 123 125 127 129 131 134 136 138 140 142 144 146 148 150 153 155 157 159 161 163 165 167 169 + H 2 6 10 14 23 27 31 35 40 44 48 52 61 65 69 73 78 82 86 90 99 103 107 111 116 120 124 128 137 141 145 149 154 158 162 166 175 179 183 187 + DEPOLARIZE1(0.001) 2 6 10 14 23 27 31 35 40 44 48 52 61 65 69 73 78 82 86 90 99 103 107 111 116 120 124 128 137 141 145 149 154 158 162 166 175 179 183 187 + TICK + CX 2 3 40 41 78 79 116 117 154 155 23 24 61 62 99 100 137 138 6 7 44 45 82 83 120 121 158 159 27 28 65 66 103 104 141 142 10 11 48 49 86 87 124 125 162 163 31 32 69 70 107 108 145 146 14 15 52 53 90 91 128 129 166 167 35 36 73 74 111 112 149 150 39 38 77 76 115 114 153 152 22 21 60 59 98 97 136 135 43 42 81 80 119 118 157 156 26 25 64 63 102 101 140 139 47 46 85 84 123 122 161 160 30 29 68 67 106 105 144 143 51 50 89 88 127 126 165 164 34 33 72 71 110 109 148 147 55 54 93 92 131 130 169 168 + DEPOLARIZE2(0.001) 2 3 40 41 78 79 116 117 154 155 23 24 61 62 99 100 137 138 6 7 44 45 82 83 120 121 158 159 27 28 65 66 103 104 141 142 10 11 48 49 86 87 124 125 162 163 31 32 69 70 107 108 145 146 14 15 52 53 90 91 128 129 166 167 35 36 73 74 111 112 149 150 39 38 77 76 115 114 153 152 22 21 60 59 98 97 136 135 43 42 81 80 119 118 157 156 26 25 64 63 102 101 140 139 47 46 85 84 123 122 161 160 30 29 68 67 106 105 144 143 51 50 89 88 127 126 165 164 34 33 72 71 110 109 148 147 55 54 93 92 131 130 169 168 + TICK + CX 2 1 40 39 78 77 116 115 154 153 23 22 61 60 99 98 137 136 6 5 44 43 82 81 120 119 158 157 27 26 65 64 103 102 141 140 10 9 48 47 86 85 124 123 162 161 31 30 69 68 107 106 145 144 14 13 52 51 90 89 128 127 166 165 35 34 73 72 111 110 149 148 20 38 58 76 96 114 134 152 3 21 41 59 79 97 117 135 24 42 62 80 100 118 138 156 7 25 45 63 83 101 121 139 28 46 66 84 104 122 142 160 11 29 49 67 87 105 125 143 32 50 70 88 108 126 146 164 15 33 53 71 91 109 129 147 36 54 74 92 112 130 150 168 + DEPOLARIZE2(0.001) 2 1 40 39 78 77 116 115 154 153 23 22 61 60 99 98 137 136 6 5 44 43 82 81 120 119 158 157 27 26 65 64 103 102 141 140 10 9 48 47 86 85 124 123 162 161 31 30 69 68 107 106 145 144 14 13 52 51 90 89 128 127 166 165 35 34 73 72 111 110 149 148 20 38 58 76 96 114 134 152 3 21 41 59 79 97 117 135 24 42 62 80 100 118 138 156 7 25 45 63 83 101 121 139 28 46 66 84 104 122 142 160 11 29 49 67 87 105 125 143 32 50 70 88 108 126 146 164 15 33 53 71 91 109 129 147 36 54 74 92 112 130 150 168 + TICK + CX 40 22 78 60 116 98 154 136 23 5 61 43 99 81 137 119 175 157 44 26 82 64 120 102 158 140 27 9 65 47 103 85 141 123 179 161 48 30 86 68 124 106 162 144 31 13 69 51 107 89 145 127 183 165 52 34 90 72 128 110 166 148 35 17 73 55 111 93 149 131 187 169 20 21 58 59 96 97 134 135 41 42 79 80 117 118 155 156 24 25 62 63 100 101 138 139 45 46 83 84 121 122 159 160 28 29 66 67 104 105 142 143 49 50 87 88 125 126 163 164 32 33 70 71 108 109 146 147 53 54 91 92 129 130 167 168 36 37 74 75 112 113 150 151 + DEPOLARIZE2(0.001) 40 22 78 60 116 98 154 136 23 5 61 43 99 81 137 119 175 157 44 26 82 64 120 102 158 140 27 9 65 47 103 85 141 123 179 161 48 30 86 68 124 106 162 144 31 13 69 51 107 89 145 127 183 165 52 34 90 72 128 110 166 148 35 17 73 55 111 93 149 131 187 169 20 21 58 59 96 97 134 135 41 42 79 80 117 118 155 156 24 25 62 63 100 101 138 139 45 46 83 84 121 122 159 160 28 29 66 67 104 105 142 143 49 50 87 88 125 126 163 164 32 33 70 71 108 109 146 147 53 54 91 92 129 130 167 168 36 37 74 75 112 113 150 151 + TICK + CX 40 20 78 58 116 96 154 134 23 3 61 41 99 79 137 117 175 155 44 24 82 62 120 100 158 138 27 7 65 45 103 83 141 121 179 159 48 28 86 66 124 104 162 142 31 11 69 49 107 87 145 125 183 163 52 32 90 70 128 108 166 146 35 15 73 53 111 91 149 129 187 167 1 21 39 59 77 97 115 135 22 42 60 80 98 118 136 156 5 25 43 63 81 101 119 139 26 46 64 84 102 122 140 160 9 29 47 67 85 105 123 143 30 50 68 88 106 126 144 164 13 33 51 71 89 109 127 147 34 54 72 92 110 130 148 168 17 37 55 75 93 113 131 151 + DEPOLARIZE2(0.001) 40 20 78 58 116 96 154 134 23 3 61 41 99 79 137 117 175 155 44 24 82 62 120 100 158 138 27 7 65 45 103 83 141 121 179 159 48 28 86 66 124 104 162 142 31 11 69 49 107 87 145 125 183 163 52 32 90 70 128 108 166 146 35 15 73 53 111 91 149 129 187 167 1 21 39 59 77 97 115 135 22 42 60 80 98 118 136 156 5 25 43 63 81 101 119 139 26 46 64 84 102 122 140 160 9 29 47 67 85 105 123 143 30 50 68 88 106 126 144 164 13 33 51 71 89 109 127 147 34 54 72 92 110 130 148 168 17 37 55 75 93 113 131 151 + TICK + H 2 6 10 14 23 27 31 35 40 44 48 52 61 65 69 73 78 82 86 90 99 103 107 111 116 120 124 128 137 141 145 149 154 158 162 166 175 179 183 187 + DEPOLARIZE1(0.001) 2 6 10 14 23 27 31 35 40 44 48 52 61 65 69 73 78 82 86 90 99 103 107 111 116 120 124 128 137 141 145 149 154 158 162 166 175 179 183 187 + TICK + X_ERROR(0.001) 2 6 10 14 21 23 25 27 29 31 33 35 37 38 40 42 44 46 48 50 52 54 59 61 63 65 67 69 71 73 75 76 78 80 82 84 86 88 90 92 97 99 101 103 105 107 109 111 113 114 116 118 120 122 124 126 128 130 135 137 139 141 143 145 147 149 151 152 154 156 158 160 162 164 166 168 175 179 183 187 + MR 2 6 10 14 21 23 25 27 29 31 33 35 37 38 40 42 44 46 48 50 52 54 59 61 63 65 67 69 71 73 75 76 78 80 82 84 86 88 90 92 97 99 101 103 105 107 109 111 113 114 116 118 120 122 124 126 128 130 135 137 139 141 143 145 147 149 151 152 154 156 158 160 162 164 166 168 175 179 183 187 + X_ERROR(0.001) 2 6 10 14 21 23 25 27 29 31 33 35 37 38 40 42 44 46 48 50 52 54 59 61 63 65 67 69 71 73 75 76 78 80 82 84 86 88 90 92 97 99 101 103 105 107 109 111 113 114 116 118 120 122 124 126 128 130 135 137 139 141 143 145 147 149 151 152 154 156 158 160 162 164 166 168 175 179 183 187 + SHIFT_COORDS(0, 0, 1) + DETECTOR(2, 0, 0) rec[-80] rec[-160] + DETECTOR(6, 0, 0) rec[-79] rec[-159] + DETECTOR(10, 0, 0) rec[-78] rec[-158] + DETECTOR(14, 0, 0) rec[-77] rec[-157] + DETECTOR(2, 2, 0) rec[-76] rec[-156] + DETECTOR(4, 2, 0) rec[-75] rec[-155] + DETECTOR(6, 2, 0) rec[-74] rec[-154] + DETECTOR(8, 2, 0) rec[-73] rec[-153] + DETECTOR(10, 2, 0) rec[-72] rec[-152] + DETECTOR(12, 2, 0) rec[-71] rec[-151] + DETECTOR(14, 2, 0) rec[-70] rec[-150] + DETECTOR(16, 2, 0) rec[-69] rec[-149] + DETECTOR(18, 2, 0) rec[-68] rec[-148] + DETECTOR(0, 4, 0) rec[-67] rec[-147] + DETECTOR(2, 4, 0) rec[-66] rec[-146] + DETECTOR(4, 4, 0) rec[-65] rec[-145] + DETECTOR(6, 4, 0) rec[-64] rec[-144] + DETECTOR(8, 4, 0) rec[-63] rec[-143] + DETECTOR(10, 4, 0) rec[-62] rec[-142] + DETECTOR(12, 4, 0) rec[-61] rec[-141] + DETECTOR(14, 4, 0) rec[-60] rec[-140] + DETECTOR(16, 4, 0) rec[-59] rec[-139] + DETECTOR(2, 6, 0) rec[-58] rec[-138] + DETECTOR(4, 6, 0) rec[-57] rec[-137] + DETECTOR(6, 6, 0) rec[-56] rec[-136] + DETECTOR(8, 6, 0) rec[-55] rec[-135] + DETECTOR(10, 6, 0) rec[-54] rec[-134] + DETECTOR(12, 6, 0) rec[-53] rec[-133] + DETECTOR(14, 6, 0) rec[-52] rec[-132] + DETECTOR(16, 6, 0) rec[-51] rec[-131] + DETECTOR(18, 6, 0) rec[-50] rec[-130] + DETECTOR(0, 8, 0) rec[-49] rec[-129] + DETECTOR(2, 8, 0) rec[-48] rec[-128] + DETECTOR(4, 8, 0) rec[-47] rec[-127] + DETECTOR(6, 8, 0) rec[-46] rec[-126] + DETECTOR(8, 8, 0) rec[-45] rec[-125] + DETECTOR(10, 8, 0) rec[-44] rec[-124] + DETECTOR(12, 8, 0) rec[-43] rec[-123] + DETECTOR(14, 8, 0) rec[-42] rec[-122] + DETECTOR(16, 8, 0) rec[-41] rec[-121] + DETECTOR(2, 10, 0) rec[-40] rec[-120] + DETECTOR(4, 10, 0) rec[-39] rec[-119] + DETECTOR(6, 10, 0) rec[-38] rec[-118] + DETECTOR(8, 10, 0) rec[-37] rec[-117] + DETECTOR(10, 10, 0) rec[-36] rec[-116] + DETECTOR(12, 10, 0) rec[-35] rec[-115] + DETECTOR(14, 10, 0) rec[-34] rec[-114] + DETECTOR(16, 10, 0) rec[-33] rec[-113] + DETECTOR(18, 10, 0) rec[-32] rec[-112] + DETECTOR(0, 12, 0) rec[-31] rec[-111] + DETECTOR(2, 12, 0) rec[-30] rec[-110] + DETECTOR(4, 12, 0) rec[-29] rec[-109] + DETECTOR(6, 12, 0) rec[-28] rec[-108] + DETECTOR(8, 12, 0) rec[-27] rec[-107] + DETECTOR(10, 12, 0) rec[-26] rec[-106] + DETECTOR(12, 12, 0) rec[-25] rec[-105] + DETECTOR(14, 12, 0) rec[-24] rec[-104] + DETECTOR(16, 12, 0) rec[-23] rec[-103] + DETECTOR(2, 14, 0) rec[-22] rec[-102] + DETECTOR(4, 14, 0) rec[-21] rec[-101] + DETECTOR(6, 14, 0) rec[-20] rec[-100] + DETECTOR(8, 14, 0) rec[-19] rec[-99] + DETECTOR(10, 14, 0) rec[-18] rec[-98] + DETECTOR(12, 14, 0) rec[-17] rec[-97] + DETECTOR(14, 14, 0) rec[-16] rec[-96] + DETECTOR(16, 14, 0) rec[-15] rec[-95] + DETECTOR(18, 14, 0) rec[-14] rec[-94] + DETECTOR(0, 16, 0) rec[-13] rec[-93] + DETECTOR(2, 16, 0) rec[-12] rec[-92] + DETECTOR(4, 16, 0) rec[-11] rec[-91] + DETECTOR(6, 16, 0) rec[-10] rec[-90] + DETECTOR(8, 16, 0) rec[-9] rec[-89] + DETECTOR(10, 16, 0) rec[-8] rec[-88] + DETECTOR(12, 16, 0) rec[-7] rec[-87] + DETECTOR(14, 16, 0) rec[-6] rec[-86] + DETECTOR(16, 16, 0) rec[-5] rec[-85] + DETECTOR(4, 18, 0) rec[-4] rec[-84] + DETECTOR(8, 18, 0) rec[-3] rec[-83] + DETECTOR(12, 18, 0) rec[-2] rec[-82] + DETECTOR(16, 18, 0) rec[-1] rec[-81] +} +X_ERROR(0.001) 1 3 5 7 9 11 13 15 17 20 22 24 26 28 30 32 34 36 39 41 43 45 47 49 51 53 55 58 60 62 64 66 68 70 72 74 77 79 81 83 85 87 89 91 93 96 98 100 102 104 106 108 110 112 115 117 119 121 123 125 127 129 131 134 136 138 140 142 144 146 148 150 153 155 157 159 161 163 165 167 169 +M 1 3 5 7 9 11 13 15 17 20 22 24 26 28 30 32 34 36 39 41 43 45 47 49 51 53 55 58 60 62 64 66 68 70 72 74 77 79 81 83 85 87 89 91 93 96 98 100 102 104 106 108 110 112 115 117 119 121 123 125 127 129 131 134 136 138 140 142 144 146 148 150 153 155 157 159 161 163 165 167 169 +DETECTOR(0, 4, 1) rec[-63] rec[-72] rec[-148] +DETECTOR(0, 8, 1) rec[-45] rec[-54] rec[-130] +DETECTOR(0, 12, 1) rec[-27] rec[-36] rec[-112] +DETECTOR(0, 16, 1) rec[-9] rec[-18] rec[-94] +DETECTOR(2, 2, 1) rec[-71] rec[-72] rec[-80] rec[-81] rec[-157] +DETECTOR(2, 6, 1) rec[-53] rec[-54] rec[-62] rec[-63] rec[-139] +DETECTOR(2, 10, 1) rec[-35] rec[-36] rec[-44] rec[-45] rec[-121] +DETECTOR(2, 14, 1) rec[-17] rec[-18] rec[-26] rec[-27] rec[-103] +DETECTOR(4, 4, 1) rec[-61] rec[-62] rec[-70] rec[-71] rec[-146] +DETECTOR(4, 8, 1) rec[-43] rec[-44] rec[-52] rec[-53] rec[-128] +DETECTOR(4, 12, 1) rec[-25] rec[-26] rec[-34] rec[-35] rec[-110] +DETECTOR(4, 16, 1) rec[-7] rec[-8] rec[-16] rec[-17] rec[-92] +DETECTOR(6, 2, 1) rec[-69] rec[-70] rec[-78] rec[-79] rec[-155] +DETECTOR(6, 6, 1) rec[-51] rec[-52] rec[-60] rec[-61] rec[-137] +DETECTOR(6, 10, 1) rec[-33] rec[-34] rec[-42] rec[-43] rec[-119] +DETECTOR(6, 14, 1) rec[-15] rec[-16] rec[-24] rec[-25] rec[-101] +DETECTOR(8, 4, 1) rec[-59] rec[-60] rec[-68] rec[-69] rec[-144] +DETECTOR(8, 8, 1) rec[-41] rec[-42] rec[-50] rec[-51] rec[-126] +DETECTOR(8, 12, 1) rec[-23] rec[-24] rec[-32] rec[-33] rec[-108] +DETECTOR(8, 16, 1) rec[-5] rec[-6] rec[-14] rec[-15] rec[-90] +DETECTOR(10, 2, 1) rec[-67] rec[-68] rec[-76] rec[-77] rec[-153] +DETECTOR(10, 6, 1) rec[-49] rec[-50] rec[-58] rec[-59] rec[-135] +DETECTOR(10, 10, 1) rec[-31] rec[-32] rec[-40] rec[-41] rec[-117] +DETECTOR(10, 14, 1) rec[-13] rec[-14] rec[-22] rec[-23] rec[-99] +DETECTOR(12, 4, 1) rec[-57] rec[-58] rec[-66] rec[-67] rec[-142] +DETECTOR(12, 8, 1) rec[-39] rec[-40] rec[-48] rec[-49] rec[-124] +DETECTOR(12, 12, 1) rec[-21] rec[-22] rec[-30] rec[-31] rec[-106] +DETECTOR(12, 16, 1) rec[-3] rec[-4] rec[-12] rec[-13] rec[-88] +DETECTOR(14, 2, 1) rec[-65] rec[-66] rec[-74] rec[-75] rec[-151] +DETECTOR(14, 6, 1) rec[-47] rec[-48] rec[-56] rec[-57] rec[-133] +DETECTOR(14, 10, 1) rec[-29] rec[-30] rec[-38] rec[-39] rec[-115] +DETECTOR(14, 14, 1) rec[-11] rec[-12] rec[-20] rec[-21] rec[-97] +DETECTOR(16, 4, 1) rec[-55] rec[-56] rec[-64] rec[-65] rec[-140] +DETECTOR(16, 8, 1) rec[-37] rec[-38] rec[-46] rec[-47] rec[-122] +DETECTOR(16, 12, 1) rec[-19] rec[-20] rec[-28] rec[-29] rec[-104] +DETECTOR(16, 16, 1) rec[-1] rec[-2] rec[-10] rec[-11] rec[-86] +DETECTOR(18, 2, 1) rec[-64] rec[-73] rec[-149] +DETECTOR(18, 6, 1) rec[-46] rec[-55] rec[-131] +DETECTOR(18, 10, 1) rec[-28] rec[-37] rec[-113] +DETECTOR(18, 14, 1) rec[-10] rec[-19] rec[-95] +OBSERVABLE_INCLUDE(0) rec[-73] rec[-74] rec[-75] rec[-76] rec[-77] rec[-78] rec[-79] rec[-80] rec[-81] diff --git a/wai/quantum-cross-simulator/corpus/qec/unrotated_z_d3.circuit b/wai/quantum-cross-simulator/corpus/qec/unrotated_z_d3.circuit new file mode 100644 index 000000000..c3e1dd311 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qec/unrotated_z_d3.circuit @@ -0,0 +1,105 @@ +QUBIT_COORDS(0, 0) 0 +QUBIT_COORDS(1, 0) 1 +QUBIT_COORDS(2, 0) 2 +QUBIT_COORDS(3, 0) 3 +QUBIT_COORDS(4, 0) 4 +QUBIT_COORDS(0, 1) 5 +QUBIT_COORDS(1, 1) 6 +QUBIT_COORDS(2, 1) 7 +QUBIT_COORDS(3, 1) 8 +QUBIT_COORDS(4, 1) 9 +QUBIT_COORDS(0, 2) 10 +QUBIT_COORDS(1, 2) 11 +QUBIT_COORDS(2, 2) 12 +QUBIT_COORDS(3, 2) 13 +QUBIT_COORDS(4, 2) 14 +QUBIT_COORDS(0, 3) 15 +QUBIT_COORDS(1, 3) 16 +QUBIT_COORDS(2, 3) 17 +QUBIT_COORDS(3, 3) 18 +QUBIT_COORDS(4, 3) 19 +QUBIT_COORDS(0, 4) 20 +QUBIT_COORDS(1, 4) 21 +QUBIT_COORDS(2, 4) 22 +QUBIT_COORDS(3, 4) 23 +QUBIT_COORDS(4, 4) 24 +R 0 2 4 6 8 10 12 14 16 18 20 22 24 +X_ERROR(0.002) 0 2 4 6 8 10 12 14 16 18 20 22 24 +R 1 3 5 7 9 11 13 15 17 19 21 23 +X_ERROR(0.002) 1 3 5 7 9 11 13 15 17 19 21 23 +TICK +DEPOLARIZE1(0.002) 0 2 4 6 8 10 12 14 16 18 20 22 24 +H 1 3 11 13 21 23 +DEPOLARIZE1(0.002) 1 3 11 13 21 23 +TICK +CX 1 2 11 12 21 22 3 4 13 14 23 24 6 5 16 15 8 7 18 17 +DEPOLARIZE2(0.002) 1 2 11 12 21 22 3 4 13 14 23 24 6 5 16 15 8 7 18 17 +TICK +CX 1 6 11 16 3 8 13 18 10 5 20 15 12 7 22 17 14 9 24 19 +DEPOLARIZE2(0.002) 1 6 11 16 3 8 13 18 10 5 20 15 12 7 22 17 14 9 24 19 +TICK +CX 11 6 21 16 13 8 23 18 0 5 10 15 2 7 12 17 4 9 14 19 +DEPOLARIZE2(0.002) 11 6 21 16 13 8 23 18 0 5 10 15 2 7 12 17 4 9 14 19 +TICK +CX 1 0 11 10 21 20 3 2 13 12 23 22 6 7 16 17 8 9 18 19 +DEPOLARIZE2(0.002) 1 0 11 10 21 20 3 2 13 12 23 22 6 7 16 17 8 9 18 19 +TICK +H 1 3 11 13 21 23 +DEPOLARIZE1(0.002) 1 3 11 13 21 23 +TICK +X_ERROR(0.002) 1 3 5 7 9 11 13 15 17 19 21 23 +MR 1 3 5 7 9 11 13 15 17 19 21 23 +X_ERROR(0.002) 1 3 5 7 9 11 13 15 17 19 21 23 +DETECTOR(0, 1, 0) rec[-10] +DETECTOR(0, 3, 0) rec[-5] +DETECTOR(2, 1, 0) rec[-9] +DETECTOR(2, 3, 0) rec[-4] +DETECTOR(4, 1, 0) rec[-8] +DETECTOR(4, 3, 0) rec[-3] +REPEAT 2 { + TICK + DEPOLARIZE1(0.002) 0 2 4 6 8 10 12 14 16 18 20 22 24 + H 1 3 11 13 21 23 + DEPOLARIZE1(0.002) 1 3 11 13 21 23 + TICK + CX 1 2 11 12 21 22 3 4 13 14 23 24 6 5 16 15 8 7 18 17 + DEPOLARIZE2(0.002) 1 2 11 12 21 22 3 4 13 14 23 24 6 5 16 15 8 7 18 17 + TICK + CX 1 6 11 16 3 8 13 18 10 5 20 15 12 7 22 17 14 9 24 19 + DEPOLARIZE2(0.002) 1 6 11 16 3 8 13 18 10 5 20 15 12 7 22 17 14 9 24 19 + TICK + CX 11 6 21 16 13 8 23 18 0 5 10 15 2 7 12 17 4 9 14 19 + DEPOLARIZE2(0.002) 11 6 21 16 13 8 23 18 0 5 10 15 2 7 12 17 4 9 14 19 + TICK + CX 1 0 11 10 21 20 3 2 13 12 23 22 6 7 16 17 8 9 18 19 + DEPOLARIZE2(0.002) 1 0 11 10 21 20 3 2 13 12 23 22 6 7 16 17 8 9 18 19 + TICK + H 1 3 11 13 21 23 + DEPOLARIZE1(0.002) 1 3 11 13 21 23 + TICK + X_ERROR(0.002) 1 3 5 7 9 11 13 15 17 19 21 23 + MR 1 3 5 7 9 11 13 15 17 19 21 23 + X_ERROR(0.002) 1 3 5 7 9 11 13 15 17 19 21 23 + SHIFT_COORDS(0, 0, 1) + DETECTOR(1, 0, 0) rec[-12] rec[-24] + DETECTOR(3, 0, 0) rec[-11] rec[-23] + DETECTOR(0, 1, 0) rec[-10] rec[-22] + DETECTOR(2, 1, 0) rec[-9] rec[-21] + DETECTOR(4, 1, 0) rec[-8] rec[-20] + DETECTOR(1, 2, 0) rec[-7] rec[-19] + DETECTOR(3, 2, 0) rec[-6] rec[-18] + DETECTOR(0, 3, 0) rec[-5] rec[-17] + DETECTOR(2, 3, 0) rec[-4] rec[-16] + DETECTOR(4, 3, 0) rec[-3] rec[-15] + DETECTOR(1, 4, 0) rec[-2] rec[-14] + DETECTOR(3, 4, 0) rec[-1] rec[-13] +} +X_ERROR(0.002) 0 2 4 6 8 10 12 14 16 18 20 22 24 +M 0 2 4 6 8 10 12 14 16 18 20 22 24 +DETECTOR(0, 1, 1) rec[-8] rec[-10] rec[-13] rec[-23] +DETECTOR(0, 3, 1) rec[-3] rec[-5] rec[-8] rec[-18] +DETECTOR(2, 1, 1) rec[-7] rec[-9] rec[-10] rec[-12] rec[-22] +DETECTOR(2, 3, 1) rec[-2] rec[-4] rec[-5] rec[-7] rec[-17] +DETECTOR(4, 1, 1) rec[-6] rec[-9] rec[-11] rec[-21] +DETECTOR(4, 3, 1) rec[-1] rec[-4] rec[-6] rec[-16] +OBSERVABLE_INCLUDE(0) rec[-11] rec[-12] rec[-13] diff --git a/wai/quantum-cross-simulator/corpus/qec/unrotated_z_d5.circuit b/wai/quantum-cross-simulator/corpus/qec/unrotated_z_d5.circuit new file mode 100644 index 000000000..ef7c00795 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/qec/unrotated_z_d5.circuit @@ -0,0 +1,217 @@ +QUBIT_COORDS(0, 0) 0 +QUBIT_COORDS(1, 0) 1 +QUBIT_COORDS(2, 0) 2 +QUBIT_COORDS(3, 0) 3 +QUBIT_COORDS(4, 0) 4 +QUBIT_COORDS(5, 0) 5 +QUBIT_COORDS(6, 0) 6 +QUBIT_COORDS(7, 0) 7 +QUBIT_COORDS(8, 0) 8 +QUBIT_COORDS(0, 1) 9 +QUBIT_COORDS(1, 1) 10 +QUBIT_COORDS(2, 1) 11 +QUBIT_COORDS(3, 1) 12 +QUBIT_COORDS(4, 1) 13 +QUBIT_COORDS(5, 1) 14 +QUBIT_COORDS(6, 1) 15 +QUBIT_COORDS(7, 1) 16 +QUBIT_COORDS(8, 1) 17 +QUBIT_COORDS(0, 2) 18 +QUBIT_COORDS(1, 2) 19 +QUBIT_COORDS(2, 2) 20 +QUBIT_COORDS(3, 2) 21 +QUBIT_COORDS(4, 2) 22 +QUBIT_COORDS(5, 2) 23 +QUBIT_COORDS(6, 2) 24 +QUBIT_COORDS(7, 2) 25 +QUBIT_COORDS(8, 2) 26 +QUBIT_COORDS(0, 3) 27 +QUBIT_COORDS(1, 3) 28 +QUBIT_COORDS(2, 3) 29 +QUBIT_COORDS(3, 3) 30 +QUBIT_COORDS(4, 3) 31 +QUBIT_COORDS(5, 3) 32 +QUBIT_COORDS(6, 3) 33 +QUBIT_COORDS(7, 3) 34 +QUBIT_COORDS(8, 3) 35 +QUBIT_COORDS(0, 4) 36 +QUBIT_COORDS(1, 4) 37 +QUBIT_COORDS(2, 4) 38 +QUBIT_COORDS(3, 4) 39 +QUBIT_COORDS(4, 4) 40 +QUBIT_COORDS(5, 4) 41 +QUBIT_COORDS(6, 4) 42 +QUBIT_COORDS(7, 4) 43 +QUBIT_COORDS(8, 4) 44 +QUBIT_COORDS(0, 5) 45 +QUBIT_COORDS(1, 5) 46 +QUBIT_COORDS(2, 5) 47 +QUBIT_COORDS(3, 5) 48 +QUBIT_COORDS(4, 5) 49 +QUBIT_COORDS(5, 5) 50 +QUBIT_COORDS(6, 5) 51 +QUBIT_COORDS(7, 5) 52 +QUBIT_COORDS(8, 5) 53 +QUBIT_COORDS(0, 6) 54 +QUBIT_COORDS(1, 6) 55 +QUBIT_COORDS(2, 6) 56 +QUBIT_COORDS(3, 6) 57 +QUBIT_COORDS(4, 6) 58 +QUBIT_COORDS(5, 6) 59 +QUBIT_COORDS(6, 6) 60 +QUBIT_COORDS(7, 6) 61 +QUBIT_COORDS(8, 6) 62 +QUBIT_COORDS(0, 7) 63 +QUBIT_COORDS(1, 7) 64 +QUBIT_COORDS(2, 7) 65 +QUBIT_COORDS(3, 7) 66 +QUBIT_COORDS(4, 7) 67 +QUBIT_COORDS(5, 7) 68 +QUBIT_COORDS(6, 7) 69 +QUBIT_COORDS(7, 7) 70 +QUBIT_COORDS(8, 7) 71 +QUBIT_COORDS(0, 8) 72 +QUBIT_COORDS(1, 8) 73 +QUBIT_COORDS(2, 8) 74 +QUBIT_COORDS(3, 8) 75 +QUBIT_COORDS(4, 8) 76 +QUBIT_COORDS(5, 8) 77 +QUBIT_COORDS(6, 8) 78 +QUBIT_COORDS(7, 8) 79 +QUBIT_COORDS(8, 8) 80 +R 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 +X_ERROR(0.002) 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 +R 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 +X_ERROR(0.002) 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 +TICK +DEPOLARIZE1(0.002) 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 +H 1 3 5 7 19 21 23 25 37 39 41 43 55 57 59 61 73 75 77 79 +DEPOLARIZE1(0.002) 1 3 5 7 19 21 23 25 37 39 41 43 55 57 59 61 73 75 77 79 +TICK +CX 1 2 19 20 37 38 55 56 73 74 3 4 21 22 39 40 57 58 75 76 5 6 23 24 41 42 59 60 77 78 7 8 25 26 43 44 61 62 79 80 10 9 28 27 46 45 64 63 12 11 30 29 48 47 66 65 14 13 32 31 50 49 68 67 16 15 34 33 52 51 70 69 +DEPOLARIZE2(0.002) 1 2 19 20 37 38 55 56 73 74 3 4 21 22 39 40 57 58 75 76 5 6 23 24 41 42 59 60 77 78 7 8 25 26 43 44 61 62 79 80 10 9 28 27 46 45 64 63 12 11 30 29 48 47 66 65 14 13 32 31 50 49 68 67 16 15 34 33 52 51 70 69 +TICK +CX 1 10 19 28 37 46 55 64 3 12 21 30 39 48 57 66 5 14 23 32 41 50 59 68 7 16 25 34 43 52 61 70 18 9 36 27 54 45 72 63 20 11 38 29 56 47 74 65 22 13 40 31 58 49 76 67 24 15 42 33 60 51 78 69 26 17 44 35 62 53 80 71 +DEPOLARIZE2(0.002) 1 10 19 28 37 46 55 64 3 12 21 30 39 48 57 66 5 14 23 32 41 50 59 68 7 16 25 34 43 52 61 70 18 9 36 27 54 45 72 63 20 11 38 29 56 47 74 65 22 13 40 31 58 49 76 67 24 15 42 33 60 51 78 69 26 17 44 35 62 53 80 71 +TICK +CX 19 10 37 28 55 46 73 64 21 12 39 30 57 48 75 66 23 14 41 32 59 50 77 68 25 16 43 34 61 52 79 70 0 9 18 27 36 45 54 63 2 11 20 29 38 47 56 65 4 13 22 31 40 49 58 67 6 15 24 33 42 51 60 69 8 17 26 35 44 53 62 71 +DEPOLARIZE2(0.002) 19 10 37 28 55 46 73 64 21 12 39 30 57 48 75 66 23 14 41 32 59 50 77 68 25 16 43 34 61 52 79 70 0 9 18 27 36 45 54 63 2 11 20 29 38 47 56 65 4 13 22 31 40 49 58 67 6 15 24 33 42 51 60 69 8 17 26 35 44 53 62 71 +TICK +CX 1 0 19 18 37 36 55 54 73 72 3 2 21 20 39 38 57 56 75 74 5 4 23 22 41 40 59 58 77 76 7 6 25 24 43 42 61 60 79 78 10 11 28 29 46 47 64 65 12 13 30 31 48 49 66 67 14 15 32 33 50 51 68 69 16 17 34 35 52 53 70 71 +DEPOLARIZE2(0.002) 1 0 19 18 37 36 55 54 73 72 3 2 21 20 39 38 57 56 75 74 5 4 23 22 41 40 59 58 77 76 7 6 25 24 43 42 61 60 79 78 10 11 28 29 46 47 64 65 12 13 30 31 48 49 66 67 14 15 32 33 50 51 68 69 16 17 34 35 52 53 70 71 +TICK +H 1 3 5 7 19 21 23 25 37 39 41 43 55 57 59 61 73 75 77 79 +DEPOLARIZE1(0.002) 1 3 5 7 19 21 23 25 37 39 41 43 55 57 59 61 73 75 77 79 +TICK +X_ERROR(0.002) 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 +MR 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 +X_ERROR(0.002) 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 +DETECTOR(0, 1, 0) rec[-36] +DETECTOR(0, 3, 0) rec[-27] +DETECTOR(0, 5, 0) rec[-18] +DETECTOR(0, 7, 0) rec[-9] +DETECTOR(2, 1, 0) rec[-35] +DETECTOR(2, 3, 0) rec[-26] +DETECTOR(2, 5, 0) rec[-17] +DETECTOR(2, 7, 0) rec[-8] +DETECTOR(4, 1, 0) rec[-34] +DETECTOR(4, 3, 0) rec[-25] +DETECTOR(4, 5, 0) rec[-16] +DETECTOR(4, 7, 0) rec[-7] +DETECTOR(6, 1, 0) rec[-33] +DETECTOR(6, 3, 0) rec[-24] +DETECTOR(6, 5, 0) rec[-15] +DETECTOR(6, 7, 0) rec[-6] +DETECTOR(8, 1, 0) rec[-32] +DETECTOR(8, 3, 0) rec[-23] +DETECTOR(8, 5, 0) rec[-14] +DETECTOR(8, 7, 0) rec[-5] +REPEAT 4 { + TICK + DEPOLARIZE1(0.002) 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 + H 1 3 5 7 19 21 23 25 37 39 41 43 55 57 59 61 73 75 77 79 + DEPOLARIZE1(0.002) 1 3 5 7 19 21 23 25 37 39 41 43 55 57 59 61 73 75 77 79 + TICK + CX 1 2 19 20 37 38 55 56 73 74 3 4 21 22 39 40 57 58 75 76 5 6 23 24 41 42 59 60 77 78 7 8 25 26 43 44 61 62 79 80 10 9 28 27 46 45 64 63 12 11 30 29 48 47 66 65 14 13 32 31 50 49 68 67 16 15 34 33 52 51 70 69 + DEPOLARIZE2(0.002) 1 2 19 20 37 38 55 56 73 74 3 4 21 22 39 40 57 58 75 76 5 6 23 24 41 42 59 60 77 78 7 8 25 26 43 44 61 62 79 80 10 9 28 27 46 45 64 63 12 11 30 29 48 47 66 65 14 13 32 31 50 49 68 67 16 15 34 33 52 51 70 69 + TICK + CX 1 10 19 28 37 46 55 64 3 12 21 30 39 48 57 66 5 14 23 32 41 50 59 68 7 16 25 34 43 52 61 70 18 9 36 27 54 45 72 63 20 11 38 29 56 47 74 65 22 13 40 31 58 49 76 67 24 15 42 33 60 51 78 69 26 17 44 35 62 53 80 71 + DEPOLARIZE2(0.002) 1 10 19 28 37 46 55 64 3 12 21 30 39 48 57 66 5 14 23 32 41 50 59 68 7 16 25 34 43 52 61 70 18 9 36 27 54 45 72 63 20 11 38 29 56 47 74 65 22 13 40 31 58 49 76 67 24 15 42 33 60 51 78 69 26 17 44 35 62 53 80 71 + TICK + CX 19 10 37 28 55 46 73 64 21 12 39 30 57 48 75 66 23 14 41 32 59 50 77 68 25 16 43 34 61 52 79 70 0 9 18 27 36 45 54 63 2 11 20 29 38 47 56 65 4 13 22 31 40 49 58 67 6 15 24 33 42 51 60 69 8 17 26 35 44 53 62 71 + DEPOLARIZE2(0.002) 19 10 37 28 55 46 73 64 21 12 39 30 57 48 75 66 23 14 41 32 59 50 77 68 25 16 43 34 61 52 79 70 0 9 18 27 36 45 54 63 2 11 20 29 38 47 56 65 4 13 22 31 40 49 58 67 6 15 24 33 42 51 60 69 8 17 26 35 44 53 62 71 + TICK + CX 1 0 19 18 37 36 55 54 73 72 3 2 21 20 39 38 57 56 75 74 5 4 23 22 41 40 59 58 77 76 7 6 25 24 43 42 61 60 79 78 10 11 28 29 46 47 64 65 12 13 30 31 48 49 66 67 14 15 32 33 50 51 68 69 16 17 34 35 52 53 70 71 + DEPOLARIZE2(0.002) 1 0 19 18 37 36 55 54 73 72 3 2 21 20 39 38 57 56 75 74 5 4 23 22 41 40 59 58 77 76 7 6 25 24 43 42 61 60 79 78 10 11 28 29 46 47 64 65 12 13 30 31 48 49 66 67 14 15 32 33 50 51 68 69 16 17 34 35 52 53 70 71 + TICK + H 1 3 5 7 19 21 23 25 37 39 41 43 55 57 59 61 73 75 77 79 + DEPOLARIZE1(0.002) 1 3 5 7 19 21 23 25 37 39 41 43 55 57 59 61 73 75 77 79 + TICK + X_ERROR(0.002) 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 + MR 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 + X_ERROR(0.002) 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 + SHIFT_COORDS(0, 0, 1) + DETECTOR(1, 0, 0) rec[-40] rec[-80] + DETECTOR(3, 0, 0) rec[-39] rec[-79] + DETECTOR(5, 0, 0) rec[-38] rec[-78] + DETECTOR(7, 0, 0) rec[-37] rec[-77] + DETECTOR(0, 1, 0) rec[-36] rec[-76] + DETECTOR(2, 1, 0) rec[-35] rec[-75] + DETECTOR(4, 1, 0) rec[-34] rec[-74] + DETECTOR(6, 1, 0) rec[-33] rec[-73] + DETECTOR(8, 1, 0) rec[-32] rec[-72] + DETECTOR(1, 2, 0) rec[-31] rec[-71] + DETECTOR(3, 2, 0) rec[-30] rec[-70] + DETECTOR(5, 2, 0) rec[-29] rec[-69] + DETECTOR(7, 2, 0) rec[-28] rec[-68] + DETECTOR(0, 3, 0) rec[-27] rec[-67] + DETECTOR(2, 3, 0) rec[-26] rec[-66] + DETECTOR(4, 3, 0) rec[-25] rec[-65] + DETECTOR(6, 3, 0) rec[-24] rec[-64] + DETECTOR(8, 3, 0) rec[-23] rec[-63] + DETECTOR(1, 4, 0) rec[-22] rec[-62] + DETECTOR(3, 4, 0) rec[-21] rec[-61] + DETECTOR(5, 4, 0) rec[-20] rec[-60] + DETECTOR(7, 4, 0) rec[-19] rec[-59] + DETECTOR(0, 5, 0) rec[-18] rec[-58] + DETECTOR(2, 5, 0) rec[-17] rec[-57] + DETECTOR(4, 5, 0) rec[-16] rec[-56] + DETECTOR(6, 5, 0) rec[-15] rec[-55] + DETECTOR(8, 5, 0) rec[-14] rec[-54] + DETECTOR(1, 6, 0) rec[-13] rec[-53] + DETECTOR(3, 6, 0) rec[-12] rec[-52] + DETECTOR(5, 6, 0) rec[-11] rec[-51] + DETECTOR(7, 6, 0) rec[-10] rec[-50] + DETECTOR(0, 7, 0) rec[-9] rec[-49] + DETECTOR(2, 7, 0) rec[-8] rec[-48] + DETECTOR(4, 7, 0) rec[-7] rec[-47] + DETECTOR(6, 7, 0) rec[-6] rec[-46] + DETECTOR(8, 7, 0) rec[-5] rec[-45] + DETECTOR(1, 8, 0) rec[-4] rec[-44] + DETECTOR(3, 8, 0) rec[-3] rec[-43] + DETECTOR(5, 8, 0) rec[-2] rec[-42] + DETECTOR(7, 8, 0) rec[-1] rec[-41] +} +X_ERROR(0.002) 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 +M 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 +DETECTOR(0, 1, 1) rec[-32] rec[-36] rec[-41] rec[-77] +DETECTOR(0, 3, 1) rec[-23] rec[-27] rec[-32] rec[-68] +DETECTOR(0, 5, 1) rec[-14] rec[-18] rec[-23] rec[-59] +DETECTOR(0, 7, 1) rec[-5] rec[-9] rec[-14] rec[-50] +DETECTOR(2, 1, 1) rec[-31] rec[-35] rec[-36] rec[-40] rec[-76] +DETECTOR(2, 3, 1) rec[-22] rec[-26] rec[-27] rec[-31] rec[-67] +DETECTOR(2, 5, 1) rec[-13] rec[-17] rec[-18] rec[-22] rec[-58] +DETECTOR(2, 7, 1) rec[-4] rec[-8] rec[-9] rec[-13] rec[-49] +DETECTOR(4, 1, 1) rec[-30] rec[-34] rec[-35] rec[-39] rec[-75] +DETECTOR(4, 3, 1) rec[-21] rec[-25] rec[-26] rec[-30] rec[-66] +DETECTOR(4, 5, 1) rec[-12] rec[-16] rec[-17] rec[-21] rec[-57] +DETECTOR(4, 7, 1) rec[-3] rec[-7] rec[-8] rec[-12] rec[-48] +DETECTOR(6, 1, 1) rec[-29] rec[-33] rec[-34] rec[-38] rec[-74] +DETECTOR(6, 3, 1) rec[-20] rec[-24] rec[-25] rec[-29] rec[-65] +DETECTOR(6, 5, 1) rec[-11] rec[-15] rec[-16] rec[-20] rec[-56] +DETECTOR(6, 7, 1) rec[-2] rec[-6] rec[-7] rec[-11] rec[-47] +DETECTOR(8, 1, 1) rec[-28] rec[-33] rec[-37] rec[-73] +DETECTOR(8, 3, 1) rec[-19] rec[-24] rec[-28] rec[-64] +DETECTOR(8, 5, 1) rec[-10] rec[-15] rec[-19] rec[-55] +DETECTOR(8, 7, 1) rec[-1] rec[-6] rec[-10] rec[-46] +OBSERVABLE_INCLUDE(0) rec[-37] rec[-38] rec[-39] rec[-40] rec[-41] diff --git a/wai/quantum-cross-simulator/corpus/reproducers/ddsim_feedback_rounds.py b/wai/quantum-cross-simulator/corpus/reproducers/ddsim_feedback_rounds.py new file mode 100644 index 000000000..26e1e649b --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/reproducers/ddsim_feedback_rounds.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python3 +"""repeat_until_success, and smaller programs, as circuits built in code, on one decision-diagram +sampler. + + python3 -I ddsim_feedback_rounds.py # with the pinned engines of env/requirements.lock + +repeat_until_success is three rounds of: h, t on qubit 1, cx from 0 to 1, h, t on qubit 1, qubit 1 +measured into bit r, and x on qubit 1 when bit r is 1 (which returns it to |0>; the program has no +reset instruction); then h, t on qubit 0. Qubit 0 is measured into bit 3 at the end. Each claim of +corpus/known-disagreements.json about it is one case below; it prints one JSON object per line: +the claim, what was seen, what the claim says, and whether it holds. compare.py reruns it in every +run that holds `repeat_until_success`. +""" +import json + +from mqt.ddsim import DDSIMProvider +from qiskit import QuantumCircuit + + +def rounds(conditioned): + qc = QuantumCircuit(2, 4) + for r in range(3): + qc.h(1) + qc.t(1) + qc.cx(0, 1) + qc.h(1) + qc.t(1) + qc.measure(1, r) + if conditioned: + with qc.if_test((qc.clbits[r], 1)): + qc.x(1) + qc.h(0) + qc.t(0) + qc.measure(0, 3) + return qc + + +def twice(third_bit): + qc = QuantumCircuit(2, 3 if third_bit else 2) + qc.h(1) + qc.measure(1, 0) + qc.h(1) + qc.measure(1, 1) + if third_bit: + qc.measure(0, 2) + return qc + + +def run(qc): + try: + counts = DDSIMProvider().get_backend("qasm_simulator").run(qc, shots=2000, seed=11).result().get_counts(qc) + return "counts over %d outcomes" % len(counts) + except Exception as e: # noqa: BLE001 - the error is what is observed + return "%s: %s" % (type(e).__name__, str(e).splitlines()[0][:160]) + + +def case(claim, qc, error): + seen = run(qc) + print(json.dumps({"claim": claim, "observed": seen, "expected": "ValueError: [changePermutation] ..." if error else "counts", "holds": ("changePermutation" in seen) if error else seen.startswith("counts")})) + + +case("repeat_until_success: an error naming changePermutation, and no counts", rounds(True), True) +case("the same three rounds without the conditioned x: the same error", rounds(False), True) +case("qubit 1 measured, h, measured again, then qubit 0 measured into a third bit: the same error", twice(True), True) +case("the same without qubit 0's measurement into a third bit: counts", twice(False), False) diff --git a/wai/quantum-cross-simulator/corpus/reproducers/ddsim_repeated_measurement.py b/wai/quantum-cross-simulator/corpus/reproducers/ddsim_repeated_measurement.py new file mode 100644 index 000000000..4f123db92 --- /dev/null +++ b/wai/quantum-cross-simulator/corpus/reproducers/ddsim_repeated_measurement.py @@ -0,0 +1,55 @@ +#!/usr/bin/env python3 +"""A qubit measured twice in a row, on one decision-diagram sampler, as a circuit built in code. + + python3 -I ddsim_repeated_measurement.py # with the pinned engines of env/requirements.lock + +Each claim of corpus/known-disagreements.json about this program is one case below. It prints one +JSON object per line: the claim, what was seen, what the claim says, and whether it holds. +compare.py reruns it in every run that holds `measure_twice`. +""" +import json + +from mqt.ddsim import DDSIMProvider +from qiskit import QuantumCircuit + +SHOTS = 2000 + + +def run(qc): + try: + counts = DDSIMProvider().get_backend("qasm_simulator").run(qc, shots=SHOTS, seed=11).result().get_counts(qc) + return sorted(counts) + except Exception as e: # noqa: BLE001 - the error is what is observed + return "%s: %s" % (type(e).__name__, str(e).splitlines()[0][:160]) + + +def case(claim, qc, expected, holds): + seen = run(qc) + print(json.dumps({"claim": claim, "observed": seen, "expected": expected, "holds": holds(seen)})) + + +# Outcomes are written c[1] then c[0]: "10" is c[1] = 1, c[0] = 0. +qc = QuantumCircuit(1, 2) +qc.h(0) +qc.measure(0, 0) +qc.measure(0, 1) +case("h, then c[0] and c[1] measured from the qubit with nothing between: only 00 and 10 come", qc, ["00", "10"], lambda s: s == ["00", "10"]) + +qc = QuantumCircuit(1, 2) +qc.x(0) +qc.measure(0, 0) +qc.measure(0, 1) +case("x, then the same two measurements: 10 on every shot", qc, ["10"], lambda s: s == ["10"]) + +qc = QuantumCircuit(1, 2) +qc.h(0) +qc.measure(0, 0) +qc.barrier() +qc.measure(0, 1) +case("h, the two measurements with a barrier between: 00 and 11", qc, ["00", "11"], lambda s: s == ["00", "11"]) + +qc = QuantumCircuit(1, 2) +qc.h(0) +qc.measure(0, 1) +qc.measure(0, 0) +case("h, then c[1] measured first and c[0] second: an error naming changePermutation", qc, "ValueError: [changePermutation] ...", lambda s: isinstance(s, str) and "changePermutation" in s) diff --git a/wai/quantum-cross-simulator/env/requirements.in b/wai/quantum-cross-simulator/env/requirements.in new file mode 100644 index 000000000..8cf33af29 --- /dev/null +++ b/wai/quantum-cross-simulator/env/requirements.in @@ -0,0 +1,11 @@ +# The pinned engines the corpus compares against, and what they need. Every one publishes +# wheels for macOS on arm64 and Linux on x86_64; not all do for other platforms (stim for +# Linux on arm64, llvmlite, which quimb needs, for macOS on x86_64). +stim==1.16.0 +qiskit==2.6.2 +qiskit-aer==0.18.2 +quimb==1.15.0 +mqt.ddsim==2.7.0 +qsimcirq==0.22.1 +cirq-core==1.7.0 +opt-einsum==3.4.0 diff --git a/wai/quantum-cross-simulator/env/requirements.lock b/wai/quantum-cross-simulator/env/requirements.lock new file mode 100644 index 000000000..8760b9cb2 --- /dev/null +++ b/wai/quantum-cross-simulator/env/requirements.lock @@ -0,0 +1,1246 @@ +absl-py==2.5.1 \ + --hash=sha256:286e71c82c1a38e75bbcf185f9b37d0305ad7786535107cb49bf4df9ff2e1f95 \ + --hash=sha256:721200f2f0e9960f2ca9dc3a2a706b201f5f75d812c158f059cbbe29eeafbdb8 + # via qsimcirq +antlr4-python3-runtime==4.13.2 \ + --hash=sha256:909b647e1d2fc2b70180ac586df3933e38919c85f98ccc656a96cd3f25ef3916 \ + --hash=sha256:fe3835eb8d33daece0e799090eda89719dbccee7aa39ef94eed3818cafa5a7e8 + # via openqasm3 +attrs==26.1.0 \ + --hash=sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309 \ + --hash=sha256:d03ceb89cb322a8fd706d4fb91940737b6642aa36998fe130a9bc96c985eff32 + # via cirq-core +autoray==0.11.0 \ + --hash=sha256:2e9ca95070834574e054162ee02946d2414f7821f65960308b95f49d08ee9227 \ + --hash=sha256:ef9c23d8307f2e5030d10dd222d304401450157172a6fcc6f7456b6e82681bf4 + # via + # cotengra + # quimb +cirq-core==1.7.0 \ + --hash=sha256:9d2e9610b06e2b2b2195184f44c0df4e94f31485831f8e1c6a96c858b7897bce + # via + # -r requirements.in + # qsimcirq +colorama==0.4.6 ; sys_platform == 'win32' \ + --hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \ + --hash=sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 + # via tqdm +contourpy==1.3.2 \ + --hash=sha256:0475b1f6604896bc7c53bb070e355e9321e1bc0d381735421a2d2068ec56531f \ + --hash=sha256:106fab697af11456fcba3e352ad50effe493a90f893fca6c2ca5c033820cea92 \ + --hash=sha256:107ba8a6a7eec58bb475329e6d3b95deba9440667c4d62b9b6063942b61d7f16 \ + --hash=sha256:15ce6ab60957ca74cff444fe66d9045c1fd3e92c8936894ebd1f3eef2fff075f \ + --hash=sha256:1c48188778d4d2f3d48e4643fb15d8608b1d01e4b4d6b0548d9b336c28fc9b6f \ + --hash=sha256:3859783aefa2b8355697f16642695a5b9792e7a46ab86da1118a4a23a51a33d7 \ + --hash=sha256:3d80b2c0300583228ac98d0a927a1ba6a2ba6b8a742463c564f1d419ee5b211e \ + --hash=sha256:3f9e896f447c5c8618f1edb2bafa9a4030f22a575ec418ad70611450720b5b08 \ + --hash=sha256:434f0adf84911c924519d2b08fc10491dd282b20bdd3fa8f60fd816ea0b48841 \ + --hash=sha256:49b65a95d642d4efa8f64ba12558fcb83407e58a2dfba9d796d77b63ccfcaff5 \ + --hash=sha256:4caf2bcd2969402bf77edc4cb6034c7dd7c0803213b3523f111eb7460a51b8d2 \ + --hash=sha256:532fd26e715560721bb0d5fc7610fce279b3699b018600ab999d1be895b09415 \ + --hash=sha256:5ebac872ba09cb8f2131c46b8739a7ff71de28a24c869bcad554477eb089a878 \ + --hash=sha256:5f5964cdad279256c084b69c3f412b7801e15356b16efa9d78aa974041903da0 \ + --hash=sha256:65a887a6e8c4cd0897507d814b14c54a8c2e2aa4ac9f7686292f9769fcf9a6ab \ + --hash=sha256:6a37a2fb93d4df3fc4c0e363ea4d16f83195fc09c891bc8ce072b9d084853445 \ + --hash=sha256:70771a461aaeb335df14deb6c97439973d253ae70660ca085eec25241137ef43 \ + --hash=sha256:71e2bd4a1c4188f5c2b8d274da78faab884b59df20df63c34f74aa1813c4427c \ + --hash=sha256:745b57db7758f3ffc05a10254edd3182a2a83402a89c00957a8e8a22f5582823 \ + --hash=sha256:78e9253c3de756b3f6a5174d024c4835acd59eb3f8e2ca13e775dbffe1558f69 \ + --hash=sha256:82199cb78276249796419fe36b7386bd8d2cc3f28b3bc19fe2454fe2e26c4c15 \ + --hash=sha256:8b7fc0cd78ba2f4695fd0a6ad81a19e7e3ab825c31b577f384aa9d7817dc3bef \ + --hash=sha256:8c5acb8dddb0752bf252e01a3035b21443158910ac16a3b0d20e7fed7d534ce5 \ + --hash=sha256:8c942a01d9163e2e5cfb05cb66110121b8d07ad438a17f9e766317bcb62abf73 \ + --hash=sha256:8d2e74acbcba3bfdb6d9d8384cdc4f9260cae86ed9beee8bd5f54fee49a430b9 \ + --hash=sha256:90df94c89a91b7362e1142cbee7568f86514412ab8a2c0d0fca72d7e91b62912 \ + --hash=sha256:970e9173dbd7eba9b4e01aab19215a48ee5dd3f43cef736eebde064a171f89a5 \ + --hash=sha256:977e98a0e0480d3fe292246417239d2d45435904afd6d7332d8455981c408b85 \ + --hash=sha256:9be002b31c558d1ddf1b9b415b162c603405414bacd6932d031c5b5a8b757f0d \ + --hash=sha256:ad687a04bc802cbe8b9c399c07162a3c35e227e2daccf1668eb1f278cb698631 \ + --hash=sha256:b4f54d6a2defe9f257327b0f243612dd051cc43825587520b1bf74a31e2f6ef2 \ + --hash=sha256:b6945942715a034c671b7fc54f9588126b0b8bf23db2696e3ca8328f3ff0ab54 \ + --hash=sha256:b7cd50c38f500bbcc9b6a46643a40e0913673f869315d8e70de0438817cb7773 \ + --hash=sha256:ba38e3f9f330af820c4b27ceb4b9c7feee5fe0493ea53a8720f4792667465934 \ + --hash=sha256:c440093bbc8fc21c637c03bafcbef95ccd963bc6e0514ad887932c18ca2a759a \ + --hash=sha256:c49f73e61f1f774650a55d221803b101d966ca0c5a2d6d5e4320ec3997489441 \ + --hash=sha256:c66c4906cdbc50e9cba65978823e6e00b45682eb09adbb78c9775b74eb222422 \ + --hash=sha256:c6c4639a9c22230276b7bffb6a850dfc8258a2521305e1faefe804d006b2e532 \ + --hash=sha256:c85bb486e9be652314bb5b9e2e3b0d1b2e643d5eec4992c0fbe8ac71775da739 \ + --hash=sha256:cc829960f34ba36aad4302e78eabf3ef16a3a100863f0d4eeddf30e8a485a03b \ + --hash=sha256:cdd22595308f53ef2f891040ab2b93d79192513ffccbd7fe19be7aa773a5e09f \ + --hash=sha256:d0e589ae0d55204991450bb5c23f571c64fe43adaa53f93fc902a84c96f52fe1 \ + --hash=sha256:d14f12932a8d620e307f715857107b1d1845cc44fdb5da2bc8e850f5ceba9f87 \ + --hash=sha256:d32530b534e986374fc19eaa77fcb87e8a99e5431499949b828312bdcd20ac52 \ + --hash=sha256:d6658ccc7251a4433eebd89ed2672c2ed96fba367fd25ca9512aa92a4b46c4f1 \ + --hash=sha256:d91a3ccc7fea94ca0acab82ceb77f396d50a1f67412efe4c526f5d20264e6ecd \ + --hash=sha256:dc41ba0714aa2968d1f8674ec97504a8f7e334f48eeacebcaa6256213acb0989 \ + --hash=sha256:de39db2604ae755316cb5967728f4bea92685884b1e767b7c24e983ef5f771cb \ + --hash=sha256:de425af81b6cea33101ae95ece1f696af39446db9682a0b56daaa48cfc29f38f \ + --hash=sha256:ded1706ed0c1049224531b81128efbd5084598f18d8a2d9efae833edbd2b40ad \ + --hash=sha256:e1578f7eafce927b168752ed7e22646dad6cd9bca673c60bff55889fa236ebf9 \ + --hash=sha256:e259bced5549ac64410162adc973c5e2fb77f04df4a439d00b478e57a0e65512 \ + --hash=sha256:e298e7e70cf4eb179cc1077be1c725b5fd131ebc81181bf0c03525c8abc297fd \ + --hash=sha256:eab0f6db315fa4d70f1d8ab514e527f0366ec021ff853d7ed6a2d33605cf4b83 \ + --hash=sha256:f26b383144cf2d2c29f01a1e8170f50dacf0eac02d64139dcd709a8ac4eb3cfe \ + --hash=sha256:f939a054192ddc596e031e50bb13b657ce318cf13d264f095ce9db7dc6ae81c0 \ + --hash=sha256:fd93cc7f3139b6dd7aab2f26a90dde0aa9fc264dbf70f6740d498a70b860b82c + # via + # matplotlib + # qsimcirq +cotengra==0.8.3 \ + --hash=sha256:51748e29714489d15f456055a69cb784c37e7215f0729108cdfd9ff74c00ae98 \ + --hash=sha256:848ca60c61d932d1747774fe40d87de90c899d0327c7d6f90c5eff1d617126bc + # via quimb +cycler==0.12.1 \ + --hash=sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30 \ + --hash=sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c + # via matplotlib +cytoolz==1.2.0 \ + --hash=sha256:014accc95d06d7ef5040f482567dd4833d8ecfc99c2c3503594d860d80b4e055 \ + --hash=sha256:018ac56c3263b1d258c5f2be0473494a2a3cc6e3c1568a609adedfb28d93bf41 \ + --hash=sha256:023f62bd5cc9324da6f837386a8e5f960b576063ebaa75ebd2ec54a5c8e9f9d1 \ + --hash=sha256:0240efe4710e274b76594c1a04c47819ace3cc6c0a8281d6c885562bd52aa1da \ + --hash=sha256:0298a3eb3b6f9b441cab463cc8273dbb99c6acd79491bcccf48a195f55a9e9f5 \ + --hash=sha256:040bc9f38b3867428884cb902503032b312fc5d3306fa4689ac2b114fa981341 \ + --hash=sha256:047a1a54d58718738e4bd79a11ca83989129e0b2ec997311e6d15b8ebe2d5a16 \ + --hash=sha256:0544835a24a4239aa221fec3e49e35f05c775ba7ac1e20b2a6a2064c297b0418 \ + --hash=sha256:059117147f90646dc99958bb7875531e8d7cf2ec7b39f9ee3d23fac1300b9730 \ + --hash=sha256:08a9cb2d25e40919bc5f49857da044300bf4fb7c7fb0280c125669cbe34115b6 \ + --hash=sha256:092701b9c1fcc5169156fadd393db1a1ed0473e86475fd402241cd843df7b037 \ + --hash=sha256:09296d0aaca108c89323e8301558bddf8ac4c1e85ac572633c2852474329dc76 \ + --hash=sha256:0b3f663bfa65d4d38acd3b98b8cfc82b0ca2914ccb8285d60435d5f7d7e7727e \ + --hash=sha256:0d8b5b0e9af57a9ee253cf7f29775e1eabbacad4e6ad41a2e30498f9054835cf \ + --hash=sha256:0f88b60393636ce8f6801d11335cfd9213725c89efd46b8fe788f16f7d1a8657 \ + --hash=sha256:101633cfee814f6d9a5e2d5f3ff16019db9697d55d149e3436e7316c5a19f8ec \ + --hash=sha256:102a293f27a49a20b0f7f205e3a4915d55e9c31c2c540ed0c83ca424bff2374e \ + --hash=sha256:10389a0711f4a00630bece585da224c115be81ea7bef1d38c4a8529b0a631c00 \ + --hash=sha256:117c3a8c154b56e95c3cc0d96e8febaf727bdf846fe5fed28280ed6a6d8b2b36 \ + --hash=sha256:11ed7cb04e0ff4d777698d19ea7e7d3aa247f300a6c86d942b88a4e05108b5fa \ + --hash=sha256:12796227b954cd8fd9e264b4a4a3bc4036b4ca73fe35b5737481e78879d9cbaf \ + --hash=sha256:132ef98602b3d4ec2d83bb0e073de280ca69538841e4b2ff1079fedb07882324 \ + --hash=sha256:1842d175dddbbb14bf7ef7a06e9f39907db60d9d41dcc13366f51af128717606 \ + --hash=sha256:1a819a4f512944b364b86dc551c391aaab901e890f41d65f0aecc7e7e7b8a2e3 \ + --hash=sha256:1b5bc4bf6af65af7039276ab701abf09f1f1f1ee66b7059f2377c64d4faeef56 \ + --hash=sha256:1c967cb0073aee5c6c4c46534d7591a7a2ba4d8b1387a1ddc353f97cc9a11d5e \ + --hash=sha256:20339e9aadcc20fa6b9a64063d92978b36fa338a444dc0657f54f0ccaa649d3b \ + --hash=sha256:20fee7dc262a3b49fea974efb3ca6c5523b8bebcd3942cb9bb8ef34e60f07f9b \ + --hash=sha256:21724ba0e21b92289122ec84185b5c3b1882395958de505e5aa2b95a2e967966 \ + --hash=sha256:22c060a3de0c3628fcb7f9e7690ba7b5164e8cd78d831628046a33657715afa6 \ + --hash=sha256:243d533c949c334286cb06080ae0d94f7efbdc64218d05f7f0f9acb754f5efc9 \ + --hash=sha256:26726524d5348adbecdec799aed4a1cb277ceac9fb0df042cb0979abce8c19c4 \ + --hash=sha256:2a83a4c8d2274fa28b9445b973e25965314b852a0c0a29ba5fb70f7416a839ff \ + --hash=sha256:2c4badd009e02702f3e410ac7e8bcfd37c40699526ed2814bcf73c5795e8db57 \ + --hash=sha256:2d0164d7d418e7099501de66bb40068e53585e35341469dc7548a39f320c7ab1 \ + --hash=sha256:2e76017e5ebdcf803eb3f313eee5afd696701e129a31b0d169e2f55816712714 \ + --hash=sha256:2ef10773f9a41baceec29432ce5dabfd9267bdc7608cd0c28ce53b0e354434be \ + --hash=sha256:30134d21ae4c5319bede38ce153bb906585be78d168bfd77a050ffd5bf5c6bfa \ + --hash=sha256:30f5987bd84f2743bee69b5b776b3d39613228d7779a44fdf14b77b199cc35f6 \ + --hash=sha256:34fab06d105869b48af8bb8316c4293bfa165f2a07cefbd18f550ec2ec03d536 \ + --hash=sha256:3546b76c00cdf4ed9c37a6a39426f35e05435b5c9f288a6d074c42c93e3055c5 \ + --hash=sha256:386f26bbde26e87b76ccc68daabb6ca50dc73e87e144690a9240bac1a5325114 \ + --hash=sha256:3afe377ed8dd31174f0457bb641e05df12b50fd5981c69e8801aae1cd6ed9155 \ + --hash=sha256:3b04cbb776ab4a996cf6b61c03af931c4b62b4b0ff9e0cc20e26a64155631e74 \ + --hash=sha256:3d1b76bf267b59fe437beb5fa1013cc56efd0e84ce04cbfa6d077940426f3980 \ + --hash=sha256:3d77764cca1a097b738e0ea5969bcfdae513441c3a34724a9ba59769b5efe910 \ + --hash=sha256:3ee7c5dddee7cdfd1fbacce06d2c6bb9c1d9041f4920809ca5100a0ff18c8ab7 \ + --hash=sha256:3eebe9e05af65052c168a204551a7bd2db61a38bfda9e512688bfd939878630b \ + --hash=sha256:3f2b78d40376094216e15969afeccb0aa6730bd8e2237f9ef9c978bca080d2bb \ + --hash=sha256:3faf310d09b98e6e53c85f84f7705ebf24a903b672219d5510880ab7be92cff3 \ + --hash=sha256:3fcecd2000087515d19cb6abfab26e58078059bc204b6d3839976a08868dd56f \ + --hash=sha256:3fefc24a365673fa77c0bc10c4314d8761a1d4153edc912d834f3abfa0928eea \ + --hash=sha256:407e3111d7ad2f4120aca06682a36f12e920819bee73225b81bd9eb1e8c01cc8 \ + --hash=sha256:4279744ddcdd751085488abc3cb3c32e35e301e625f9cc1120d679017dcaec39 \ + --hash=sha256:430e22e81900a714da93a69ef02c4c326b85717b1d9346e316ef1a36401321cc \ + --hash=sha256:4397cf6bb88fd202ba57c5d3d9bb474edebc758d3564c6b60a6cad4c4a6dbf06 \ + --hash=sha256:44eb992772bac234a43a6c5345d7748e21643762a9a26612934bb387515912e6 \ + --hash=sha256:46078aae6e4d55962a7e331ca12bac637b0eeea7c4d7ba27763b7ac7561ac9f7 \ + --hash=sha256:473c769c5886141bdd1b5de9806f0992f4ca512a692ee65ce05f78ae1bef5b2a \ + --hash=sha256:4815f2cf3d2b5ff40c8f1edb9089e6e479fd81b0eef107fe494e28e12c1f81ed \ + --hash=sha256:484211d4732bd9b587c7422e5043e00775e3327017519f81d8ff166b00c85af7 \ + --hash=sha256:49093863e870e79a158c189ed11485bd63a7c7f5b7b12eb87f627f64fcc5366b \ + --hash=sha256:496d4e8e3586bbcef58f42f51784a679ed3bababd9f19e7ddb7adaa3de1ddf1a \ + --hash=sha256:4d4078d0b9860b0e0a07cf82dee774a8ca7baaffa343e607732b77fdbec28157 \ + --hash=sha256:50997f36106a784831fb8a39a8adba274040382e85e74c96598f69f9f13333a1 \ + --hash=sha256:517cd4efc345df2a8eb146e65f002934e24b7b9245af8ea74ed1b3611d7df6f2 \ + --hash=sha256:51e389999d225f092ec660011c307e14d9de0a5ad8b14963d7ee18ea9d0ad59b \ + --hash=sha256:529165b178b7bea732e40d8122fbe04339948ac79188a58c72c64bfc19a54e56 \ + --hash=sha256:53c81e501d35affceedbb810ac43de56eafa45cd45b45a2970396da746587597 \ + --hash=sha256:5418e99f53aa0be404cf7fa2f1f1915bd0bd6340bcba38cdde6d2164cebaf0ac \ + --hash=sha256:558889d8cc6c6c9da71c4c3219d8ce83f0b64346e5a9822454ddb5410312e82e \ + --hash=sha256:59c8b1f59fd36dcf6eade8a54031804ea4a81bca004ae5c89c0ca19348e52782 \ + --hash=sha256:5a5567b397218529989c492fb646d7484b754d3ba1c8e50d7baced86b878aa63 \ + --hash=sha256:5a67a1ae9746a2942448743a097d836a4567b7119be93e01ec962b605a16cac2 \ + --hash=sha256:602b7f6f081f89bbd115ef255572ffa204480163d23ffb6e6529c778bc7d7359 \ + --hash=sha256:60870e904fde37aaa7aaf57eaaa287fa574d3b721d1c4913284984236f10fe44 \ + --hash=sha256:662ba3e27eeb9662e258f9d8e3f17ce55a3e4c6484bfcdc8dff9ae754f0f4099 \ + --hash=sha256:66fad0e07f0ab568030db93298d583b204cba7123b7728a64a20260ec4ca40ca \ + --hash=sha256:6721c3bac1a2c1fc0a151f2d0e41b152aacb0ecb79c66cae624641bf1b695df0 \ + --hash=sha256:68028b49df3fa5b1126f0f266085bed81aeabe726dc13659875d0953da92df60 \ + --hash=sha256:69b74289052caf6f892d85b3bf36f53e63fbbeb34cb4e9e3d6f5eb509917527a \ + --hash=sha256:6aa47e523ebebddf4c8da475985befc30470cc908cafa41fdb25bd3db5373baf \ + --hash=sha256:6b17ac998160b59d9ad31f8337078c663971a473ac17b4570739a938b2b8b298 \ + --hash=sha256:6c1f4ea53877632c92b7b0471b8ce128dcba2ecaa40d13c051bee715ecdca255 \ + --hash=sha256:6e6c3c2815ade563a496c7f4dc29630c16ba1f76547542c948bf2d46bb53736a \ + --hash=sha256:6ebe99f69fb9854ab956d4c066bb82833ee09401977cfd6a5a1274171e27c310 \ + --hash=sha256:6f468aa68a751d254d3f6159cfa99c273c3c08196dd796ba0fe913ff2dc7e267 \ + --hash=sha256:718248bab4d91dc28d3fa7b9bb77b89ab8d48c4c1dee89e3d411dde5cb4d0a4a \ + --hash=sha256:72eeb2b32bcbacefbed82b236386ade1867fff1da261e2b030cc703ffeea0feb \ + --hash=sha256:73ffb4e056217328269aa12e1932726cd2839353fa47100ff3e441a339495a47 \ + --hash=sha256:756442c6b537af09b07b58aa2596b036e558a82ec257de7dcfde1624c1ebd6d5 \ + --hash=sha256:762aff004c487e0ed24d6de2ce6791ca688cf76b2364e7a679872b82fec8c96a \ + --hash=sha256:76b344d42f34d89e8ddd175b8918aad3216b93de0c224ecff022afdc6bb95e74 \ + --hash=sha256:788ef782e107781be3d5e26f139723330efe2501e3af7311d00ff0c95eb6d948 \ + --hash=sha256:79029525176cdb3890a5c646a464d6ea760bdf4c7a046735ef50c5d79e953d09 \ + --hash=sha256:795285dc9baa51c6b96ab34c3769f85ef6f8d991b498f265d873a7871126beab \ + --hash=sha256:7b5b620748488cfc379e5376b845dbd5116429882ca0d1aa954afaa636ffb9d9 \ + --hash=sha256:7e479e89b13fa41a4fa3d70cbe94265df197a0b1a6b9e3497dba61cf02f101d5 \ + --hash=sha256:808cd21ccbd11a861e3d71757b7e2bb3077bb43e217f777302a1962a5271249e \ + --hash=sha256:80f25953abfd097e9426e852d0ee5af91013b38203c3b7686fca008774d79151 \ + --hash=sha256:84784c3ba3a6676f4498c85eac60ba4be90b3afd5a292e2664024e105055d436 \ + --hash=sha256:85eac212c9c371ab0e67d5167a0679427c9a914482368276bf3398d9a45e1f8d \ + --hash=sha256:8750d01346b2daee5084766b5b0e306c105e877b8bbe74a8e68682c4c29bbebc \ + --hash=sha256:87cefa6e471672802630bab22fb808bdda41c58b50a2ab0b1cdc8f507ae2f950 \ + --hash=sha256:87d56e129b50e69df8321c804f614ce7681324da03226802ee5da4884a81ab52 \ + --hash=sha256:883cef4cc648e3506121b77e486ee4abdaf7819a8f4264345c7b39accbd52d48 \ + --hash=sha256:88636d4e3f722f38943560f7ed581807acbe9d88790c8f20a251660127b9c02c \ + --hash=sha256:89f4d870d53cbf0a8876ced47aed11da66757bf93b523af309c1bbb5dc695eb4 \ + --hash=sha256:8a46ee8f86cc9644f60d440633a71a304d987f88ad62cd7f97418d08a7317a7a \ + --hash=sha256:8b67af224d2d5530abf5dcfc5b869628d8cabd69d969ba7efbb03495cf157160 \ + --hash=sha256:8dcd865382e37ff11c95b74144d4b2a14b87e840c4d3e9ca0b41aaa4b16b0648 \ + --hash=sha256:8f0f1c48e204ba3ea4a5adbc0de12f09b440e4d88f50da5512e42a580d774366 \ + --hash=sha256:91817f4bee837996ce9d623210cf8da8d1ad0876672c088ab14b8ae96c60dd33 \ + --hash=sha256:91da85729205c16877fa6e9631c9e8f141677b7a9986473f718b39c8fc4c0ba9 \ + --hash=sha256:91fba29f49057375ade7622c98eeb3fc4f718c809b2f2b16bfbdbaeada442250 \ + --hash=sha256:921e256e70436a719ea9887fd07ece4adbd54f5d19a9d0131f6789743af62686 \ + --hash=sha256:9424e82acf7001ad5fcc7b3346a239967022b1f4b7a1b057dbaaebd746cf168f \ + --hash=sha256:958b793f01a4ab5d9df91aba30dbde225b8acf1d83dd0394b159030b2ad82972 \ + --hash=sha256:979217911f7a6749a225c84fe642b3357476d4f723a94557bd9ce9d4f106daa3 \ + --hash=sha256:994c39a0fc47498927beedf7b50aa45f3a16ad2d2fe4358cf06c2e77874eded3 \ + --hash=sha256:9ba345986e31edc60276061c33533f839b0f5b165a160b7e0235dc019fe3eaa4 \ + --hash=sha256:9bb93d6cc39708daf4ac6d91b5ac92a1955c2f3bef54f8e51c7ab664a88c0d62 \ + --hash=sha256:9e1dff3d8e2c6020d239e4ecfad5b9ed46b04e2aeafb395ed8e6c011c1d394cc \ + --hash=sha256:9e99002216c0fc79e544297677641031b48fc03c84b0d39f4364fc5a49730c46 \ + --hash=sha256:9f37c629ffe37c82e08946e9171a23f2e33cfd8aaf2d982fdbdc9a066994e648 \ + --hash=sha256:9f4cf9332500cb990f5076403f8e7f69391823dbab4ea9b3ecefc277a7169794 \ + --hash=sha256:9f725efd5755af042ce91b7f25ccfd91fcb45eecdc9cfb9d8225c0d4ce805822 \ + --hash=sha256:a088a9c2922ce596a6e4d971e6781f23f594ded8399f143328d406da2f03b8a4 \ + --hash=sha256:a0a7867e88c87f7c5a7ae44b00f70ae088053c1a3b2203b0fb5ca47c14f5b744 \ + --hash=sha256:a129044d3ab46c1229fd41281dc1241b8c9433baf08b5bc0d555718ff7be98a5 \ + --hash=sha256:a4b26666d525ad638863e5231905e742f1217234a48ed8fbc0286716e87bbfcb \ + --hash=sha256:a7128d458a724d9c8cbb9dc21af51308234ff6a6ccb235ea7098e18343b3597c \ + --hash=sha256:a7e06dc453dbdce1d15ff74f1609d1f750ba4f23c9feac208d53310be77aea79 \ + --hash=sha256:a91588f87c8b11759d85597de96e64ca52208461ad5f066b7a6e2b8227427fee \ + --hash=sha256:aada80b66f628c77f01c5f10e70639476eddfe350de8e56bfb7b958a6453b39f \ + --hash=sha256:ad70512f0c2abd9e209efe479b123dfdd775c77ace703f414445f0a640ef7b1f \ + --hash=sha256:ae87173e2e064fedd939cfdc712946b56fefeede8065437792dbe592746b0f51 \ + --hash=sha256:afb91aa6cba01311e2ad16c5e707c8f4db08fad78d95d19b30c59eb659039d7a \ + --hash=sha256:b092364312772f2eb525f6690b9726ecc27afd2378127246e21636fb4db8bf28 \ + --hash=sha256:b1920ffb98a70403f9e25268badeecef2dce5de0ea430534f19b3da44d5e4ecd \ + --hash=sha256:b244b33f99e66342665566cac09d3c69e0573c8864015fc9e2482229cb1ef17d \ + --hash=sha256:b2ef6e50f18f49f894b5fea22b8599928c8d6dbfbc0e2818d3117fa228a47672 \ + --hash=sha256:b3b0716b3f7e2f42029fcae249cf9885b4f612165ea02302f12e7ff0d23a8035 \ + --hash=sha256:b3ebfdc9abb0c3b7170353bdfbc2a4e404581bace4a32c6941362f039363990b \ + --hash=sha256:b7bb3afc573cd848bbf647a29f0b71b867346a5c572f99dbad5050e320e53c11 \ + --hash=sha256:b9c213a8e100c4a89eb9c2166c030e0e1be13e18dd46616b075f1d3005b5af15 \ + --hash=sha256:ba71ece8a063ee71af70b3ec3c084d2b1328ac5c54fdfd35d16c0316028f5f56 \ + --hash=sha256:bb854a744dc7fed783dd1a20731c1c0eeccde747260c5591e4265daa435b3148 \ + --hash=sha256:bbccc7c9593afe50a4463cb6c594a6375999d15ef31f28bfe0493177a531ef6f \ + --hash=sha256:c007ab8317b4005ccbde5c744d9e862264fd503a8aa2635f456215bb16abacba \ + --hash=sha256:c0d774707b2630688b3b3009ab621da65b3d913c5e56354d150dad62044ccd19 \ + --hash=sha256:c243a175f5767299e3a0c5b1d08b229e4c1f1be4b7491d0a0cfc3526ee213ccc \ + --hash=sha256:c2b0b668e3f6ca38306a77d94be6e659c8d49e441e09174dbbb9c55b73a0157a \ + --hash=sha256:c3a5ab8905b0d01c0077dd28786efa7128908edcdcabe29935a3c45dcbae3128 \ + --hash=sha256:c6bfa292551f40ed36633a2a15e53f3aa07ac7ec584ecc04b7fb86fd45458f1c \ + --hash=sha256:c72bec295c681485e15562f87b104d90ce28cb75f800c48a60af8cb605b10cf8 \ + --hash=sha256:c8d6a9e3441cbe2d4a1ad45bf41071f8a8287d58a2ef84bed8d629524adaaaeb \ + --hash=sha256:c8da085fe30af35a184a74f70cd551fc30ac12eb06fdbb94825459db6baefa7f \ + --hash=sha256:cc21da21983be662ce185069a150bbb17cc00d46785ee63ef427baa250ac495d \ + --hash=sha256:cd2a1e188c6968aa2cc639073c10eda88b03798a2e09e3b2724be370065b35a7 \ + --hash=sha256:cd6df6b95a4c115d71104fe1aa84cbcb8c263f83de940725652c4bd9403b4716 \ + --hash=sha256:cf8144bf363b31fcb1b4e766ac181c5128e38469aee1f37a666fad9867c4e5f6 \ + --hash=sha256:d0e8b96fdf3201cb30fdf0037ceec516eac4eb3289696f3ca73e99f5cbd792af \ + --hash=sha256:d113195501ee883e22708653f89958b231a6acce76dbd9c69b5210a8f01d4132 \ + --hash=sha256:d1ef13738b7241439a5f514a87568e9b9696384078500b510612e615c2435ac0 \ + --hash=sha256:d251e040c91fe15f732ee829d9f4b94d8b8d7efdb04671b912288dfd95657b27 \ + --hash=sha256:d2729207b36de62871d987e1a2325806adc2044b37f352c812d36f95c092ed34 \ + --hash=sha256:d6d6f7eb24d3e4cffb44f973ed55c4ef895fbe5913323365b782b627e0971d7f \ + --hash=sha256:d9003634a330deec2fd475499ca447546c1e82c7076883926ef0d9ef5b934344 \ + --hash=sha256:da923ff6ec226925f901b8e59c50c7e8a011827deb9aaa9143bfde51a2ca1474 \ + --hash=sha256:db5c8885138f1789a1316f341bf643ac23626a1530005db0e5b30b425b3140d1 \ + --hash=sha256:dcaa296cec85c8654fdd95beff236c3b6db227361136dc16287e3f1a9420e21d \ + --hash=sha256:dd0c7c7cbba43a498a05c26f349b88f50513232d9f3ac9c2722494a8102d0321 \ + --hash=sha256:de697334697ca13c89bb544753c28301e309ac312c347b3029605ed0a1eca278 \ + --hash=sha256:de81bb9875723d1d8dff275df49045e7c51b9192948fc65c3f297c4efddcc1a7 \ + --hash=sha256:df5ac6f78b50a7aa7b497fd8a02d6503d9ff9d3825afbfb16cd8e8098bf2c48f \ + --hash=sha256:e2b2e2dbd74d64159bd7d8df19bb1e7f9f17fbc0e960ebf22107f41b0cd71682 \ + --hash=sha256:e2ca6c753b160cf67cc8a32666f9f8cdb6b387e480e2e27f1ba079b90c81aac9 \ + --hash=sha256:e4a7ffe2e7c3602df8b23e03ee0e501c782e4a810c9671cbf6cacc9dea6ca51c \ + --hash=sha256:e5a1b7790ec8ab8e226b599a39fcf5170a022354c245b29d7cf615bd5cb1c5ee \ + --hash=sha256:e76bf3aa13fa58cb358082314c76be315a155598d3209ad0cb6ee7c74c4eec1b \ + --hash=sha256:e786ff4d376e54db46da4eef66abd4f6b61f5db1bda0276a8ca02c79b9206ef9 \ + --hash=sha256:e816d321906868190df9ad83520bdf7bc1a9ac23be521ef55eacbc185987e9c4 \ + --hash=sha256:e8eaaa893ec327cdb170a1da48438108f4de2bbc319c2ae52fd76ba96d57e947 \ + --hash=sha256:e9445048a3ddf363f49ace4cdb8341461b623930849cbf59cc66ef20c139064e \ + --hash=sha256:ea77262e4ff9c27cbc9c2ca077b46e03a3d8af5ca6b5e88f1ac4d97d811f2e61 \ + --hash=sha256:eb457a27a7bff3ceff2690f421f848d3f92054c5c80f02460675ce95fea6470f \ + --hash=sha256:ed62012c6717cf33cc179c6a9ce15bd875253e75cfadc19b32a7b88d963533d1 \ + --hash=sha256:ef3f757e2381a8b28541bbb60d966938baf1d3f26dcea7eb6e4e51f4b3bcfbf5 \ + --hash=sha256:ef469b837877b1cc067ef5e24833bc3545a3ea34614be5b4c0b2cff3dec9e9ad \ + --hash=sha256:f022df618f8cbd902a1aabbcad6b6320248da7b0f3e901247fee3d438bc1a6f7 \ + --hash=sha256:f0e9b425255b228e1e960ac053b9355b2d41c33e4c24a3065aec689dc83648ed \ + --hash=sha256:f464a0505cf3e0b18bb23494a25f19f7550f90f53ad1b61f7fa5bdae12f0d48e \ + --hash=sha256:f4c7d2d7db6ed6b6b9a11beb198ef60689d2b085a625b50906f612c5f67b3a77 \ + --hash=sha256:f76d0e5f0afc81afd46d31c052002873f32bb77d01bd00fa59ee1645fe004029 \ + --hash=sha256:f7e8d6c2af4b02157c0dec3d17aca222ce314030ecf8fd12e21210ec294c6a1c \ + --hash=sha256:f7ed31a13159fa2fbad8a1548f3ebc4f826810d89c6b1ce63939003445a26bcd \ + --hash=sha256:f871459b311f33119766b6ecd07e89509b12e004dc2c29a210cf9e1584352e48 \ + --hash=sha256:f89a57f79f4647b220d947e4612b24a12f5bec3613e2eb965aecdc29873576a5 \ + --hash=sha256:f99e8e1f1e84522257c4c762ed194106b6b40eeca5a5d181b180fdeb3e927ef5 \ + --hash=sha256:f9dee6caeb80aafb9c2519481249dcc2f2ea7cf96c36ac49293bcd3ceb2fe152 \ + --hash=sha256:fab21ca27e20e63ed9878447dd2ef11c4be4a0ca04a3523f559ded0e612d349e \ + --hash=sha256:fafe98bb24c3e271937d62bce13378be09a208afcf1d15a5553338b0d5fa0138 \ + --hash=sha256:fb13f3904a2bd4c0712e39a85f7ae8825322b202bfd0fc2cc313cb1fafc21ae5 \ + --hash=sha256:fba475df3ffdbb28f1f84c99169c1ec1b54e5faddf96502f65a0debe850f8989 \ + --hash=sha256:fbe3036e47d4389e55482a7dfc6207b5b298373bead77f371e0bc18a3fbb6061 \ + --hash=sha256:fdd8ded8a93e1be009577fccddaacf78aa21cbe7dc6ec53c229def0198a1ffa5 \ + --hash=sha256:fe02199daecf1f4d7cdc4351bc451b590f4574ef4aff30f04d630a5c0cc327ea + # via quimb +dill==0.4.1 \ + --hash=sha256:1e1ce33e978ae97fcfcff5638477032b801c46c7c65cf717f95fbc2248f79a9d \ + --hash=sha256:423092df4182177d4d8ba8290c8a5b640c66ab35ec7da59ccfa00f6fa3eea5fa + # via qiskit +duet==0.2.9 \ + --hash=sha256:a16088b68b0faee8aee12cdf4d0a8af060ed958badb44f3e32f123f13f64119a \ + --hash=sha256:d6fa39582e6a3dce1096c47e5fbcbda648a633eed94a38943e68662afa2587f3 + # via cirq-core +fonttools==4.68.0 \ + --hash=sha256:039142b75a068c93f8596ef68787f82c74940b9153d24c224ab31e750eb083a2 \ + --hash=sha256:03c9ef1272e464747f67c623f76449b888da6d5de7fb46275bb36488b9ceedba \ + --hash=sha256:04365b897c9ee29a048b6d4db74c75c38b70aa6d1074726fbdd7ea1a23aa8ed2 \ + --hash=sha256:04a4868dcfcc23f00bb033147d5afc1a118a992842644c3eb9da55467ab4fd74 \ + --hash=sha256:054a4d5de7e1f973ab9789e9ae3f20238774783ca9bf7ee0359aebae4de9400c \ + --hash=sha256:0841a4dac69efda309fca2ed0834186ee66d39787f1d26430ed7f779a699a096 \ + --hash=sha256:08851f7d2b983412f490b73a7c56f17cbda1d4d85d2ad3f857564bf15b5d9475 \ + --hash=sha256:1695cd2e1f9768fe3f14d369ce6ef1b3e8561069cc9e47059571985d1ea42614 \ + --hash=sha256:1782f2cf952eb262c4126b1f57b5f0e027e71bf2b632350a033dec526f448428 \ + --hash=sha256:1dde2f0ec3fd0fb43cf818593b38a8202eb7f3b59cae86289a8b19fbf6f6313b \ + --hash=sha256:35425bba603cf9d72c9f3c173ea6c98632164f3bdfb1ce1a3dcc928979c6ec6d \ + --hash=sha256:362443ab355701d6fd26b10d022cd6c8456e1e248f80103c44cbe5ef0228f87f \ + --hash=sha256:39913c1f576af86c69519dc351302332561ee62b39fed04dcfa8019d9c2d129f \ + --hash=sha256:3b9b87645bcdbfc3f30240e2758a37bbef4fdd0f708683b2bfceb60975d63e59 \ + --hash=sha256:3edce69ecdefa73ab1041901ca22eefed6ebb93a77bc77e889d940479f25bf7d \ + --hash=sha256:419bf78474adaa6fb320a06822f4f941b19345d598a9de379d6e2f0e4d819df6 \ + --hash=sha256:4b9c89b5876f1a74b1341632dfaf4c4c2be565d76c060445df401ebe7a4ceefa \ + --hash=sha256:4bc352572abc800177fba513995c01b1cfbe8c810ac2506cbf29f0795ae061c5 \ + --hash=sha256:4be32afa53ba3dea243b95b62e9b2e6ed6cf7096acd741d379c12f4113694ddc \ + --hash=sha256:4da99b83ae17f531838bc750abf56164ff37e1543e8e9b2b5403548f50497ce0 \ + --hash=sha256:5083a456d68d2995ab78600ccb18ec08c42f9bc14f0ef80c12e2e5b11cc371ce \ + --hash=sha256:53f2387d7e3816763f30e08d14263be18e28ead53d4dc20a82f9280d0c99d88a \ + --hash=sha256:573ccce8b5fd9b6952dcbc5d896255041ab330cc33520d13b1266fca859d8aba \ + --hash=sha256:664dfa7a4869b3c827dfc2c38dbbb7a58d53e97933d1bd51ee6729792ee73d50 \ + --hash=sha256:6aea5cdbc32f5fd202cf8dec053a784b08692f8b1992af80eba32bef82bf84c7 \ + --hash=sha256:6e73d4b1526343b45bbafa9badc0396a49d902f9a1774666ed4244f1df717629 \ + --hash=sha256:6ed796b220654b4d37ad20af73419ec7969b669dd678cab88afb602c5683a331 \ + --hash=sha256:73294e233070f71e2b3653b6bd8564af676d57f26d075761fb06d1ab2e4a7a5d \ + --hash=sha256:7ab8097e7e191784974c5608eb95fb31e1243fe3054cb66778ac82558e9b36f8 \ + --hash=sha256:81ea963d4390bb9e79f91a905310d91ac7ff7675d8e1c0cfc0f1712521c41a43 \ + --hash=sha256:82b8024fbdcddc399b1e21575b9b82f46b8391e711a44d6bd4a1616b0aca3681 \ + --hash=sha256:83bd3d558c15f4e1d87b8f3fcfb337c2bce63c7e5c05212abc8fdcf15e216c54 \ + --hash=sha256:86d319a1feedfc75c8ff582d947b21fa1854e2829cb8cf9428784d750a05f1d9 \ + --hash=sha256:93afd51f30ae38f7d826f4632eb799a06bd94e1fb4bc59fdce6d291e93491027 \ + --hash=sha256:956230858b7a7bb9f5e0971ae07dc64b6155307304acd8c62aedca30e6aae874 \ + --hash=sha256:95628bbc5ea81d5761268f4c4f1ba709af510b970f363498ac801c0c1fd7a4a8 \ + --hash=sha256:9b6e4ae9763c67df2b0f4c4f1a0b18e47ee6572eb602b82e798acc88b64a6137 \ + --hash=sha256:9d80813ae74b969ef2166a3040b591826e80ecd879bdeab7f13f4e8eaf08b345 \ + --hash=sha256:9fee5880486c3fd6f45f5a1679a9f4291ae74e503d725de7f1e30efa2d627440 \ + --hash=sha256:a325e6d7f96f20b3004658c5ed17ccfce5b66277b43ccd883035c61be6945275 \ + --hash=sha256:a6837def5de49772b82683dadd836df214def04b307cb98d0e7723d49e7e15bb \ + --hash=sha256:ab6505dfbe3199453d8542b25f55c1ea3260d38029d9db58c0c7304d438abdc0 \ + --hash=sha256:b2ee7b9c1a5e1d637073c39b0978956febad7e862a1269719f527934c65535a4 \ + --hash=sha256:b41e71b2657c9843b2327b4e3c116db1757dc8cd05d978cd47cb5061272d4997 \ + --hash=sha256:b5a015b322275d3d745b06d5e69cf74ef4b1ce2dae02afbe4826cb186d8527a3 \ + --hash=sha256:b612613f0165f560571c4e372af0ebbb1c4b36067de409922dcea349beb8bb20 \ + --hash=sha256:b637d82a488116da2869afbddccfd93ca14e3c47b404c8ec5a9bad9d4381b08c \ + --hash=sha256:b65c2f3c4449383429507a7e1b372bd759f60a2df8ddc8d6c1cf9010585576b1 \ + --hash=sha256:b6f7c5fabf5b1d9ca79f204664f2c3e2f8218e50aebc43e85e02df0b2d9cc313 \ + --hash=sha256:bd5b047ed8f16b83d0344fef053668712ab9c88e2e46d8612ec41df83c5222e1 \ + --hash=sha256:cbb63b26d33acc3eb61f544c22a0cadbe01682fc064b266bb0e33fa66cea853f \ + --hash=sha256:cd4b0d00523cae1e5e1eaed1d2b85ef342cec000f58d0738e12b064d72a7bbc2 \ + --hash=sha256:cea1969b9bfe230cb3fd66f1c66da5a63a9a917d9cd25a0839524d3d1a88b40e \ + --hash=sha256:d225096687fc3bac0ebe3357e95b2dd8b0a49d191f016db0771d537ccdd6f47e \ + --hash=sha256:d76f8fdcb6936f5e1045a0c9dd721a4bf11112e60d1e243bfa1d39f06a8b3104 \ + --hash=sha256:d8d5674de2b614575f0751671727056af042ac1d61beacb59a298d74282fa492 \ + --hash=sha256:e00bfc6fc0158f156d34f923829e6f62ca00df2e0ea42ba3b0db4089b6d921c2 \ + --hash=sha256:e3ecdb0b248cd0bf43100a8b3cb40f7b45d52ea4be8616edea5dea8fefe90229 \ + --hash=sha256:e80ac66627a01698675ce6e98d90ea9817d1e06644129ec8b0093f66ff1cbeac \ + --hash=sha256:f0b39924698a85bee107184a3c2ee9ae27248144977160534f7d558831db50cf \ + --hash=sha256:f15de48b82a816c72f358e772792801bd3788a156caa76e1806cb0aa8148cd61 \ + --hash=sha256:f265c85432c398d86f26add143423924a4747879b2dce001a3ffe0a5fed30638 \ + --hash=sha256:fde43b9785c7f105aa563b6b5481edabea4ab6be7d9ef14ff4d76225950923e8 \ + --hash=sha256:fe80d05dd85e6ac58d0cd4fa10ddb96252a6f1046ee0fd00cd1d48f0c25921ac \ + --hash=sha256:fedc183bdbc3fdbfbdca26e0e04566d089cbb404712509a4e824608e9304cc77 + # via matplotlib +kiwisolver==1.5.1 \ + --hash=sha256:007a5553dfc4f4e8d184f588a0200e2cd4b63a59cc8796df3c39909e679dc7a0 \ + --hash=sha256:0324cd2567259b7a095f6cf18a52b0ffc6f3de9e69528ff1bc0e7a37bd43ff1a \ + --hash=sha256:0627b9bceb9c3cdcf12b8a18655eedfed2692b038df27423383c120d0b7dc2d6 \ + --hash=sha256:06a6917674de9e0fe3f66f5430787f59a9f2ddb64af9b714eaec547e29ef5c19 \ + --hash=sha256:072bdb15a3c19a5b5dbc8f8fb1f4e1884bf4f3507eeb4cc6334401274d37a5c0 \ + --hash=sha256:0a4faea5c6db201c6a21391d2ac926ea97acf7dacdbc3c417189e1adb1a00837 \ + --hash=sha256:0ba9527afc80ae3d7814ed98b6572d02bf85eaf48065678342c5f0c6dab7a8c7 \ + --hash=sha256:0d8924877ce22e17326a99a418c3c82037da078df3c6a260b13eca677444e6e7 \ + --hash=sha256:0ebdef3eae5336568147c39a55be6a2036ffde53faa9ca2d978989ae7c2da12c \ + --hash=sha256:1209042a623ddfda5497e4066c7b77651dde8e1d3a9dd97599dc7e97f3b9b78c \ + --hash=sha256:16895f553ee6620a827d2da56b871f835fb70b9216cca5d188e885caf6e3bd23 \ + --hash=sha256:17851e5dad4484be0cbccbde3b15331deae036de9aebd45eed964487802b172f \ + --hash=sha256:1798e83840c3f627246104c4d8a9639c60fa068adf9ce92b61791781fa8a68c1 \ + --hash=sha256:18170a77ddfecf40ec60d0928268dc95880c881864e015a8f34094ed18b9b9ad \ + --hash=sha256:186884a58486651e3c217b6acea0a53eaa9498fdd472057c46f2f0fb5c25aad5 \ + --hash=sha256:18a0cfb124546a4c2e6087c5f3029c7f44b37c85b142e0ced71f73a7599ac208 \ + --hash=sha256:1983f0974a750a6f6556f368ba11105d1d8369c735b944747c9f12ae5aea7aae \ + --hash=sha256:1a7587dc335f2c0f5bd577fd0540bd16c66006bdb60f759a1059f025e6c4f071 \ + --hash=sha256:1acc7e5b7ef05e9da8bb70cd6c7c4513090213d2e1ad9720f599f0bf6c52aec5 \ + --hash=sha256:1d852545c4d0e35a72728d072cbaa59e2fa7dd84bdf01e068d670dd0ceb58eb6 \ + --hash=sha256:1ed0f5e49d0ceff8b72190824d9e59c062fbbc02c231b853112c78474b3f5ec2 \ + --hash=sha256:1fff05e239575b1481b6ed1a782f6fad616efbf1f0b1f44e6e85c4dfe426e483 \ + --hash=sha256:21e46b23a2da695c364124817bc01d970effd5483147f8d66a6a7167e3f6b851 \ + --hash=sha256:22d5e5aaad6be121f2515765e3b1c444352cb8eb4c86510801db8f2e50757316 \ + --hash=sha256:2551cf9917af48ee7c4b29cc82320489508cf96fd26a51f6fc124de661cd44c7 \ + --hash=sha256:255605693a483db7bd5c79f60437f7bf658f7f520d61aa42722e32257c941951 \ + --hash=sha256:26e8268480be5061d509e29669d59103c067a26377a56491630ece11762e3858 \ + --hash=sha256:27add358abe374ebaa3b8763ef380bc99051b5a4b18d94878366a9e4f59efef0 \ + --hash=sha256:2ae70bc59790d2af72a3f76f24b272403e135070340281108b447cb77ea70819 \ + --hash=sha256:2e10ae1bba1899188b33557c10d73affcc12033edd18adddb57d209039976a4c \ + --hash=sha256:3221f78211074f561c44ca42eac0619828171bec15a2c4cf6f7747d07df76e8e \ + --hash=sha256:34633ecf50d16187ab8e5528b7a2530f2feb4e23f300db4672538b51cfc5cd38 \ + --hash=sha256:34ec467940442c9943016fb2d4c81d1ba84351eeca2f1a78f8bc87f1ba0d414c \ + --hash=sha256:37f801b5d7cc0e5a548921308e059fd2b057bb42972b591cfa3049f95423c4ed \ + --hash=sha256:38f6e0deb4d0a4615efe0c4efc5990b06ae450ab50a0b321c0b078b6d238c083 \ + --hash=sha256:3c24cd69455e1b00ddf770c13b6e2c33e07d6dc3f2d34add0bf9277c5c6bbd46 \ + --hash=sha256:3cc210010fd2f438a3ed430b45f1b501fd13a8618bf984dc2c5ce5b69b78752e \ + --hash=sha256:3fa5855898f6d3d01b72ccd48a2d65cbdee301251603fefe34e2025bddba219c \ + --hash=sha256:416ba7ff9f233b7036689bb5a3783537e838ad483f63558d2a800f75afe738b1 \ + --hash=sha256:431dc224a1a92a5c8f582d96e505196a3b5997a7271076678da2dfde67b77e9a \ + --hash=sha256:43844c1a7ad6d723d5b5b4c4fc7f5bd399c40e288120d16257c7c9e8765c6e85 \ + --hash=sha256:44b8faef94f1857e77fa0238f3390ff1ac51d2ea20a487e2e452a59fd2b5f5ca \ + --hash=sha256:470d420f98d368d6f010633a20659b544c5fdfa5329e6b70219f2ef08fd4a7ef \ + --hash=sha256:482676e5bd48d70ac99d9fc78863469845421e01184fa83f1f9366dc49f7e974 \ + --hash=sha256:4d4ca09bf13cff792b1884f64b98ee6c2467930d632233be25c56b442d99f10e \ + --hash=sha256:5025e36fb4fb275cef0a4e30dbb11cb4ae61d1c83deb90189cb5d7e4cafd6b55 \ + --hash=sha256:509735237ae0d849e8a843551d423d2500d2e0a9ac1611a145658b29c0fb9f85 \ + --hash=sha256:534f02c1abb31ed6dbd3515545285c330b2f12d00fdb1fdb71658b9ca5a13a6a \ + --hash=sha256:5978c3340f16a35c30f8ab2fa7bcf559973c55f1a5ef6970e1f621acf3c4db13 \ + --hash=sha256:5b973887ff782cfd6b67c9904ad8ca542e0bc5e4961503408b423b5a688b4d38 \ + --hash=sha256:5c490db2168a508088f59140dd392556a54b8bd1048fc6383c8baff13c359673 \ + --hash=sha256:5d142e352eb13facc7dd047489aebdff6ba78576c239f1ea04931979caaf0567 \ + --hash=sha256:5daa1f19e097050b9c4d9a78fcc9263cb96c9dfae08037ddc1b7c4ad1889f2a2 \ + --hash=sha256:61e9a64c7635095a6bfe483e2ff055d437c59bd45f3617a228b37277f0185d62 \ + --hash=sha256:63fb7294b768f444eb4b068965f2662f28c2fd4161e23bd60fcf3ff27b74c046 \ + --hash=sha256:685929988b208a911f1285e2f8ed54210b0d681a3dc0f03e00d599d291986e7e \ + --hash=sha256:6a797a1cefc8b9c93170db580337e1fe3d011ad18b1299943231279406342048 \ + --hash=sha256:6b92f60017dda7d877fdc546438b5e28f31c523264f49cf5a48c1d0ce1a0dfbc \ + --hash=sha256:70ed9a45c7484d2b30cdacf60d220f494a1763b9fec1ad03285c6553fa0889f2 \ + --hash=sha256:719a35fa1156db3640555f95ebb94f60a444e64d1c69626b0edef5df78eba225 \ + --hash=sha256:74ad5c3dad54a4641b4c28cd15ded70899d04459c6c7aeacafea716be97cce6d \ + --hash=sha256:74ea337e0ec3f6f342a36a4f1b5cd94dd9affddcd28ba9aae2905af932ee8c6b \ + --hash=sha256:75d9b1cf8258462dbdc1eeda718c96ea7f079324c09067f6daabfcf37712b7fe \ + --hash=sha256:77a4c8187a5948d7f8795adb765a3c7b553d07d86d88e43038fc32fc1fb9a3f3 \ + --hash=sha256:7824b5e8bdbf0bccb4ccd37bbb115849a1dc45437fb4de8351385ed07c437ee0 \ + --hash=sha256:7d38b0c279c3032e8c9cc013b405c6df8e1668dbf15465779aa7f15f61201812 \ + --hash=sha256:7e9c01d3dd7ceba4d1d436cc021d40d592466e40b9bc7f5d83dc4e98a5c9cd8c \ + --hash=sha256:7fd82debf43c6acd0a94359d232f6bb516ee13f269a7993736a9ac9f988bb5d9 \ + --hash=sha256:824c3d763a05ea9e9003610145186b0e9848c7584a5575c79bac5a8e7cd80bad \ + --hash=sha256:828f75af2b0080c8a972e75f649ab46af008e92c6104a57a759157200b835b75 \ + --hash=sha256:83f78128fa28705fa85d01c59771c72fe81c11bd0e6155edbb9f818983a7d761 \ + --hash=sha256:876bbfd276473d3daffe30e8c975df4ed9429967b41a6cb362dbb5155b6f13ad \ + --hash=sha256:886fc26012f0e8b5f69d1cfe6d711f6b11f194621539bf8e6bb1c25c5dc82724 \ + --hash=sha256:8a34616dc2521cc8dc1d7d081734da63539f021ac0450ce950908340c6e7aa2f \ + --hash=sha256:8a708a47ade1fe19e8371d5da076bac0dd4b0a5a7985ad6c637f7f7e361b6baa \ + --hash=sha256:8af9b142ad719ae3a911ebf616bc4b78b32bbab84d6a40d3ad2f129670509957 \ + --hash=sha256:8bf4df63592c2a66b4f8edc5df2544998c288aa02f96ce0acd880cd1de8c8127 \ + --hash=sha256:8de6f2a4ce7e7bd27d23dd94abf0ccafe0e0e5cc9c764b0577191f2c25f08f26 \ + --hash=sha256:8f8fddb8e323bd6eee4e54e69a39243beab22689070f4c66b472c4cc88bb89d8 \ + --hash=sha256:8fca690b00c4c48f6c2a547b0160ed511357093a4e4c9b47e0fadf3128066d89 \ + --hash=sha256:9506e892bcc3b409831d363c6f53e5985e1c8d1f6f6b0256d00358684ff85378 \ + --hash=sha256:958254518717542d02d0688d0d20cbf771da5e415e6f49543f92481c850a4540 \ + --hash=sha256:95a02752aa032eef4aed01cda6d9b687c669bd0396bf4519eef8bba22a286720 \ + --hash=sha256:96c30002424670b5e1e46495c2b8cbffef39cf77c1d79e76462029d50339785b \ + --hash=sha256:98b208a7cc42c803445ef551d6753cc42a5ea13e9cab1ee66cd8b9cb70195330 \ + --hash=sha256:9b3092d8992a1d69b7a59c3e39f35e1b9be327a17f68a7c35fc17329e337d6f2 \ + --hash=sha256:9e51c119992ea8820706871c30a4642ec76de20ae82f9b50b9a45517d8e9f810 \ + --hash=sha256:a5716a33bfabb2c6ce27b6cf03253467b3804f83e215f4d202685cf93c6c9874 \ + --hash=sha256:a5a00665d1a0e26763a7338d7e911d4598fbc1d50dd0d6b7919b7dc6c5d6569f \ + --hash=sha256:a5ca5aebae78a0bc13c1943af4af615d4966c5b650b05d5aa83b50e427196fee \ + --hash=sha256:a7b85b2cc6ea45e5f7e8c9a30bc9fabd47cda09106cbb4b967335c3e6c43b69d \ + --hash=sha256:a83ee7107df13abe42a54a6654670eef9bb39425cf2e27f65e0007465e1286ab \ + --hash=sha256:aa7d00b1700966d2917e54d278aba86897890ca9276dd8b76cf6446b6c181b92 \ + --hash=sha256:ab620eb663952455271ac37f9aaad86b73c969c02f11f53cea405b38e96a4300 \ + --hash=sha256:ad8b9671348d7c8716715652ae11f85ed0eb99e265a2df2ca490577d69860b2c \ + --hash=sha256:aefe930d113798330e9462f7874542977869c0613cba3262e2de3a8d5dee8f3a \ + --hash=sha256:b03af77d77e50edba2030fd5f7c352ff209314b09030a3cba7c14edf9a09a444 \ + --hash=sha256:b390aec180a7c054919c04898835e1c77bced23ea8383eb2c570213bf25d1a86 \ + --hash=sha256:b3d78f7bb2b9d9a30345be1474b9aaa8685430b54afb51ba3639b5c6c11e9ed6 \ + --hash=sha256:b5664603a253efd3a75716d793d1d3a6a82723b61dc6db767b2460bbbeec4c0f \ + --hash=sha256:b69602970994a2ed8bbfa78c2f0394a7435226c6040489702d9f0a0ad0c07052 \ + --hash=sha256:b6ae6a0328f0bc035741820fdeecdcd67bf4694eee03972e843663107122f450 \ + --hash=sha256:bad20d4c69c851c982a1e3606f4c293edfd5a87885786c50082412240c4b1ffd \ + --hash=sha256:bb7c99f0673c03017a3ee01e54a5c2617a05468b11eabe513b0080e063ed95b1 \ + --hash=sha256:bebb89489b279b2f5661bbbb2abcc87bcd4a46607bb4a5c966f04f1db6b8df9a \ + --hash=sha256:bfd1de989b3330420e29de39352f5c049905c9e3ee67233a50d550e3d652c148 \ + --hash=sha256:c2306e8bb53601979fcb3fa09cc65e031876d9ae01eff2fcbcd7a84ef94d5bc1 \ + --hash=sha256:c3a4e41e3096bf1f0f1b76e2ffd6d828d6547f574f702d59bdbef7acfa59db9c \ + --hash=sha256:c6834b92dd2428e2dd85ef3d85f723d3c12f20aaf43a2ddd4f944ca25d833408 \ + --hash=sha256:c90d3022d8a94778939cda8638c6c8da8fa757b8958dad7ec868ce29c87681b8 \ + --hash=sha256:ca307d6c259e5c98d3cb9ade55342b47a6839762caf2536f3d7b46ee660cc82e \ + --hash=sha256:ca7f6fe0f37ca978a1e5eb7a3a68e6413f417e78e838324947ffd420202b198b \ + --hash=sha256:cb6fae641357ed2f6e533c0d3c6504a4a5703621a50c89459e46051d56b61140 \ + --hash=sha256:cdaeeb6c350106df6bf9d873395973e5f066a9713200b72cd64f55d0a3eafab6 \ + --hash=sha256:cea20da04494e662b83c872683bf4ff2345206043d036315ed0e924b652e7294 \ + --hash=sha256:cea90547bfd93807e0013a004dc76552be44fad3bc1cc2b38610a9e889ed098f \ + --hash=sha256:d09037ca068d784ebc4aec290ef952ca27ac15dd9c0b5801a88c6e1096b83e6b \ + --hash=sha256:d27c2123977cb9269c30a49ba45f03a4323017ef693e19db4ec9dbe1299a3002 \ + --hash=sha256:d50de98e8d807dc31822fff96f50293163a62418eb65487a21b42713d72ed0b7 \ + --hash=sha256:d66a64dd5dec136040ec2ae94aa026a912ee60fdd45bc28d3db30037fd809e88 \ + --hash=sha256:d79308fa689fac89cbcfbd4dbfc80b5f95c54c5a7fd4d194be221f9d33d026e6 \ + --hash=sha256:da3275833be0edbaf4830fae08bae3dc7219f40ce0c37eaa6c25825957e06612 \ + --hash=sha256:dc1a26b8e53395a01c2c611e58602fa47461f136fba7cd5542e6db6d64be1839 \ + --hash=sha256:dc23390afe9f4ef9ac3bcc72a03a56eebbde03f4c571a32cb38f859cff9a6524 \ + --hash=sha256:e05c2f7925f1d88778e53cb44f14e0223204a3bdd09a41664750363acfb1f2ef \ + --hash=sha256:e12dfea7f5fc2a34a9080efbf79c4c44eb380ec5b9c6fea09407e08f0d1e941d \ + --hash=sha256:e4e4523d6f336708d732516e6cfca7796cf3d96c9474eb5aecf6165f2f1fefc3 \ + --hash=sha256:e4e49f7e1a4e7191bdf9dc67a974db714501b1fc52c24324103d06a86abd5c08 \ + --hash=sha256:e68e151428b5384f766cd25739bf77c7e4a3dc93b5ded7a12118d9fbfdf78ab6 \ + --hash=sha256:e8e4d953faaded9ec7ede36824e9814082d22d4c7b1eafbfa079ecba8cd0d076 \ + --hash=sha256:ee9df1f0d77b9c6e94f4ac0fec533fbddd5ea3a327807f18d7b069ae019ded80 \ + --hash=sha256:f0a887b6565bbfe80efde2b7f6e8890d7d9bbdb11bdb17028a3690c32fe0621f \ + --hash=sha256:f0f4a42db92d6ec7677ab9d12830a2a8ec145a9c6d15db2b593466bc875c78d7 \ + --hash=sha256:f1303ef2eec81262a4b708c3e858afe58d7c75ad91c1c05266eda7673369859a \ + --hash=sha256:f1d56ec54d257d05e0b50f5780d967540cd07beeaf9e5f645b26d50cce79f4d8 \ + --hash=sha256:f4167e87b397f273dc2356fcf1eaf50a6bac51e6105f45103ef7129c8efb0255 \ + --hash=sha256:f76fc85bd054c806960f917ec0f329e24e436f1712267d90588e4c39890caa63 \ + --hash=sha256:f942903fde7363d1d879057ec5de01310efda2597161784d752fa9953a01a71a \ + --hash=sha256:f9b1c4900736e489a812c529100de4b8fb617d4db075e931e213c57424b83d9b \ + --hash=sha256:fc271a6f0a2126958f4090e5507b9da5848927dae331f8f763bd4aa642b3d2cd \ + --hash=sha256:febcce10f2bcdbb80b4ea919238a6a4ac13dbc4c7cadbe8d5d75c3682f8b5404 + # via matplotlib +llvmlite==0.50.0 \ + --hash=sha256:0225351ad77ea30501fc5b4c09ff6868169fde50c5a576cdfda1645091157616 \ + --hash=sha256:1cb21c420a47dcfa56223228d013c6f9d234e05e06e6819a41638d78bbd78e6c \ + --hash=sha256:211da1b088d566aafa1e444d546f64fc7f13b1af56ff0207a1705d88607be6ab \ + --hash=sha256:266a6a29be71c3e3a22960ddcedf66b4e0388e5abb6cc4991cc093d6df402ad7 \ + --hash=sha256:33ddf12b1e12d7e551e1c1e6ca8087d0aacc931f480019eb33ef2ab77681da4d \ + --hash=sha256:3f490c0f4800c8ddeee6a607acd037497bf6508586804f4e2f11f53a1ee7fe2d \ + --hash=sha256:423c8d89d13f7eb4488933d5a86b0fa952927956298cfd0087f6753b5123b5df \ + --hash=sha256:425845f415a06dc50db08db033c6b568e0d85c4937e932c605a4d49e1514b2da \ + --hash=sha256:4b78a8b669eda09ca1ff4c1a75003023912092974d3e771d1da0777f1b383bdf \ + --hash=sha256:4da0e8c6e6f144b433672a632f75d6b4da7bd4fdb5c3e9981d6ea6741319aeae \ + --hash=sha256:51a4a716db98591f0a1bea34c6548cdb4017731ee5e678ded8cf842dca8af3c5 \ + --hash=sha256:55f50a6b7c0b8de88b05d6bc407d70a60486ce024013997dc97e202bd187c75b \ + --hash=sha256:6e8df54380110ea5e9127386e739d2b0829cc6dfa4a24a9195226336c91b06d5 \ + --hash=sha256:7ae211012c6849528a5f7cd17a78d8b2421a2813c7b4184d6c0b2ffa89a7d296 \ + --hash=sha256:7dde9836d144c446a303b57b2dd906c35308411eb07f1279c1db581d3d774048 \ + --hash=sha256:818b3d4845ac8e126e23cb500867570d0602a42a43e67b14acec31f046e03130 \ + --hash=sha256:944133e9621d1dfbfdaf0fed3234b99f85e6ba27c38f4045acc8f8a5e699a5c0 \ + --hash=sha256:987600ce6f7bd6d808f4bb0ea61a8eff2fd17cf32355691e801eb0a65a7304f0 \ + --hash=sha256:a1d5b6eac064f201b4aa091030282e6f240d8d322dddd7381840731455c3e664 \ + --hash=sha256:a32980e3d727b0e56974ad89d0764920048602a75805b8917cc0298e798b0ced \ + --hash=sha256:a6ffde00d4be8772a24e3e8b3af6bf86a79e7cf066d944ef56136b3957d707dc \ + --hash=sha256:accfc36951230e0e694b41bbfc96ba554284e72f0eab2dde0cf273e4109e51ba \ + --hash=sha256:afd7b438c60e0f60c4368ec603bb9f20d938a203b5f59b80bbe50c749b4b2f16 \ + --hash=sha256:c20595cc3a76e3c85140fdafbf9246c732ddf8e0e646ba2f4e4881f87567300d \ + --hash=sha256:c2b23236bd0d7ad56a94208263d791956f79c8c45f39458931df556206d4496a \ + --hash=sha256:c7d4e2bbb29a860a6e85e22afdb96696241263942a5b214cac3e4b704e1d3abf \ + --hash=sha256:cda14ab787e609c2c2c5d1386a6d5f8723e9d047d27341585f606c27dc5744ab \ + --hash=sha256:d501e5103076b9a14be885d2574dc2f6793171aa54a853d1244e011d476f1399 \ + --hash=sha256:d5447a6c39171368edfe28a71f605e6e3edd40a1dc31f5e5c9d50585718ae6d0 \ + --hash=sha256:d88c9b325f5fbefc79d95b1daa8fb96018c40bd2958103eea7334e6c8f17fb40 \ + --hash=sha256:e8cc203c1fd509131cd72b7554413d4a3e5527cc5558c5a7ebe19840018c57c1 \ + --hash=sha256:e94f9066f1257a9cef6c832e6c9de0f140e2bb150de2db39f657b2a5996e0f6b \ + --hash=sha256:ecdc9fae295da8ac793578a27020515e24d970513143efa227e696582aeb16e6 \ + --hash=sha256:f1ac2b9f699c46219fbbd66b304105f5e1b218f05ffac6fe03cd851f93718e58 \ + --hash=sha256:f2a2cd6ec9ffcc1b7147dea0d7a49efebf17a2b434e0c2844fe175999d571eb4 \ + --hash=sha256:ffe46ef508df226e54b5fe1f7bf11122e5297bcdbb3902cc5b670a429d56ff47 + # via numba +matplotlib==3.11.2 \ + --hash=sha256:01dc8eaaab5a9fce9ff615eca82345728f289e4715b186ee10c6d85272fc26bb \ + --hash=sha256:02329432ae5c6af87cf208ee575b701d698bdf0b1a3bb28cc6d53c36e967e575 \ + --hash=sha256:07d9b9fa60cd4c393692f50d0bb03123242ddf61c99bb0e95e75feb354e7c1a8 \ + --hash=sha256:116cdb0eb0eb5644fc98eb2975d4b4dd4ad35e5c8e6b851c22e6976f371f7ab5 \ + --hash=sha256:1944895967f87c84c9b4bad29a707b31f5b36df4a3a2339ea1f8ea3ce5105539 \ + --hash=sha256:1a3040b209f3968b4e84161df7b174f07a9fad33b0f2d7e48ea3bbd3075e2863 \ + --hash=sha256:1b9a7ad579856284135e401ecc918c5f8a017ee30539298862a109f51b971710 \ + --hash=sha256:254d4ddb2fa8df3b4c689c0c306063aee10521df82cfb438185e499c75fe37c1 \ + --hash=sha256:2a8285cea8ef4d92aa041d1c33788bcae82248503300f93f1ca2136b9049452f \ + --hash=sha256:30ec15d7eefee71de16b7c689b42ba49715a4644650b76a6c7c70d79daf24e91 \ + --hash=sha256:399fef672f7046ef7d6a57572b2a6f9845f3f5afcff04e7b2df7a363a9f42190 \ + --hash=sha256:3aa4b8516fd26659e4363abbf317c703d9116496c5db2e9d0609a2866dd39dd2 \ + --hash=sha256:3da3bc0cbf7245e7db72cc6d29d12c5abef72cb73059c73b945f14e3545f3eb2 \ + --hash=sha256:3e8576f7c47e02fd4f21f44171302d2d1d58d4471d46da3d71fe8899d19539d9 \ + --hash=sha256:57b9ea60a835937c2012861923cbb91f47db8565775d326d1c42fc926aa10351 \ + --hash=sha256:5e1e923a3fc3326b99ec0a6ff1ab1338ac6c6cc62ad9d8a9c944197c7f8c6221 \ + --hash=sha256:643ff850d8e0f5b8319337f87ed3cb59506afb3df3cc48de777d85871233be7b \ + --hash=sha256:75b6d88402770e181b5d06a67dda4129c31da7d05004d63a21c310ec78d1b83c \ + --hash=sha256:79a258f58253dfa025af80a9e9bb228d75fced007f0e93ae7423fefbde81a74d \ + --hash=sha256:7d43ff8cebb50840648cb6429b2228621dbd709010f3117b3740abb20abf21c0 \ + --hash=sha256:7e5a90f8a707ebb6004a713b1cff091a40cc5df4c7c1cb165e5a505ebc11c292 \ + --hash=sha256:7ef7a53b66780e5d942923724f08577fbc5be1f7322da0f0f3f9dcaa45dd803d \ + --hash=sha256:854df8d7dfe9fdffcbaa6f39e44a6c24b409cb4d7561fbc09213b157d833f6a6 \ + --hash=sha256:894a9cbbecbe30ae6787d464df2e8fc7a8d475cfc68f87c3029f7c11152899b3 \ + --hash=sha256:8c8255de28f986d935a64c9ca71c0ec2d2f41d355691f5ea684725dc91413f71 \ + --hash=sha256:930efb28f59fda124e39265d177bab302625297bb147d2910de725a2fc2aef54 \ + --hash=sha256:a24d5fd36e4f0e742c3851dcd20810e56a95633a342e4bf6cb591c678e8fe61f \ + --hash=sha256:a6939df7567114b6bac7f4c5e06c84a67f197c1b2f2e4b234d4eecb3bfec9482 \ + --hash=sha256:a8756cc73d9af9a7fe0deb54ea2e75ef73b01d9e575877e72acad5458e660943 \ + --hash=sha256:af2661f6ac6bbd1d081996f54fdd9385715c625ace8cec0869055c0cfbf38981 \ + --hash=sha256:bbf1062991d826ed27e2144f3afa4461afbb8ff56e8f703043e191a8163b1ee9 \ + --hash=sha256:bc067c462a86f0e57bf52fc6e058d90171a5420007dac00c46e90153050c69a7 \ + --hash=sha256:bf3fe71fbfb8ec0e310e0bc8537c3405a01f38f25f9394ed2135e6202fed542b \ + --hash=sha256:c0b83f044ce10a98027b105b3931548719a6e8c7ef986b4362651e0b5367c8dc \ + --hash=sha256:c27e577ece613ea12a0790e00b4eb80d901c59a3e16cad474f31d8b1529690b9 \ + --hash=sha256:c5c1c68ee401fc98271263410f0e5ce88285abacf7627132914e8adf3d70ff43 \ + --hash=sha256:c9721f81275499da1feeb36a2cf8192ea086283b3bd16b7dc4c9d7aedb7396d6 \ + --hash=sha256:cc82dde2a0d3e3ad472edce04897ad7146b8d8bfd1df8a32992eebb81af18fdc \ + --hash=sha256:cec596316640f2b394b8f0daa0ea61a8eae82d017b620b9f202befb972a59ea4 \ + --hash=sha256:cf41ecd1b0c0b6f7177ed965a54c2afbe888715c7cf6054dc12d53bc1494002c \ + --hash=sha256:d3304eb5a59442a8867f6920d484591c0fa09ffc29e9260be2feec3351e25869 \ + --hash=sha256:d480038c83691532ed52ff3147db51fa902fc78cb2d8349993a1cdb684435bff \ + --hash=sha256:df4f7784aca81a94f254c0a2767d592ee25f407e488f5fa7203e51093fb6ca27 \ + --hash=sha256:e43b188f0a5b75447bcc197728258166aa64365770ed1caa36595a5e1ca4bbba \ + --hash=sha256:e60cf3047a51edecdc4535a9196bbd6a732936b8e9f8184aabf4d16165884aaf \ + --hash=sha256:eac4b07d4e3743b172451e122ea964f72f152879d4f9adcf3f3d33e518f12ead \ + --hash=sha256:eb3712dc9b464793de0a4e42a7313d50293c751f94bddaf7332a1bc71bccdda9 \ + --hash=sha256:ecea603dd2fbf8242fd31a305a8b12a4ece2de28096870c65fdd0d1e35b8d9a6 \ + --hash=sha256:ef31985c4dedb5f1424e1aec6849a47dd37689cb7fa3c20b1b82187f26806261 \ + --hash=sha256:ef752769cd962f39ea0b6ffc82d1ea43a0012c5a6157c7a075212fa509cfcff2 \ + --hash=sha256:f25446b2981717dca9786bac841cb3fd7efb568e3e3c755dd980481c5cb9228d \ + --hash=sha256:f2ac30cf5eb5dff1b584627ae0b0e1186551a4f69ae3c75073911da497a29170 \ + --hash=sha256:fea03cf56568cc1cba08b470be6a0559e71c3a5b688d54b7179bb35ba23d0821 + # via cirq-core +mpmath==1.3.0 \ + --hash=sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f \ + --hash=sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c + # via sympy +mqt-core==3.11.0 \ + --hash=sha256:333b90201b8aa98df578904d512fa5fef5c604db9bcbd414562508dcec861b4d \ + --hash=sha256:444da8110863ca1d351c6ceda49c172dd8e47511f456a0b8556317bda0ef8999 \ + --hash=sha256:449a627799f80ce0ba9d8076958f246a7d8a4e9ddc2ca8770d74e0b295b32477 \ + --hash=sha256:4ad421da3fc1166ea9697910f88c2d199cd50faf7384338ed1b34b054458f0bc \ + --hash=sha256:4b81781eb63c3bf9367af1cdf1c8aa74e117f99811622e4f2d1386b3ea7d0f78 \ + --hash=sha256:66ba964830f40ac093a716a318948d1623d5d6a67b6d986a2d6870fa70da60f2 \ + --hash=sha256:9c1a236b17e97556619454d262ccdfd0c5fecbe383a6e44a74fdbc7474b92910 \ + --hash=sha256:a2a3ffee0155d5292e60c9034ce889aedda549312ec26a8f3dba4188fea2ad77 \ + --hash=sha256:a6b96fc29a1d02efc532c830a3c14e23cd000d2bd3210b4a6e6fa40aa8cb30a9 \ + --hash=sha256:a83c2a5e17f2da2c9f92670e2eae8433df453ae9b21b32f0333a744a71e2c00c \ + --hash=sha256:ca3d0f4a5330f8c1264b079bdc96a789c13bd3ed3944e054ef2ea55974b8b668 + # via mqt-ddsim +mqt-ddsim==2.7.0 \ + --hash=sha256:0e062aaaf5e16e162a4877fe659c8ff43172ff086c747aa01ec9961578e92dd0 \ + --hash=sha256:0f0f978c829bf42e229649057cc66b7cf80019a41e10fefd8771244fa2dfdd94 \ + --hash=sha256:7b7f326089fde58cdb07d1d792f33950f5c580d6675176196bf3d0ed498926d9 \ + --hash=sha256:7e6ded968c8aca5aa07af4300f1500b463d20d4801070a47351ee5b4b966fb2c \ + --hash=sha256:847bf0e94b06a926a0a425535cb4539e55c1e795f6580e7e26d5aa50d40051aa \ + --hash=sha256:a2622f0aa0d9d49c5d95e04072ebbe69ed80e2a966232574ff2f6bd57e1ed9f7 \ + --hash=sha256:a57c34fc7dfcb270c5b5cf507d575b2ef44d76ae1b86184ea2311ff9626c0d9f \ + --hash=sha256:c34776020670d4b969b1cc615b552862cfa95cd563729569e2189e6e94af4a5e \ + --hash=sha256:c7f8d13d81f9ec52c60a44b453f2185c161630d7f0d91123e089ce31ca888fcb \ + --hash=sha256:d405d9fb8e2afca070b4be3e1bdb4c51e57cdd21784a01c817a46418c9168053 \ + --hash=sha256:edf50f0cf984012f0eb7d138ec38ebc8bf770183c85d4cf15efa14070970f85e + # via -r requirements.in +nanobind-backend==1.0.0 \ + --hash=sha256:00dadccfa92d0f9eac0b1877fdc3fd99d2ebb1a651fbe44daff365a173bd2faa \ + --hash=sha256:04a35c7395daeb9a33f6801ca3d1e11e0384702ae22b8e3e251ef9f6a4a54c10 \ + --hash=sha256:17a9ddc6cc096d713151fbbaabe41d960d1d596c0e046abcd2b17c6d6565c443 \ + --hash=sha256:1e5f8217887d1d83ccbe1e61c37d1502ab951fef466a06df2abb1161e246ef79 \ + --hash=sha256:28a4c397d6d36dfb712acbab817c02ad2f8658a85fb1dbbae7385689d28d20e9 \ + --hash=sha256:2946667fb8cc7bbb52d0151c090540576a528e48dcd7d1bebe007688e70f8a5d \ + --hash=sha256:2a42cd509c1889cbccdcf8a23dc3733c4b7e2388973ac4292db094576e3e27d0 \ + --hash=sha256:2cc095faf04db1b8c05e4685b6b6ed1155d67a148cb892ead6b7b64574184b0e \ + --hash=sha256:33bdec0da2f78669d5c95bd546ff2bb7744dafa43a16bb72b2eecdf83d8c3b3a \ + --hash=sha256:36a116471c3ca0b6cd3af1e1fa2e38c52086a2d2daf00b86f90a99da5efdde53 \ + --hash=sha256:4816cf6f998b0c2435aa643df7a5c59492202778c96e575e55da802e51c75461 \ + --hash=sha256:4a42503f65cd595f97a31f24d21c6ddbd017ffcb808626d0134e475e0db25f3d \ + --hash=sha256:4ae0214ad6708b8001d82f1dd6c302aaba9627d81aa0573efc896a3b90f95bce \ + --hash=sha256:574d104bf6322711e5db55ed49409289df9582e8c1fd2a2f2d643d2136428e13 \ + --hash=sha256:691be892dcd6b4b1317d628b49bf3e688470f4f927ac316dca233ee19fab7ecd \ + --hash=sha256:6aa9864050cc5fd1ff59d1f9b79740efa278515eed27af848efae07125c029b8 \ + --hash=sha256:6b7c31403e6f39fd704359ce4a0687d894a9ffa67813da6a54c6d0eb6fde93aa \ + --hash=sha256:6ea3fe04341040b09444cc946f5cd39145290b2de3b90ca9868b1b59cc75c23e \ + --hash=sha256:7a7c76fc958eb7bf4b5454d9c036f1e92f8b406343c7b7b7f4e53302718ffee6 \ + --hash=sha256:8975422479b145ce46d4d79b4fc03dbfab40254470468a99ea417090bb1ce460 \ + --hash=sha256:89c582f83d491ba01aa1a5ad39ed6c59bdead67ec3b8c88b288b7e4b6bac18df \ + --hash=sha256:8ddf018fc62a2bd51e9d7cc6477af7ae13ccc0db69b775d67d837ba7e0bc41b4 \ + --hash=sha256:915c6ff4ce92584cdde18a24cc5d730f04a70c2f26bc0bc4db903ca54043eb86 \ + --hash=sha256:926ba1e7e12bbf3f701f7a200e8801c5f9bd05ba2244962692fcafbd32b8a0d2 \ + --hash=sha256:9574cc624b9fff2e8f5946211422476977e43f6b796b83e143b289ecb70df4cf \ + --hash=sha256:983aaeaf65e61ddff125a3eea463675d322d9981510f6f6e462e6bcfc915dca6 \ + --hash=sha256:9b1502e3f160358feff92f60a634e198c76754f50a60fdacd9a8b5dccbe5d9d0 \ + --hash=sha256:9fd9145b1aa8e9b78029308a73e1ade94369d7250c826783655210d1800f1493 \ + --hash=sha256:a1f6e6320aee495e5cad933d671e9d60ee42f4bf460930ef7afed191243aa733 \ + --hash=sha256:a42a2d594f22e689f15cbdbdf4bf1468ef7a8287da41842515c1cc836a1f2dec \ + --hash=sha256:a6d17ca7457000f848556a31f5884b2286a70db1b20aa0ccb090241f2dafd83d \ + --hash=sha256:a6dd7a66fb7416d62be577d41d64478a187d9f36d089759555698bb08addc2c3 \ + --hash=sha256:a7a97a1326fa2d70e013b7af769305796047a01dc4567f5f90d769c6a2e2344d \ + --hash=sha256:a83f1c86aa2c7da33ce4a8df4304d34d6364335b2c455a490983059471e21c4d \ + --hash=sha256:b0eabf671c91fdcd6a61d2177aa434731680442aa2317de54acfabeac4a4cc06 \ + --hash=sha256:b20b3e4bbb672987f9d65e52f1829299589c1ccf0502360879846a922e9cb1ed \ + --hash=sha256:b7ea25c4b69a337eae4377e0c53f0a000dfd996bfe61303bc03996e8b2bf5735 \ + --hash=sha256:ce93f26da63eaa24729d214fa6669525293d75e56f394f2980839cd65a75d2e5 \ + --hash=sha256:d77ecad0d4b8526865f6bec7cd77603c686ef65b57cc7ec81795b3a468dba0f1 \ + --hash=sha256:d8581ccc5f000a76b4304f9c8c4ee9e60499a9d9502e6e0e885c1606d6b29f60 \ + --hash=sha256:d9a15c8155c465066fdf43a2589223cd41f4a688f52046f59edcded0790a8ad3 \ + --hash=sha256:dc199056cbd534c5317899539a36245aa14bce6b8afd48c217e578b2463e0594 \ + --hash=sha256:dca8999e4e87a4e39e162c55b70f39fe1882913c4d7de1adab81cf82bb8cb9ad \ + --hash=sha256:de2c78ed4b88ef6c59a835eebe7f5e91ab6869f17f915a61c7d4eec24a1e2b85 \ + --hash=sha256:e096d976adfd4d2950095e40134832d9325e62b180c6548174996f20d44d0e82 \ + --hash=sha256:e27e34cb764d0dbb07319e3e956be3e08392e55f1e778c823f2f3951246bfd4c \ + --hash=sha256:fac95e67ba91c639c52298388d22595c1d912a09a671d4793c8d16711a0dd1be \ + --hash=sha256:fdf41e97cfb9f149c89b323b7850bd9dc6316d1d79adf99081511b9a1d0858b1 + # via + # mqt-core + # mqt-ddsim +networkx==3.7 \ + --hash=sha256:e3fd2c13a7814cee3746340d8d7f8598a67f16a58bf47fb7f8793fab6efca1b0 \ + --hash=sha256:fd77a511bd90f39f3d016351345b52cf5319b813bdca01de3f755d3cca62e96a + # via cirq-core +numba==0.68.1 \ + --hash=sha256:0b8c2cdf8d52373814d9fe0fdd91a654b4607527657488487c58ac897c2596a3 \ + --hash=sha256:10967c80d943d32fec1a28bad89b404c820778c5d472844661900399879cbe95 \ + --hash=sha256:26064885ae0ffcd365e1801beacc524ac4a9bd306b7552749dcca42e0ef2fed3 \ + --hash=sha256:44f56e7c1e77d3380986f42e187ff13516aeac1f1771fe3826e65f003053d308 \ + --hash=sha256:4d1b544f37fc237d16698a4266bb3d5b3c40ec8aa4c925a191ff09ec6d115310 \ + --hash=sha256:58fe7a3810261cf13797d8aa94c018cfe91e1e8adf634df60eb60ef834f9367b \ + --hash=sha256:5d4bd6ff1923d0b32a2208eaf3e1940f4548a13fdba8bd1ee7893b8f4b8f55f8 \ + --hash=sha256:674d9c19e591e4e706c85ed9c7129dfea02086096250cb957dbffb64ebf3dba4 \ + --hash=sha256:6d115039768cc2eb3cc99b32355ca507e1bbc653eca5492c83ab6399f218df27 \ + --hash=sha256:7abaf69f64cbbeecf0c2384d55d1249ede6206de06d905da48f943c065e51490 \ + --hash=sha256:7de5e5d00e6c8967fc861be2a015eb8ad701ab3cf65d7f4a2c4d950990cf65d3 \ + --hash=sha256:8b33fee239194b9b6cb9b176f3c2563b94e5882fd846748ad0cf960daeee5406 \ + --hash=sha256:8b89ed029ec79d017af9101afd8f832b1f7eb1a366227a439437c17f38be6122 \ + --hash=sha256:9550e3f84ddca05d3cad1f2f780beed004a9b6c62fa12e995fb5bcb871d0cd6c \ + --hash=sha256:9de461812470173a14eeb7e0bbd27c897dffe835402a33861166842fc5f6ea57 \ + --hash=sha256:a4bdbff6ac4ea52a647c758e78403489a1b01a7ee9c2977c92f931c10802c078 \ + --hash=sha256:b206741270692578112600767ef5e4935b38484a9edbc8dd925389ac67d0e828 \ + --hash=sha256:b4d210701b32d1d4ffe26d5fc4e96c6b47e2c5d6c4c1a0f76dc48c156ef295ea \ + --hash=sha256:bd238734c5bd4a7db5dd2e935d60dd9d485a5fa15b37396a2dd690b8b1d51742 \ + --hash=sha256:c6f43dbbdcaac98a75a539b7c79ba490bd7265f24f454ac203de37bc5710ee71 \ + --hash=sha256:c8882360f6bf7c6ff59308dc0fe79508a613a6e92329d4064ddd3258462cef4d \ + --hash=sha256:c9cc5e30f0ec71d1d6e706cd3f9f98218a0221ee8cf25bb2079bdc1a9c4ae65a \ + --hash=sha256:d372139235fcf11e3d81d1f145584e38c75a839b4d02f1f999cda1b134965eba \ + --hash=sha256:dc3f29d540be5fc60699dbac53fc04f246cbf503a4e2e8315f04b70fcd9f1ec7 \ + --hash=sha256:dc54a2cb3ccd2ae30dbae56311bb397bbd1428d9cd8ccb82a70da3439360bb30 \ + --hash=sha256:de5fbbd0bec5496dc0408bf1eeaad4ff64a2b1e3c66b4065e4c42523550ee3e1 \ + --hash=sha256:e5a2d544d8a2da45f9cc5856ed794c31f133ada51ef7a734a9b7cd4596e1887f \ + --hash=sha256:e8069ec8807764fdd355a578e3943132a0b8e053e5d61e7b3639ed371ceaa80c \ + --hash=sha256:ed9e36c95b79b675ec2332951118c3b264921a5cc49e0e934be2663ddece1b69 \ + --hash=sha256:f2170303a731542b5c16501a08b2b1cbb4596e5bb9ba6a661b65ed953e59b8a6 \ + --hash=sha256:fb83f1043e53753503d303036065990ff48fe0ef901e897153f57b2aec12c38d \ + --hash=sha256:fc764aa37deab88718de20151af0f53aa72d1c5cb3b54c6eb648473323f80a5c + # via quimb +numpy==2.5.4 \ + --hash=sha256:067374eb538c34c745436365cf7b0112595c1d326f21ce4ff340f61230239fbb \ + --hash=sha256:0b4724a19de67bea8cfc4970798efa78bcbbe2ac2613cfac16721a42d44de2a5 \ + --hash=sha256:0f02a46e49cfb6c73bdb7aea1c0d3461dbae9aba613542b65f657cd3d17b9fab \ + --hash=sha256:1c2e71b04c6cad90026e544501bbe0ab9290fa8a4d845e7e8c0d124fb429c988 \ + --hash=sha256:1ef3aa6d7e29bb13677323114280b05acc57607fa2300e66432d665d5418a162 \ + --hash=sha256:2132418bf8dd124a427ca9e6a1daf9ee1a87185344c95119ceae868b99466da1 \ + --hash=sha256:2199ed071f460487c8db2c0e5c0b564494190edb4772fe80f9aad88b2604def5 \ + --hash=sha256:2377da2dd3ba2c1200956acbab2a358c83b8e1f8531191672d1cd6ad83250d53 \ + --hash=sha256:298eca75243f2cbbfdb460560b9fb2a1792a33cf2ab4286efd43d92e8d3df508 \ + --hash=sha256:2c2c4afffdeb7920e445028dd71eb932cac3e704792e964bc2a232426d4f1255 \ + --hash=sha256:2ca144f15135b6212a5c47b1e2aeca6e412f102f95a2d5d88d8aec77eb255de3 \ + --hash=sha256:2fa3328f784fc8277fc48026f6cad516f5c561c5d8e2e39b3c9e0c8f23223b34 \ + --hash=sha256:325518d4245b9e331387702aa58c2ce1dc4cdcbb41dfb4ccd5dcbc7e08db1266 \ + --hash=sha256:332f3378fe077dd850e677ec01bdcc4f22368fb5d50ef10b2c79230b1bf5a592 \ + --hash=sha256:3573cd22564692a5b899ec344e5d5b9cc4576f2985b96f22af3564ed54f2710f \ + --hash=sha256:381a7a3d2e65e64c0ec302795ab9dc12bb1e73f150904699c153716177eebdaf \ + --hash=sha256:38f47be9f74ab870d2633b5456ae519c43758a8d1fd05342f0ce4ecc034396ee \ + --hash=sha256:4054173604cd8658796053f1f3bc0befb68ec1c0762c57fdad61e199256a8617 \ + --hash=sha256:468397ba3c64427474706e5c9123fe266395496714dc684294eac75cd4930d1e \ + --hash=sha256:4e263278bfb5ee6409db8aedbc4cc32973b1b82bc1e8d3c668551d04d83a7e37 \ + --hash=sha256:5258bc06526964be5face2fc6f756857a3f24f21ec3e72ca131337a75b165d6c \ + --hash=sha256:56733449d2544178beaa4545cee357370440cf056c197f9c7bfb19dbfdd0e86d \ + --hash=sha256:5ec3753760c1a6d8bb91200666e545c3a9728e6269dfb5d6ce02340996698aa3 \ + --hash=sha256:5fbf7141bbfd63aea22f435c9062a032b9ea0082fe9845dad7f021d3f1234e71 \ + --hash=sha256:64d1c8ac28a4077cf987e0a71a7a0ef7e2df70722f07f0baa42dbb7eb6938647 \ + --hash=sha256:64f9c9878c1938476365e11ccfb6b770f3b9e5f045ccddc514235041e6959365 \ + --hash=sha256:6c109eac9cd439193678f69d70733c1108487546ca8eafc107b510ae10c1aecd \ + --hash=sha256:6d6a71b9d9a97c03633aa12565ef2825ffa036cc1d99cfd50dacf0f128af4fe2 \ + --hash=sha256:6ffa07666f8da0eef81d149934a626d0d95fbd6838432a33e66245423a9062c0 \ + --hash=sha256:7415db95818b39ec475a5eea54d9e3b6bc83e3912158e46da3438cdce399804d \ + --hash=sha256:77045a4b175bbf5316ec08003880804336c78f92281a1b72222b274ea85ec5ac \ + --hash=sha256:7a14a461d9340f1b46b8648578aed9cdb8b3b018a8fac6c1dde2c9192a01a87f \ + --hash=sha256:80d6ef6e8620eb2c2b4c4caad50b5935d6db3cde2d51581b55dcc79e14016d1d \ + --hash=sha256:81e3420b27048b65eb14c3acf0c174a8cb0e023277716110347d2dcb26026dad \ + --hash=sha256:823874a507a84af050493b622affde94b6f7c3a0dc22cb2801381bc03b871c00 \ + --hash=sha256:8b4d2fd2d34e5f8c9235ee787de5631a37a28402b15cb80814df973d2be54129 \ + --hash=sha256:8dddfbee2e68d26d0d7d7d9cb247b1fd4409241cce32d815a11d97ec2cfde179 \ + --hash=sha256:950ea81d57ef070665581b6e1b5f6a029306423cd1739c5b95fe78aa30db6b9d \ + --hash=sha256:956555e0603a4d38019ae6925711cb9dc43195c076a928accf7ea5d50bddfe53 \ + --hash=sha256:98b053943e5a0474ec0da309d2cb9d3f18ea57f8a2067c2ab7b5f763d1068380 \ + --hash=sha256:9968ab7e49b93ac6e1c3b2239732183152c9150f16308d30b66a372cffe3483c \ + --hash=sha256:9a94cf751c9ad8ebaa835bcd3d40dacf8534ad086b88c38029b65123c7999d2a \ + --hash=sha256:9cb18a327b49c5c337f972b03682f6a49855525faaf3c0d3e9c96cd0fd8880a8 \ + --hash=sha256:a7b1b6353e36a7e50de2973a38d705c88ee93adcf120673cee7f45a4a3fa223a \ + --hash=sha256:a813ed7719bf45463c51779e6a98d0385fe905e48447526938a4b8337333d551 \ + --hash=sha256:aa1cce2ff3f8d953de38b76bf44602caeb69f101430208f64a10067f7cb4b1d3 \ + --hash=sha256:ad62a416ddcf863bf44bba76fbf6b53366ab0692e294f51cae4b5fbe0d246788 \ + --hash=sha256:aec3fc4b32ff82421274f5d205c559c51c840c8df66a78efd7f3612dd005a26a \ + --hash=sha256:b1185012870173de7ae33d370bd45b1cf5baee747ea4b97036b65f4e93016877 \ + --hash=sha256:b11e8fda06a7d69f15ebf542660b74466c2e51094800c1fb794f47ad4faeef17 \ + --hash=sha256:b64a85f40e154983960a4167d4c1d57a50c7f109b3d3264a3a984154e90a8454 \ + --hash=sha256:b86966fbe4ad7de710422175572bcdc75fdedadfb54bc6fab7deabccddd7780b \ + --hash=sha256:b89d0aaae2fe498c648f4c4795c084db535af5bd98ef942b2a3681fb74ce8645 \ + --hash=sha256:bc39ac66a7a9a3fbd6134fda43136b60ffde99c8f4501e64e0d2b24da137babf \ + --hash=sha256:c05ede731b03fb1b7591faca9389ade3267d2bddf1ad8882bb3f2cc5e101694f \ + --hash=sha256:c6342f54c67093cae5c0227eb0eb772fdb79f2a2c37a6eb278b9909ee06aa356 \ + --hash=sha256:c668b2f0d651605b58892644b0e302c7157f7159544227758c896982ef384b18 \ + --hash=sha256:c9b80cdf5cedba0e90d93fa5f9a333c4d65bd545cd669b71bb97ce2b703c9d73 \ + --hash=sha256:cfd73180400042a7c532d30c5e287bdd03c59ff9ee1b4c0316af0539e29dfe23 \ + --hash=sha256:d4cccbbc78717966f764cd3af4fb70276fa01fc7a2688af11c78901fa5c04f05 \ + --hash=sha256:d549420b8858885cea8838a727842249218b9c1da24dd517e25c9c7a948310a3 \ + --hash=sha256:d8200f16437b289a5bb927c6e184eccc3e8389bc0070fea4cd5b9e13c1757959 \ + --hash=sha256:e94aef2c639da4a960ad0db8e06471208d8589974953d78b61d345b4eb99e394 \ + --hash=sha256:fbde6962867ee75b48b0ee29b2b9372ec5d617799dbaf38e82dc0596f2f7738a \ + --hash=sha256:fe4d21ab149f15e4e6043dfb0de87e6e5f34ac176cde83060e9802981fca2ac2 \ + --hash=sha256:ffa6ce09a1c6a08e9667dd9c97aa0b14184e8d18f2a14b78b2a2328c9147f076 + # via + # cirq-core + # contourpy + # matplotlib + # numba + # pandas + # qiskit + # qiskit-aer + # qsimcirq + # quimb + # rustworkx + # scipy + # stim +openqasm3==1.0.1 \ + --hash=sha256:0d3a1ebe3465e3ea619bcaa369858bba8944cbb0c49604b24f94662d3ec41d41 \ + --hash=sha256:c589dc05d4ced50ca24167d14e0f2c916e717499ba0442e0ff2a3030ef312d0a + # via qiskit-qasm3-import +opt-einsum==3.4.0 \ + --hash=sha256:69bb92469f86a1565195ece4ac0323943e83477171b91d24c35afe028a90d7cd \ + --hash=sha256:96ca72f1b886d148241348783498194c577fa30a8faac108586b14f1ba4473ac + # via -r requirements.in +packaging==26.3 \ + --hash=sha256:94edc256424af38762eb31306eed28beb9f0efc50a8837492c9d6fd6004aed79 \ + --hash=sha256:d7193f7c8e4e93f444fde0262bf90af30e16fa0ad0ad44cb553c87339b23cd1c + # via matplotlib +pandas==3.0.6 \ + --hash=sha256:0704044b676496b8350e023b09f174a26772456c974a2b11c36bebb558c9490d \ + --hash=sha256:085e3786ae6b2e82b406266bce36690f72b9dc1421903ba9296b2981a9fcf586 \ + --hash=sha256:097090508a1dd335013d39106fc10b20f4fd4a171638e47b77d55798ed9dab6c \ + --hash=sha256:1bcb3e9ed29e74a7439cedff9e2aefd3ea65de84d7de9ccb6c194192541bd60e \ + --hash=sha256:1e7c0afdcaf6661d795fcefc2f647ddd1136f62cdc153fba177c685d97a87808 \ + --hash=sha256:1e92d9fa834c7d877130027cddc0cad8dcff97c1f6cca26bd6310f847228b658 \ + --hash=sha256:22172a92e7ee678ec0140c7af4fc9366b55413834a1cd86af78b3caa0b0574de \ + --hash=sha256:253e12cb9081b0afbac607920f6142975966bc315135e09de275fdbaa415d2de \ + --hash=sha256:265f562fdd1079f69f3de96dd425c3405224038c0af4f920c54bd240ee2c4640 \ + --hash=sha256:2a8fc94be2ee5f1d86f97aacd8cc566f81680b6498e76f3007421bb5d98151bf \ + --hash=sha256:2e5fa32ff162dfdbc280157d664f44d23049ae414725af9676df339c501d82cd \ + --hash=sha256:3ef908d28590b3f42d7070e7ad8f9b34b442b260b7f3c1afb57e0040c58cdb1b \ + --hash=sha256:429d9df32731ab01383ed98f2baa7a60368090d1a94fc06019a12062510e8630 \ + --hash=sha256:47121f9571503f724c9b93e297ab6254ac99c77adf5e9ed085ea419fd585c258 \ + --hash=sha256:4e25e2e1adee99ddfada6f7206a79ae8e9c8a8861b0e3eaaba165006d3eef18e \ + --hash=sha256:4ff44b2cb51cbd691c91f92c4ea6c71e34003f239ebd67c2e857dc898466b49c \ + --hash=sha256:50c44cbf5820b6b91a5f74aae04972472aefadd3cd9fbd1010409d85528bd570 \ + --hash=sha256:569e114072b24fc4970c12e2b4bab252671668a40b324318903380cab0254c0c \ + --hash=sha256:583be68728a31d0d750d5b8d9e00f02b153df0d4655f858bde93cb84cfc4227c \ + --hash=sha256:5e75072773c1b2f7cb63faa3a6f562aede11f3976f68ed34cb538bc091a28171 \ + --hash=sha256:5edd0a7abb0986ecce1ac81f56d99b6763f86aa6946dceb6c661224f90af5a19 \ + --hash=sha256:60d81f9e1799b36f3739e7fff44d1fbb2e8fd5a271b3863e03de9715fccda0fa \ + --hash=sha256:62f51d7f651c8054c5e82a69265c98082e795d1442df7ca6edc3a545d61214b1 \ + --hash=sha256:654aae059295dbba6ecd2328ca12712a2cf1676214c8699f1c29213f7ccf9c34 \ + --hash=sha256:66b07ef7315a31bfe1089cd3d71a7de781c9dca986762d0b4fe7c0ef17465d10 \ + --hash=sha256:6ff482fa91fa2bafd92e8fe66ce3645c851824310f295c1f0a2f96e928fc4541 \ + --hash=sha256:77ccbe5057aece6fc172b9b77f19c04335af6882bc2e10c8f3ee4e6bfb3da553 \ + --hash=sha256:7dac2d65e9087e8e7b5a45fe15c4920911a221df061ab629943ce016489145c7 \ + --hash=sha256:83e91d15738d7783c050197cef2f2cf82fc6353dae9865aa87ed1fa16aa4d55a \ + --hash=sha256:86fa853a12e0b70927e2b1ee00d56d2224ec9cbb4b9d58348b5ad52d2f21150e \ + --hash=sha256:8fe77b408d82e2615674dfed62533b95e18a03610573877422aada4f625d4947 \ + --hash=sha256:963ca21199097a84c7827c4678b04e30833084fbf8ef44fde3fa7180a29f8fa0 \ + --hash=sha256:97274c9adf6255bb48c620cd6959805efa7f09ea2167f0e0ae006a448cd2fca7 \ + --hash=sha256:994a79608263fe1c14cc48ffa7300e2b834b7d1cb406ffe96a08828cb0cdd79b \ + --hash=sha256:9ae8073aed8e21d1a7fe263dcdc6840743549722a6738198a0a46000fa9476f2 \ + --hash=sha256:9dab635a549e58a053c7b0fa054dc0bd7be22f0ed9a720f4a85d5fb993276172 \ + --hash=sha256:9e492cd4bdba6778de4fe0df7f4590c012161ebcf9902dce01b01dc683105514 \ + --hash=sha256:a3a22e07fe75347eaacc75b0e85297947af4fba6b4aae23916bd8b6828d0bba3 \ + --hash=sha256:a4dbd4dc65cbe645b92b8785d0f96dd7311010dc6606cf620e51b07b8788a12a \ + --hash=sha256:a77a1a44e4d88f1c6a2a64d3eb12efec8420875722e14279800b173a7c7c2804 \ + --hash=sha256:b27c8d890e4aa2171437ae2a39de1d215e674158e4865c4023a8b31c932513b2 \ + --hash=sha256:bd75ed0c840f709fc2ae26ddd9534ac77ca1a48ac0cce521a74acaa85f3340a7 \ + --hash=sha256:c6e4aae3e9bea26c6c9a20d88d96c86ec4a99b4db5fd516bcb4e829ab2c0ee36 \ + --hash=sha256:c826e9babb7790142c399f58599d8de679bea059d7b39c5b6efa2096fac37266 \ + --hash=sha256:cc39303913e2ea129915670de5d1c9fbd647f543bb72e5543bac8baa94e9e42f \ + --hash=sha256:d7564d86a94c2eb8ab290b07f63ddaae5c032fa53897c29a2ff2197d43aee8af \ + --hash=sha256:d7dcd21238cbb4828ff148481ba01cac8946dc5121457b5aeba28636f8f99a60 \ + --hash=sha256:db7ec631f26223beee8e5c9e0b8f23c24d8197bbd1d982421d4e3188bea51965 \ + --hash=sha256:e3dccb584123b399c07562ac4d62543e90ede49ddf8ce3c13ffc64cbe828c281 \ + --hash=sha256:e7c1905ef02c3d6d43d9dbd5b6ccb4da4870a0b0c821bbc103fbdb6f3ad2707b \ + --hash=sha256:eb6900de08ac85f93ac4948aa6b80842eba555875337b8359035ac9c43e92d34 \ + --hash=sha256:ee913a91669056c1de1a6b733fbfeab711de9e54e3bee2dfa5fe79d9457247d1 \ + --hash=sha256:ef738d71d1059245b6bb03e312be06d8b3821326a83486c1ad03b9aba3710e44 \ + --hash=sha256:f3ce8a6968045481e91a3990e797e348ce13db45ee164a7095bbc824e26c09dd \ + --hash=sha256:f4e7c52eb108d752e7592268108fd3e98efd76d83a3125cdd06c621c2e44359b \ + --hash=sha256:f8029ec0f1f89e4f985929ce1f6626dabf3140d61a4e9c1215afdab34eaf9a5d \ + --hash=sha256:fb625f426b375bcc96e3a04c5d5d266cd7be6ae5d6866e0e703382ab5164068c \ + --hash=sha256:ff51a4459ed036e93d1eb1bb5e6e7b28685d3cb6b7c12b91c05b31024e234729 + # via cirq-core +pillow==13.0.0 \ + --hash=sha256:02464da86f561f410e13b061ec37c3068a9cb557a095494157742d07b3c24a27 \ + --hash=sha256:04a63720f79e22fd54d897c233a68314c50ca0603360f54ce2bd5db8f0f43782 \ + --hash=sha256:05cd2cd39055d0b9650060e4513ef4a9a0aea870083950bd046a0d6490f93a22 \ + --hash=sha256:06903aac074d00c988e77a1fc435286dc498506d4ca8d6f69df9babddf4ecc15 \ + --hash=sha256:08b826a9bf1265c76de04a42061d61ea6b109418b7826f28ff1ecdfaa26c5502 \ + --hash=sha256:0d1a9cf7bc6917538b20f8d06b9ab2147e542f68849e96fc58eb66bdf6acc692 \ + --hash=sha256:10b5019883c98f1dd819ca48ffc6f33a91cee04948fe637c605f4345c7cafd6f \ + --hash=sha256:12b0fa15879fe5a9d9eebe66e4e2d74128a773b1a4448010c9c714f45e04b9d8 \ + --hash=sha256:12fbb851cf323cc19aac3eea1df5ad17b57e91e9fe3cfd06100dba7bb8208c13 \ + --hash=sha256:149a1c323ba366f90b48e6f1a6db6582eb50512df374588de56fc909abc0f0f3 \ + --hash=sha256:19b66ca0a4d25cc0200b381ce824c7ea090db61427315e73cfb05dbf1b35c369 \ + --hash=sha256:1c774b9c0ba0d0b356f71530677b39028878a2cae5a93e0a13779cfd17120f88 \ + --hash=sha256:20722cd5375533ad754053363a80b8fb30c79d37930a6f7228030e237ce3bd5d \ + --hash=sha256:20822140c9a2ba9c5e42df342b0a892ab2e102fc0e3db967a133bb9ce3f898bb \ + --hash=sha256:21c32061a5512dc13f87cc7303e120e4d77c2f70df89a35af0e3ce246e5ac57f \ + --hash=sha256:2310e2adfc13c6d457d7d0f2ffdd5c56a74a317650cf765887df8d515a647ac0 \ + --hash=sha256:23edf4ec4b6f4f240e8df6e4985e9ee2ced86474632433e55fb1e2548744bf40 \ + --hash=sha256:2d50500a4a3bc6469adcdb319cf05d688b08ca3bf0f22a05339f3b25b433a599 \ + --hash=sha256:2e31c4e68cffd7b1f116127626813b82fcba19edf6b940a7b0c266d6484d0055 \ + --hash=sha256:34fb3db1149c879343861831728c243c432d4a5afc8f1878ca7612ef8de2a033 \ + --hash=sha256:37290fbef0c73e2d51d594eb78fded7dc7170d1c3ad0a890269e6fd8c8c4e061 \ + --hash=sha256:405be6058e206a86fedce2f715ecc2343f94072d7925251632dffa2c05f70dca \ + --hash=sha256:40a266371ece581e5de13b6635ef78d7487824af80561b6ca27694a88c19bc0f \ + --hash=sha256:42d63be3af4f9b951b199b0a9d23365d37ab14687e6d77b74940432c8515c4ca \ + --hash=sha256:44629d4498c9cb6b2051806155f22141df0d8a929c56134b166655232dfb2f8c \ + --hash=sha256:49c12af515073e9bf511e4ef736743bf70d531a643668722279314b937742ba4 \ + --hash=sha256:4a25756244bdcce3b50580baadf320fa48297f0eeb8e114ba64139a40d4d0fc8 \ + --hash=sha256:4bd024d567eca931b668978d672dba914d4b8e2628e2c3073a2ad178de8a2620 \ + --hash=sha256:4f8db54177035a2b5f717f94475b74907e12a96dc74f6d487f3966b0a4694071 \ + --hash=sha256:51ebb529fc5e8abdd55302f6c3f8943037348ec2384329a3e55677f69ae2fdfc \ + --hash=sha256:567f20f1c75897d7663830da6ea8af719e03d712b1d9ee7f813319f9ece42e5a \ + --hash=sha256:5933fcea5a5ba64c686f55c886a115cbfd92f2900460784a1e79909fdbafd7b6 \ + --hash=sha256:5bdb38ba220b61b4ec31dd1046dea6b016d3c6850a23f43ed8b58332b2fc668e \ + --hash=sha256:5f56499c1a74d2b862beb0c33b8016f99d095858455df9d21583bbbc1c15b582 \ + --hash=sha256:67871a13cf47275201553b536c025da777f997fa562a19eb798af4ad4b97c18f \ + --hash=sha256:67c8d44ad89fa7eb88de5d6ef6199b1e03dd24974f85a67639fc8badb801fe79 \ + --hash=sha256:6a0920cb55df5a4d3f6862964908078c0bd59332bdd1bcd20d14e8c70ef27cc5 \ + --hash=sha256:6bce6a29c3898191f4c9998e4d4e8f69790caeabde46e54da4bc235ce5bde683 \ + --hash=sha256:6f38f3f885a09cafc93fd667b1173a92f379e43785d635e7983c893f0da319fb \ + --hash=sha256:73ee25cf8cf8b75d5a5aeed7cb6588f5e5dbfbb0fde51707b630bbb23897645c \ + --hash=sha256:7b999816b5850a35ada08443e6e03945f1f6488144a83afe2d37b240a552aafa \ + --hash=sha256:7c88c10dd432f3b39ccdafc9ed81d0c21b8fd634502574da76d1bfa4fe2c76d0 \ + --hash=sha256:7d5e097eabd5d4915c27ac9f6e9325bb1e01a7c94d7348b5c4451d3fc30e8521 \ + --hash=sha256:7e91e97a929232cdb828889ee6ad0e48d7f40f4ec38818f4e4a8968b2b1af22e \ + --hash=sha256:7f6299e494e46253d40c34653cac369412f44ca53b5f85d848d3f95b1ed0546c \ + --hash=sha256:816752a5ef76a80484c8c441c85593b7ea9304f6231fc5776ad1fbff7e773058 \ + --hash=sha256:83b37abd87b590acd8f47ca8a61f70893322b11834d36e07c2298dacad4d14d2 \ + --hash=sha256:8619685cad8efc4c38c66d3b36aad854523297c43d748b3b6f0cc03c90ba3463 \ + --hash=sha256:8bf295fe459343bc6093c8e5e0df60bfa189e0fcb775a22e2c2488fdeccc6c0d \ + --hash=sha256:8e459b613cf31f8980f584387b4fe47bf08e076e288d61aa8eba1f7fd4ddbb81 \ + --hash=sha256:8f36aa77f74b14a2103622b196402c71330e4e7cf4122ee45c854e9a01e0eecf \ + --hash=sha256:93ff9c9c3663ce23aaa5d0b6b6abac55359e2a0c06c7e30f3771829af816be63 \ + --hash=sha256:9a635068d9793c7f0d929f39f18b58f1bd86c236e8e7b64167b86af9232ebca0 \ + --hash=sha256:9dda0788a9932776a75d8bcc020076edc308ce2508b51f6739a45e3158b3fc42 \ + --hash=sha256:a192360d512305fe92d3053e4f7627bbad1f7708f1f4ad38cccd9336acabe9ad \ + --hash=sha256:a2a14cd73d5e6c927f644b0110ee81f59c4ef506259ec9183904747f2caacc81 \ + --hash=sha256:a625df9a2a5597fa5e5266e01aefc82604bb85d291e3547981e863560d75da6c \ + --hash=sha256:a6aaa7871aebca081eb5c45f83e845bbd9712ae99fa9286dbfdcee835e63f4b4 \ + --hash=sha256:aa694c49787040943570d61c9b8fc01271bd2a2cfdd55f0d896f8aecdce1a981 \ + --hash=sha256:adb3c2124c68e480f4632d06cb7caa3b48a51678475f483b4edb1c6dee29ea43 \ + --hash=sha256:b84be41387fc00db28c13c02e30d42b02d8d8f6a4a741a1aee6012ca7f1f6039 \ + --hash=sha256:bf97ba1b5542050e9b0c74e632323b6d8136cc99d64e193abebee22fe6013c76 \ + --hash=sha256:c3bc8ee0271387e0b1e3ad0ff893645990a656e79bf9c42f4f734a3642b11d51 \ + --hash=sha256:c50c80e3591e5cf9a8dfa6007d4f10732f02e32263850999286e56ccd650cfb2 \ + --hash=sha256:c6fd031333dedcad7ce3e03d244093f43504f209e86925ebdb2b868fa4037630 \ + --hash=sha256:c87a04e7f152ee4db5dbe15f0bfa3fe628a1aeedbe66b81c43b87f52c813f9ac \ + --hash=sha256:cdcd1ba258178f7356d74170c9a81ba4eab6a5d55748bc402a5a2a6fe6be3510 \ + --hash=sha256:d4737f50d23ddd11d6685faacbb9252887dde0bc7997127757247983d74399d6 \ + --hash=sha256:d7710eb676e9bb68965cb045be0d333b4c0d7f9dfbaa7fbf121385b1588683d3 \ + --hash=sha256:d9b0a2bee3f3e03e9f29057aedb807dbf1e1d96ee1b9d0f422d9db6c8583271d \ + --hash=sha256:e65dd6e75de67b2362a4fa3e16aa627595f65054dc4ec73d64680c84d592fa61 \ + --hash=sha256:e892354a424b1e82a78ba16785822bdd40de06f19446a3d4a28047df1a4f8932 \ + --hash=sha256:e8ca8f69b7c77fa96dad99f8638c1fc4f1c0bed4acaa1baf7a3c31bdb80a0ab1 \ + --hash=sha256:e91c2b1cbeae768c98752e67e717e283d68dae45717b41f2d91eaee648e37b7d \ + --hash=sha256:e98b4f91f99b24b1da72e10621ba181f7281922384a7403094debb4199de6c00 \ + --hash=sha256:ef5fe6b7db3f501c56000ba8fe7c7e1a35ca1d45824fbeb95a67daa85cff4dbe \ + --hash=sha256:f11a3c1358bb3c68012a7b1f41b223c3db9f7bfde90b481df028cfe1c3363313 \ + --hash=sha256:f391dc92a015c478745192fe4f2e120c2af2aba18d9fe0616341cbf537599806 \ + --hash=sha256:f7cbb7a64e7ec664775195e4f81923bc8a93d9451b963f844e59118f63147a7a \ + --hash=sha256:f9bd7d260d986f3553518c5d723544346fa48031f8aef3265d786aeb59845bc0 \ + --hash=sha256:fc481f742ccda20e9ed760b8f978dff50f2a4e9bc253ac167fb0a05b0783ef52 \ + --hash=sha256:ff3fe9eb621fbb9db4c4be33ab946f6bac5f98ab50ca8d3260503653656c961b \ + --hash=sha256:ffea6b2986a797c84b6d1d27d4f43e0b83c73fc16281a930891cd237cf0d08fe + # via matplotlib +psutil==7.2.2 \ + --hash=sha256:0746f5f8d406af344fd547f1c8daa5f5c33dbc293bb8d6a16d80b4bb88f59372 \ + --hash=sha256:076a2d2f923fd4821644f5ba89f059523da90dc9014e85f8e45a5774ca5bc6f9 \ + --hash=sha256:11fe5a4f613759764e79c65cf11ebdf26e33d6dd34336f8a337aa2996d71c841 \ + --hash=sha256:1a571f2330c966c62aeda00dd24620425d4b0cc86881c89861fbc04549e5dc63 \ + --hash=sha256:1a7b04c10f32cc88ab39cbf606e117fd74721c831c98a27dc04578deb0c16979 \ + --hash=sha256:1fa4ecf83bcdf6e6c8f4449aff98eefb5d0604bf88cb883d7da3d8d2d909546a \ + --hash=sha256:2edccc433cbfa046b980b0df0171cd25bcaeb3a68fe9022db0979e7aa74a826b \ + --hash=sha256:7b6d09433a10592ce39b13d7be5a54fbac1d1228ed29abc880fb23df7cb694c9 \ + --hash=sha256:8c233660f575a5a89e6d4cb65d9f938126312bca76d8fe087b947b3a1aaac9ee \ + --hash=sha256:917e891983ca3c1887b4ef36447b1e0873e70c933afc831c6b6da078ba474312 \ + --hash=sha256:ab486563df44c17f5173621c7b198955bd6b613fb87c71c161f827d3fb149a9b \ + --hash=sha256:ae0aefdd8796a7737eccea863f80f81e468a1e4cf14d926bd9b6f5f2d5f90ca9 \ + --hash=sha256:b0726cecd84f9474419d67252add4ac0cd9811b04d61123054b9fb6f57df6e9e \ + --hash=sha256:b58fabe35e80b264a4e3bb23e6b96f9e45a3df7fb7eed419ac0e5947c61e47cc \ + --hash=sha256:c7663d4e37f13e884d13994247449e9f8f574bc4655d509c3b95e9ec9e2b9dc1 \ + --hash=sha256:e452c464a02e7dc7822a05d25db4cde564444a67e58539a00f929c51eddda0cf \ + --hash=sha256:e78c8603dcd9a04c7364f1a3e670cea95d51ee865e4efb3556a3a63adef958ea \ + --hash=sha256:eb7e81434c8d223ec4a219b5fc1c47d0417b12be7ea866e24fb5ad6e84b3d988 \ + --hash=sha256:ed0cace939114f62738d808fdcecd4c869222507e266e574799e9c0faa17d486 \ + --hash=sha256:eed63d3b4d62449571547b60578c5b2c4bcccc5387148db46e0c2313dad0ee00 \ + --hash=sha256:fd04ef36b4a6d599bbdb225dd1d3f51e00105f6d48a28f006da7f9822f2606d8 + # via + # qiskit-aer + # quimb +pybind11==3.1.0 \ + --hash=sha256:a1cc06b524ab3edca51f8ad3895f9c4fa20b8b19283173dff4ae781449dc9639 \ + --hash=sha256:b8488090f8acffbcb6b5d6a85571a6827a0a2981ffb75e5a0b27b87c4a6b7dd0 + # via qsimcirq +pybind11-global==3.1.0 \ + --hash=sha256:ae4ce119e9f0d7a2ef2372a6bd70d7906073a67a7d7c759023601a629c4bbd36 \ + --hash=sha256:ba63ced81e1ae5c7b4f704d6adedec6ce1d80fbf9a2ab557a2ca380f29eb3320 + # via pybind11 +pyparsing==3.3.3 \ + --hash=sha256:928ae7e20211f3b6f3915a72f06a0cfd29ab9d24279dd6346b6b1a7146397d36 \ + --hash=sha256:ece8c00a69cf01b45d0b1dedabb469c90d8caf996d4fda40f147627a122849a4 + # via matplotlib +python-dateutil==4.0.0 \ + --hash=sha256:a5e246f79eb80475e691bf93862cead98decd8a498cf53ba0516fcdc0f50dc1c \ + --hash=sha256:d7295ff14fdc0f92f662100bfb6c551d160ca090f2939f1ec5b9794265c03f06 + # via + # matplotlib + # pandas + # qiskit-aer +qiskit==2.6.2 \ + --hash=sha256:4d775f072025039dac8269c1657970bb17b0965a41ce841bd6576b83d6ef2fd0 \ + --hash=sha256:7a6f2df167ed47b93cc3a72fbb4072ea873abff3f63941cbd884d0b227b83190 \ + --hash=sha256:9c3b47903705e6803df1087da75d744c8f7724847b074cf31b75362c98202bc5 \ + --hash=sha256:9e7214b8bab334a1532e1a71019fe3de7517388b349ee68697e7dd45348654a1 \ + --hash=sha256:9e99a5765aff4419463978437ebf9de15bccadbc663893d543d53de106da5535 \ + --hash=sha256:b85b5f7b56700b864cc06dbfb33f01453a42024cf5ab954a0e0a275127ebd255 \ + --hash=sha256:b8e20c86399c916e0e0b515c4cb5d22721a851b97c536b2f7e2afa1ee1931590 \ + --hash=sha256:e8578003e39facf72289fafae1542e38646e5cae7c93665f004046efa5797669 + # via + # -r requirements.in + # mqt-core + # mqt-ddsim + # qiskit-aer + # qiskit-qasm3-import +qiskit-aer==0.18.2 \ + --hash=sha256:014d05f6bb798d5717a5c938bc592b1ce0a7cd19ec10398ee2e761142406261a \ + --hash=sha256:0a39528b9583c0e902ef322d37cb0cdf0a3ccb8956b615258f47f3fba8e27ea4 \ + --hash=sha256:0b75628349dfc1eb745d392b63b9001248d045bc42a97112235c2194cd42c620 \ + --hash=sha256:0c010f3829b925e6cb77a1856d099b742b2dbfea517f9b0422eef9247f884b49 \ + --hash=sha256:120a0c495cb62cc8c9cf38a7d039c580e732e1bbb1cce6ad7aa5618f81b46523 \ + --hash=sha256:1ccaf87ab7f6bd956c4e96da0e84b3509ca31ad755727cd1538953b3cf0ebddb \ + --hash=sha256:2029706f823bf99bccb36a0e648053fb72a6f324f2f20574431b970e0542c16c \ + --hash=sha256:26713c8a65d9b4db5ab22e0e52898a7bed5ef2b04b1db012e432c2c011efc09a \ + --hash=sha256:2a27caeea887388eed4b14944577cbe74520c5ba332f0f7cf1e6012b272cc2d6 \ + --hash=sha256:40aa9bcbae38afaa8f01c4793eee771183f0f9f9349ec4ad796f1f032f254802 \ + --hash=sha256:54a8d60c416b10032c6f21f88051466f859c60adf0663fec7deef6f474807dbb \ + --hash=sha256:562d1fdfb89587491711c467b009d8f106a21d13caa40daae40d50d632266c4e \ + --hash=sha256:57201e4731c63a83af9164870dd1173b42da61bfa80cf7b4122821b4c81faea9 \ + --hash=sha256:5932c0c15fbb6ac2451d8773e1426e21f03d7c9b0086c3d49fb4f7b9d8903eb8 \ + --hash=sha256:617f8c35a06c86e12ebd85df261c34ec8f5265ebd622757486fbe390063f89b1 \ + --hash=sha256:6f6285f8214cdd53526fd0d33ff8f7855f7d87d98f57c3c6417cf87d29e542f9 \ + --hash=sha256:741b44d6b80a5806955221a524ea2ee1b6e23b6ce979a765a878a0dcf880cf51 \ + --hash=sha256:7b17daa83b0ab5e5d75660e0cd6007485bf28f8a88fd78d70a40dcbe208fa71a \ + --hash=sha256:8a0663ab93d7564165d6393c1e08291a9c68067481abd790492ced51e6897b6f \ + --hash=sha256:8df1171a0f3685d85a2e12425de7d907ee36d98e8cd749e9e853a7624037c060 \ + --hash=sha256:956d1b6bc307b7e7aaff1a61654303bd755ca737f6c6293f746fee73219638d2 \ + --hash=sha256:be5c5ad4d381653bdc4ab0f4e84c5347c4ee12683d7662dea612e4b04b32a710 \ + --hash=sha256:bfc0ce3ed51b00d9d7c2675e4a3021127ad57aab0836f72c2a5e4f9549db5084 \ + --hash=sha256:c8c2aef71c04f49377b3159d332d306a6d6e85b6a2dd7a4831e8cca01cfcd8c0 \ + --hash=sha256:cc5da3dc8f4f7a93f0caa5611317264c86fa42dbb74787286b81988a34917fb1 \ + --hash=sha256:d469ef2c7c5711b74b2d04b54c715350b76152f5623cc6036db3c91dc6ff420b \ + --hash=sha256:d471d1540f003382c0a9a6a81db3a0cec228c40fb425684d4c613e14d1238f0b \ + --hash=sha256:df3ef546a9c289d1ce33463c14dfad45af0a5a32d375a309c19cabc30e0447cc \ + --hash=sha256:e009515fbde3e163cadd76ba062ae9688f98593097d8c2560600e3e2a72d33d0 \ + --hash=sha256:eacd82b70dbad3963f44e50db2d9075d7c89b3ecb879626211413af4a261c496 \ + --hash=sha256:efaf9770252e33b9c993f400ec3407c645266e8248c6fa9fe679e787c87e587b \ + --hash=sha256:f21a15e7409c729bdcd79fe16e9d7e2e8f2460702bb8929de2a0b75657c14bac \ + --hash=sha256:f5628ab71b791a634a61fac4ec6d51347111ad6e45ffb174db25e2b9afe4080d \ + --hash=sha256:fac7088fe1067fd5d100bc61ea6a18b528a99926c49f70f6eb2fecd49d01839d \ + --hash=sha256:ff5919f174399dd296a18ae0ae43d545f894c714135c8a2f2ded887476b97162 \ + --hash=sha256:ffe3885a4d72083b79776d16695473f3e412115519991d5084b255d849c908a9 + # via -r requirements.in +qiskit-qasm3-import==0.6.0 \ + --hash=sha256:2109b65a6859bec4a51e7b61bd525365f298f67f19b3952bf602423c6d21d697 \ + --hash=sha256:6b763ee58538b33eaf5aaa8126b687f3c03f26c4d28e6a4f04f9be24a6b184ff + # via qiskit +qsimcirq==0.22.1 \ + --hash=sha256:0de15a2b8bebad4f8166922797e44f5da3d29aa14d71a8b4ce277774d3d498ea \ + --hash=sha256:16ece72681fc99b71c31c44a9464353e41edb2c10f9f8b381ae6cf7756d69c3e \ + --hash=sha256:18f4cd93b25caf3fcf824d9fb34d0067ac1b3078d6a3a8db7474b1805f8fe98d \ + --hash=sha256:1c2f5d8f38ba2cc2a808bb6e6ccb91701b11d810357eeb4d888a664ba45bb395 \ + --hash=sha256:1f694f445b3a156f740382c6a9a9e8d79343c389acc88ad52a819d024832cab8 \ + --hash=sha256:320dbd7ee61d34b135be8fba497e4fc0fabb0133f0067076aa85529121784f15 \ + --hash=sha256:3519287025c3ae876500b563a16e046c3f7ff4629f42307a499f7bd9377af221 \ + --hash=sha256:3c173dbc3dc458aa5c8e684cee7d2122fb982cd4dca4a927d0b82b7e2c00198d \ + --hash=sha256:642199384070041495131a08d52362cf9dda7804e02255a4619e2d1f74cd5738 \ + --hash=sha256:6563a0be721abc77a270b4218f6011e64c44b1bd89def11a7cce43654eee2c97 \ + --hash=sha256:718e76419ca4537594f036862eedab0300d922902f60f54a9a0688c48921a44e \ + --hash=sha256:7b18aada0372bf1ea1799c30edcae8411a51797aeb7becaa3bea775284070ca2 \ + --hash=sha256:82dc81fc1be7941abd77696dcd278a4aede785798b6d3ebd9291be686882e193 \ + --hash=sha256:86937420a97718415fef23bcbec0013fb3eb28f2d81a5113aab74e91bcf060a0 \ + --hash=sha256:97dd7c804a46f3b241b3932f9ee0e5a4f1fc342ba716cc116a730808b0332c82 \ + --hash=sha256:a7959f161b7ed1c165e5ff6c2069e8b5297507fc0c94a9db0a848b863e268780 \ + --hash=sha256:ae0a2e6a90cc39140684e8497683de791d593fc23921758d39a7c855f7c2b8ae \ + --hash=sha256:d3d2c6b6195ff4fe7b45b00bc2f38c32f8b1bc0fb85acc49289e334ed53ebcf5 \ + --hash=sha256:e4a97372ac4e9647d5fb5dce715a13a93ab21a7bd2056b9bbdcf30fccd6afc1d \ + --hash=sha256:f239d25fb0514fa236311872737fdbdac15ead9836d878f8d16c06761579eae1 + # via -r requirements.in +quimb==1.15.0 \ + --hash=sha256:5ebe1679fbdd53d951ef5f47817f1639635a2f58f4cfcbefd636802066bebe46 \ + --hash=sha256:a8b4a11df89f50a8dcea6722c58d6077fa4133c9caaafba7412310877e51d81a + # via -r requirements.in +rustworkx==0.18.1 \ + --hash=sha256:1ebd2441a51c68a784df8c62dc2e6f1a9f58c0eb1c2e21fd59776e08f55c0c0b \ + --hash=sha256:212d0a4b5ccec8cc8c3879dd1fd13b1e61894c708185f12eb63ae571349c4d95 \ + --hash=sha256:30affe6ee52a6257a01152418f9c1686ca114e7ab4a3bf87bb87fe35b7350f3e \ + --hash=sha256:48d42983e62412e3ffc1e58c2ec55222ec82fc0e4c6dac576ee203d71091038e \ + --hash=sha256:5ebcdd8c55d91583c94aa62ef332de3a724b69a57ae2b5c9fcf7051f3b41fc88 \ + --hash=sha256:63784612ccefb866ab1e07c48060a3f7ff5309629a263db6ba4a0d9a84581852 \ + --hash=sha256:67dcdfcc3dfc8262f7627d2b3ae85ac74de1b1dcababf637a1116444c4adb621 \ + --hash=sha256:685d4f69da6ecfd35110f4d7933c6fa392fb25c98f369b24032758d1c57d8055 \ + --hash=sha256:77103c119e71d816c04bcc60443184cae9550c1d49e5c28a046850252c0e9846 \ + --hash=sha256:80a397a164003d9ff91c11357f9c34120c39bc33a62d095dcef2b75dd4feec51 \ + --hash=sha256:8c771009dee311e207772ee17277887c3bd2fbd0de6a208e8019962ca4432008 \ + --hash=sha256:91feb30971df6ac53d51503970e4aac67e4d9bc7834535f2b7cd3674645003ac \ + --hash=sha256:aedc1b30330927810588b3dcf5e3032c5379cd19580fd01ec8e13f1cec55c30d \ + --hash=sha256:b23264fcd2feb254ce5a1bea641cad9f97e06202c5c0904d5fc6abd95c6113ef \ + --hash=sha256:ba997e8c22564bf17b110514fba530bfd0ee2868506c3e8e4b4bd3f388e87b3d \ + --hash=sha256:c42a0a52463ff78c0dd03426efa7b40b17b433689c2a5ab6aaaf14173c2a9e31 \ + --hash=sha256:c622843757ce6afd950b6f3c45b79f0078fb8d9a66f6783b5963594d1f9073bf \ + --hash=sha256:ebd6f2e28940eb983f254f7fe92b474651ac149e1bedfdaa4272dff22551cf4a \ + --hash=sha256:f8ad39453d65c85111ba887377899d568ded6ecfb5384f3182483a23426b8f58 + # via qiskit +scipy==1.18.1 \ + --hash=sha256:011413b7426b75012840e35649e00fe0a2c3bae89fed433876e3a99251572efc \ + --hash=sha256:0ac49ea97594532dd44b7136094d35f5440fa06e6d9c6384a74c01764df388c5 \ + --hash=sha256:0e82073ecc7acc6436fac4b31674109c7e1d3e596789767eda01258a8c9e8123 \ + --hash=sha256:0fcb3c93519f27bb4f0c4b0f7802cdcaca7fcf93267b75edda2e9f4e8a55cbd7 \ + --hash=sha256:10ac20c69d880f77f375db44c22e3e6a644f9fefa291d4cd2fb9790a89fc99fd \ + --hash=sha256:11c423f1049c5755ad4409af52a9ada1cff96fe9b50795d4af3619f292901239 \ + --hash=sha256:179ce34a8d0fe273d8883ba59e17e052247d08973dfcb743ca52bb1cce2d60b0 \ + --hash=sha256:1bca3b943fc2567ea49cd02c99abde49da4d5178ec46f624bd8255cda8755beb \ + --hash=sha256:1d73131e358976663dd969e1fb4ed1404b815cd977eaaedc3b3a133ba2d81c35 \ + --hash=sha256:2a0b02f9fc46f8520330c23d45e6560db7e3a0d927232139427637f98943e11d \ + --hash=sha256:2d3ab0e8c69a17dd3559eab8cbb88f258e285c94d572c2719033f90f83290c89 \ + --hash=sha256:30f464bee641fa8e282577c7dce027308403213c6ca8270bba73285c91024bc5 \ + --hash=sha256:33a834464fdabc0f26a45508df31b3cc5d028e04dbf6c5ed398541418e0a12fe \ + --hash=sha256:3ab3523da44749156e1f68b464dc56af11ae4cbc5c739a49d05f32b982eca9f3 \ + --hash=sha256:3c085faa2cfa879c5141df483f836f4d691045a078224a670fa570fa01612d89 \ + --hash=sha256:457fd7a2a8edeb044ab6ffbc0aa03ff6cd18491356e5e0c834d76ce621b916d1 \ + --hash=sha256:49023963c193dacee096301452f223ee24d86ec5807f8df93c0f7221d119e305 \ + --hash=sha256:52c4b7422442aba924d03ad4019852b08a92e64ea187b933135687bfe2747307 \ + --hash=sha256:559ed65f60c1af5a03f3912605a1b5114f522c7c32fb23c3376ae8f03219fe28 \ + --hash=sha256:5632e3ae3d09197c446310cd5187de63e28448ce22f0f67b2b93d97503c0c230 \ + --hash=sha256:5e4d44984abc0020154ea81b247adeddcc3ac5527b975ff798bd1ba0adc513c2 \ + --hash=sha256:75b00eb8fb802090aa903f4ea1c7f5a584779f967361e68b7e98e531cc2d7174 \ + --hash=sha256:78a0d7c918e74a232394117160e7e3db503377572a45bcef8826e4ab8a35feba \ + --hash=sha256:78c0665edead396b1abb4897c41a5c1d9bf090c8a637a4c20a61678e0a264e66 \ + --hash=sha256:7bbf207c4453ce1ad2e00b17313852b33310b83090c2311bdaf97f93c0380d12 \ + --hash=sha256:7f4b8bc363b6d65ee2152bec57568e3c52639bb34c46057b09857a307ed5e21d \ + --hash=sha256:82f201b4c878551d48558337aab270d3c6cca5507b8737c8d8a608d234cccde0 \ + --hash=sha256:83de5453a7799afc9048b4616bd085cef126e36412f0ea2f6370c36a2a3a51e7 \ + --hash=sha256:88f0e784020649f88ea48c9f5ddfa403bf9205820667c0914740b392035afb82 \ + --hash=sha256:8bcf3c1ba5d6456e2effd30fcbd3459b044d683fcdac79a2e6830f0bdf7de487 \ + --hash=sha256:911de823097db8b63f034299d12662db93344e6ffa0b881cbb57748974b70168 \ + --hash=sha256:92c14f5bdbfb6216315ce33e78080474082de8b3830122ba97809bfbe65f75c0 \ + --hash=sha256:95298364e251be3e60249facbeeca03631d3bb7584f85879516ec55ac717b81f \ + --hash=sha256:9554bcc6d715ee87a633a3cc8e7703c6628b100dd29cb8a2efc4c0533c7ff729 \ + --hash=sha256:9f2897bf7737392ad0d5213ea7b6add72a4edf5679b3153106aeb88b6507b3b9 \ + --hash=sha256:a1d33a7836f7ddc1993427966a0823468ec41bcbdb1a9f9942d1d7e57f803ba3 \ + --hash=sha256:ac0333bdf38309aa3dcbe7e3fa7ea29e7a2c37c6ea306a757b700ded8e4596ad \ + --hash=sha256:bff0b729edd992766136b34e39cc76bc2fad905aa58897ee72a9cd000a6d8443 \ + --hash=sha256:c24acac1e18912761c4700239bbc1fd32f615af690f1584d49b35859be51324d \ + --hash=sha256:c35d74ce0e193ff740c2f2be2ac913ddc232fe6c1ff40b26cfecb9c670c63314 \ + --hash=sha256:c825cef2f49e46753726a7181a8e199804a912b29519ada542c6ebc654951899 \ + --hash=sha256:c9d18a33309122074ea483dd92dd444189166b8b2ec429fe9ed5ac73c7a0aa23 \ + --hash=sha256:cbf38d043c1aa4ab306e1ada6ab6eddacc3322a20b7af1b30bc93254b366fe09 \ + --hash=sha256:cd479fc04dd9401e3b4f49e76518768ef99c4f517a98c284eb091fd725719adf \ + --hash=sha256:ceb30a00ce7c92d459819443d29ca486d882b83fb6738bdcbb2a1cce94ac5daa \ + --hash=sha256:cfbf154f2ba187f2ed6cce2639efff7d105f1140573642c0161615b6d91d6a87 \ + --hash=sha256:d2924a03db38dc2e848bca2fe9f077dafb891480b91a00a0963a8cf86dfc31c1 \ + --hash=sha256:d416b16cccfd70fbf62400e84d0bb2f4e6af519a45557f1692c749b37f14b315 \ + --hash=sha256:d65d448389b8436493abcf629cc94ad0cf32aecaf06e1acca1de53cc795f2f12 \ + --hash=sha256:d84a09d0dad90ba6525d8ac1c2334b33e64bf3ccfe9e841f02feb867a22681e4 \ + --hash=sha256:ddef79fb382df40104a19bb7151b3b23e57c1778fcf857c71ceecd9bd264513f \ + --hash=sha256:e3b417bf8c2c7c16e8f58ad91db17783ec911ac16e7b50eb6eab6e809b4f5b07 \ + --hash=sha256:e402cf31eb68f453dbb2d36fc6d722b33f24a55d68b2ae1d92fa6305ca71c298 \ + --hash=sha256:e6fb6a55cc0ba97b59a1f288fb86dc6fce8bdfc0fffcbfd015e3a954bf2a2d93 \ + --hash=sha256:e708533e8b2ae2497d65346538a7dcc92814410b25b81432eac66de0f2af8265 \ + --hash=sha256:ea324d9dd34c38bfb9bec8ca4d1b407db97dbb74029f566b8e322b1b6fe56fe6 \ + --hash=sha256:eb0dfcf4e28a99c12c999744a2ff67c9b06200e20401c7c88186e33552a46331 \ + --hash=sha256:eda632a7981f69730d6281f451db9c1c370993a2c0d7ddb43e2a809a2862b83a \ + --hash=sha256:f29633129f9fa7e88a3f0fca835de2d030bfc9643f7799e1a0c46cee24d38fc7 \ + --hash=sha256:f55fa87b6c612ecd6b058f167c53231b1d14e412efe361d3d6e38b3631c73218 \ + --hash=sha256:fdaf5ea890a6183d0565f51a61799d67081bd5b1cf03c5f4b3fd3732108625c9 + # via + # cirq-core + # qiskit + # qiskit-aer + # quimb +setuptools==84.2.1 \ + --hash=sha256:3ff8b3b5492a0aa66960f4419365a86b84e013070d4313e4d4a6894f5d64d6bc \ + --hash=sha256:ca140b45d5325a9478f880e351484f62fef15f336462e449ca0c03c873d589c2 + # via qsimcirq +stevedore==5.9.1 \ + --hash=sha256:5c8ff3a9f336cc1a06ac0f597bc79d11a2f950bfd32e290ca56b5a301fafafbf \ + --hash=sha256:e97a2667923efda926e8713fde6a73616df68210a3cbc6f02b48967b676fd8bf + # via qiskit +stim==1.16.0 \ + --hash=sha256:1822adb4920f4616b253792fe1893ad07a9bea8cbc45b2f4cdf7c75a8083cd00 \ + --hash=sha256:1890bda08adfd6daa875d1d5e41039c5ae8c58faabc7cd1813f8d8de9f1536a2 \ + --hash=sha256:1e78fe10ab4c28af9ceb57ac8ed895f3efcde9607d851ef931c53d1f6f80bc8e \ + --hash=sha256:1fa60a13ef921d6e6aea420e2fe7551d71a4a07b513d86da89e39259dd3739f9 \ + --hash=sha256:3e2883216fb4f57411531c99dfa1838c0d8201c619ccd01b197b9afd54d326cf \ + --hash=sha256:41c02d52af847e0ab886c35751e8f7e17e2e0d055e390ece93a50a12dcf87e56 \ + --hash=sha256:55231457b5897b0ef798059aae01d9e8247fc8b2089e8a27f9f4bb13b0342af2 \ + --hash=sha256:609666b77197d45705e1579a9840123a53cebe614e8bf1d496c0df24f797e653 \ + --hash=sha256:66dbc6532169df84d127ceede353b15445e845a94aa008c5d0a4062b51cc2b02 \ + --hash=sha256:84b777678cc12e808b3d6747d57e07eed951f8ec18047a936dfa25dbc950a2e2 \ + --hash=sha256:85b9c544c65377a42c6b5c9a57616a5ed5580e1cabb286a604800a045c7a12fb \ + --hash=sha256:883b24c3c95fa69818e931e8b60daf4fc8195d159d321e7548d8706dbac16558 \ + --hash=sha256:8d44f858f3d5d1107e674886facbb011ed85438f0888278d6aa3c1f42d9e5a5f \ + --hash=sha256:9092a996429dcf616d8d4ca01fec886b7b310caf9425a39fcfe499005636bd52 \ + --hash=sha256:b367f90826e796417932ea46c0e53d80e3c5bebac0c6633c0aa07a8fcaa4298b \ + --hash=sha256:b8580dfbe5ff27594dd15a83b24262630b82cf089d1463d29dbee90ffbc6898b \ + --hash=sha256:bd2d28093818f981f8dedb2be160b62d818279b81748d72dc4fca6cdd160291d \ + --hash=sha256:d467b5599de7e171651a1ff7fac353dd64d78df75d9c63e7d870d576eb0fd64b \ + --hash=sha256:ed3aa70f82690946ba6f70abb9dad448d49ab9499fa5161de5f286da87c30ab1 \ + --hash=sha256:f22a009bad1e7816aeb70bdeafb6789e4840710da070f69cde91e2ac6cf1e800 \ + --hash=sha256:f94040cbeeff786e7fb8860249e54d9ba3f777b5b098d21f1eccd072d3a3c32a + # via -r requirements.in +sympy==1.14.0 \ + --hash=sha256:d3d3fe8df1e5a0b42f0e7bdf50541697dbe7d23746e894990c030e2b05e72517 \ + --hash=sha256:e091cc3e99d2141a0ba2847328f5479b05d94a6635cb96148ccb3f34671bd8f5 + # via cirq-core +toolz==1.2.0 \ + --hash=sha256:890f820b1cb8152785aaf9386d8707770110809035800985ca65cb24ce1120ef \ + --hash=sha256:9667a038e9d6ecba37995e26cb2f59ec6420b6ad8dd9677de59db9b956b08490 + # via cytoolz +tqdm==4.70.1 \ + --hash=sha256:c293e525e6fef9c20e8728fd4612df02a0aa31bb5fe91ecd93e123b1b7bffa73 \ + --hash=sha256:cefd0eca11b2a37a3aee776544d4f4ae913f02688135b5556b8788dfa474afc4 + # via + # cirq-core + # quimb +typing-extensions==4.16.0 \ + --hash=sha256:481caa481374e813c1b176ada14e97f1f67a4539ce9cfeb3f350d78d6370c2e8 \ + --hash=sha256:dc983d19a509c94dba722ee6abd33940f7c05a89e243c47e907eb4db6f1a43e5 + # via + # qiskit + # qsimcirq +tzdata==2026.6 \ + --hash=sha256:0a10eec6e13ef16b627fabed9a5f2ba61a62b1c67f327305f4e7e412a70b4aec \ + --hash=sha256:85d2cd9c09f81f0bb29db27759fc83af4f1e620efb814f8c5bf8b4cc4feece6d + # via + # pandas + # python-dateutil diff --git a/wai/quantum-cross-simulator/provider/seeded_statevector_provider.py b/wai/quantum-cross-simulator/provider/seeded_statevector_provider.py new file mode 100644 index 000000000..1cbf1d8f9 --- /dev/null +++ b/wai/quantum-cross-simulator/provider/seeded_statevector_provider.py @@ -0,0 +1,221 @@ +#!/usr/bin/env python3 +"""A provider of the open provider protocol (wai/extensions/quantum-providers.md) around a +third-party state-vector simulator, run as a local process: one JSON message a line on standard +input, one JSON answer a line on standard output (§2.2). + + wai-quantum providers add sim --kind process -- python3 -I seeded_statevector_provider.py + wai-quantum providers test sim + wai-quantum run bell.qasm --provider sim --shots 1000 --json > job.json + wai-quantum verify job.json + +It is the template to copy for a device of your own. Everything the protocol asks of a provider +is here, and the device is one class, `Device`: replace its `run` with a call to your device and +its `DESCRIPTION` with what your device is, and the rest stays as it is. + +The device here is the pinned simulator the corpus compares against (env/requirements.lock), +seeded, so the same job gives the same counts. A program arrives in the device's own gates with +every angle an exact fraction of a turn; each gate is built from the simulator's own gate of that +meaning, and nothing is transpiled, so the program the client compiled and checked is the one +that runs. Nothing here takes or needs a credential. +""" +import json +import math +import sys + +PROTOCOL = "wai.quantum.provider/1" +BASES = {"rzsxxcz": ["rz", "sx", "x", "cz"], "prxcz": ["prx", "cz"], "gpizz": ["gpi", "gpi2", "zz"]} +MAX_SHOTS = 1_000_000 + + +class Refusal(Exception): + def __init__(self, code, message): + super().__init__(message) + self.code, self.message = code, message + + +class Device: + """The simulator. Replace `run` (and DESCRIPTION) to bring another device.""" + + NAME = "seeded-statevector" + QUBITS = 24 + BASIS = "rzsxxcz" + DESCRIPTION = "a third-party state-vector simulator in double precision (Qiskit Aer, the version pinned in the corpus's lock), sampled with the job's seed" # allow-name: the simulator this template wraps, named as data + + def __init__(self): + import qiskit_aer + + self.version = qiskit_aer.__version__ + + def run(self, program, shots, seed): + """Counts keyed by the program's classical bits, the highest bit first.""" + from qiskit import QuantumCircuit + from qiskit_aer import AerSimulator + + used = sorted({q for g in program["gates"] for q in g["qubits"]} | {m["qubit"] for m in program["measure"]}) + at = {q: i for i, q in enumerate(used)} + qc = QuantumCircuit(len(used), program["bits"]) + for g in program["gates"]: + q = [at[x] for x in g["qubits"]] + t = [2 * math.pi * m / (1 << k) for m, k in g.get("turns", [])] + name = g["gate"] + # Each gate by its definition in the protocol (§4), from the simulator's gate of that meaning. + if name == "rz": + qc.rz(t[0], q[0]) # exp(-iπt·Z) is Rz(2πt) + elif name == "sx": + qc.sx(q[0]) + elif name == "x": + qc.x(q[0]) + elif name == "cz": + qc.cz(q[0], q[1]) + elif name in ("prx", "gpi", "gpi2"): + theta, phi = {"prx": (t[0] if t else 0, t[1] if len(t) > 1 else 0), "gpi": (math.pi, t[0]), "gpi2": (math.pi / 2, t[0])}[name] + qc.rz(-phi, q[0]) + qc.rx(theta, q[0]) + qc.rz(phi, q[0]) + elif name == "zz": + qc.rzz(t[0], q[0], q[1]) # exp(-iπt·Z⊗Z) is Rzz(2πt) + for m in program["measure"]: + qc.measure(at[m["qubit"]], m["bit"]) + sim = AerSimulator(method="statevector", seed_simulator=seed) + counts = sim.run(qc, shots=shots).result().get_counts() + return {k.replace(" ", ""): int(v) for k, v in counts.items()} + + +def check_program(m, device): + """The program and its shots, refused as the protocol says (§4) when they are not one this + device runs.""" + p = m.get("program") + if not isinstance(p, dict) or p.get("format") != "wai.native/1": + raise Refusal("invalid", "a program's format is wai.native/1") + basis = p.get("basis") + if basis not in BASES: + raise Refusal("invalid", "a program's basis is rzsxxcz, prxcz or gpizz") + bits = p.get("bits") + if not isinstance(bits, int) or isinstance(bits, bool) or not 1 <= bits <= 64: + raise Refusal("invalid", "a program's bits count its classical bits, 1 to 64") + shots = m.get("shots") + if not isinstance(shots, int) or isinstance(shots, bool) or not 1 <= shots <= MAX_SHOTS: + raise Refusal("invalid", "%r shots; this device takes 1 to %d" % (shots, MAX_SHOTS)) + arity = {"rz": (1, 1), "sx": (1, 0), "x": (1, 0), "cz": (2, 0), "prx": (1, 2), "gpi": (1, 1), "gpi2": (1, 1), "zz": (2, 1)} + gates = p.get("gates") + if not isinstance(gates, list): + raise Refusal("invalid", "a program's gates are a list") + for i, g in enumerate(gates): + name = g.get("gate") if isinstance(g, dict) else None + if name not in BASES[basis]: + raise Refusal("invalid", "gate %d: %r is not a gate of the basis %s" % (i, name, basis)) + qs, ts = g.get("qubits"), g.get("turns", []) + nq, nt = arity[name] + if not isinstance(qs, list) or len(qs) != nq or not all(isinstance(q, int) and q >= 0 for q in qs) or len(set(qs)) != nq: + raise Refusal("invalid", "gate %d: the wrong qubits for %s" % (i, name)) + if not isinstance(ts, list) or len(ts) != nt: + raise Refusal("invalid", "gate %d: the wrong turns for %s" % (i, name)) + for t in ts: + if not (isinstance(t, list) and len(t) == 2 and all(isinstance(x, int) and x >= 0 for x in t) and t[1] <= 32 and t[0] < (1 << t[1])): + raise Refusal("invalid", "gate %d: %r is not m/2^k of a turn with m < 2^k, k <= 32" % (i, t)) + measure = p.get("measure") + if not isinstance(measure, list): + raise Refusal("invalid", "a program's measurements are a list") + read = {} + for x in measure: + b, q = x.get("bit"), x.get("qubit") + if not isinstance(b, int) or not 0 <= b < bits or not isinstance(q, int) or q < 0: + raise Refusal("invalid", "%r: a measurement reads a qubit into one of the program's bits" % (x,)) + if b in read: + raise Refusal("invalid", "bit %d is measured twice" % b) + read[b] = q + if sorted(read) != list(range(bits)): + raise Refusal("invalid", "bit %d measures no qubit" % min(set(range(bits)) - set(read))) + if len(set(read.values())) != len(read): + raise Refusal("invalid", "a qubit is measured into two bits") + # Well formed; now, can this device run it? + if basis != device.BASIS: + raise Refusal("refused", "this device runs %s, not %s" % (" ".join(BASES[device.BASIS]), " ".join(BASES[basis]))) + if any(q >= device.QUBITS for g in gates for q in g["qubits"]) or any(q >= device.QUBITS for q in read.values()): + raise Refusal("refused", "a qubit this device does not have: it has %d" % device.QUBITS) + return p, shots + + +class Provider: + def __init__(self, device): + self.device = device + self.jobs = {} + self.next = 1 + + def describe(self): + d = self.device + return { + "ok": True, + "protocol": PROTOCOL, + "provider": d.NAME, + "device": "%s-%d" % (d.NAME, d.QUBITS), + "provenance": "simulator", + "simulator": "%s, version %s" % (d.DESCRIPTION, d.version), + "qubits": d.QUBITS, + "native_gates": BASES[d.BASIS], + "connectivity": "all", + "calibration": {"id": "%s-%s" % (d.NAME, d.version)}, + "billing": {"free": True}, + "max_shots": MAX_SHOTS, + "seeded": True, + } + + def handle(self, m): + if not isinstance(m, dict): + raise Refusal("invalid", "a message is a JSON object") + if "protocol" not in m: + raise Refusal("invalid", "a message names its protocol") + if m["protocol"] != PROTOCOL: + raise Refusal("unsupported_version", "this provider speaks %s, not %s" % (PROTOCOL, m["protocol"])) + op = m.get("op") + if op == "describe": + return self.describe() + if op == "estimate": + check_program(m, self.device) + return {"ok": True, "free": True, "seconds": 0} + if op == "submit": + p, shots = check_program(m, self.device) + seed = m.get("seed", 1) + if not isinstance(seed, int) or seed < 0: + raise Refusal("invalid", "a seed is a whole number") + try: + counts = self.device.run(p, shots, seed) + except Exception as e: # noqa: BLE001 - the device's failure, reported as the protocol's + raise Refusal("internal", "the simulator failed: %s" % type(e).__name__) + job = "sv-%d" % self.next + self.next += 1 + self.jobs[job] = {"counts": counts, "shots": shots} + return {"ok": True, "job": job} + if op in ("status", "result", "cancel"): + job = m.get("job") + if not isinstance(job, str): + raise Refusal("invalid", "name the `job`") + if job not in self.jobs: + raise Refusal("not_found", "no job %s" % job) + if op == "result": + j = self.jobs[job] + return {"ok": True, "counts": j["counts"], "shots": j["shots"]} + # A job here finishes when it is submitted, so it is always done. + return {"ok": True, "status": "done"} + if op is None: + raise Refusal("invalid", "a message names its op") + raise Refusal("unsupported", "no operation %r; the operations are describe, estimate, submit, status, result and cancel" % (op,)) + + +def main(): + provider = Provider(Device()) + for line in sys.stdin: + if not line.strip(): + continue + try: + answer = provider.handle(json.loads(line)) + except Refusal as r: + answer = {"ok": False, "error": {"code": r.code, "message": r.message}} + except ValueError: + answer = {"ok": False, "error": {"code": "invalid", "message": "not JSON"}} + sys.stdout.write(json.dumps(answer) + "\n") + sys.stdout.flush() + + +if __name__ == "__main__": + main() diff --git a/wai/quantum-cross-simulator/provider/test.sh b/wai/quantum-cross-simulator/provider/test.sh new file mode 100644 index 000000000..843c8aff2 --- /dev/null +++ b/wai/quantum-cross-simulator/provider/test.sh @@ -0,0 +1,61 @@ +#!/usr/bin/env bash +# provider/test.sh: the provider template through the command line, as a person uses it. +# +# bash provider/test.sh path/to/wai-quantum path/to/python +# +# It adds the template as a `process` provider, holds it to the protocol's conformance vectors +# (`providers test`), runs a program on it with `run --provider`, and verifies the receipt the +# command line seals. Everything is in a directory of its own, removed at the end: no key, no +# registry and no credential of the person's is touched. +set -euo pipefail +W="$1" +PY="$2" +case "$W" in */*) W="$(cd "$(dirname "$W")" && pwd)/$(basename "$W")" ;; esac +HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +tmp="$(mktemp -d)" +trap 'rm -rf "$tmp"' EXIT +export XDG_CONFIG_HOME="$tmp/config" WAI_QUANTUM_PROVIDERS="$tmp/providers.json" WAI_QUANTUM_CREDENTIALS=file +unset WAI_QUANTUM_KEY +fail() { echo "provider: $*" >&2; exit 1; } + +"$W" providers add sim --kind process -- "$PY" -I "$HERE/seeded_statevector_provider.py" > "$tmp/add.txt" +"$W" providers describe sim > "$tmp/describe.txt" || fail "describe failed: $(cat "$tmp/describe.txt")" +if ! "$W" providers test sim > "$tmp/test.txt" 2>&1; then + cat "$tmp/test.txt" >&2 + fail "the protocol's conformance vectors failed" +fi +grep -qE '^ *[1-9][0-9]* passed, 0 failed' "$tmp/test.txt" || { cat "$tmp/test.txt" >&2; fail "a vector failed, or none ran"; } +echo "provider: conformance vectors passed" +sed 's/^/ /' "$tmp/test.txt" | head -40 + +cat > "$tmp/ghz.qasm" <<'EOF' +OPENQASM 3.0; +include "stdgates.inc"; +qubit[3] q; +bit[3] c; +h q[0]; +cx q[0], q[1]; +cx q[1], q[2]; +t q[2]; +c = measure q; +EOF +"$W" run "$tmp/ghz.qasm" --provider sim --shots 4000 --json > "$tmp/job.json" || fail "run --provider failed: $(head -c 2000 "$tmp/job.json")" +"$W" verify "$tmp/job.json" > "$tmp/verify.txt" || fail "the receipt did not verify: $(cat "$tmp/verify.txt")" +grep -q VALID "$tmp/verify.txt" || fail "verify did not say VALID" +"$PY" -I - "$tmp/job.json" <<'EOF' +import json, sys +j = json.load(open(sys.argv[1])) +r = j["result"] +counts = r["counts"] +assert set(counts) <= {"000", "111"}, counts +assert sum(counts.values()) == 4000, counts +assert r["accuracy"]["class"] == "simulated", r["accuracy"] +assert r["provider"]["provenance"].startswith("simulator"), r["provider"] +ideal = r.get("ideal") or {} +tvd = ideal.get("tvd", ideal.get("total_variation")) +print("provider: run --provider sealed %s; counts %s; ideal %s" % (r["method"], counts, json.dumps(ideal)[:200])) +EOF +# The same job twice gives the same counts: the device is seeded. +"$W" run "$tmp/ghz.qasm" --provider sim --shots 4000 --json > "$tmp/job2.json" +"$PY" -I -c 'import json,sys; a,b=(json.load(open(p))["result"]["counts"] for p in sys.argv[1:]); assert a == b, (a, b); print("provider: seeded, the same counts twice")' "$tmp/job.json" "$tmp/job2.json" +echo "provider: PASS" diff --git a/wai/quantum-cross-simulator/reproduce.sh b/wai/quantum-cross-simulator/reproduce.sh new file mode 100644 index 000000000..2fa16e386 --- /dev/null +++ b/wai/quantum-cross-simulator/reproduce.sh @@ -0,0 +1,184 @@ +#!/usr/bin/env bash +# reproduce.sh: the cross-simulator corpus, regenerated and judged from nothing but this +# repository, a Rust toolchain and the network. +# +# bash wai/quantum-cross-simulator/reproduce.sh [--tier ci|full] [--out FILE] +# [--jobs N] [--inject FAULT] [--self-test] [--perf] [--no-provider] +# +# It needs macOS on arm64 or Linux on x86_64, curl, tar, a C compiler and rustup (or cargo at +# the version rust-toolchain.toml names). No account and no key: every download is pinned by +# version and SHA-256. +# +# 1. uv, the pinned release, unless that version is already on PATH; +# 2. CPython 3.12.16 and the engines of env/requirements.lock, every wheel checked against its +# hash, in a virtual environment of their own; +# 3. the engine under test, built from this checkout with its lockfile (--locked); +# 4. tools/compare.py: every circuit on every engine, each answer held to its reference within +# its stated tolerance; it prints each failure and PASS or FAIL; +# 5. provider/test.sh: the provider template, added, held to the protocol's conformance vectors, +# run and its receipt verified. +# +# --self-test runs one circuit for each fault compare.py can inject, and passes only if every one +# of those runs fails, on the engine and the check that fault breaks. --perf runs tools/perf.py. +# Downloads and builds go to $QCORPUS_CACHE (default ~/.cache/wai-quantum-cross-simulator). +# Exit status: 0 every check passed, 1 a check failed, 2 the run could not be made. +set -euo pipefail + +HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +REPO="$(cd "$HERE/../.." && pwd)" +TIER=ci +OUT="" +JOBS=2 +INJECT="" +SELFTEST=0 +PERF=0 +PROVIDER=1 +while [ $# -gt 0 ]; do + case "$1" in + --tier) TIER="$2"; shift 2 ;; + --out) OUT="$2"; shift 2 ;; + --jobs) JOBS="$2"; shift 2 ;; + --inject) INJECT="$2"; shift 2 ;; + --self-test) SELFTEST=1; shift ;; + --perf) PERF=1; shift ;; + --no-provider) PROVIDER=0; shift ;; + -h|--help) sed -n '2,25p' "$0"; exit 0 ;; + *) echo "reproduce.sh: unknown argument $1" >&2; exit 2 ;; + esac +done + +die() { echo "reproduce.sh: $*" >&2; exit 2; } +CACHE="${QCORPUS_CACHE:-${XDG_CACHE_HOME:-$HOME/.cache}/wai-quantum-cross-simulator}" +mkdir -p "$CACHE" +for t in curl tar; do command -v "$t" >/dev/null || die "needs $t"; done + +# 1. uv, pinned. +UV_VERSION=0.13.6 +# The two platforms every pinned engine publishes wheels for (env/requirements.in says which do not +# elsewhere). On another, the run stops here rather than build a third party's code from source. +case "$(uname -s)-$(uname -m)" in + Darwin-arm64) UV_TARGET=aarch64-apple-darwin; UV_SHA=60fbd5c8a1ed681845eea28d9d622fcde03c51e91a43465b64a1e17db1ed3472 ;; + Linux-x86_64) UV_TARGET=x86_64-unknown-linux-gnu; UV_SHA=f29c3e94ffabd7e6f3ba521dba169a9b7ec12100bf3257087f0f24f6123f3645 ;; + *) die "the pinned engines publish no wheels for $(uname -s) $(uname -m): run it on macOS on arm64 or Linux on x86_64" ;; +esac +UV="" +if command -v uv >/dev/null && [ "$(uv --version | awk '{print $2}')" = "$UV_VERSION" ]; then + UV="$(command -v uv)" +elif [ -x "$CACHE/uv-$UV_VERSION/uv" ]; then + UV="$CACHE/uv-$UV_VERSION/uv" +else + echo "== uv $UV_VERSION ($UV_TARGET)" >&2 + f="$CACHE/uv-$UV_TARGET.tar.gz" + curl --proto '=https' --tlsv1.2 -sSfL -o "$f" "https://github.com/astral-sh/uv/releases/download/$UV_VERSION/uv-$UV_TARGET.tar.gz" + got="$( (command -v sha256sum >/dev/null && sha256sum "$f" || shasum -a 256 "$f") | awk '{print $1}')" + [ "$got" = "$UV_SHA" ] || die "uv's archive has SHA-256 $got, not $UV_SHA" + mkdir -p "$CACHE/uv-$UV_VERSION" + tar -xzf "$f" -C "$CACHE/uv-$UV_VERSION" --strip-components 1 + UV="$CACHE/uv-$UV_VERSION/uv" +fi +export UV_CACHE_DIR="$CACHE/uv-cache" UV_PYTHON_INSTALL_DIR="$CACHE/python" + +# 2. The interpreter and the engines, every wheel against its hash. +PY_VERSION=3.12.16 +LOCK="$HERE/env/requirements.lock" +LOCK_ID="$( (command -v sha256sum >/dev/null && sha256sum "$LOCK" || shasum -a 256 "$LOCK") | cut -c1-16)" +VENV="$CACHE/venv-$PY_VERSION-$LOCK_ID" +if [ ! -x "$VENV/bin/python" ] || [ ! -f "$VENV/.complete" ]; then + echo "== CPython $PY_VERSION and the pinned engines" >&2 + rm -rf "$VENV" + "$UV" venv --quiet --python "$PY_VERSION" --python-preference only-managed "$VENV" + "$UV" pip install --quiet --python "$VENV/bin/python" --require-hashes --only-binary :all: -r "$LOCK" + touch "$VENV/.complete" +fi +PY="$VENV/bin/python" + +# 3. The engine under test, from this checkout. +command -v cargo >/dev/null || die "needs cargo: install rustup (https://rustup.rs); rust-toolchain.toml picks the version" +echo "== the engine under test (cargo build --locked --release)" >&2 +( cd "$REPO/wai/wai-quantum-cli" && cargo build --locked --release --quiet --bin wai-quantum --example cross_simulator ) || die "the build failed" +TARGET="${CARGO_TARGET_DIR:-$REPO/wai/wai-quantum-cli/target}" +export WAI_CROSS_SIMULATOR="$TARGET/release/examples/cross_simulator" WAI_QUANTUM="$TARGET/release/wai-quantum" +[ -x "$WAI_CROSS_SIMULATOR" ] || die "no driver at $WAI_CROSS_SIMULATOR" +# What was built and run, as git tree ids of the files as they are on disk, committed or not: +# `git rev-parse :wai/wai-quantum` gives the same id for any commit that holds the same +# engine. A tree that differs from HEAD's is marked "(uncommitted)", and outside a git checkout +# the id is "unknown". +INDEX="$(mktemp)" +tree() { + local id head + id=$( (cd "$REPO" && cp "$(git rev-parse --git-path index)" "$INDEX" && GIT_INDEX_FILE="$INDEX" git add -A -- "$1" >/dev/null 2>&1 && GIT_INDEX_FILE="$INDEX" git write-tree --prefix="$1/") 2>/dev/null ) || { echo unknown; return; } + head=$( (cd "$REPO" && git rev-parse "HEAD:$1") 2>/dev/null || true) + [ "$id" = "$head" ] && echo "$id" || echo "$id (uncommitted)" +} +# The toolchain cargo built with: rustc as rust-toolchain.toml picks it in the checkout. +export WAI_BUILD_INFO="wai/wai-quantum $(tree wai/wai-quantum), wai/wai-quantum-qpu $(tree wai/wai-quantum-qpu), wai/wai-quantum-cli $(tree wai/wai-quantum-cli), wai/quantum-cross-simulator/tools $(tree wai/quantum-cross-simulator/tools), wai/quantum-cross-simulator/corpus $(tree wai/quantum-cross-simulator/corpus); $(cd "$REPO/wai/wai-quantum-cli" && rustc --version 2>/dev/null || true)" +rm -f "$INDEX" + +if [ $SELFTEST -eq 1 ]; then + # Each fault must fail the run on the check it breaks, on the engine it was put into, and + # nothing but that engine may fail. + status=0 + while read -r fault eng tier only timeout what; do + log="$CACHE/selftest-$fault.log" + if "$PY" -I "$HERE/tools/compare.py" --tier "$tier" --jobs "$JOBS" --inject "$fault" --only "$only" --timeout "$timeout" > "$log" 2>&1; then + echo "self-test: the fault '$fault' passed unnoticed" >&2; status=1 + elif ! grep -q -E "^FAIL +[^ ]+ +$eng +.*$what" "$log"; then + echo "self-test: the fault '$fault' failed the run, but not $eng's check '$what':" >&2; grep "^FAIL " "$log" | head -3 >&2; tail -2 "$log" >&2; status=1 + elif grep "^FAIL " "$log" | grep -v -E "^FAIL +[^ ]+ +$eng " | grep -q .; then + echo "self-test: the fault '$fault' failed another engine as well:" >&2; grep "^FAIL " "$log" | grep -v -E "^FAIL +[^ ]+ +$eng " | head -3 >&2; status=1 + else + echo "self-test: the fault '$fault' was caught: $(grep -m1 -E "^FAIL +[^ ]+ +$eng +.*$what" "$log" | cut -c1-200)" + fi + done <<'FAULTS' +amplitude aer.statevector ci qft_n5_x19 900 distance from the exact state +bit_order wai.statevector ci bit_order_product 900 distance from the exact state +counts stim.tableau ci reset_after_superposition 900 largest deviation of an outcome's count +counts_spread aer.statevector full qft_counts_n8 900 L1 distance +dem wai.qec ci surface_z_d3 900 mechanisms +qec_rate wai.qec ci surface_z_d3 900 detection and flip rates +stabilizer stim.tableau ci clifford_random_n65 900 reduced stabilizer group +fixed_point wai.exact ci ghz_n3 900 state hash +drop_gate wai.exact ci small_angle_k32 900 the op-log is the circuit +drop_phase wai.statevector full below_grid_k48 900 holds the phase +refuse wai.mps ci mps_ghz_n30 900 gave no answer +crash wai.auto ci ghz_n3 900 gave no answer +hang wai.qec ci surface_z_d3 60 gave no answer +accept wai.exact ci rotations_n6 900 accepts a circuit it must refuse +qec_words wai.qec ci qec_inverted_and_tagged 900 gave no answer +qec_crash wai.qec ci qec_refused_random_detector 900 gave no answer +exact_words wai.exact ci rotations_n6 900 gave no answer +qec_short wai.qec ci surface_z_d3 900 detectors, observables and shots returned +exact_turn wai.exact full qft_wide_n20 900 64 amplitudes against the closed form +phase_flip wai.statevector full repeated_phase_k19_quarter 900 distance from the exact state, with its phase +mps_phase aer.mps full mps_qft_n40 900 amplitudes against the closed form +counts_collapse stim.tableau ci clifford_counts_n40 900 the most frequent outcome's count +FAULTS + [ $status -eq 0 ] && echo "self-test: every injected fault was caught" || echo "self-test: FAIL" >&2 + exit $status +fi + +if [ $PERF -eq 1 ]; then + # QCORPUS_PERF_ARGS passes options to tools/perf.py: --repeat N, --quick, --only PREFIX. + # shellcheck disable=SC2086 + exec "$PY" -I "$HERE/tools/perf.py" ${OUT:+--out "$OUT"} ${QCORPUS_PERF_ARGS:-} +fi + +# 4. The corpus. +[ -n "$OUT" ] || OUT="$CACHE/run-$TIER-$(uname -s)-$(uname -m).json" +echo "== the corpus, tier $TIER" >&2 +set +e +"$PY" -I "$HERE/tools/compare.py" --tier "$TIER" --jobs "$JOBS" --out "$OUT" ${INJECT:+--inject "$INJECT"} 2> "$CACHE/compare-progress.log" +corpus=$? +set -e +[ $corpus -le 1 ] || die "the comparison could not be made (see $CACHE/compare-progress.log)" +echo "results: $OUT" + +# 5. The provider template. +provider=0 +if [ $PROVIDER -eq 1 ]; then + echo "== the provider template" >&2 + bash "$HERE/provider/test.sh" "$WAI_QUANTUM" "$PY" || provider=1 +fi +[ $corpus -eq 0 ] && [ $provider -eq 0 ] && { echo "reproduce: PASS"; exit 0; } +echo "reproduce: FAIL" +exit 1 diff --git a/wai/quantum-cross-simulator/results/conformance-linux-x86_64.json b/wai/quantum-cross-simulator/results/conformance-linux-x86_64.json new file mode 100644 index 000000000..1ae46e897 --- /dev/null +++ b/wai/quantum-cross-simulator/results/conformance-linux-x86_64.json @@ -0,0 +1,18078 @@ +{ + "about": "One run of the cross-simulator corpus: every check, its measured value and its tolerance. tools/compare.py writes it.", + "tier": "full", + "inject": null, + "host": { + "system": "Linux", + "machine": "x86_64", + "release": "7.0.0-38-generic", + "cpu": "AMD RYZEN AI MAX+ 395 w/ Radeon 8060S", + "memory_bytes": 131890810880, + "os": "Ubuntu 26.04.1 LTS", + "logical_cpus": 32, + "load_average": [ + 18.97412109375, + 19.46484375, + 20.2333984375 + ] + }, + "versions": { + "cirq-core": "1.7.0", + "mqt.core": "3.11.0", + "mqt.ddsim": "2.7.0", + "numpy": "2.5.4", + "python": "3.12.16", + "qiskit": "2.6.2", + "qiskit-aer": "0.18.2", + "qsimcirq": "0.22.1", + "quimb": "1.15.0", + "scipy": "1.18.1", + "stim": "1.16.0" + }, + "engine_under_test": { + "driver": "cross_simulator", + "build": "wai/wai-quantum fb308edc04d9803b8549b17fbabbdd53aa453776, wai/wai-quantum-qpu c1031872aac2c4d2bcf134af80b9dc454954a2de, wai/wai-quantum-cli 24fea35fd3b93a064120613c39cae963e1a66762, wai/quantum-cross-simulator/tools 185753899b00ca765330a404b6617eb569cdd26b, wai/quantum-cross-simulator/corpus 464ca70c805b560a246962242c1db196435455f3; rustc 1.99.1 (58cf8f9c3 2026-10-13)" + }, + "seconds": 2705.1, + "summary": { + "pass": 1637, + "refused": 12, + "not run": 12, + "info": 12, + "known": 11 + }, + "checks": [ + { + "entry": "corpus", + "engine": "corpus.py", + "quantity": "circuits whose text differs from the manifest", + "measured": [], + "tolerance": [], + "status": "pass" + }, + { + "entry": "corpus", + "engine": "exact", + "quantity": "the extension's phase table P(1..32): the integer reference's cos and sin, rounded to the nearest 2^-30, against the referee's", + "measured": [], + "tolerance": [], + "status": "pass" + }, + { + "entry": "bit_order_x_low", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 0.0, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.0, + "global_phase": 0.0 + }, + { + "entry": "bit_order_x_low", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 0.0, + "tolerance": 2.2965544605210906e-15, + "status": "pass" + }, + { + "entry": "bit_order_x_low", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "bit_order_x_low", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 4.700863032062479e-15, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.000157497 + }, + { + "entry": "bit_order_x_low", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 4.871667415400809e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.00014822 + }, + { + "entry": "bit_order_x_low", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 4.871667415400809e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.000146406, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "bit_order_x_low", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 4.700863032062479e-15, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.8253884341102093 + }, + { + "entry": "bit_order_x_low", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 1.468476820049565e-13, + "status": "pass", + "note": "double precision, a contraction of width 5.0", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.0019783650059252977 + }, + { + "entry": "bit_order_x_low", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 1.3666778863689539e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.008821613155305386 + }, + { + "entry": "bit_order_x_low", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 1.3077299742866642e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.0006729101296514273 + }, + { + "entry": "bit_order_x_low", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 5, + "tolerance": 5, + "status": "pass" + }, + { + "entry": "bit_order_x_low", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 5.357107147574425e-05 + }, + { + "entry": "bit_order_x_low", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 5.671e-06 + }, + { + "entry": "bit_order_x_low", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 0, + "tolerance": 0, + "status": "pass" + }, + { + "entry": "bit_order_x_low", + "engine": "aer.stabilizer", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.00011666 + }, + { + "entry": "bit_order_x_low", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 0.0, + "tolerance": 4.440892098500626e-16, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "bit_order_x_high", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 0.0, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.0, + "global_phase": 0.0 + }, + { + "entry": "bit_order_x_high", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 0.0, + "tolerance": 2.2965544605210906e-15, + "status": "pass" + }, + { + "entry": "bit_order_x_high", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "bit_order_x_high", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 4.700863032062479e-15, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.000137449 + }, + { + "entry": "bit_order_x_high", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 4.871667415400809e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.000121389 + }, + { + "entry": "bit_order_x_high", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 4.871667415400809e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.000112823, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "bit_order_x_high", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 4.700863032062479e-15, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.8802080759778619 + }, + { + "entry": "bit_order_x_high", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 1.468476820049565e-13, + "status": "pass", + "note": "double precision, a contraction of width 5.0", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.0020747960079461336 + }, + { + "entry": "bit_order_x_high", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 1.3666778863689539e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.007929818937554955 + }, + { + "entry": "bit_order_x_high", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 1.3077299742866642e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.0006201609503477812 + }, + { + "entry": "bit_order_x_high", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 5, + "tolerance": 5, + "status": "pass" + }, + { + "entry": "bit_order_x_high", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 5.470309406518936e-05 + }, + { + "entry": "bit_order_x_high", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 1.563e-06 + }, + { + "entry": "bit_order_x_high", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 0, + "tolerance": 0, + "status": "pass" + }, + { + "entry": "bit_order_x_high", + "engine": "aer.stabilizer", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.000122751 + }, + { + "entry": "bit_order_x_high", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 0.0, + "tolerance": 4.440892098500626e-16, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "bit_order_product", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.101340961075098e-09, + "tolerance": 4.4478839744439606e-07, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.6636598699191941, + "global_phase": -0.6764855256910371 + }, + { + "entry": "bit_order_product", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.1686050303392196e-15, + "tolerance": 6.003997213418409e-14, + "status": "pass" + }, + { + "entry": "bit_order_product", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "bit_order_product", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.7994248207898495e-16, + "tolerance": 5.6410356384752665e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.853028722211445e-16, + "global_phase": -5.504485103160786e-17, + "seconds": 0.000219134 + }, + { + "entry": "bit_order_product", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.5470875668068414e-16, + "tolerance": 3.166583820010611e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.7214193512736154e-16, + "global_phase": -7.54854054484019e-17, + "seconds": 0.000175561 + }, + { + "entry": "bit_order_product", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.5470875668068414e-16, + "tolerance": 3.166583820010611e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.7214193512736154e-16, + "global_phase": -7.54854054484019e-17, + "seconds": 0.000171043, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "bit_order_product", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.949534607949252e-16, + "tolerance": 5.6410356384752665e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 3.964222321740644e-16, + "global_phase": -3.4093253995171833e-17, + "seconds": 2.624515068018809 + }, + { + "entry": "bit_order_product", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.718413879481438e-16, + "tolerance": 1.134612720231851e-12, + "status": "pass", + "note": "double precision, a contraction of width 6.0", + "strict": 2.773703885184681e-16, + "global_phase": -5.510528309801803e-17, + "seconds": 0.002897498896345496 + }, + { + "entry": "bit_order_product", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.928203655289495e-17, + "tolerance": 1.9128618742088685e-11, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 6.011275315895486e-17, + "global_phase": 9.959077994004481e-18, + "seconds": 0.009815128054469824 + }, + { + "entry": "bit_order_product", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.25595633077455e-08, + "tolerance": 1.5692985431664063e-05, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.518581035832407e-08, + "global_phase": 1.33385189244294e-08, + "seconds": 0.0007974950131028891 + }, + { + "entry": "bit_order_product", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 2.4598166528067604e-09, + "tolerance": 4.4478839788848527e-07, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "bit_order_control", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 0.0, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.0, + "global_phase": 0.0 + }, + { + "entry": "bit_order_control", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 0.0, + "tolerance": 3.7049305013420606e-15, + "status": "pass" + }, + { + "entry": "bit_order_control", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "bit_order_control", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 9.401726064125002e-15, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.000177044 + }, + { + "entry": "bit_order_control", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 7.307501123101233e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.000156285 + }, + { + "entry": "bit_order_control", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 7.307501123101233e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.000172586, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "bit_order_control", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 9.401726064125002e-15, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 1.521343678003177 + }, + { + "entry": "bit_order_control", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.3306690738754696e-16, + "tolerance": 6.120442760161298e-14, + "status": "pass", + "note": "double precision, a contraction of width 4.0", + "strict": 3.3306690738754696e-16, + "global_phase": 0.0, + "seconds": 0.002386074047535658 + }, + { + "entry": "bit_order_control", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 2.2786084218528912e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.010502093937247992 + }, + { + "entry": "bit_order_control", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 2.6154633688797537e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.000694510992616415 + }, + { + "entry": "bit_order_control", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 4, + "tolerance": 4, + "status": "pass" + }, + { + "entry": "bit_order_control", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 7.14350026100874e-05 + }, + { + "entry": "bit_order_control", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 6.482e-06 + }, + { + "entry": "bit_order_control", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 0, + "tolerance": 0, + "status": "pass" + }, + { + "entry": "bit_order_control", + "engine": "aer.stabilizer", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.000115308 + }, + { + "entry": "bit_order_control", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 0.0, + "tolerance": 4.440892098500626e-16, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "empty_register", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 0.0, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.0, + "global_phase": 0.0 + }, + { + "entry": "empty_register", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 0.0, + "tolerance": 8.881784197001252e-16, + "status": "pass" + }, + { + "entry": "empty_register", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "empty_register", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 0.0, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.000104347 + }, + { + "entry": "empty_register", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 2.4358337077003988e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.000159922 + }, + { + "entry": "empty_register", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 2.4358337077003988e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.000146346, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "empty_register", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 0.0, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 1.1874086239840835 + }, + { + "entry": "empty_register", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.00484897312708199 + }, + { + "entry": "empty_register", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 0.0, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.013287954032421112 + }, + { + "entry": "empty_register", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 0.0, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.0005324948579072952 + }, + { + "entry": "empty_register", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 3, + "tolerance": 3, + "status": "pass" + }, + { + "entry": "empty_register", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 5.5203912779688835e-05 + }, + { + "entry": "empty_register", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 4.338e-06 + }, + { + "entry": "empty_register", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 0, + "tolerance": 0, + "status": "pass" + }, + { + "entry": "empty_register", + "engine": "aer.stabilizer", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.000104076 + }, + { + "entry": "empty_register", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 0.0, + "tolerance": 4.440892098500626e-16, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "one_qubit", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.886171750317574e-12, + "tolerance": 3.179734171119112e-09, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 7.886171750317574e-12, + "global_phase": 0.0 + }, + { + "entry": "one_qubit", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.5700924586837752e-16, + "tolerance": 2.2965544605210906e-15, + "status": "pass" + }, + { + "entry": "one_qubit", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "one_qubit", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.835808657661923e-17, + "tolerance": 4.700863032062479e-15, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 6.835808657661923e-17, + "global_phase": 0.0, + "seconds": 0.00015371 + }, + { + "entry": "one_qubit", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.9157615060679e-17, + "tolerance": 4.871667415400809e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.9157615060679e-17, + "global_phase": 0.0, + "seconds": 0.000172255 + }, + { + "entry": "one_qubit", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.9157615060679e-17, + "tolerance": 4.871667415400809e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.9157615060679e-17, + "global_phase": 0.0, + "seconds": 0.000161284, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "one_qubit", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.865115929175827e-17, + "tolerance": 4.700863032062479e-15, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.865115929175827e-17, + "global_phase": 0.0, + "seconds": 1.699231754988432 + }, + { + "entry": "one_qubit", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.865115929175827e-17, + "tolerance": 2.8167520816419354e-15, + "status": "pass", + "note": "double precision, a contraction of width 1.0", + "strict": 8.865115929175827e-17, + "global_phase": 0.0, + "seconds": 0.0008915630169212818 + }, + { + "entry": "one_qubit", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.835808657661923e-17, + "tolerance": 4.571831845943713e-13, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 6.835808657661923e-17, + "global_phase": 0.0, + "seconds": 0.012292624916881323 + }, + { + "entry": "one_qubit", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.7114271035800384e-08, + "tolerance": 1.3077299742866642e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.7114271035800384e-08, + "global_phase": 0.0, + "seconds": 0.0006446659099310637 + }, + { + "entry": "one_qubit", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 1, + "tolerance": 1, + "status": "pass" + }, + { + "entry": "one_qubit", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 4.851212725043297e-05 + }, + { + "entry": "one_qubit", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 5.25e-06 + }, + { + "entry": "one_qubit", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 1, + "tolerance": 1, + "status": "pass" + }, + { + "entry": "one_qubit", + "engine": "aer.stabilizer", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.000101071 + }, + { + "entry": "one_qubit", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 5.576365522251341e-12, + "tolerance": 3.179734615208322e-09, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "top_index_n20", + "engine": "aer.statevector ~ ddsim.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.1102230246251565e-16, + "tolerance": 9.627989877124816e-12, + "status": "pass" + }, + { + "entry": "top_index_n20", + "engine": "aer.statevector ~ qsim.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.7114271182663092e-08, + "tolerance": 2.6154634423035948e-06, + "status": "pass" + }, + { + "entry": "top_index_n20", + "engine": "aer.statevector ~ quimb.dense", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.1102230246251565e-16, + "tolerance": 8.282556706659787e-14, + "status": "pass" + }, + { + "entry": "top_index_n20", + "engine": "aer.statevector ~ wai.exact", + "quantity": "distance between the two states, modulo a global phase", + "measured": 7.886181897244677e-12, + "tolerance": 2.302373546467205e-06, + "status": "pass" + }, + { + "entry": "top_index_n20", + "engine": "aer.statevector ~ wai.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.1102230246251565e-16, + "tolerance": 8.282556706659787e-14, + "status": "pass" + }, + { + "entry": "top_index_n20", + "engine": "ddsim.statevector ~ qsim.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.7114271104158468e-08, + "tolerance": 2.61547292344579e-06, + "status": "pass" + }, + { + "entry": "top_index_n20", + "engine": "ddsim.statevector ~ quimb.dense", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.5700924586837752e-16, + "tolerance": 9.563967762186469e-12, + "status": "pass" + }, + { + "entry": "top_index_n20", + "engine": "ddsim.statevector ~ wai.exact", + "quantity": "distance between the two states, modulo a global phase", + "measured": 7.886103392230998e-12, + "tolerance": 2.3023830276094e-06, + "status": "pass" + }, + { + "entry": "top_index_n20", + "engine": "ddsim.statevector ~ wai.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 0.0, + "tolerance": 9.563967762186469e-12, + "status": "pass" + }, + { + "entry": "top_index_n20", + "engine": "qsim.statevector ~ quimb.dense", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.7114270790139978e-08, + "tolerance": 2.6154633782814798e-06, + "status": "pass" + }, + { + "entry": "top_index_n20", + "engine": "qsim.statevector ~ wai.exact", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.71221572075507e-08, + "tolerance": 4.9178368419231175e-06, + "status": "pass" + }, + { + "entry": "top_index_n20", + "engine": "qsim.statevector ~ wai.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.7114271104158468e-08, + "tolerance": 2.6154633782814798e-06, + "status": "pass" + }, + { + "entry": "top_index_n20", + "engine": "quimb.dense ~ wai.exact", + "quantity": "distance between the two states, modulo a global phase", + "measured": 7.886260401476866e-12, + "tolerance": 2.30237348244509e-06, + "status": "pass" + }, + { + "entry": "top_index_n20", + "engine": "quimb.dense ~ wai.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.5700924586837752e-16, + "tolerance": 1.8803452128250005e-14, + "status": "pass" + }, + { + "entry": "top_index_n20", + "engine": "wai.exact ~ wai.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 7.886103392230998e-12, + "tolerance": 2.30237348244509e-06, + "status": "pass" + }, + { + "entry": "ghz_n2", + "engine": "exact", + "quantity": "integer reference against the closed form, units of 2^-256", + "measured": 0, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "ghz_n2", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.886171750317574e-12, + "tolerance": 4.49682318953782e-09, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 7.886171750317574e-12, + "global_phase": 0.0 + }, + { + "entry": "ghz_n2", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.5700924586837752e-16, + "tolerance": 3.7049305013420606e-15, + "status": "pass" + }, + { + "entry": "ghz_n2", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "ghz_n2", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.835808657661923e-17, + "tolerance": 9.401726064125002e-15, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 6.835808657661923e-17, + "global_phase": 0.0, + "seconds": 0.000156536 + }, + { + "entry": "ghz_n2", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.9157615060679e-17, + "tolerance": 7.307501123101233e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.9157615060679e-17, + "global_phase": 0.0, + "seconds": 0.00016417 + }, + { + "entry": "ghz_n2", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.9157615060679e-17, + "tolerance": 7.307501123101233e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.9157615060679e-17, + "global_phase": 0.0, + "seconds": 0.000165272, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "ghz_n2", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.865115929175827e-17, + "tolerance": 9.401726064125002e-15, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.865115929175827e-17, + "global_phase": 0.0, + "seconds": 1.2261964529752731 + }, + { + "entry": "ghz_n2", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.026696510285133e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 4.026696510285133e-16, + "global_phase": 0.0, + "seconds": 0.0017494519706815481 + }, + { + "entry": "ghz_n2", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.835808657661923e-17, + "tolerance": 1.3691137200766543e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 6.835808657661923e-17, + "global_phase": 0.0, + "seconds": 0.023394781863316894 + }, + { + "entry": "ghz_n2", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.7114271035800384e-08, + "tolerance": 2.6154633688797537e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.7114271035800384e-08, + "global_phase": 0.0, + "seconds": 0.0007524401880800724 + }, + { + "entry": "ghz_n2", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 5.576365522251341e-12, + "tolerance": 4.49682363362703e-09, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "ghz_n3", + "engine": "exact", + "quantity": "integer reference against the closed form, units of 2^-256", + "measured": 0, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "ghz_n3", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.886171750317574e-12, + "tolerance": 6.359468342238224e-09, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 7.886171750317574e-12, + "global_phase": 0.0 + }, + { + "entry": "ghz_n3", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.5700924586837752e-16, + "tolerance": 5.113306542163034e-15, + "status": "pass" + }, + { + "entry": "ghz_n3", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "ghz_n3", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.835808657661923e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 6.835808657661923e-17, + "global_phase": 0.0, + "seconds": 0.000163529 + }, + { + "entry": "ghz_n3", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.9157615060679e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.9157615060679e-17, + "global_phase": 0.0, + "seconds": 0.000160753 + }, + { + "entry": "ghz_n3", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.9157615060679e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.9157615060679e-17, + "global_phase": 0.0, + "seconds": 0.000158209, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "ghz_n3", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.865115929175827e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.865115929175827e-17, + "global_phase": 0.0, + "seconds": 0.948953254846856 + }, + { + "entry": "ghz_n3", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.166881427652682e-16, + "tolerance": 2.8205178192375537e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 7.166881427652682e-16, + "global_phase": 0.0, + "seconds": 0.002177580026909709 + }, + { + "entry": "ghz_n3", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.835808657661923e-17, + "tolerance": 2.7357916064493307e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 6.835808657661923e-17, + "global_phase": 0.0, + "seconds": 0.016542076133191586 + }, + { + "entry": "ghz_n3", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.7114271035800384e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.7114271035800384e-08, + "global_phase": 0.0, + "seconds": 0.0007383339107036591 + }, + { + "entry": "ghz_n3", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 5.576365522251341e-12, + "tolerance": 6.359468786327434e-09, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "ghz_n5", + "engine": "exact", + "quantity": "integer reference against the closed form, units of 2^-256", + "measured": 0, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "ghz_n5", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.886171750317574e-12, + "tolerance": 1.2718936684476448e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 7.886171750317574e-12, + "global_phase": 0.0 + }, + { + "entry": "ghz_n5", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.5700924586837752e-16, + "tolerance": 7.930058623804993e-15, + "status": "pass" + }, + { + "entry": "ghz_n5", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "ghz_n5", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.835808657661923e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 6.835808657661923e-17, + "global_phase": 0.0, + "seconds": 0.000230325 + }, + { + "entry": "ghz_n5", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.9157615060679e-17, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.9157615060679e-17, + "global_phase": 0.0, + "seconds": 0.000160874 + }, + { + "entry": "ghz_n5", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.9157615060679e-17, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.9157615060679e-17, + "global_phase": 0.0, + "seconds": 0.000141797, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "ghz_n5", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.865115929175827e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.865115929175827e-17, + "global_phase": 0.0, + "seconds": 1.4985487388912588 + }, + { + "entry": "ghz_n5", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1877158803704008e-15, + "tolerance": 2.4474613667495144e-13, + "status": "pass", + "note": "double precision, a contraction of width 5.0", + "strict": 1.1877158803704008e-15, + "global_phase": 0.0, + "seconds": 0.007196664810180664 + }, + { + "entry": "ghz_n5", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.835808657661923e-17, + "tolerance": 6.833389431881993e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 6.835808657661923e-17, + "global_phase": 0.0, + "seconds": 0.01436785189434886 + }, + { + "entry": "ghz_n5", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.7114271035800384e-08, + "tolerance": 6.538684074497576e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.7114271035800384e-08, + "global_phase": 0.0, + "seconds": 0.0007744210306555033 + }, + { + "entry": "ghz_n5", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 5.576365522251341e-12, + "tolerance": 1.2718937128565658e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "ghz_n8", + "engine": "exact", + "quantity": "integer reference against the closed form, units of 2^-256", + "measured": 0, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "ghz_n8", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.886171750317574e-12, + "tolerance": 3.597458551630256e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 7.886171750317574e-12, + "global_phase": 0.0 + }, + { + "entry": "ghz_n8", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.5700924586837752e-16, + "tolerance": 1.2155186746267961e-14, + "status": "pass" + }, + { + "entry": "ghz_n8", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "ghz_n8", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.835808657661923e-17, + "tolerance": 3.760690425650107e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 6.835808657661923e-17, + "global_phase": 0.0, + "seconds": 0.000303373 + }, + { + "entry": "ghz_n8", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.9157615060679e-17, + "tolerance": 2.1922503369304018e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.9157615060679e-17, + "global_phase": 0.0, + "seconds": 0.000173337 + }, + { + "entry": "ghz_n8", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.9157615060679e-17, + "tolerance": 2.1922503369304018e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.9157615060679e-17, + "global_phase": 0.0, + "seconds": 0.000184017, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "ghz_n8", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.865115929175827e-17, + "tolerance": 3.760690425650107e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.865115929175827e-17, + "global_phase": 0.0, + "seconds": 0.9585623140446842 + }, + { + "entry": "ghz_n8", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.757808339054176e-15, + "tolerance": 7.474057491103321e-12, + "status": "pass", + "note": "double precision, a contraction of width 8.0", + "strict": 2.757808339054176e-15, + "global_phase": 0.0, + "seconds": 0.004431375069543719 + }, + { + "entry": "ghz_n8", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.835808657661923e-17, + "tolerance": 1.639039130184232e-11, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 6.835808657661923e-17, + "global_phase": 0.0, + "seconds": 0.009389683837071061 + }, + { + "entry": "ghz_n8", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.7114271035800384e-08, + "tolerance": 1.046193556287323e-05, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.7114271035800384e-08, + "global_phase": 0.0, + "seconds": 0.0008055700454860926 + }, + { + "entry": "ghz_n8", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 5.576365522251341e-12, + "tolerance": 3.597458596039177e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "ghz_n12", + "engine": "exact", + "quantity": "integer reference against the closed form, units of 2^-256", + "measured": 0, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "ghz_n12", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.886171750317574e-12, + "tolerance": 1.4389834206521024e-07, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 7.886171750317574e-12, + "global_phase": 0.0 + }, + { + "entry": "ghz_n12", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.5700924586837752e-16, + "tolerance": 1.778869090955197e-14, + "status": "pass" + }, + { + "entry": "ghz_n12", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "ghz_n12", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.835808657661923e-17, + "tolerance": 5.6410356384752665e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 6.835808657661923e-17, + "global_phase": 0.0, + "seconds": 0.003601999 + }, + { + "entry": "ghz_n12", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.9157615060679e-17, + "tolerance": 3.166583820010611e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.9157615060679e-17, + "global_phase": 0.0, + "seconds": 0.000304084 + }, + { + "entry": "ghz_n12", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.9157615060679e-17, + "tolerance": 3.166583820010611e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.9157615060679e-17, + "global_phase": 0.0, + "seconds": 0.000312029, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "ghz_n12", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.865115929175827e-17, + "tolerance": 5.6410356384752665e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.865115929175827e-17, + "global_phase": 0.0, + "seconds": 0.9666608609259129 + }, + { + "entry": "ghz_n12", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.071826830790931e-15, + "tolerance": 6.99680530712346e-10, + "status": "pass", + "note": "double precision, a contraction of width 12.0", + "strict": 3.071826830790931e-15, + "global_phase": 0.0, + "seconds": 0.007977219065651298 + }, + { + "entry": "ghz_n12", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.835808657661923e-17, + "tolerance": 3.549952337489475e-11, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 6.835808657661923e-17, + "global_phase": 0.0, + "seconds": 0.014155782060697675 + }, + { + "entry": "ghz_n12", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.7114271035800384e-08, + "tolerance": 1.5692985431664063e-05, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.7114271035800384e-08, + "global_phase": 0.0, + "seconds": 0.0008066829759627581 + }, + { + "entry": "ghz_n12", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 5.576365522251341e-12, + "tolerance": 1.4389834250929945e-07, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "qft_n3_x5", + "engine": "exact", + "quantity": "integer reference against the closed form, units of 2^-256", + "measured": 2, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "qft_n3_x5", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.313392689245104e-10, + "tolerance": 2.225813932221083e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 9.313392689245104e-10, + "global_phase": 0.0 + }, + { + "entry": "qft_n3_x5", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.995802653854976e-16, + "tolerance": 1.6380314868730963e-14, + "status": "pass" + }, + { + "entry": "qft_n3_x5", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "qft_n3_x5", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.252779016081387e-16, + "tolerance": 4.230776728856391e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.257974101246671e-16, + "global_phase": 1.5308084989341915e-17, + "seconds": 0.000157818 + }, + { + "entry": "qft_n3_x5", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.1840584452439329e-16, + "tolerance": 2.4358337077004524e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 4.3884324549296737e-16, + "global_phase": 3.806340515408302e-16, + "seconds": 0.000170813 + }, + { + "entry": "qft_n3_x5", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.1840584452439329e-16, + "tolerance": 2.4358337077004524e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 4.3884324549296737e-16, + "global_phase": 3.806340515408302e-16, + "seconds": 0.000171113, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "qft_n3_x5", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.632807079419969e-16, + "tolerance": 4.230776728856391e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.6677932835798804e-16, + "global_phase": 4.306366060497084e-17, + "seconds": 1.4130381310824305 + }, + { + "entry": "qft_n3_x5", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.997573211542422e-16, + "tolerance": 1.2240885520323343e-13, + "status": "pass", + "note": "double precision, a contraction of width 4.0", + "strict": 7.524080403774347e-16, + "global_phase": -2.765095852147809e-16, + "seconds": 0.002552699064835906 + }, + { + "entry": "qft_n3_x5", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.237121377012062e-16, + "tolerance": 8.20737481939266e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 2.237121377012062e-16, + "global_phase": 0.0, + "seconds": 0.01368179707787931 + }, + { + "entry": "qft_n3_x5", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.702671112978455e-08, + "tolerance": 1.1769692899611298e-05, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.268347795371965e-08, + "global_phase": -1.8378428171781463e-08, + "seconds": 0.0008593418169766665 + }, + { + "entry": "qft_n3_x5", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 4.684494700688649e-10, + "tolerance": 2.225813976630004e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "qft_n5_x19", + "engine": "exact", + "quantity": "integer reference against the closed form, units of 2^-256", + "measured": 2, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "qft_n5_x19", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4342198696292555e-09, + "tolerance": 1.0175149537108086e-07, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 2.6361110763507337e-09, + "global_phase": -1.0117584855042321e-09 + }, + { + "entry": "qft_n5_x19", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 4.743072403438704e-16, + "tolerance": 3.468920339940439e-14, + "status": "pass" + }, + { + "entry": "qft_n5_x19", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "qft_n5_x19", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.2632379315606653e-16, + "tolerance": 9.401726064125798e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 3.506724345492627e-16, + "global_phase": 1.283897907660248e-16, + "seconds": 0.00039738 + }, + { + "entry": "qft_n5_x19", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.5859903063725824e-16, + "tolerance": 5.1152507861710864e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 5.303815859586128e-16, + "global_phase": 4.630671312859982e-16, + "seconds": 0.000181422 + }, + { + "entry": "qft_n5_x19", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.5859903063725824e-16, + "tolerance": 5.1152507861710864e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 5.303815859586128e-16, + "global_phase": 4.630671312859982e-16, + "seconds": 0.0001852, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "qft_n5_x19", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.842135466297101e-16, + "tolerance": 9.401726064125798e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 5.057824840498477e-16, + "global_phase": 1.4612721318054353e-16, + "seconds": 1.499372122110799 + }, + { + "entry": "qft_n5_x19", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.02355002104443e-16, + "tolerance": 1.5758510003227105e-12, + "status": "pass", + "note": "double precision, a contraction of width 6.0", + "strict": 9.059602036814133e-16, + "global_phase": 8.074243513517871e-17, + "seconds": 0.16344071505591273 + }, + { + "entry": "qft_n5_x19", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.887619644836046e-16, + "tolerance": 2.733355772808632e-11, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 2.9241850975309797e-16, + "global_phase": 4.6098944822979383e-17, + "seconds": 0.009786664042621851 + }, + { + "entry": "qft_n5_x19", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.0309137128889318e-07, + "tolerance": 2.615524934395415e-05, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.2543028130092563e-07, + "global_phase": -7.144875201754854e-08, + "seconds": 0.0010067110415548086 + }, + { + "entry": "qft_n5_x19", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 7.058593753247077e-10, + "tolerance": 1.0175149581517007e-07, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "qft_n8_x173", + "engine": "exact", + "quantity": "integer reference against the closed form, units of 2^-256", + "measured": 3, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "qft_n8_x173", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.724053157002002e-09, + "tolerance": 6.655298667616834e-07, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 8.761167869755205e-09, + "global_phase": -8.055798883266803e-10 + }, + { + "entry": "qft_n8_x173", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 7.984634113865237e-16, + "tolerance": 7.553210858321676e-14, + "status": "pass" + }, + { + "entry": "qft_n8_x173", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "qft_n8_x173", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.635397297566191e-16, + "tolerance": 2.115388364428553e-13, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 8.320669916157845e-16, + "global_phase": 3.306698650009266e-16, + "seconds": 0.001008143 + }, + { + "entry": "qft_n8_x173", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.1722753805375257e-16, + "tolerance": 1.1204835055423063e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 9.996490609257424e-16, + "global_phase": 9.084158885110515e-16, + "seconds": 0.000233801 + }, + { + "entry": "qft_n8_x173", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.1722753805375257e-16, + "tolerance": 1.1204835055423063e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 9.996490609257424e-16, + "global_phase": 9.084158885110515e-16, + "seconds": 0.000252286, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "qft_n8_x173", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.144694440220219e-16, + "tolerance": 2.115388364428553e-13, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 7.763478117220366e-16, + "global_phase": 3.0372576170693494e-16, + "seconds": 1.065517500974238 + }, + { + "entry": "qft_n8_x173", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.176627620784968e-15, + "tolerance": 5.472132013758785e-10, + "status": "pass", + "note": "double precision, a contraction of width 11.0", + "strict": 9.177633400204711e-15, + "global_phase": -1.3586882644476216e-16, + "seconds": 0.6985767630394548 + }, + { + "entry": "qft_n8_x173", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.6467620904973764e-16, + "tolerance": 9.219595107983541e-11, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 3.6777798095682838e-16, + "global_phase": 4.766451331749067e-17, + "seconds": 0.014812552137300372 + }, + { + "entry": "qft_n8_x173", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4297190890509153e-07, + "tolerance": 5.8851234946261254e-05, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 2.1361092843437718e-07, + "global_phase": -1.5870936099867787e-07, + "seconds": 0.001427144045010209 + }, + { + "entry": "qft_n8_x173", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 5.710560892009663e-10, + "tolerance": 6.655298672057726e-07, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "qft_n12_x2741", + "engine": "exact", + "quantity": "integer reference against the closed form, units of 2^-256", + "measured": 5, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "qft_n12_x2741", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.918010747732075e-08, + "tolerance": 5.683985210334096e-06, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 3.919121479303013e-08, + "global_phase": -9.330032255980238e-10 + }, + { + "entry": "qft_n12_x2741", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.1146399486988121e-15, + "tolerance": 1.4595091062428039e-13, + "status": "pass" + }, + { + "entry": "qft_n12_x2741", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "qft_n12_x2741", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.392256510636577e-16, + "tolerance": 4.277785359178666e-13, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.05735130271346e-15, + "global_phase": 4.856407661367594e-16, + "seconds": 0.00210328 + }, + { + "entry": "qft_n12_x2741", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.67842422397199e-16, + "tolerance": 2.2409670110848635e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.4235804381409074e-15, + "global_phase": 1.3445091043436557e-15, + "seconds": 0.001315313 + }, + { + "entry": "qft_n12_x2741", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.67842422397199e-16, + "tolerance": 2.2409670110848635e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.4235804381409074e-15, + "global_phase": 1.3445091043436557e-15, + "seconds": 0.001279916, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "qft_n12_x2741", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1772673067731489e-15, + "tolerance": 4.277785359178666e-13, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.2719000340925913e-15, + "global_phase": 4.81426406762063e-16, + "seconds": 0.8578077012207359 + }, + { + "entry": "qft_n12_x2741", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.0059245873070359e-14, + "tolerance": 1.22787892058417e-05, + "status": "pass", + "note": "double precision, a contraction of width 20.0", + "strict": 1.0059545151524644e-14, + "global_phase": -7.759588056051268e-17, + "seconds": 0.7114460959564894 + }, + { + "entry": "qft_n12_x2741", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.468244394316334e-16, + "tolerance": 2.692047189890962e-10, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 4.468256033541478e-16, + "global_phase": -1.0198722492404313e-18, + "seconds": 0.009907681960612535 + }, + { + "entry": "qft_n12_x2741", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.7694013583228974e-07, + "tolerance": 0.00011901743381489938, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 2.930851582105311e-07, + "global_phase": -2.336473764348756e-07, + "seconds": 0.001721399137750268 + }, + { + "entry": "qft_n12_x2741", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 8.08499660132462e-10, + "tolerance": 5.683985210778185e-06, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "qft_n14_x10923", + "engine": "exact", + "quantity": "integer reference against the closed form, units of 2^-256", + "measured": 5, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "qft_n14_x10923", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.123600519580009e-08, + "tolerance": 1.5253226844344835e-05, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 8.124087223371373e-08, + "global_phase": -8.892587490604286e-10 + }, + { + "entry": "qft_n14_x10923", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.3215677810373784e-15, + "tolerance": 1.8961056788974485e-13, + "status": "pass" + }, + { + "entry": "qft_n14_x10923", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "qft_n14_x10923", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.2540331917503802e-15, + "tolerance": 5.64103563847813e-13, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.3611349762871244e-15, + "global_phase": 5.292345204732061e-16, + "seconds": 0.006827428 + }, + { + "entry": "qft_n14_x10923", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.808533049352818e-16, + "tolerance": 2.961428253774958e-12, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.4337352821423908e-15, + "global_phase": 1.310803683777888e-15, + "seconds": 0.016631004 + }, + { + "entry": "qft_n14_x10923", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.808533049352818e-16, + "tolerance": 2.961428253774958e-12, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.4337352821423908e-15, + "global_phase": 1.310803683777888e-15, + "seconds": 0.006525318, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "qft_n14_x10923", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3382469481878975e-15, + "tolerance": 5.64103563847813e-13, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.4189542437976667e-15, + "global_phase": 4.717268824830606e-16, + "seconds": 0.9189961759839207 + }, + { + "entry": "qft_n14_x10923", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.796120857760904e-16, + "tolerance": 4.095649160102459e-10, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 6.017553738362537e-16, + "global_phase": -1.617385543496028e-16, + "seconds": 0.07254768698476255 + }, + { + "entry": "qft_n14_x10923", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.3187190761688746e-07, + "tolerance": 0.00015695201790227864, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.543161592552357e-07, + "global_phase": -2.6790922427742024e-07, + "seconds": 0.0030464110895991325 + }, + { + "entry": "qft_n14_x10923", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 4.1312680833559717e-10, + "tolerance": 1.5253226844788924e-05, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "qft_superposed_n10", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.2527675334123936e-08, + "tolerance": 2.7602554918843368e-06, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 3.2549313467624344e-08, + "global_phase": 1.1866526751514608e-09 + }, + { + "entry": "qft_superposed_n10", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.4495242656262271e-15, + "tolerance": 1.6848492727742287e-13, + "status": "pass" + }, + { + "entry": "qft_superposed_n10", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "qft_superposed_n10", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.0834517633660347e-15, + "tolerance": 5.123940704950704e-13, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.101391650619332e-15, + "global_phase": 1.9797940426470196e-16, + "seconds": 0.003600898 + }, + { + "entry": "qft_superposed_n10", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.170554803783693e-16, + "tolerance": 2.67941707847115e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.0602512121224904e-15, + "global_phase": 9.256274969002942e-16, + "seconds": 0.000612726 + }, + { + "entry": "qft_superposed_n10", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.170554803783693e-16, + "tolerance": 2.67941707847115e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.0602512121224904e-15, + "global_phase": 9.256274969002942e-16, + "seconds": 0.000546171, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "qft_superposed_n10", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.2776920206944696e-15, + "tolerance": 5.123940704950704e-13, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.279828475104203e-15, + "global_phase": 7.391904992106145e-17, + "seconds": 1.399177476996556 + }, + { + "entry": "qft_superposed_n10", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.266196073223308e-15, + "tolerance": 5.015566805471182e-06, + "status": "pass", + "note": "double precision, a contraction of width 19.0", + "strict": 7.270956864836049e-15, + "global_phase": 2.630748102358523e-16, + "seconds": 1.6391525350045413 + }, + { + "entry": "qft_superposed_n10", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.5867450566680552e-15, + "tolerance": 2.728865428048969e-10, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 1.5872082553212343e-15, + "global_phase": -3.8342807661503016e-17, + "seconds": 0.01793753099627793 + }, + { + "entry": "qft_superposed_n10", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4327808220925076e-07, + "tolerance": 0.00014256269912086766, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.5658919686253052e-07, + "global_phase": -6.317885380118834e-08, + "seconds": 0.0022938197944313288 + }, + { + "entry": "qft_superposed_n10", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 7.17869759551547e-10, + "tolerance": 2.760255492328426e-06, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "qft_wide_n20", + "engine": "aer.statevector ~ ddsim.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.6574144058914908e-15, + "tolerance": 1.1092304887490738e-09, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "aer.statevector ~ qsim.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 2.700366712575461e-07, + "tolerance": 0.00030217649017852654, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "aer.statevector ~ quimb.dense", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.2970095860794004e-15, + "tolerance": 6.7640097312973315e-12, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "aer.statevector ~ wai.exact", + "quantity": "distance between the two states, modulo a global phase", + "measured": 6.509150050484661e-07, + "tolerance": 0.00024290049304727954, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "aer.statevector ~ wai.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 2.411786683890979e-15, + "tolerance": 6.7640097312973315e-12, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "ddsim.statevector ~ qsim.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 2.7003667107397175e-07, + "tolerance": 0.00030217758805279455, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "ddsim.statevector ~ quimb.dense", + "quantity": "distance between the two states, modulo a global phase", + "measured": 2.6652981903815555e-15, + "tolerance": 1.1046382777385916e-09, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "ddsim.statevector ~ wai.exact", + "quantity": "distance between the two states, modulo a global phase", + "measured": 6.509150050600852e-07, + "tolerance": 0.00024290159092154754, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "ddsim.statevector ~ wai.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.0214215905878365e-15, + "tolerance": 1.1046382777385916e-09, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "qsim.statevector ~ quimb.dense", + "quantity": "distance between the two states, modulo a global phase", + "measured": 2.7003667150859246e-07, + "tolerance": 0.00030217648558631554, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "qsim.statevector ~ wai.exact", + "quantity": "distance between the two states, modulo a global phase", + "measured": 7.052620845550943e-07, + "tolerance": 0.0005450769718695853, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "qsim.statevector ~ wai.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 2.7003667103533546e-07, + "tolerance": 0.00030217648558631554, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "quimb.dense ~ wai.exact", + "quantity": "distance between the two states, modulo a global phase", + "measured": 6.50915005042613e-07, + "tolerance": 0.00024290048845506852, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "quimb.dense ~ wai.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 3.395476508259786e-15, + "tolerance": 2.171798720815213e-12, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "wai.exact ~ wai.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 6.50915005065122e-07, + "tolerance": 0.00024290048845506852, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "aer.statevector", + "quantity": "64 amplitudes against the closed form, worst error, modulo nothing", + "measured": 2.4446027073661675e-18, + "tolerance": 5.678110370889725e-12, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "ddsim.statevector", + "quantity": "64 amplitudes against the closed form, worst error, modulo nothing", + "measured": 1.668229649552477e-18, + "tolerance": 1.103552378378184e-09, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "qsim.statevector", + "quantity": "64 amplitudes against the closed form, worst error, modulo nothing", + "measured": 8.99440141007406e-10, + "tolerance": 0.00030217648450041616, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "quimb.dense", + "quantity": "64 amplitudes against the closed form, worst error, modulo nothing", + "measured": 2.4950711591365744e-18, + "tolerance": 1.0858993604076065e-12, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "wai.exact", + "quantity": "64 amplitudes against the closed form, worst error, modulo nothing", + "measured": 1.2072271730535939e-09, + "tolerance": 0.00024290048736916916, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "wai.statevector", + "quantity": "64 amplitudes against the closed form, worst error, modulo nothing", + "measured": 3.2681524740608303e-18, + "tolerance": 1.0858993604076065e-12, + "status": "pass" + }, + { + "entry": "grover_n3", + "engine": "exact", + "quantity": "integer reference: P(marked) against sin\u00b2((2k+1)\u03b8), computed in integers, units of 2^-256", + "measured": 12, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "grover_n3", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.7911892892304827e-09, + "tolerance": 9.539202762111427e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 2.7911892892304827e-09, + "global_phase": 0.0 + }, + { + "entry": "grover_n3", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.3056188547111068e-15, + "tolerance": 5.018133984843628e-14, + "status": "pass" + }, + { + "entry": "grover_n3", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "grover_n3", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.0198506246188093e-15, + "tolerance": 1.6453020612221307e-13, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.0198506246188093e-15, + "global_phase": 0.0, + "seconds": 0.000156636 + }, + { + "entry": "grover_n3", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.2583224885975757e-16, + "tolerance": 8.769001347722183e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.82855567997045e-16, + "global_phase": 7.11825952004399e-16, + "seconds": 0.000197193 + }, + { + "entry": "grover_n3", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.2583224885975757e-16, + "tolerance": 8.769001347722183e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.82855567997045e-16, + "global_phase": 7.11825952004399e-16, + "seconds": 0.000172987, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "grover_n3", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1870146619100088e-15, + "tolerance": 1.6453020612221307e-13, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.1870146619100088e-15, + "global_phase": 0.0, + "seconds": 2.0387152610346675 + }, + { + "entry": "grover_n3", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.966650663593933e-16, + "tolerance": 2.3952935204924824e-12, + "status": "pass", + "note": "double precision, a contraction of width 6.0", + "strict": 5.966650663593933e-16, + "global_phase": 0.0, + "seconds": 0.0060025909915566444 + }, + { + "entry": "grover_n3", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.322204543158198e-16, + "tolerance": 3.19175687428353e-11, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 1.322204543158198e-16, + "global_phase": 0.0, + "seconds": 0.011593983042985201 + }, + { + "entry": "grover_n3", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.712509627811334e-07, + "tolerance": 4.5772584182356496e-05, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.712509627811334e-07, + "global_phase": 0.0, + "seconds": 0.0013781560119241476 + }, + { + "entry": "grover_n3", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 1.5127021380598712e-09, + "tolerance": 9.539202806520348e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "grover_n5", + "engine": "exact", + "quantity": "integer reference: P(marked) against sin\u00b2((2k+1)\u03b8), computed in integers, units of 2^-256", + "measured": 64, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "grover_n5", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.357680396066808e-08, + "tolerance": 4.96125650003204e-06, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 5.816360794765578e-08, + "global_phase": 2.2639155599760047e-08 + }, + { + "entry": "grover_n5", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 7.477199939210867e-15, + "tolerance": 1.5064421660595767e-12, + "status": "pass" + }, + { + "entry": "grover_n5", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "grover_n5", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.158084160675823e-15, + "tolerance": 5.123940704950704e-13, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.3939509068552803e-15, + "global_phase": 7.75848056976644e-16, + "seconds": 0.005631368 + }, + { + "entry": "grover_n5", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3073026341015893e-15, + "tolerance": 3.0691504717034365e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 3.554278208317962e-15, + "global_phase": 3.3051253236443238e-15, + "seconds": 0.00025876 + }, + { + "entry": "grover_n5", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3073026341015893e-15, + "tolerance": 3.0691504717034365e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 3.554278208317962e-15, + "global_phase": 3.3051253236443238e-15, + "seconds": 0.000257347, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "grover_n5", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.979364197199202e-15, + "tolerance": 5.123940704950704e-13, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 3.979364197199202e-15, + "global_phase": 0.0, + "seconds": 1.1631710429210216 + }, + { + "entry": "grover_n5", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.608354125059748e-15, + "tolerance": 1.9326685410829237e-11, + "status": "pass", + "note": "double precision, a contraction of width 7.0", + "strict": 5.608354125059748e-15, + "global_phase": 0.0, + "seconds": 0.5892209988087416 + }, + { + "entry": "grover_n5", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.063150391861205e-17, + "tolerance": 1.489678896361256e-10, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 8.063150391861205e-17, + "global_phase": 0.0, + "seconds": 0.012428461108356714 + }, + { + "entry": "grover_n5", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.475046831785649e-07, + "tolerance": 0.00014256269912086766, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.475046831785649e-07, + "global_phase": 0.0, + "seconds": 0.00236552394926548 + }, + { + "entry": "grover_n5", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.7071169087468234e-08, + "tolerance": 4.9612565004761295e-06, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "grover_n8", + "engine": "exact", + "quantity": "integer reference: P(marked) against sin\u00b2((2k+1)\u03b8), computed in integers, units of 2^-256", + "measured": 209, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "grover_n8", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1094619788314317e-06, + "tolerance": 0.0005505700009309958, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 1.401073732234653e-06, + "global_phase": 8.556293856380556e-07 + }, + { + "entry": "grover_n8", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 5.612798993591805e-14, + "tolerance": 4.790820758528071e-11, + "status": "pass" + }, + { + "entry": "grover_n8", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "grover_n8", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.760138446045135e-14, + "tolerance": 2.2940211596517415e-12, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 7.760404568189749e-14, + "global_phase": -6.426787838823215e-16, + "seconds": 0.405216779 + }, + { + "entry": "grover_n8", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.631879843797361e-15, + "tolerance": 1.308042701036822e-12, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.3818998850279718e-14, + "global_phase": 1.3333198341892727e-14, + "seconds": 0.000589014 + }, + { + "entry": "grover_n8", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.631879843797361e-15, + "tolerance": 1.308042701036822e-12, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.3818998850279718e-14, + "global_phase": 1.3333198341892727e-14, + "seconds": 0.000699843, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "grover_n8", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8051945192911557e-14, + "tolerance": 2.2940211596517415e-12, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.8051945192911557e-14, + "global_phase": 0.0, + "seconds": 1.2410589740611613 + }, + { + "entry": "grover_n8", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.212132685525188e-14, + "tolerance": 1.4460064500364516e-08, + "status": "pass", + "note": "double precision, a contraction of width 12.0", + "strict": 7.212132685525188e-14, + "global_phase": 0.0, + "seconds": 2.3824412261601537 + }, + { + "entry": "grover_n8", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.0522346859459808e-15, + "tolerance": 9.998138703932867e-10, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 1.0522346859459808e-15, + "global_phase": 0.0, + "seconds": 0.020366481970995665 + }, + { + "entry": "grover_n8", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.7917667985836753e-07, + "tolerance": 0.0006385786556238365, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 2.7917667985836753e-07, + "global_phase": 0.0, + "seconds": 0.0762230521067977 + }, + { + "entry": "grover_n8", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.1852138799866191e-07, + "tolerance": 0.0005505700009314399, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "grover_n10", + "engine": "exact", + "quantity": "integer reference: P(marked) against sin\u00b2((2k+1)\u03b8), computed in integers, units of 2^-256", + "measured": 469, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "grover_n10", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.2966310402143949e-05, + "tolerance": 0.011743156745052948, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 1.2988878121540966e-05, + "global_phase": 7.653435437075795e-07 + }, + { + "entry": "grover_n10", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 6.687368364924087e-13, + "tolerance": 4.6956754416903e-10, + "status": "pass" + }, + { + "entry": "grover_n10", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "grover_n10", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.868605386549578e-13, + "tolerance": 5.923087420433778e-12, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 9.868608702522018e-13, + "global_phase": 8.089997403269279e-16, + "seconds": 2.073622088 + }, + { + "entry": "grover_n10", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.944472891143808e-15, + "tolerance": 3.3151696761912246e-12, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 3.3673609522423125e-14, + "global_phase": 3.2463955134398285e-14, + "seconds": 0.005603556 + }, + { + "entry": "grover_n10", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.944472891143808e-15, + "tolerance": 3.3151696761912246e-12, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 3.3673609522423125e-14, + "global_phase": 3.2463955134398285e-14, + "seconds": 0.004066369, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "grover_n10", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.53350780910714e-14, + "tolerance": 5.923087420433778e-12, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 4.53350780910714e-14, + "global_phase": 0.0, + "seconds": 1.1063412509392947 + }, + { + "entry": "grover_n10", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.2480318483802445e-13, + "tolerance": 1.892533604466189e-05, + "status": "pass", + "note": "double precision, a contraction of width 18.0", + "strict": 1.2480318483802445e-13, + "global_phase": 0.0, + "seconds": 4.544356181053445 + }, + { + "entry": "grover_n10", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.2520782731179646e-15, + "tolerance": 3.154468302046225e-09, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 1.2520782731179646e-15, + "global_phase": 0.0, + "seconds": 0.019029052928090096 + }, + { + "entry": "grover_n10", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.9603425553760547e-07, + "tolerance": 0.0016504526520488114, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.9603425553760547e-07, + "global_phase": 0.0, + "seconds": 0.09408100205473602 + }, + { + "entry": "grover_n10", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 2.3730155922673352e-06, + "tolerance": 0.011743156745053392, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "qpe_t4_m5", + "engine": "exact", + "quantity": "integer reference: P(m) against 1, the closed form, units of 2^-256", + "measured": 21, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "qpe_t4_m5", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.2812650937430355e-09, + "tolerance": 1.3990830691703475e-07, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 2.2812650937430355e-09, + "global_phase": 8.636168547051386e-78 + }, + { + "entry": "qpe_t4_m5", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 6.738653000098427e-16, + "tolerance": 5.29980919300785e-14, + "status": "pass" + }, + { + "entry": "qpe_t4_m5", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "qpe_t4_m5", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.96872475652504e-16, + "tolerance": 9.871812367332136e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 8.969588494495959e-16, + "global_phase": 1.2447490626286985e-17, + "seconds": 0.00057617 + }, + { + "entry": "qpe_t4_m5", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4942393618123933e-16, + "tolerance": 5.3588341569411506e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 3.950557577583702e-16, + "global_phase": 3.063604932067729e-16, + "seconds": 0.000162447 + }, + { + "entry": "qpe_t4_m5", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4942393618123933e-16, + "tolerance": 5.3588341569411506e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 3.950557577583702e-16, + "global_phase": 3.063604932067729e-16, + "seconds": 0.000165643, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "qpe_t4_m5", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.784600947782157e-16, + "tolerance": 9.871812367332136e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 6.897806972913936e-16, + "global_phase": 1.2445605710183747e-16, + "seconds": 0.6343026959802955 + }, + { + "entry": "qpe_t4_m5", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.2449016329098093e-15, + "tolerance": 1.638885040335722e-12, + "status": "pass", + "note": "double precision, a contraction of width 6.0", + "strict": 2.261831872770116e-15, + "global_phase": 2.7622468976838543e-16, + "seconds": 0.13486230606213212 + }, + { + "entry": "qpe_t4_m5", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.132622887710837e-76, + "tolerance": 2.870023561452972e-11, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 1.132622887710837e-76, + "global_phase": 8.636168555094445e-78, + "seconds": 0.007107750046998262 + }, + { + "entry": "qpe_t4_m5", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.532898145933273e-08, + "tolerance": 2.746304772436933e-05, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 9.809987558646393e-08, + "global_phase": -6.2842104853189e-08, + "seconds": 0.0010165220592170954 + }, + { + "entry": "qpe_t4_m5", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.862645149230957e-09, + "tolerance": 1.3990830736112396e-07, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "qpe_t8_m173", + "engine": "exact", + "quantity": "integer reference: P(m) against 1, the closed form, units of 2^-256", + "measured": 79, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "qpe_t8_m173", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.812739523998364e-08, + "tolerance": 2.5946634944328434e-06, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 4.328396185719315e-08, + "global_phase": -2.0489096889605984e-08 + }, + { + "entry": "qpe_t8_m173", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.3822672508259872e-15, + "tolerance": 2.3186184911439147e-13, + "status": "pass" + }, + { + "entry": "qpe_t8_m173", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "qpe_t8_m173", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3997538539219514e-15, + "tolerance": 2.6794919282763184e-13, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.4100014542159497e-15, + "global_phase": -1.6968573694255317e-16, + "seconds": 0.001029025 + }, + { + "entry": "qpe_t8_m173", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.917222828179086e-16, + "tolerance": 1.4127835504664274e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.461694205298591e-16, + "global_phase": 4.545696251957764e-16, + "seconds": 0.00030644 + }, + { + "entry": "qpe_t8_m173", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.917222828179086e-16, + "tolerance": 1.4127835504664274e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.461694205298591e-16, + "global_phase": 4.545696251957764e-16, + "seconds": 0.00027985, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "qpe_t8_m173", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3737354006757944e-15, + "tolerance": 2.6794919282763184e-13, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.3787192988274878e-15, + "global_phase": -1.1712366921111296e-16, + "seconds": 0.8541805110871792 + }, + { + "entry": "qpe_t8_m173", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.875236900332654e-15, + "tolerance": 1.5373360013432097e-08, + "status": "pass", + "note": "double precision, a contraction of width 14.0", + "strict": 7.88934805351914e-15, + "global_phase": 4.7165291603591375e-16, + "seconds": 0.29150766180828214 + }, + { + "entry": "qpe_t8_m173", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.605398797765447e-76, + "tolerance": 1.2974183754077814e-10, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 6.607656667869935e-76, + "global_phase": -1.727233711018889e-77, + "seconds": 0.008691034046933055 + }, + { + "entry": "qpe_t8_m173", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.684604402407289e-07, + "tolerance": 7.454606734339516e-05, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 2.876291632867958e-07, + "global_phase": -2.3313432961912926e-07, + "seconds": 0.0017632050439715385 + }, + { + "entry": "qpe_t8_m173", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.2107193247956616e-08, + "tolerance": 2.5946634948769326e-06, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "qpe_t12_m2741", + "engine": "exact", + "quantity": "integer reference: P(m) against 1, the closed form, units of 2^-256", + "measured": 271, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "qpe_t12_m2741", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.897294043453971e-07, + "tolerance": 3.062721528136228e-05, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 1.9177557825276994e-07, + "global_phase": 2.7939676405797104e-08 + }, + { + "entry": "qpe_t12_m2741", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.106274994226196e-15, + "tolerance": 6.219820124221308e-13, + "status": "pass" + }, + { + "entry": "qpe_t12_m2741", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "qpe_t12_m2741", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8446378487848027e-15, + "tolerance": 5.123940704950704e-13, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.882816968641882e-15, + "global_phase": 3.7724122817685328e-16, + "seconds": 0.003283449 + }, + { + "entry": "qpe_t12_m2741", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.805613248894342e-16, + "tolerance": 2.67941707847115e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.839500472473385e-16, + "global_phase": 5.640957091605201e-16, + "seconds": 0.00499245 + }, + { + "entry": "qpe_t12_m2741", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.518453725686628e-16, + "tolerance": 2.67941707847115e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.4625597378806557e-15, + "global_phase": 1.2545156525992895e-15, + "seconds": 0.006050602, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "qpe_t12_m2741", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.150044009316429e-15, + "tolerance": 5.123940704950704e-13, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.156472537645196e-15, + "global_phase": -1.663867892004838e-16, + "seconds": 0.8667093028780073 + }, + { + "entry": "qpe_t12_m2741", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.21120340550861e-75, + "tolerance": 3.4723773472090127e-10, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 3.21584525039295e-75, + "global_phase": 1.727233711018889e-76, + "seconds": 0.009297962067648768 + }, + { + "entry": "qpe_t12_m2741", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.7533831375540817e-07, + "tolerance": 0.00014256269912086766, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.842768069606236e-07, + "global_phase": -2.680624504591769e-07, + "seconds": 0.0016511320136487484 + }, + { + "entry": "qpe_t12_m2741", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 2.980232283178452e-08, + "tolerance": 3.062721528180637e-05, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "qpe_t6_third", + "engine": "exact", + "quantity": "integer reference: every outcome's probability against sin\u00b2(\u03c02^t\u03b4)/(2^2t sin\u00b2(\u03c0\u03b4)), units of 2^-256", + "measured": 71, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "qpe_t6_third", + "engine": "wai.exact", + "quantity": "refuses, as listed: an angle no grid of 2^32 holds within 10^-14 of a turn", + "measured": "the angle 2.0943951023931953 is not a dyadic multiple of 2\u03c0 (2\u03c0m/2^k, k \u2264 32) [Q500]", + "tolerance": "[Q500]", + "status": "refused" + }, + { + "entry": "qpe_t6_third", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.0778786485207591e-15, + "tolerance": 1.7393193218634114e-13, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.4189449206665662e-15, + "global_phase": 9.228121731687924e-16, + "seconds": 0.000822526 + }, + { + "entry": "qpe_t6_third", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.356158219493418e-16, + "tolerance": 9.25616808926235e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.014150468655927e-15, + "global_phase": -8.611717972347723e-16, + "seconds": 0.000180331 + }, + { + "entry": "qpe_t6_third", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.907988801888482e-16, + "tolerance": 9.25616808926235e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.3989903050203014e-15, + "global_phase": 1.2165404969299746e-15, + "seconds": 0.000159652, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "qpe_t6_third", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.2429747973460994e-15, + "tolerance": 1.7393193218634114e-13, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.7012647607988397e-15, + "global_phase": -1.1616003785718901e-15, + "seconds": 0.7973940919619054 + }, + { + "entry": "qpe_t6_third", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.254067203464221e-15, + "tolerance": 4.542902048736096e-10, + "status": "pass", + "note": "double precision, a contraction of width 11.0", + "strict": 3.3864894409530466e-15, + "global_phase": -9.37740565948293e-16, + "seconds": 0.15875761001370847 + }, + { + "entry": "qpe_t6_third", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.2098354978490726e-16, + "tolerance": 6.739273378291126e-11, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 3.2134194796667104e-16, + "global_phase": -1.517261646831866e-17, + "seconds": 0.008452583104372025 + }, + { + "entry": "qpe_t6_third", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.6219238381259445e-07, + "tolerance": 4.8388286972686044e-05, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.9800979111404798e-07, + "global_phase": -1.1358480392540512e-07, + "seconds": 0.0008622310124337673 + }, + { + "entry": "qpe_t6_third", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 1.2162346928681588e-15, + "tolerance": 1.7393193218634114e-13, + "status": "pass", + "note": "planned statevector" + }, + { + "entry": "qpe_t10_third", + "engine": "exact", + "quantity": "integer reference: every outcome's probability against sin\u00b2(\u03c02^t\u03b4)/(2^2t sin\u00b2(\u03c0\u03b4)), units of 2^-256", + "measured": 461, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "qpe_t10_third", + "engine": "wai.exact", + "quantity": "refuses, as listed: an angle no grid of 2^32 holds within 10^-14 of a turn", + "measured": "the angle 2.0943951023931953 is not a dyadic multiple of 2\u03c0 (2\u03c0m/2^k, k \u2264 32) [Q500]", + "tolerance": "[Q500]", + "status": "refused" + }, + { + "entry": "qpe_t10_third", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.796606182330923e-15, + "tolerance": 3.80769905597204e-13, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.278811280653084e-15, + "global_phase": 1.4018513039698793e-15, + "seconds": 0.001513702 + }, + { + "entry": "qpe_t10_third", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.358378851023343e-16, + "tolerance": 1.9973836403147212e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.6713352516360588e-15, + "global_phase": -1.5006345758409982e-15, + "seconds": 0.000697269 + }, + { + "entry": "qpe_t10_third", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.865675993701194e-16, + "tolerance": 1.9973836403147212e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.231826808090807e-15, + "global_phase": 2.048181826171667e-15, + "seconds": 0.000686348, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "qpe_t10_third", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.3725970584372824e-15, + "tolerance": 3.80769905597204e-13, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 3.080042516876848e-15, + "global_phase": -1.964037958916231e-15, + "seconds": 0.8243176029063761 + }, + { + "entry": "qpe_t10_third", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.126787588985139e-15, + "tolerance": 8.774588089962489e-05, + "status": "pass", + "note": "double precision, a contraction of width 22.0", + "strict": 3.886902878747449e-15, + "global_phase": -2.3089420439204865e-15, + "seconds": 0.27831842307932675 + }, + { + "entry": "qpe_t10_third", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.643546631962793e-16, + "tolerance": 2.2120451510998953e-10, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 4.653228779622703e-16, + "global_phase": -3.000212530738417e-17, + "seconds": 0.017565805930644274 + }, + { + "entry": "qpe_t10_third", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.1365687523211428e-07, + "tolerance": 0.00010593720971003882, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.283191717293934e-07, + "global_phase": -2.492874103907835e-07, + "seconds": 0.0012752909678965807 + }, + { + "entry": "qpe_t10_third", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 1.9062480016440573e-15, + "tolerance": 3.80769905597204e-13, + "status": "pass", + "note": "planned statevector" + }, + { + "entry": "clifford_t_n4_d20", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.153123487039424e-09, + "tolerance": 2.557346099079737e-07, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 9.855402861642344e-09, + "global_phase": 3.653668846370256e-09 + }, + { + "entry": "clifford_t_n4_d20", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.996590550308032e-15, + "tolerance": 1.3750065437935224e-13, + "status": "pass" + }, + { + "entry": "clifford_t_n4_d20", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "clifford_t_n4_d20", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.1283823308778985e-15, + "tolerance": 4.559837141102664e-13, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.1287684798629586e-15, + "global_phase": 4.054496842783867e-17, + "seconds": 0.001722006 + }, + { + "entry": "clifford_t_n4_d20", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.0096790638024118e-15, + "tolerance": 2.387117033546955e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.3114612183423928e-15, + "global_phase": 8.36946064770723e-16, + "seconds": 0.000273637 + }, + { + "entry": "clifford_t_n4_d20", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.0096790638024118e-15, + "tolerance": 2.387117033546955e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.3114612183423928e-15, + "global_phase": 8.36946064770723e-16, + "seconds": 0.000215768, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "clifford_t_n4_d20", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.37339659069541e-15, + "tolerance": 4.559837141102664e-13, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.390711969694405e-15, + "global_phase": -2.1877291266863018e-16, + "seconds": 1.0000934330746531 + }, + { + "entry": "clifford_t_n4_d20", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.2393688032694952e-15, + "tolerance": 6.366438041334249e-12, + "status": "pass", + "note": "double precision, a contraction of width 6.0", + "strict": 1.2999205835247699e-15, + "global_phase": -3.921205082034315e-16, + "seconds": 0.3064723100978881 + }, + { + "entry": "clifford_t_n4_d20", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.528977502397698e-16, + "tolerance": 1.105125084717754e-10, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 6.726554759573411e-16, + "global_phase": -1.6183299128189006e-16, + "seconds": 0.016324358992278576 + }, + { + "entry": "clifford_t_n4_d20", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3204144579776923e-07, + "tolerance": 0.00012686573245252413, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 2.652872169893507e-07, + "global_phase": 2.3009207451654658e-07, + "seconds": 0.001618220005184412 + }, + { + "entry": "clifford_t_n4_d20", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.6356259584741358e-09, + "tolerance": 2.557346103520629e-07, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "clifford_t_n8_d40", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.017532148587371e-08, + "tolerance": 3.342460177766595e-06, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 5.048837286771091e-08, + "global_phase": 5.613635949877929e-09 + }, + { + "entry": "clifford_t_n8_d40", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 6.5265324764127405e-15, + "tolerance": 5.276208176870179e-13, + "status": "pass" + }, + { + "entry": "clifford_t_n8_d40", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "clifford_t_n8_d40", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.6222540811788984e-15, + "tolerance": 1.7581227739944499e-12, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 5.622384485102909e-15, + "global_phase": 3.829288436678506e-17, + "seconds": 0.01382875 + }, + { + "entry": "clifford_t_n8_d40", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.1879700467120467e-15, + "tolerance": 9.134376403884818e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 3.882352168215574e-15, + "global_phase": 2.215740359183579e-15, + "seconds": 0.0006134 + }, + { + "entry": "clifford_t_n8_d40", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.1879700467120467e-15, + "tolerance": 9.134376403884818e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 3.882352168215574e-15, + "global_phase": 2.215740359183579e-15, + "seconds": 0.000441435, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "clifford_t_n8_d40", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.0239044960628715e-15, + "tolerance": 1.7581227739944499e-12, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 4.036090676030125e-15, + "global_phase": 3.1340158216307306e-16, + "seconds": 0.7424321318976581 + }, + { + "entry": "clifford_t_n8_d40", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.7422964999447915e-13, + "tolerance": 3.14722561000377e-08, + "status": "pass", + "note": "double precision, a contraction of width 13.0", + "strict": 3.742296958058144e-13, + "global_phase": 1.8516998154029385e-16, + "seconds": 0.6610718150623143 + }, + { + "entry": "clifford_t_n8_d40", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.6405552764765258e-15, + "tolerance": 7.662507939343449e-10, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 1.6764911083077484e-15, + "global_phase": -3.4525471909877264e-16, + "seconds": 0.025246108882129192 + }, + { + "entry": "clifford_t_n8_d40", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.4811013356580204e-07, + "tolerance": 0.0004893295801767063, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 8.085724621375064e-07, + "global_phase": 7.298004917524249e-07, + "seconds": 0.003628952894359827 + }, + { + "entry": "clifford_t_n8_d40", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 3.6077392841198395e-09, + "tolerance": 3.342460178210684e-06, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "clifford_t_n12_d40", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.459746568494258e-07, + "tolerance": 1.7682557127713214e-05, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 2.459756455523028e-07, + "global_phase": 6.974185770216621e-10 + }, + { + "entry": "clifford_t_n12_d40", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 9.000585916602294e-15, + "tolerance": 7.712698727493606e-13, + "status": "pass" + }, + { + "entry": "clifford_t_n12_d40", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "clifford_t_n12_d40", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.237536939221416e-15, + "tolerance": 2.5713720785447756e-12, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 7.23755922358584e-15, + "global_phase": 1.7960187025050173e-17, + "seconds": 0.048327945 + }, + { + "entry": "clifford_t_n12_d40", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.637520322363948e-15, + "tolerance": 1.3348368718215973e-12, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 5.465338738445407e-15, + "global_phase": 2.891942735534964e-15, + "seconds": 0.004754371 + }, + { + "entry": "clifford_t_n12_d40", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.637520322363948e-15, + "tolerance": 1.3348368718215973e-12, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 5.465338738445407e-15, + "global_phase": 2.891942735534964e-15, + "seconds": 0.007612455, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "clifford_t_n12_d40", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.209789669144606e-15, + "tolerance": 2.5713720785447756e-12, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 5.220686102560184e-15, + "global_phase": -3.371275496591598e-16, + "seconds": 0.779572922969237 + }, + { + "entry": "clifford_t_n12_d40", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.1076125028333712e-12, + "tolerance": 0.00018851685818136647, + "status": "pass", + "note": "double precision, a contraction of width 21.0", + "strict": 3.1076125389876898e-12, + "global_phase": -4.740329363566194e-16, + "seconds": 3.624893774976954 + }, + { + "entry": "clifford_t_n12_d40", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.9313870906755105e-14, + "tolerance": 1.6181866097291546e-09, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 4.9354181978940125e-14, + "global_phase": 1.994345757944291e-15, + "seconds": 0.3199531021527946 + }, + { + "entry": "clifford_t_n12_d40", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.268646302957837e-07, + "tolerance": 0.0007158390537136506, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.5783814202752789e-06, + "global_phase": 1.519563935349324e-06, + "seconds": 0.008413238916546106 + }, + { + "entry": "clifford_t_n12_d40", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 4.918993519148213e-09, + "tolerance": 1.7682557128157303e-05, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "dyadic_n6_k20", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.989486721523507e-08, + "tolerance": 1.339873433652581e-05, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.39934443734408126, + "global_phase": 0.40204678241385533 + }, + { + "entry": "dyadic_n6_k20", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.1344270897300554e-14, + "tolerance": 1.745866092999919e-12, + "status": "pass" + }, + { + "entry": "dyadic_n6_k20", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "dyadic_n6_k20", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4180869825539321e-15, + "tolerance": 7.991467154512563e-13, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.5858100500850096e-15, + "global_phase": -7.098047794018468e-16, + "seconds": 0.001657975 + }, + { + "entry": "dyadic_n6_k20", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1144949859777724e-15, + "tolerance": 4.165275640169407e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.322932786265629e-15, + "global_phase": 7.127777235625039e-16, + "seconds": 0.000288836 + }, + { + "entry": "dyadic_n6_k20", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4998772553894047e-15, + "tolerance": 4.165275640169407e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.6337180633325466e-15, + "global_phase": -6.476132559055545e-16, + "seconds": 0.000228993, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "dyadic_n6_k20", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4985843759766546e-15, + "tolerance": 7.991467154512563e-13, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.6025540997944576e-15, + "global_phase": 5.678243661967013e-16, + "seconds": 0.6768638358917087 + }, + { + "entry": "dyadic_n6_k20", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.2747482107542722e-14, + "tolerance": 8.221463240828132e-11, + "status": "pass", + "note": "double precision, a contraction of width 8.0", + "strict": 1.279380111683654e-14, + "global_phase": 1.0876796104763846e-15, + "seconds": 0.2250571590848267 + }, + { + "entry": "dyadic_n6_k20", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8430955369982564e-15, + "tolerance": 2.7098876558096605e-10, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 1.8755756033629022e-15, + "global_phase": 3.4753803450446e-16, + "seconds": 0.013273118995130062 + }, + { + "entry": "dyadic_n6_k20", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.00486582722685e-07, + "tolerance": 0.00022236322833053704, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 9.574301253659594e-07, + "global_phase": 3.252635195781324e-07, + "seconds": 0.0018630120903253555 + }, + { + "entry": "dyadic_n6_k20", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 2.1884845584357334e-08, + "tolerance": 1.3398734336969899e-05, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "dyadic_n10_k30", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.662489981109932e-07, + "tolerance": 0.00025925791074704726, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 1.2358534025545123, + "global_phase": -1.3322055732900404 + }, + { + "entry": "dyadic_n10_k30", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.9589641986170673e-14, + "tolerance": 7.835684093568104e-12, + "status": "pass" + }, + { + "entry": "dyadic_n10_k30", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "dyadic_n10_k30", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.07060654547701e-15, + "tolerance": 2.0448754189513503e-12, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.144929701446449e-15, + "global_phase": -5.597427605381909e-16, + "seconds": 0.005865221 + }, + { + "entry": "dyadic_n10_k30", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.206421855955272e-15, + "tolerance": 1.0620234965584993e-12, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.323331428935808e-15, + "global_phase": 7.27716649695331e-16, + "seconds": 0.001153051 + }, + { + "entry": "dyadic_n10_k30", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.2458513837077095e-15, + "tolerance": 1.0620234965584993e-12, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.248944686135354e-15, + "global_phase": -1.1791422134167121e-16, + "seconds": 0.001579257, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "dyadic_n10_k30", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.093607296463707e-15, + "tolerance": 2.0448754189513503e-12, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.1819492426391685e-15, + "global_phase": 6.145819600733233e-16, + "seconds": 0.6529471520334482 + }, + { + "entry": "dyadic_n10_k30", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.6355737122702795e-14, + "tolerance": 2.931147265744985e-07, + "status": "pass", + "note": "double precision, a contraction of width 15.0", + "strict": 3.635725458882455e-14, + "global_phase": 3.321739025480943e-16, + "seconds": 0.6709030049387366 + }, + { + "entry": "dyadic_n10_k30", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.3358012539259084e-15, + "tolerance": 1.0890426258424233e-09, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 3.667266135266657e-15, + "global_phase": 1.52357175780466e-15, + "seconds": 0.09832777199335396 + }, + { + "entry": "dyadic_n10_k30", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3278944142638794e-06, + "tolerance": 0.0005691853986397459, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.337290611147161e-06, + "global_phase": 1.5824854839615882e-07, + "seconds": 0.00418387190438807 + }, + { + "entry": "dyadic_n10_k30", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 4.1831292292358954e-08, + "tolerance": 0.00025925791074749135, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "rotations_n6", + "engine": "wai.exact", + "quantity": "refuses, as listed: an angle no grid of 2^32 holds within 10^-14 of a turn", + "measured": "the angle 1.6459015101789476 is not a dyadic multiple of 2\u03c0 (2\u03c0m/2^k, k \u2264 32) [Q500]", + "tolerance": "[Q500]", + "status": "refused" + }, + { + "entry": "rotations_n6", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.5154933030070789e-15, + "tolerance": 7.991467154512563e-13, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.72086804212411e-15, + "global_phase": -8.152710389464119e-16, + "seconds": 0.002822918 + }, + { + "entry": "rotations_n6", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4202944196368554e-15, + "tolerance": 4.165275640169407e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.730542936658874e-15, + "global_phase": -9.88707548857764e-16, + "seconds": 0.000262036 + }, + { + "entry": "rotations_n6", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4202944196368554e-15, + "tolerance": 4.165275640169407e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.730542936658874e-15, + "global_phase": -9.88707548857764e-16, + "seconds": 0.000261775, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "rotations_n6", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4743905142439445e-15, + "tolerance": 7.991467154512563e-13, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.6882917775498031e-15, + "global_phase": -8.224972569253662e-16, + "seconds": 0.7378408699296415 + }, + { + "entry": "rotations_n6", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1839005061543292e-14, + "tolerance": 8.221463240828132e-11, + "status": "pass", + "note": "double precision, a contraction of width 8.0", + "strict": 1.193682808051399e-14, + "global_phase": -1.5250651712302554e-15, + "seconds": 0.18612710502929986 + }, + { + "entry": "rotations_n6", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.5945186668365574e-15, + "tolerance": 2.7098876558096605e-10, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 2.7183138212342367e-15, + "global_phase": -8.1098885205021715e-16, + "seconds": 0.00966300186701119 + }, + { + "entry": "rotations_n6", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.115210810877198e-07, + "tolerance": 0.00022236322833053704, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 5.124601652408091e-07, + "global_phase": -3.100974919087481e-08, + "seconds": 0.0037556819152086973, + "adapter": [ + "U as a matrix" + ] + }, + { + "entry": "rotations_n6", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 3.6925340820413464e-16, + "tolerance": 7.991467154512563e-13, + "status": "pass", + "note": "planned statevector" + }, + { + "entry": "rotations_n10", + "engine": "wai.exact", + "quantity": "refuses, as listed: an angle no grid of 2^32 holds within 10^-14 of a turn", + "measured": "the angle 0.49840613019150304 is not a dyadic multiple of 2\u03c0 (2\u03c0m/2^k, k \u2264 32) [Q500]", + "tolerance": "[Q500]", + "status": "refused" + }, + { + "entry": "rotations_n10", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.464502051374197e-15, + "tolerance": 2.0448754189513503e-12, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.9061712219412836e-15, + "global_phase": -1.5401496063733773e-15, + "seconds": 0.00810697 + }, + { + "entry": "rotations_n10", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4813116232017393e-15, + "tolerance": 1.0620234965584993e-12, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.808390973035661e-15, + "global_phase": -1.3153526089958304e-15, + "seconds": 0.001112674 + }, + { + "entry": "rotations_n10", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4813116232017393e-15, + "tolerance": 1.0620234965584993e-12, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.808390973035661e-15, + "global_phase": -1.3153526089958304e-15, + "seconds": 0.0010632, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "rotations_n10", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4481224325893393e-15, + "tolerance": 2.0448754189513503e-12, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.788521275555992e-15, + "global_phase": -1.3351207658040794e-15, + "seconds": 0.741827969904989 + }, + { + "entry": "rotations_n10", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.6151305250351074e-14, + "tolerance": 2.931147265744985e-07, + "status": "pass", + "note": "double precision, a contraction of width 15.0", + "strict": 3.616977018029105e-14, + "global_phase": -1.1555966385423952e-15, + "seconds": 0.47168303304351866 + }, + { + "entry": "rotations_n10", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.441245328422686e-15, + "tolerance": 1.0890426258424233e-09, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 7.450057187920476e-15, + "global_phase": -3.6224310278193606e-16, + "seconds": 0.1434386840555817 + }, + { + "entry": "rotations_n10", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.582412086995927e-07, + "tolerance": 0.0005691853986397459, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 7.591580684621947e-07, + "global_phase": -3.729936028107713e-08, + "seconds": 0.004633971955627203, + "adapter": [ + "U as a matrix" + ] + }, + { + "entry": "rotations_n10", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 1.8265293292099646e-16, + "tolerance": 2.0448754189513503e-12, + "status": "pass", + "note": "planned statevector" + }, + { + "entry": "rotations_n12", + "engine": "wai.exact", + "quantity": "refuses, as listed: an angle no grid of 2^32 holds within 10^-14 of a turn", + "measured": "the angle 1.437905822610216 is not a dyadic multiple of 2\u03c0 (2\u03c0m/2^k, k \u2264 32) [Q500]", + "tolerance": "[Q500]", + "status": "refused" + }, + { + "entry": "rotations_n12", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.10908033510255e-15, + "tolerance": 3.2906041224545485e-12, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 3.898968578999015e-15, + "global_phase": -2.3527803658438282e-15, + "seconds": 0.035881821 + }, + { + "entry": "rotations_n12", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.046068565026668e-15, + "tolerance": 1.707519429100891e-12, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 3.902351393327043e-15, + "global_phase": -2.439223789273524e-15, + "seconds": 0.010953633 + }, + { + "entry": "rotations_n12", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.046068565026668e-15, + "tolerance": 1.707519429100891e-12, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 3.902351393327043e-15, + "global_phase": -2.439223789273524e-15, + "seconds": 0.005696862, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "rotations_n12", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.9975569299403123e-15, + "tolerance": 3.2906041224545485e-12, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 3.8278999440208364e-15, + "global_phase": -2.3806449616021136e-15, + "seconds": 0.9494234800804406 + }, + { + "entry": "rotations_n12", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.6707408259247924e-12, + "tolerance": 1.3263461525542181e-06, + "status": "pass", + "note": "double precision, a contraction of width 16.0", + "strict": 2.6707416924278386e-12, + "global_phase": -2.1513741828566047e-15, + "seconds": 2.737365906126797 + }, + { + "entry": "rotations_n12", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.0110640869037276e-14, + "tolerance": 2.0708055344099814e-09, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 1.0205168483494635e-14, + "global_phase": -1.3857867779226801e-15, + "seconds": 3.1429003060329705 + }, + { + "entry": "rotations_n12", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.940950837636957e-07, + "tolerance": 0.0009162477599676945, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.0176647613122722e-06, + "global_phase": 2.1775337559876202e-07, + "seconds": 0.015326341148465872, + "adapter": [ + "U as a matrix" + ] + }, + { + "entry": "rotations_n12", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 1.9380251804308974e-16, + "tolerance": 3.2906041224545485e-12, + "status": "pass", + "note": "planned statevector" + }, + { + "entry": "rotations_wide_n20", + "engine": "aer.statevector ~ ddsim.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.168353231262771e-13, + "tolerance": 1.4165429779443213e-09, + "status": "pass" + }, + { + "entry": "rotations_wide_n20", + "engine": "aer.statevector ~ qsim.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 6.634793141903581e-07, + "tolerance": 0.00038592867124719895, + "status": "pass" + }, + { + "entry": "rotations_wide_n20", + "engine": "aer.statevector ~ quimb.dense", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.521143353289764e-15, + "tolerance": 8.63124024008962e-12, + "status": "pass" + }, + { + "entry": "rotations_wide_n20", + "engine": "aer.statevector ~ wai.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.5263276067083962e-15, + "tolerance": 8.63124024008962e-12, + "status": "pass" + }, + { + "entry": "rotations_wide_n20", + "engine": "ddsim.statevector ~ qsim.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 6.63479312037986e-07, + "tolerance": 0.0003859300733012056, + "status": "pass" + }, + { + "entry": "rotations_wide_n20", + "engine": "ddsim.statevector ~ quimb.dense", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.1683001637037417e-13, + "tolerance": 1.4106852468931524e-09, + "status": "pass" + }, + { + "entry": "rotations_wide_n20", + "engine": "ddsim.statevector ~ wai.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.1684957382976954e-13, + "tolerance": 1.4106852468931524e-09, + "status": "pass" + }, + { + "entry": "rotations_wide_n20", + "engine": "qsim.statevector ~ quimb.dense", + "quantity": "distance between the two states, modulo a global phase", + "measured": 6.634793141048418e-07, + "tolerance": 0.00038592866538946787, + "status": "pass" + }, + { + "entry": "rotations_wide_n20", + "engine": "qsim.statevector ~ wai.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 6.634793142302168e-07, + "tolerance": 0.00038592866538946787, + "status": "pass" + }, + { + "entry": "rotations_wide_n20", + "engine": "quimb.dense ~ wai.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.5694926484115963e-15, + "tolerance": 2.7735091889206955e-12, + "status": "pass" + }, + { + "entry": "mirror_n10", + "engine": "wai.exact", + "quantity": "distance from |0\u20260>, modulo a global phase", + "measured": 1.5187978165169593e-06, + "tolerance": 0.0003597153067337921, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 1.5188537817569304e-06, + "seconds": 0.021429052 + }, + { + "entry": "mirror_n10", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 8.201255427515003e-14, + "tolerance": 1.1724210342350836e-11, + "status": "pass" + }, + { + "entry": "mirror_n10", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "mirror_n10", + "engine": "wai.statevector", + "quantity": "distance from |0\u20260>, modulo a global phase", + "measured": 1.9510560572688773e-15, + "tolerance": 5.453001117222185e-12, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.984140267936255e-15, + "seconds": 0.01480816 + }, + { + "entry": "mirror_n10", + "engine": "aer.statevector", + "quantity": "distance from |0\u20260>, modulo a global phase", + "measured": 1.9371711728788852e-15, + "tolerance": 2.8280029346481536e-12, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9420360610175412e-15, + "seconds": 0.003280029 + }, + { + "entry": "mirror_n10", + "engine": "quimb.dense", + "quantity": "distance from |0\u20260>, modulo a global phase", + "measured": 1.9843426838563916e-15, + "tolerance": 5.453001117222185e-12, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.9850192843430372e-15, + "seconds": 0.8663880231324583 + }, + { + "entry": "mirror_n10", + "engine": "ddsim.statevector", + "quantity": "distance from |0\u20260>, modulo a global phase", + "measured": 0.0, + "tolerance": 2.904113674174054e-09, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 0.0, + "seconds": 0.22981279203668237 + }, + { + "entry": "mirror_n10", + "engine": "qsim.statevector", + "quantity": "distance from |0\u20260>, modulo a global phase", + "measured": 8.606327485878577e-07, + "tolerance": 0.0015192659685579655, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 8.626889824960075e-07, + "seconds": 0.0090846111997962 + }, + { + "entry": "mirror_n16", + "engine": "wai.exact", + "quantity": "distance from |0\u20260>, modulo a global phase", + "measured": 1.5097730264204684e-05, + "tolerance": 0.003469576937108643, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 1.5097785874851365e-05, + "seconds": 1.27313902 + }, + { + "entry": "mirror_n16", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 9.778321890684503e-14, + "tolerance": 1.4102957475358876e-11, + "status": "pass" + }, + { + "entry": "mirror_n16", + "engine": "wai.statevector", + "quantity": "distance from |0\u20260>, modulo a global phase", + "measured": 2.2300760905380908e-15, + "tolerance": 6.628216875251998e-12, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.238789057608218e-15, + "seconds": 0.290645751 + }, + { + "entry": "mirror_n16", + "engine": "aer.statevector", + "quantity": "distance from |0\u20260>, modulo a global phase", + "measured": 3.8006310246894564e-15, + "tolerance": 3.453367988601977e-11, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 3.848208265600261e-15, + "seconds": 0.125974048 + }, + { + "entry": "mirror_n16", + "engine": "quimb.dense", + "quantity": "distance from |0\u20260>, modulo a global phase", + "measured": 2.1916006776600278e-15, + "tolerance": 6.628216875251998e-12, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.200259822259795e-15, + "seconds": 1.5416692739818245 + }, + { + "entry": "mirror_n16", + "engine": "ddsim.statevector", + "quantity": "distance from |0\u20260>, modulo a global phase", + "measured": 3.79538506429594e-13, + "tolerance": 5.453581555606244e-09, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 5.367485032355598e-13, + "seconds": 55.39018541201949 + }, + { + "entry": "mirror_n16", + "engine": "qsim.statevector", + "quantity": "distance from |0\u20260>, modulo a global phase", + "measured": 9.717113926020068e-07, + "tolerance": 0.0018472968080305607, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 9.717400499111354e-07, + "seconds": 0.018745447043329477 + }, + { + "entry": "mirror_n20", + "engine": "wai.exact", + "quantity": "distance from |0\u20260>, modulo a global phase", + "measured": 4.7389608465249136e-05, + "tolerance": 0.01155545431658005, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 4.738962099310268e-05, + "seconds": 26.33363078 + }, + { + "entry": "mirror_n20", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 8.090288470075473e-14, + "tolerance": 1.181152965688379e-11, + "status": "pass" + }, + { + "entry": "mirror_n20", + "engine": "wai.statevector", + "quantity": "distance from |0\u20260>, modulo a global phase", + "measured": 1.7612504605929993e-15, + "tolerance": 5.547018377864469e-12, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.783666617688025e-15, + "seconds": 0.371988806 + }, + { + "entry": "mirror_n20", + "engine": "aer.statevector", + "quantity": "distance from |0\u20260>, modulo a global phase", + "measured": 1.7131244038224031e-15, + "tolerance": 2.8904518742140163e-11, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.7208726785094627e-15, + "seconds": 2.173632367 + }, + { + "entry": "mirror_n20", + "engine": "quimb.dense", + "quantity": "distance from |0\u20260>, modulo a global phase", + "measured": 1.8149311374757045e-15, + "tolerance": 5.547018377864469e-12, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.816462945258661e-15, + "seconds": 24.69804847985506 + }, + { + "entry": "mirror_n20", + "engine": "ddsim.statevector", + "quantity": "distance from |0\u20260>", + "measured": null, + "tolerance": null, + "status": "not run", + "note": "did not finish within 900 s" + }, + { + "entry": "mirror_n20", + "engine": "qsim.statevector", + "quantity": "distance from |0\u20260>, modulo a global phase", + "measured": 8.55353672878336e-07, + "tolerance": 0.0015455005690109941, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 8.583169738309598e-07, + "seconds": 0.1475295510608703 + }, + { + "entry": "small_angle_k8", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.780451001345842e-10, + "tolerance": 8.607879969073985e-09, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 1.1888709590001065e-09, + "global_phase": 6.759008355409271e-10 + }, + { + "entry": "small_angle_k8", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.2258192659821766e-16, + "tolerance": 5.113306542163034e-15, + "status": "pass" + }, + { + "entry": "small_angle_k8", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "small_angle_k8", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8595955020684147e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.85959557341835e-16, + "global_phase": -5.1513497497288096e-20, + "seconds": 0.000146748 + }, + { + "entry": "small_angle_k8", + "engine": "wai.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 0.01227176929830895 + }, + { + "entry": "small_angle_k8", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.478119303198938e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 9.718539386259611e-17, + "global_phase": 6.207071732258519e-17, + "seconds": 0.000164761 + }, + { + "entry": "small_angle_k8", + "engine": "aer.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999951, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 0.01227176929830895 + }, + { + "entry": "small_angle_k8", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.478119303198938e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 9.718539386259611e-17, + "global_phase": 6.207071732258519e-17, + "seconds": 0.000158129, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "small_angle_k8", + "engine": "aer.qasm_import", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999951, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 0.01227176929830895 + }, + { + "entry": "small_angle_k8", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.6306117118131227e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.630646413577557e-16, + "global_phase": -1.3512029458769615e-18, + "seconds": 0.857100066030398 + }, + { + "entry": "small_angle_k8", + "engine": "quimb.dense", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 0.01227176929830895 + }, + { + "entry": "small_angle_k8", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.5162694981208795e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 1.5162704195682586e-16, + "global_phase": -1.6716237491675073e-19, + "seconds": 0.0009785490110516548 + }, + { + "entry": "small_angle_k8", + "engine": "quimb.tensor_network", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999999, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 0.01227176929830895 + }, + { + "entry": "small_angle_k8", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.063818908148136e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 4.065562305172074e-17, + "global_phase": 1.1904931336954907e-18, + "seconds": 0.005301628960296512 + }, + { + "entry": "small_angle_k8", + "engine": "ddsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999999, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 0.01227176929830895 + }, + { + "entry": "small_angle_k8", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.9358970450937013e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 2.9370438261224258e-08, + "global_phase": -8.206690548754471e-10, + "seconds": 0.0005585050676018 + }, + { + "entry": "small_angle_k8", + "engine": "qsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.000000081545135, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 0.01227176929830895 + }, + { + "entry": "small_angle_k8", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 8.455796964207331e-10, + "tolerance": 8.607880413163195e-09, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "small_angle_k16", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.145354530188233e-10, + "tolerance": 8.607879969073985e-09, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 7.2737423971223e-10, + "global_phase": -1.3606017413376997e-10 + }, + { + "entry": "small_angle_k16", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.1150240354016243e-16, + "tolerance": 5.113306542163034e-15, + "status": "pass" + }, + { + "entry": "small_angle_k16", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "small_angle_k16", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8254756992859056e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.82547570059512e-16, + "global_phase": 6.91366666472064e-21, + "seconds": 0.000162036 + }, + { + "entry": "small_angle_k16", + "engine": "wai.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999999, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 4.793689961683644e-05 + }, + { + "entry": "small_angle_k16", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.050673116660162e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.0927932505288209e-16, + "global_phase": 6.124134630745771e-17, + "seconds": 0.000145786 + }, + { + "entry": "small_angle_k16", + "engine": "aer.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999987227, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 4.793689961683644e-05 + }, + { + "entry": "small_angle_k16", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.050673116660162e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.0927932505288209e-16, + "global_phase": 6.124134630745771e-17, + "seconds": 0.000135817, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "small_angle_k16", + "engine": "aer.qasm_import", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999987227, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 4.793689961683644e-05 + }, + { + "entry": "small_angle_k16", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.5653899922577952e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.565389992262524e-16, + "global_phase": 3.847678097819925e-22, + "seconds": 0.7074742009863257 + }, + { + "entry": "small_angle_k16", + "engine": "quimb.dense", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999999, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 4.793689961683644e-05 + }, + { + "entry": "small_angle_k16", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.5619800321248797e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 1.5619800335560763e-16, + "global_phase": 6.686554175722784e-21, + "seconds": 0.0008790709543973207 + }, + { + "entry": "small_angle_k16", + "engine": "quimb.tensor_network", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999998, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 4.793689961683644e-05 + }, + { + "entry": "small_angle_k16", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.58472171734119e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 6.584721728060106e-17, + "global_phase": 3.757155249022045e-21, + "seconds": 0.014726338908076286 + }, + { + "entry": "small_angle_k16", + "engine": "ddsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 4.793689961683644e-05 + }, + { + "entry": "small_angle_k16", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.2497990667184677e-09, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.2498100863323152e-09, + "global_phase": -8.463048083580325e-12, + "seconds": 0.0004614919889718294 + }, + { + "entry": "small_angle_k16", + "engine": "qsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0000001776945606, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 4.793689961683644e-05 + }, + { + "entry": "small_angle_k16", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 5.143249684326293e-10, + "tolerance": 8.607880413163195e-09, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "small_angle_k24", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.767666978444572e-11, + "tolerance": 8.607879969073985e-09, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 8.156711358706537e-11, + "global_phase": 5.7676648494005915e-11 + }, + { + "entry": "small_angle_k24", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.228704956460842e-16, + "tolerance": 5.113306542163034e-15, + "status": "pass" + }, + { + "entry": "small_angle_k24", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "small_angle_k24", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.1618425343289953e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.1618425343289958e-16, + "global_phase": -4.874625787480407e-24, + "seconds": 0.000118374 + }, + { + "entry": "small_angle_k24", + "engine": "wai.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0000000000000002, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.8725351414619617e-07 + }, + { + "entry": "small_angle_k24", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.696492554710878e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 9.073974588850753e-17, + "global_phase": 6.123234627532328e-17, + "seconds": 0.00015823 + }, + { + "entry": "small_angle_k24", + "engine": "aer.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999996729978, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.8725351414619617e-07 + }, + { + "entry": "small_angle_k24", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.696492554710878e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 9.073974588850753e-17, + "global_phase": 6.123234627532328e-17, + "seconds": 0.000114717, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "small_angle_k24", + "engine": "aer.qasm_import", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999996729978, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.8725351414619617e-07 + }, + { + "entry": "small_angle_k24", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4197409606121313e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.4197409606121436e-16, + "global_phase": -2.4697673580566565e-23, + "seconds": 0.5152471791952848 + }, + { + "entry": "small_angle_k24", + "engine": "quimb.dense", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.8725351414619617e-07 + }, + { + "entry": "small_angle_k24", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3310296492947376e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 1.3310296492947388e-16, + "global_phase": -5.503546281709894e-24, + "seconds": 0.0009383128490298986 + }, + { + "entry": "small_angle_k24", + "engine": "quimb.tensor_network", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.8725351414619617e-07 + }, + { + "entry": "small_angle_k24", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.5063878560098153e-14, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 3.5063878560100614e-14, + "global_phase": 1.3154399712170649e-20, + "seconds": 0.005935396999120712 + }, + { + "entry": "small_angle_k24", + "engine": "ddsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999473, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.8725351414619617e-07 + }, + { + "entry": "small_angle_k24", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.991742884792483e-14, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 6.871130644612338e-14, + "global_phase": -3.3632504423353635e-14, + "seconds": 0.00045184395276010036 + }, + { + "entry": "small_angle_k24", + "engine": "qsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0000001796094875, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.8725351414619617e-07 + }, + { + "entry": "small_angle_k24", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 5.7676659132664505e-11, + "tolerance": 8.607880413163195e-09, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "small_angle_k26", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.47249805794336e-10, + "tolerance": 8.607879969073985e-09, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 3.4966402863501713e-10, + "global_phase": 2.4724980577531914e-10 + }, + { + "entry": "small_angle_k26", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.2362716297279847e-16, + "tolerance": 5.113306542163034e-15, + "status": "pass" + }, + { + "entry": "small_angle_k26", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "small_angle_k26", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.952496715825137e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.9524967158251372e-16, + "global_phase": 6.71583667849561e-25, + "seconds": 0.000119095 + }, + { + "entry": "small_angle_k26", + "engine": "wai.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 4.68133785365491e-08 + }, + { + "entry": "small_angle_k26", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.366157294584462e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 9.578845626274399e-17, + "global_phase": 6.123235275851835e-17, + "seconds": 0.00013763 + }, + { + "entry": "small_angle_k26", + "engine": "aer.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999986919904, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 4.68133785365491e-08 + }, + { + "entry": "small_angle_k26", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.366157294584462e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 9.578845626274399e-17, + "global_phase": 6.123235275851835e-17, + "seconds": 0.000143461, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "small_angle_k26", + "engine": "aer.qasm_import", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999986919904, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 4.68133785365491e-08 + }, + { + "entry": "small_angle_k26", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.5239932650251915e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.5239932650251915e-16, + "global_phase": 2.3332666200026874e-24, + "seconds": 0.6365146639291197 + }, + { + "entry": "small_angle_k26", + "engine": "quimb.dense", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999998, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 4.68133785365491e-08 + }, + { + "entry": "small_angle_k26", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4013320253395263e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 1.4013320253395263e-16, + "global_phase": -6.407979693356206e-25, + "seconds": 0.0009816151577979326 + }, + { + "entry": "small_angle_k26", + "engine": "quimb.tensor_network", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999999, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 4.68133785365491e-08 + }, + { + "entry": "small_angle_k26", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.1914924100062304e-15, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 2.1914924100062395e-15, + "global_phase": 2.014580430297663e-22, + "seconds": 0.006209563929587603 + }, + { + "entry": "small_angle_k26", + "engine": "ddsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999968, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 4.68133785365491e-08 + }, + { + "entry": "small_angle_k26", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.961132963119457e-15, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.2288145633023052e-14, + "global_phase": -8.408128157662514e-15, + "seconds": 0.0004148439038544893 + }, + { + "entry": "small_angle_k26", + "engine": "qsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0000001796095148, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 4.68133785365491e-08 + }, + { + "entry": "small_angle_k26", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 2.4724980578472594e-10, + "tolerance": 8.607880413163195e-09, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "small_angle_k28", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.038488358639941e-10, + "tolerance": 8.607879969073985e-09, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 5.711285008274089e-10, + "global_phase": -4.038488358639409e-10 + }, + { + "entry": "small_angle_k28", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.3769972679217414e-16, + "tolerance": 5.113306542163034e-15, + "status": "pass" + }, + { + "entry": "small_angle_k28", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "small_angle_k28", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3940409624957706e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.3940409624957706e-16, + "global_phase": -3.6016109745977435e-25, + "seconds": 0.000121449 + }, + { + "entry": "small_angle_k28", + "engine": "wai.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.1703344634137277e-08 + }, + { + "entry": "small_angle_k28", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.5225932261746305e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.6411063727342416e-16, + "global_phase": 6.123234392345849e-17, + "seconds": 0.000144574 + }, + { + "entry": "small_angle_k28", + "engine": "aer.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999947679622, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.1703344634137277e-08 + }, + { + "entry": "small_angle_k28", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.5225932261746305e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.6411063727342416e-16, + "global_phase": 6.123234392345849e-17, + "seconds": 0.00012171, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "small_angle_k28", + "engine": "aer.qasm_import", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999947679622, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.1703344634137277e-08 + }, + { + "entry": "small_angle_k28", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1778473976565104e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.1778473976565107e-16, + "global_phase": 2.6539241761670182e-24, + "seconds": 0.630295803071931 + }, + { + "entry": "small_angle_k28", + "engine": "quimb.dense", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999998, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.1703344634137277e-08 + }, + { + "entry": "small_angle_k28", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.0322780871983296e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 1.0322780871983296e-16, + "global_phase": 7.304624273862791e-25, + "seconds": 0.0009170928969979286 + }, + { + "entry": "small_angle_k28", + "engine": "quimb.tensor_network", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999999, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.1703344634137277e-08 + }, + { + "entry": "small_angle_k28", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3696827562538977e-16, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 1.3696827562538982e-16, + "global_phase": 2.6449066869591424e-24, + "seconds": 0.00550171616487205 + }, + { + "entry": "small_angle_k28", + "engine": "ddsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999999, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.1703344634137277e-08 + }, + { + "entry": "small_angle_k28", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.110938055349543e-15, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 2.9790264018692395e-15, + "global_phase": -2.10203207147538e-15, + "seconds": 0.00041869189590215683 + }, + { + "entry": "small_angle_k28", + "engine": "qsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0000001796095166, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.1703344634137277e-08 + }, + { + "entry": "small_angle_k28", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 4.0384883586396925e-10, + "tolerance": 8.607880413163195e-09, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "small_angle_k30", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.318684346878843e-10, + "tolerance": 8.607879969073985e-09, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 1.8649012878451636e-10, + "global_phase": 1.3186843468788386e-10 + }, + { + "entry": "small_angle_k30", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.2220956107130027e-16, + "tolerance": 5.113306542163034e-15, + "status": "pass" + }, + { + "entry": "small_angle_k30", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "small_angle_k30", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.30763959096193e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.30763959096193e-16, + "global_phase": 3.8352550973466707e-25, + "seconds": 0.000112713 + }, + { + "entry": "small_angle_k30", + "engine": "wai.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.9258361585343192e-09 + }, + { + "entry": "small_angle_k30", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.24176605255026e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.743777155297435e-17, + "global_phase": 6.123234070875654e-17, + "seconds": 0.0001322 + }, + { + "entry": "small_angle_k30", + "engine": "aer.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999790718493, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.9258361585343192e-09 + }, + { + "entry": "small_angle_k30", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.24176605255026e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.743777155297435e-17, + "global_phase": 6.123234070875654e-17, + "seconds": 0.000149403, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "small_angle_k30", + "engine": "aer.qasm_import", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999790718493, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.9258361585343192e-09 + }, + { + "entry": "small_angle_k30", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.1365565322645643e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.1365565322645643e-16, + "global_phase": -8.86261455065536e-26, + "seconds": 0.5659536519087851 + }, + { + "entry": "small_angle_k30", + "engine": "quimb.dense", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999999, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.9258361585343192e-09 + }, + { + "entry": "small_angle_k30", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.0281877206483399e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 1.0281877206483399e-16, + "global_phase": -1.7738338483450532e-25, + "seconds": 0.0009338550735265017 + }, + { + "entry": "small_angle_k30", + "engine": "quimb.tensor_network", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.9258361585343192e-09 + }, + { + "entry": "small_angle_k30", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.560517226586876e-18, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 8.560517226586893e-18, + "global_phase": 5.359933175532669e-25, + "seconds": 0.00472275516949594 + }, + { + "entry": "small_angle_k30", + "engine": "ddsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999998, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.9258361585343192e-09 + }, + { + "entry": "small_angle_k30", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.256474506611849e-16, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 7.432791667721722e-16, + "global_phase": -5.255080183697786e-16, + "seconds": 0.00044879806227982044 + }, + { + "entry": "small_angle_k30", + "engine": "qsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0000001796095166, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.9258361585343192e-09 + }, + { + "entry": "small_angle_k30", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.3186843468788406e-10, + "tolerance": 8.607880413163195e-09, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "small_angle_k32", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.9986353498189868e-10, + "tolerance": 8.607879969073985e-09, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 2.8264972179523065e-10, + "global_phase": -1.9986353498189868e-10 + }, + { + "entry": "small_angle_k32", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.220452495233884e-16, + "tolerance": 5.113306542163034e-15, + "status": "pass" + }, + { + "entry": "small_angle_k32", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "small_angle_k32", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.2258028030058234e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.2258028030058234e-16, + "global_phase": 8.805429279700935e-26, + "seconds": 0.000121731 + }, + { + "entry": "small_angle_k32", + "engine": "wai.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 7.314590396335798e-10 + }, + { + "entry": "small_angle_k32", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.123701466044248e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.659891128289178e-17, + "global_phase": 6.123234007335431e-17, + "seconds": 0.0001374 + }, + { + "entry": "small_angle_k32", + "engine": "aer.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999162873975, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 7.314590396335798e-10 + }, + { + "entry": "small_angle_k32", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.123701466044248e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.659891128289178e-17, + "global_phase": 6.123234007335431e-17, + "seconds": 0.000127741, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "small_angle_k32", + "engine": "aer.qasm_import", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999162873975, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 7.314590396335798e-10 + }, + { + "entry": "small_angle_k32", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.2151021875367953e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.2151021875367953e-16, + "global_phase": -2.998362101329583e-26, + "seconds": 0.5579759359825402 + }, + { + "entry": "small_angle_k32", + "engine": "quimb.dense", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999999, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 7.314590396335798e-10 + }, + { + "entry": "small_angle_k32", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1048856556976266e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 1.1048856556976266e-16, + "global_phase": -5.217293084528376e-26, + "seconds": 0.0009215120226144791 + }, + { + "entry": "small_angle_k32", + "engine": "quimb.tensor_network", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 7.314590396335798e-10 + }, + { + "entry": "small_angle_k32", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.350323266616951e-19, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 5.350323266617113e-19, + "global_phase": 1.3204155822915235e-25, + "seconds": 0.004800841910764575 + }, + { + "entry": "small_angle_k32", + "engine": "ddsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999998, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 7.314590396335798e-10 + }, + { + "entry": "small_angle_k32", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3137918350078252e-16, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.8579668241137169e-16, + "global_phase": -1.3137700460027175e-16, + "seconds": 0.00046423799358308315 + }, + { + "entry": "small_angle_k32", + "engine": "qsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0000001796095168, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 7.314590396335798e-10 + }, + { + "entry": "small_angle_k32", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.9986353498189868e-10, + "tolerance": 8.607880413163195e-09, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "below_grid_k33", + "engine": "wai.exact", + "quantity": "refuses, as listed: an angle no grid of 2^32 holds within 10^-14 of a turn", + "measured": "the angle 0.0000000007314590396335798 is not a dyadic multiple of 2\u03c0 (2\u03c0m/2^k, k \u2264 32) [Q500]", + "tolerance": "[Q500]", + "status": "refused" + }, + { + "entry": "below_grid_k33", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.221784032698946e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.221784032698946e-16, + "global_phase": 4.3831469282588235e-26, + "seconds": 0.000117171 + }, + { + "entry": "below_grid_k33", + "engine": "wai.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 3.657295198167899e-10 + }, + { + "entry": "below_grid_k33", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.123263208852025e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.65958122267691e-17, + "global_phase": 6.123234000694218e-17, + "seconds": 0.00013247 + }, + { + "entry": "below_grid_k33", + "engine": "aer.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999998325747947, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 3.657295198167899e-10 + }, + { + "entry": "below_grid_k33", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.123263208852025e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.65958122267691e-17, + "global_phase": 6.123234000694218e-17, + "seconds": 0.000143161, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "below_grid_k33", + "engine": "aer.qasm_import", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999998325747947, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 3.657295198167899e-10 + }, + { + "entry": "below_grid_k33", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.2191088715510154e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.2191088715510154e-16, + "global_phase": -1.518748762256435e-26, + "seconds": 0.5931490841321647 + }, + { + "entry": "below_grid_k33", + "engine": "quimb.dense", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999999, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 3.657295198167899e-10 + }, + { + "entry": "below_grid_k33", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1088862505292507e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 1.1088862505292507e-16, + "global_phase": -2.628214253855832e-26, + "seconds": 0.0009386942256242037 + }, + { + "entry": "below_grid_k33", + "engine": "quimb.tensor_network", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 3.657295198167899e-10 + }, + { + "entry": "below_grid_k33", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3375808166543595e-19, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 1.3375808166545222e-19, + "global_phase": 6.597185983559708e-26, + "seconds": 0.005784993059933186 + }, + { + "entry": "below_grid_k33", + "engine": "ddsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999998, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 3.657295198167899e-10 + }, + { + "entry": "below_grid_k33", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.568877466458933e-17, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 9.28977634359184e-17, + "global_phase": -6.568850230033155e-17, + "seconds": 0.00042982189916074276 + }, + { + "entry": "below_grid_k33", + "engine": "qsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0000001796095168, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 3.657295198167899e-10 + }, + { + "entry": "below_grid_k33", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 2.2217836300669674e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "planned statevector" + }, + { + "entry": "below_grid_k40", + "engine": "wai.exact", + "quantity": "refuses, as listed: an angle no grid of 2^32 holds within 10^-14 of a turn", + "measured": "the angle 0.000000000005714523747137342 is not a dyadic multiple of 2\u03c0 (2\u03c0m/2^k, k \u2264 32) [Q500]", + "tolerance": "[Q500]", + "status": "refused" + }, + { + "entry": "below_grid_k40", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.220446130889769e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.220446130889769e-16, + "global_phase": 3.419238090495615e-28, + "seconds": 0.00015336 + }, + { + "entry": "below_grid_k40", + "engine": "wai.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.857261873568671e-12 + }, + { + "entry": "below_grid_k40", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.123233995718975e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.659560562386814e-17, + "global_phase": 6.123233995799644e-17, + "seconds": 0.000138302 + }, + { + "entry": "below_grid_k40", + "engine": "aer.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999785695737154, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.857261873568671e-12 + }, + { + "entry": "below_grid_k40", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.123233995718975e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.659560562386814e-17, + "global_phase": 6.123233995799644e-17, + "seconds": 0.000115699, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "below_grid_k40", + "engine": "aer.qasm_import", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999785695737154, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.857261873568671e-12 + }, + { + "entry": "below_grid_k40", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.2204459676108604e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.2204459676108604e-16, + "global_phase": -1.1916179177194308e-28, + "seconds": 0.7576006171293557 + }, + { + "entry": "below_grid_k40", + "engine": "quimb.dense", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999999, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.857261873568671e-12 + }, + { + "entry": "below_grid_k40", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1102229429857054e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 1.1102229429857054e-16, + "global_phase": -2.0583878330314597e-28, + "seconds": 0.0009315700735896826 + }, + { + "entry": "below_grid_k40", + "engine": "quimb.tensor_network", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.857261873568671e-12 + }, + { + "entry": "below_grid_k40", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.163945430410356e-24, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 8.16394544667156e-24, + "global_phase": 5.152777687854373e-28, + "seconds": 0.005798147059977055 + }, + { + "entry": "below_grid_k40", + "engine": "ddsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999998, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.857261873568671e-12 + }, + { + "entry": "below_grid_k40", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.131914243517235e-19, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 7.25762272319939e-19, + "global_phase": -5.1319142422184975e-19, + "seconds": 0.0004664019215852022 + }, + { + "entry": "below_grid_k40", + "engine": "qsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0000001796095168, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.857261873568671e-12 + }, + { + "entry": "below_grid_k40", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 2.2204461308897673e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "planned statevector" + }, + { + "entry": "below_grid_k47", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.2322358387255243e-14, + "tolerance": 6.359468354083656e-09, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 3.1568581975409175e-14, + "global_phase": 2.2322358387255243e-14 + }, + { + "entry": "below_grid_k47", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.232346271920288e-14, + "tolerance": 4.8349647275852546e-14, + "status": "pass", + "note": "the reader moved its angles by 7.11e-15 of a turn in all, as its rule has it" + }, + { + "entry": "below_grid_k47", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "below_grid_k47", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.2204460492552957e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.2204460492552957e-16, + "global_phase": 2.6712795152298427e-30, + "seconds": 0.000115007 + }, + { + "entry": "below_grid_k47", + "engine": "wai.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.2322358387255243e-14 + }, + { + "entry": "below_grid_k47", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.123233995736529e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.659560562355044e-17, + "global_phase": 6.12323399573716e-17, + "seconds": 0.000160443 + }, + { + "entry": "below_grid_k47", + "engine": "aer.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9972569054355688, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.2322358387255243e-14 + }, + { + "entry": "below_grid_k47", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.123233995736529e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.659560562355044e-17, + "global_phase": 6.12323399573716e-17, + "seconds": 0.000128272, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "below_grid_k47", + "engine": "aer.qasm_import", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9972569054355688, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.2322358387255243e-14 + }, + { + "entry": "below_grid_k47", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.2204460492453302e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.2204460492453302e-16, + "global_phase": -9.309517411881617e-31, + "seconds": 0.6161591580603272 + }, + { + "entry": "below_grid_k47", + "engine": "quimb.dense", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999999, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.2322358387255243e-14 + }, + { + "entry": "below_grid_k47", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1102230246201737e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 1.1102230246201737e-16, + "global_phase": -1.6081157375256844e-30, + "seconds": 0.001559938071295619 + }, + { + "entry": "below_grid_k47", + "engine": "quimb.tensor_network", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.2322358387255243e-14 + }, + { + "entry": "below_grid_k47", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.2322358387255243e-14, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 3.1568581975409175e-14, + "global_phase": 2.2322358387255243e-14, + "seconds": 0.007207871880382299 + }, + { + "entry": "below_grid_k47", + "engine": "ddsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": -4.318084277547319e-78, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "info", + "note": "drops it: the angle, 4.46e-14 rad, is below its parameter tolerance of 1e-13 rad, where it may read an angle as 0", + "step": 2.2322358387255243e-14 + }, + { + "entry": "below_grid_k47", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.0093080017332636e-21, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 5.67001775178211e-21, + "global_phase": -4.009308001733202e-21, + "seconds": 0.0004238109104335308 + }, + { + "entry": "below_grid_k47", + "engine": "qsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0000001796095168, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.2322358387255243e-14 + }, + { + "entry": "below_grid_k47", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 2.2322358387255243e-14, + "tolerance": 6.359468798172866e-09, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "below_grid_k48", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1161179193627622e-14, + "tolerance": 6.359468354083656e-09, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 1.5784290987704587e-14, + "global_phase": 1.1161179193627622e-14 + }, + { + "entry": "below_grid_k48", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.1163387693654755e-14, + "tolerance": 2.6027288888597302e-14, + "status": "pass", + "note": "the reader moved its angles by 3.55e-15 of a turn in all, as its rule has it" + }, + { + "entry": "below_grid_k48", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "below_grid_k48", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.2204460492515585e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.2204460492515585e-16, + "global_phase": 1.3356397576093598e-30, + "seconds": 0.00011619 + }, + { + "entry": "below_grid_k48", + "engine": "wai.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.1161179193627622e-14 + }, + { + "entry": "below_grid_k48", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.123233995736643e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.659560562354982e-17, + "global_phase": 6.123233995736958e-17, + "seconds": 0.000158119 + }, + { + "entry": "below_grid_k48", + "engine": "aer.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9945138108711374, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.1161179193627622e-14 + }, + { + "entry": "below_grid_k48", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.123233995736643e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.659560562354982e-17, + "global_phase": 6.123233995736958e-17, + "seconds": 0.000120507, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "below_grid_k48", + "engine": "aer.qasm_import", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9945138108711374, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.1161179193627622e-14 + }, + { + "entry": "below_grid_k48", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.2204460492490674e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.2204460492490674e-16, + "global_phase": -4.654758705996424e-31, + "seconds": 0.5072550759650767 + }, + { + "entry": "below_grid_k48", + "engine": "quimb.dense", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999999, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.1161179193627622e-14 + }, + { + "entry": "below_grid_k48", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1102230246239108e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 1.1102230246239108e-16, + "global_phase": -8.040578687684036e-31, + "seconds": 0.0009349770843982697 + }, + { + "entry": "below_grid_k48", + "engine": "quimb.tensor_network", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.1161179193627622e-14 + }, + { + "entry": "below_grid_k48", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1161179193627622e-14, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 1.5784290987704587e-14, + "global_phase": 1.1161179193627622e-14, + "seconds": 0.005220626015216112 + }, + { + "entry": "below_grid_k48", + "engine": "ddsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": -4.31808427754727e-78, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "info", + "note": "drops it: the angle, 2.23e-14 rad, is below its parameter tolerance of 1e-13 rad, where it may read an angle as 0", + "step": 1.1161179193627622e-14 + }, + { + "entry": "below_grid_k48", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.0046540008666085e-21, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 2.8350088758910386e-21, + "global_phase": -2.004654000866601e-21, + "seconds": 0.00045536085963249207 + }, + { + "entry": "below_grid_k48", + "engine": "qsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0000001796095168, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.1161179193627622e-14 + }, + { + "entry": "below_grid_k48", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.1161179193627622e-14, + "tolerance": 6.359468798172866e-09, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "below_grid_k52", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.975736996017264e-16, + "tolerance": 6.359468354083656e-09, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 9.865181867315367e-16, + "global_phase": 6.975736996017264e-16 + }, + { + "entry": "below_grid_k52", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 7.320607030515658e-16, + "tolerance": 5.100077900545513e-15, + "status": "pass", + "note": "the reader moved its angles by 2.22e-16 of a turn in all, as its rule has it" + }, + { + "entry": "below_grid_k52", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "below_grid_k52", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.220446049250318e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.220446049250318e-16, + "global_phase": 8.347748485046958e-32, + "seconds": 0.000114005 + }, + { + "entry": "below_grid_k52", + "engine": "wai.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 6.975736996017264e-16 + }, + { + "entry": "below_grid_k52", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.12323399573676e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.659560562354938e-17, + "global_phase": 6.12323399573678e-17, + "seconds": 0.000135716 + }, + { + "entry": "below_grid_k52", + "engine": "aer.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.912220973938198, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 6.975736996017264e-16 + }, + { + "entry": "below_grid_k52", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.12323399573676e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.659560562354938e-17, + "global_phase": 6.12323399573678e-17, + "seconds": 0.000130647, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "below_grid_k52", + "engine": "aer.qasm_import", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.912220973938198, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 6.975736996017264e-16 + }, + { + "entry": "below_grid_k52", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.2204460492503082e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.2204460492503082e-16, + "global_phase": -2.9092241912593063e-32, + "seconds": 0.5214385790750384 + }, + { + "entry": "below_grid_k52", + "engine": "quimb.dense", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999999, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 6.975736996017264e-16 + }, + { + "entry": "below_grid_k52", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1102230246251516e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 1.1102230246251516e-16, + "global_phase": -5.025361679814063e-32, + "seconds": 0.0010285940952599049 + }, + { + "entry": "below_grid_k52", + "engine": "quimb.tensor_network", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 6.975736996017264e-16 + }, + { + "entry": "below_grid_k52", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.975736996017264e-16, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 9.865181867315367e-16, + "global_phase": 6.975736996017264e-16, + "seconds": 0.005118391942232847 + }, + { + "entry": "below_grid_k52", + "engine": "ddsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": -4.318084277547225e-78, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "info", + "note": "drops it: the angle, 1.4e-15 rad, is below its parameter tolerance of 1e-13 rad, where it may read an angle as 0", + "step": 6.975736996017264e-16 + }, + { + "entry": "below_grid_k52", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.2529087505416256e-22, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.7718805474318958e-22, + "global_phase": -1.2529087505416256e-22, + "seconds": 0.00038790307007730007 + }, + { + "entry": "below_grid_k52", + "engine": "qsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0000001796095168, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 6.975736996017264e-16 + }, + { + "entry": "below_grid_k52", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 6.975736996017264e-16, + "tolerance": 6.359468798172866e-09, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "below_grid_k60", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.7248972640692436e-18, + "tolerance": 6.359468354083656e-09, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 3.853586666920065e-18, + "global_phase": 2.7248972640692436e-18 + }, + { + "entry": "below_grid_k60", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.220613240557954e-16, + "tolerance": 3.7103802958702e-15, + "status": "pass", + "note": "the reader moved its angles by 8.67e-19 of a turn in all, as its rule has it" + }, + { + "entry": "below_grid_k60", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "below_grid_k60", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.220446049250313e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.220446049250313e-16, + "global_phase": 3.2608392519714503e-34, + "seconds": 0.000128222 + }, + { + "entry": "below_grid_k60", + "engine": "wai.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "info", + "note": "neither can be told: its distance from the ideal state, 2.22e-16, is more than half the gate's effect, 2.72e-18", + "step": 2.7248972640692436e-18 + }, + { + "entry": "below_grid_k60", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.123233995736766e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.659560562354932e-17, + "global_phase": 6.123233995736765e-17, + "seconds": 0.000140555 + }, + { + "entry": "below_grid_k60", + "engine": "aer.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": -21.47143067182134, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "info", + "note": "neither can be told: its distance from the ideal state, 6.12e-17, is more than half the gate's effect, 2.72e-18", + "step": 2.7248972640692436e-18 + }, + { + "entry": "below_grid_k60", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.123233995736766e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.659560562354932e-17, + "global_phase": 6.123233995736765e-17, + "seconds": 0.000151937, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "below_grid_k60", + "engine": "aer.qasm_import", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": -21.47143067182134, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "info", + "note": "neither can be told: its distance from the ideal state, 6.12e-17, is more than half the gate's effect, 2.72e-18", + "step": 2.7248972640692436e-18 + }, + { + "entry": "below_grid_k60", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.220446049250313e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.220446049250313e-16, + "global_phase": -1.136415699710684e-34, + "seconds": 0.5481588840484619 + }, + { + "entry": "below_grid_k60", + "engine": "quimb.dense", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999999, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "info", + "note": "neither can be told: its distance from the ideal state, 2.22e-16, is more than half the gate's effect, 2.72e-18", + "step": 2.7248972640692436e-18 + }, + { + "entry": "below_grid_k60", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1102230246251565e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 1.1102230246251565e-16, + "global_phase": -1.9630319061773865e-34, + "seconds": 0.0010066221002489328 + }, + { + "entry": "below_grid_k60", + "engine": "quimb.tensor_network", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "info", + "note": "neither can be told: its distance from the ideal state, 1.11e-16, is more than half the gate's effect, 2.72e-18", + "step": 2.7248972640692436e-18 + }, + { + "entry": "below_grid_k60", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.7248972640692436e-18, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 3.853586666920065e-18, + "global_phase": 2.7248972640692436e-18, + "seconds": 0.004957589088007808 + }, + { + "entry": "below_grid_k60", + "engine": "ddsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": -4.3180842775472223e-78, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "info", + "note": "drops it: the angle, 5.45e-18 rad, is below its parameter tolerance of 1e-13 rad, where it may read an angle as 0", + "step": 2.7248972640692436e-18 + }, + { + "entry": "below_grid_k60", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.894174806803225e-25, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 6.921408388405842e-25, + "global_phase": -4.894174806803225e-25, + "seconds": 0.000476971035823226 + }, + { + "entry": "below_grid_k60", + "engine": "qsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0000001796095168, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.7248972640692436e-18 + }, + { + "entry": "below_grid_k60", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 2.7248972640692436e-18, + "tolerance": 6.359468798172866e-09, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "tiny_radians", + "engine": "wai.exact", + "quantity": "refuses, as listed: an angle no grid of 2^32 holds within 10^-14 of a turn", + "measured": "the angle 0.000000000001 is not a dyadic multiple of 2\u03c0 (2\u03c0m/2^k, k \u2264 32) [Q500]", + "tolerance": "[Q500]", + "status": "refused" + }, + { + "entry": "tiny_radians", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.220446050500313e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.220446050500313e-16, + "global_phase": -8.636168555094445e-78, + "seconds": 0.000120096 + }, + { + "entry": "tiny_radians", + "engine": "wai.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 5e-13 + }, + { + "entry": "tiny_radians", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.123233995739025e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.659560562364557e-17, + "global_phase": 6.123233995748117e-17, + "seconds": 0.000141277 + }, + { + "entry": "tiny_radians", + "engine": "aer.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9998775353200852, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 5e-13 + }, + { + "entry": "tiny_radians", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.123233995739025e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.659560562364557e-17, + "global_phase": 6.123233995748117e-17, + "seconds": 0.000145405, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "tiny_radians", + "engine": "aer.qasm_import", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9998775353200852, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 5e-13 + }, + { + "entry": "tiny_radians", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.220446048000313e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.220446048000313e-16, + "global_phase": -8.636168555094445e-78, + "seconds": 0.5153416781686246 + }, + { + "entry": "tiny_radians", + "engine": "quimb.dense", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999999, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 5e-13 + }, + { + "entry": "tiny_radians", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1102230233751565e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 1.1102230233751565e-16, + "global_phase": -8.636168555094445e-78, + "seconds": 0.0009240461513400078 + }, + { + "entry": "tiny_radians", + "engine": "quimb.tensor_network", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999998, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 5e-13 + }, + { + "entry": "tiny_radians", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.0710678118654759e-13, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 2.0710678118654759e-13, + "global_phase": -8.636168555094445e-78, + "seconds": 0.007751459022983909 + }, + { + "entry": "tiny_radians", + "engine": "ddsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.4142135623730951, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 5e-13 + }, + { + "entry": "tiny_radians", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.2212207224549863e-20, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 5.2212207224549863e-20, + "global_phase": -8.636168555094445e-78, + "seconds": 0.000427998136729002 + }, + { + "entry": "tiny_radians", + "engine": "qsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0000001044244144, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 5e-13 + }, + { + "entry": "tiny_radians", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 2.220446050500313e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "planned statevector" + }, + { + "entry": "controlled_small_angle_k30", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1420141439699675e-10, + "tolerance": 1.124205801572448e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 1.318684346878841e-10, + "global_phase": 6.593421734394193e-11 + }, + { + "entry": "controlled_small_angle_k30", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.220446049250313e-16, + "tolerance": 5.113306542163034e-15, + "status": "pass" + }, + { + "entry": "controlled_small_angle_k30", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "controlled_small_angle_k30", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.264462534400411e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.264462534400411e-16, + "global_phase": 1.9176275486733354e-25, + "seconds": 0.000147659 + }, + { + "entry": "controlled_small_angle_k30", + "engine": "wai.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.533848440601795e-09 + }, + { + "entry": "controlled_small_angle_k30", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.5107736123526882e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.5107736123526882e-16, + "global_phase": 1.6248208038498013e-25, + "seconds": 0.000134725 + }, + { + "entry": "controlled_small_angle_k30", + "engine": "aer.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999998, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.533848440601795e-09 + }, + { + "entry": "controlled_small_angle_k30", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.5107736123526882e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.5107736123526882e-16, + "global_phase": 1.6248208038498013e-25, + "seconds": 0.000115628, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "controlled_small_angle_k30", + "engine": "aer.qasm_import", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999998, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.533848440601795e-09 + }, + { + "entry": "controlled_small_angle_k30", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.1789050545163395e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.1789050545163395e-16, + "global_phase": -4.43130727532768e-26, + "seconds": 0.5479984912090003 + }, + { + "entry": "controlled_small_angle_k30", + "engine": "quimb.dense", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999999, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.533848440601795e-09 + }, + { + "entry": "controlled_small_angle_k30", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.2442154962177805e-16, + "tolerance": 1.2179168538502112e-14, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 1.2442154962177805e-16, + "global_phase": 9.621203981595483e-27, + "seconds": 0.0010141460224986076 + }, + { + "entry": "controlled_small_angle_k30", + "engine": "quimb.tensor_network", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0000000000000002, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.533848440601795e-09 + }, + { + "entry": "controlled_small_angle_k30", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.264462534400411e-16, + "tolerance": 2.0536705801163775e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 2.264462534400411e-16, + "global_phase": 1.9176275486733354e-25, + "seconds": 0.004981703823432326 + }, + { + "entry": "controlled_small_angle_k30", + "engine": "ddsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.533848440601795e-09 + }, + { + "entry": "controlled_small_angle_k30", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.629464108145288e-16, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.035841329600863e-16, + "global_phase": -1.5173170672237367e-16, + "seconds": 0.00047012814320623875 + }, + { + "entry": "controlled_small_angle_k30", + "engine": "qsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.000000103718526, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.533848440601795e-09 + }, + { + "entry": "controlled_small_angle_k30", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 1.318684346878841e-10, + "tolerance": 1.124205845981369e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "repeated_phase_k19", + "engine": "wai.exact", + "quantity": "distance from the exact state, with its phase", + "measured": 2.090091719567029e-05, + "tolerance": 0.0005896954749609032, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 2.090091719567029e-05, + "global_phase": -8.98616194923116e-06 + }, + { + "entry": "repeated_phase_k19", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.1469269978192642e-11, + "tolerance": 3.691996255357389e-10, + "status": "pass" + }, + { + "entry": "repeated_phase_k19", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "repeated_phase_k19", + "engine": "wai.exact", + "quantity": "modulus of the half turn's amplitude against the extension's figure, 1.0000189 (section 5)", + "measured": 1.0000188704983832, + "tolerance": [ + 1.00001885, + 1.00001895 + ], + "status": "pass" + }, + { + "entry": "repeated_phase_k19", + "engine": "wai.exact", + "quantity": "its angle from the half turn, in radians, which the extension states is within 1e-5", + "measured": 8.986161949664506e-06, + "tolerance": 1e-05, + "status": "pass" + }, + { + "entry": "repeated_phase_k19", + "engine": "wai.statevector", + "quantity": "distance from the exact state, with its phase", + "measured": 1.1478380657970898e-11, + "tolerance": 1.2323077410585953e-09, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.1478380657970898e-11, + "global_phase": 1.2540980081523036e-14, + "seconds": 0.023295913 + }, + { + "entry": "repeated_phase_k19", + "engine": "aer.statevector", + "quantity": "distance from the exact state, with its phase", + "measured": 1.1478380657970898e-11, + "tolerance": 6.385440635465657e-10, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.1478380657970898e-11, + "global_phase": 1.2540980081523036e-14, + "seconds": 0.190796538 + }, + { + "entry": "repeated_phase_k19", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, with its phase", + "measured": 1.1472378602661593e-11, + "tolerance": 1.1984830013680813e-07, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 1.1472378602661593e-11, + "global_phase": 1.8012456755360483e-73, + "seconds": 0.8133124879095703 + }, + { + "entry": "repeated_phase_k19", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, with its phase", + "measured": 3.567080057109706e-06, + "tolerance": 0.4603361563387136, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.567080057109706e-06, + "global_phase": -3.567080057094577e-06, + "seconds": 2.574246944859624 + }, + { + "entry": "repeated_phase_k19", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 2.090091719567029e-05, + "tolerance": 0.0005896954749613473, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "repeated_phase_k19_quarter", + "engine": "wai.exact", + "quantity": "distance from the exact state, with its phase", + "measured": 1.047244444186998e-05, + "tolerance": 0.0002947757619556973, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 1.047244444186998e-05, + "global_phase": -4.540154705363209e-06 + }, + { + "entry": "repeated_phase_k19_quarter", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 5.743183706385935e-12, + "tolerance": 1.8460096101102305e-10, + "status": "pass" + }, + { + "entry": "repeated_phase_k19_quarter", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "repeated_phase_k19_quarter", + "engine": "wai.statevector", + "quantity": "distance from the exact state, with its phase", + "measured": 5.74251759013435e-12, + "tolerance": 6.161562205811709e-10, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 5.74251759013435e-12, + "global_phase": -4.491256677518576e-16, + "seconds": 0.020026285 + }, + { + "entry": "repeated_phase_k19_quarter", + "engine": "aer.statevector", + "quantity": "distance from the exact state, with its phase", + "measured": 5.74251759013435e-12, + "tolerance": 3.1927446750505746e-10, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 5.74251759013435e-12, + "global_phase": -4.491256677518576e-16, + "seconds": 0.110901937 + }, + { + "entry": "repeated_phase_k19_quarter", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, with its phase", + "measured": 5.740297126521909e-12, + "tolerance": 5.992437510718075e-08, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 5.740297126521909e-12, + "global_phase": -2.703379842801214e-73, + "seconds": 0.4202435459010303 + }, + { + "entry": "repeated_phase_k19_quarter", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, with its phase", + "measured": 1.6820540622575209e-06, + "tolerance": 0.20078852355361088, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.6820540622575209e-06, + "global_phase": -1.6820540622559346e-06, + "seconds": 1.312816796824336 + }, + { + "entry": "repeated_phase_k19_quarter", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 1.047244444186998e-05, + "tolerance": 0.0002947757619561414, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "h_squared_chain", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.268858116783184e-74, + "tolerance": 1.3024290507716588e-05, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 4.268858116783184e-74, + "global_phase": 0.0 + }, + { + "entry": "h_squared_chain", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 3.2152058793144533e-13, + "tolerance": 5.769596441655645e-12, + "status": "pass" + }, + { + "entry": "h_squared_chain", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "h_squared_chain", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.220446049250313e-16, + "tolerance": 1.925473497969857e-11, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.220446049250313e-16, + "global_phase": 0.0, + "seconds": 0.000525934 + }, + { + "entry": "h_squared_chain", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.2540383223268955e-13, + "tolerance": 9.979610700548103e-12, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.7734780031702986e-13, + "global_phase": 1.2540383223268955e-13, + "seconds": 0.001889591 + }, + { + "entry": "h_squared_chain", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.268858116783184e-74, + "tolerance": 1.8726223275672444e-09, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 4.268858116783184e-74, + "global_phase": 0.0, + "seconds": 0.015368391992524266 + }, + { + "entry": "h_squared_chain", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.268858116783184e-74, + "tolerance": 0.005385146579735082, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 4.268858116783184e-74, + "global_phase": 0.0, + "seconds": 0.03412732295691967 + }, + { + "entry": "h_squared_chain", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.2152058793144533e-13, + "tolerance": 1.925473497969857e-11, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 3.2152058793144533e-13, + "global_phase": 0.0, + "seconds": 1.4359651380218565 + }, + { + "entry": "h_squared_chain", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 1, + "tolerance": 1, + "status": "pass" + }, + { + "entry": "h_squared_chain", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 6.000394932925701e-05 + }, + { + "entry": "h_squared_chain", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 2.0027e-05 + }, + { + "entry": "h_squared_chain", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 0, + "tolerance": 0, + "status": "pass" + }, + { + "entry": "h_squared_chain", + "engine": "aer.stabilizer", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.001530763 + }, + { + "entry": "h_squared_chain", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 4.268858116783184e-74, + "tolerance": 1.3024290508160677e-05, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_id", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.215285710182298e-10, + "tolerance": 1.31047032241826e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.34192377730194323, + "global_phase": -0.343611696318314 + }, + { + "entry": "gate_id", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.797157557069881e-17, + "tolerance": 1.0746810705446966e-14, + "status": "pass" + }, + { + "entry": "gate_id", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_id", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 0.000121379 + }, + { + "entry": "gate_id", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 0.000146276 + }, + { + "entry": "gate_id", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 0.000148561, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_id", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 0.616987622808665 + }, + { + "entry": "gate_id", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 5.633504163283886e-15, + "status": "pass", + "note": "double precision, a contraction of width 1.0", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 0.0006878301501274109 + }, + { + "entry": "gate_id", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.450168008707881e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 7.823846913581342e-17, + "global_phase": -2.389053613710233e-17, + "seconds": 0.02302591409534216 + }, + { + "entry": "gate_id", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.972922373777038e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 4.024089473196959e-08, + "global_phase": -6.396748512344255e-09, + "seconds": 0.00040936307050287724 + }, + { + "entry": "gate_id", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 6.889481801208546e-10, + "tolerance": 1.310470366827181e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_x", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.215285710182298e-10, + "tolerance": 1.31047032241826e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.34192377730194323, + "global_phase": -0.343611696318314 + }, + { + "entry": "gate_x", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.797157557069881e-17, + "tolerance": 1.2155186746267961e-14, + "status": "pass" + }, + { + "entry": "gate_x", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_x", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 0.00011649 + }, + { + "entry": "gate_x", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 0.000147478 + }, + { + "entry": "gate_x", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 0.000113434, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_x", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 0.6462035239674151 + }, + { + "entry": "gate_x", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.601258332818384e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 2.612115705267018e-16, + "global_phase": 2.3791499247742048e-17, + "seconds": 0.0009337051305919886 + }, + { + "entry": "gate_x", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.450168008707881e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 7.823846913581342e-17, + "global_phase": -2.389053613710233e-17, + "seconds": 0.004521524999290705 + }, + { + "entry": "gate_x", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.972922373777038e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 4.024089473196959e-08, + "global_phase": -6.396748512344255e-09, + "seconds": 0.00046487897634506226 + }, + { + "entry": "gate_x", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 6.889481801208546e-10, + "tolerance": 1.310470366827181e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_y", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.215285710182298e-10, + "tolerance": 1.31047032241826e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.34192377730194323, + "global_phase": -0.343611696318314 + }, + { + "entry": "gate_y", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.797157557069881e-17, + "tolerance": 1.2155186746267961e-14, + "status": "pass" + }, + { + "entry": "gate_y", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_y", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 0.000114636 + }, + { + "entry": "gate_y", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 0.000142018 + }, + { + "entry": "gate_y", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 0.000142941, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_y", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 0.5047509840223938 + }, + { + "entry": "gate_y", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.601258332818384e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 2.612115705267018e-16, + "global_phase": 2.3791499247742048e-17, + "seconds": 0.0009099389426410198 + }, + { + "entry": "gate_y", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.450168008707881e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 7.823846913581342e-17, + "global_phase": -2.389053613710233e-17, + "seconds": 0.005416616797447205 + }, + { + "entry": "gate_y", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.972922373777038e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 4.024089473196959e-08, + "global_phase": -6.396748512344255e-09, + "seconds": 0.00046634115278720856 + }, + { + "entry": "gate_y", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 6.889481801208546e-10, + "tolerance": 1.310470366827181e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_z", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.215285710182298e-10, + "tolerance": 1.31047032241826e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.34192377730194323, + "global_phase": -0.343611696318314 + }, + { + "entry": "gate_z", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.797157557069881e-17, + "tolerance": 1.2155186746267961e-14, + "status": "pass" + }, + { + "entry": "gate_z", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_z", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 0.000149512 + }, + { + "entry": "gate_z", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 0.000143842 + }, + { + "entry": "gate_z", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 0.000138482, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_z", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 0.6301086379680783 + }, + { + "entry": "gate_z", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.601258332818384e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 2.612115705267018e-16, + "global_phase": 2.3791499247742048e-17, + "seconds": 0.000927603105083108 + }, + { + "entry": "gate_z", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.450168008707881e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 7.823846913581342e-17, + "global_phase": -2.389053613710233e-17, + "seconds": 0.009303260827437043 + }, + { + "entry": "gate_z", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.972922373777038e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 4.024089473196959e-08, + "global_phase": -6.396748512344255e-09, + "seconds": 0.0004466639366000891 + }, + { + "entry": "gate_z", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 6.889481801208546e-10, + "tolerance": 1.310470366827181e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_h", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.297418772464286e-10, + "tolerance": 1.6284437449324706e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.34192377761663945, + "global_phase": -0.3436116965470948 + }, + { + "entry": "gate_h", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.6184142622847344e-16, + "tolerance": 1.2155186746267961e-14, + "status": "pass" + }, + { + "entry": "gate_h", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_h", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.21629110735534e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.2276852703978877e-16, + "global_phase": -1.6687439983489124e-17, + "seconds": 0.000133783 + }, + { + "entry": "gate_h", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.302360779314378e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 4.3023652669763116e-17, + "global_phase": -6.214105046513707e-20, + "seconds": 0.000130276 + }, + { + "entry": "gate_h", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.302360779314378e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 4.3023652669763116e-17, + "global_phase": -6.214105046513707e-20, + "seconds": 0.00015907, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_h", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.0522854711993345e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.0613476464155822e-16, + "global_phase": -1.3839838747142408e-17, + "seconds": 0.5220653940923512 + }, + { + "entry": "gate_h", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.0297188312971485e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 1.0446975334341954e-16, + "global_phase": -1.7627270019922646e-17, + "seconds": 0.0009346159640699625 + }, + { + "entry": "gate_h", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.005735287948008e-16, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 1.0263238454550441e-16, + "global_phase": 2.0454135602798455e-17, + "seconds": 0.00595882092602551 + }, + { + "entry": "gate_h", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.966975679892381e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 5.98957996981961e-08, + "global_phase": -5.1987446891852715e-09, + "seconds": 0.0004406520165503025 + }, + { + "entry": "gate_h", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 6.106383581313981e-10, + "tolerance": 1.6284437893413916e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_s", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.215285710182298e-10, + "tolerance": 1.31047032241826e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.34192377730194323, + "global_phase": -0.343611696318314 + }, + { + "entry": "gate_s", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.797157557069881e-17, + "tolerance": 1.2155186746267961e-14, + "status": "pass" + }, + { + "entry": "gate_s", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_s", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 0.000119015 + }, + { + "entry": "gate_s", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 0.000140345 + }, + { + "entry": "gate_s", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 0.000120207, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_s", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.630852225491436e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 7.941848649409825e-17, + "global_phase": -2.2006940457149062e-17, + "seconds": 0.643120147055015 + }, + { + "entry": "gate_s", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.603005323109453e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 2.615108259473306e-16, + "global_phase": 2.51305584158725e-17, + "seconds": 0.000989600084722042 + }, + { + "entry": "gate_s", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.450168008707881e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 7.823846913581342e-17, + "global_phase": -2.389053613710233e-17, + "seconds": 0.005322308046743274 + }, + { + "entry": "gate_s", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.972922373777038e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 4.024089473196959e-08, + "global_phase": -6.396748512344255e-09, + "seconds": 0.0004715709947049618 + }, + { + "entry": "gate_s", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 6.889481801208546e-10, + "tolerance": 1.310470366827181e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_sdg", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.215285710182298e-10, + "tolerance": 1.31047032241826e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.34192377730194323, + "global_phase": -0.343611696318314 + }, + { + "entry": "gate_sdg", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.797157557069881e-17, + "tolerance": 1.2155186746267961e-14, + "status": "pass" + }, + { + "entry": "gate_sdg", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_sdg", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 0.000121079 + }, + { + "entry": "gate_sdg", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 0.000135847 + }, + { + "entry": "gate_sdg", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 0.000147559, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_sdg", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.382173285089092e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 7.827453581328017e-17, + "global_phase": -2.6024117961540415e-17, + "seconds": 0.6067420809995383 + }, + { + "entry": "gate_sdg", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.603108606914298e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 2.6116569270757267e-16, + "global_phase": 2.1113380911481146e-17, + "seconds": 0.0011076529044657946 + }, + { + "entry": "gate_sdg", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.450168008707881e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 7.823846913581342e-17, + "global_phase": -2.389053613710233e-17, + "seconds": 0.014484110986813903 + }, + { + "entry": "gate_sdg", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.943352311089082e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.970085749751892e-08, + "global_phase": -4.599493655358549e-09, + "seconds": 0.00043631414882838726 + }, + { + "entry": "gate_sdg", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 6.889481801208546e-10, + "tolerance": 1.310470366827181e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_t", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.106142013710921e-10, + "tolerance": 1.5353114864300887e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.3419237772241995, + "global_phase": -0.34361169624455096 + }, + { + "entry": "gate_t", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.391654643720554e-16, + "tolerance": 1.2155186746267961e-14, + "status": "pass" + }, + { + "entry": "gate_t", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_t", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.505517921169503e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 7.853716323280881e-17, + "global_phase": -2.312587473280089e-17, + "seconds": 0.000118153 + }, + { + "entry": "gate_t", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.717808846720379e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.992952424721852e-17, + "global_phase": -2.2074877633532985e-17, + "seconds": 0.000138552 + }, + { + "entry": "gate_t", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.717808846720379e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.992952424721852e-17, + "global_phase": -2.2074877633532985e-17, + "seconds": 0.000114777, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_t", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.719606756839859e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.897950494461851e-17, + "global_phase": -1.7725634002671274e-17, + "seconds": 0.6523015878628939 + }, + { + "entry": "gate_t", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.5714418874366743e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 2.583379157683397e-16, + "global_phase": 2.4806146796528305e-17, + "seconds": 0.000935778021812439 + }, + { + "entry": "gate_t", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.28475541557995e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 8.726175410066437e-17, + "global_phase": -2.7402490746767553e-17, + "seconds": 0.004969049943611026 + }, + { + "entry": "gate_t", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.89155383821739e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.9294051504657585e-08, + "global_phase": -5.440896726885419e-09, + "seconds": 0.0004176988732069731 + }, + { + "entry": "gate_t", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 5.61834458444498e-10, + "tolerance": 1.5353115308390097e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_tdg", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.106142013710921e-10, + "tolerance": 1.5353114864300887e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.3419237772241995, + "global_phase": -0.34361169624455096 + }, + { + "entry": "gate_tdg", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 3.925231146709438e-17, + "tolerance": 1.2155186746267961e-14, + "status": "pass" + }, + { + "entry": "gate_tdg", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_tdg", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.505517921169503e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 7.853716323280881e-17, + "global_phase": -2.312587473280089e-17, + "seconds": 0.000154031 + }, + { + "entry": "gate_tdg", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.717808846720379e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.992952424721852e-17, + "global_phase": -2.2074877633532985e-17, + "seconds": 0.000150203 + }, + { + "entry": "gate_tdg", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.717808846720379e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.992952424721852e-17, + "global_phase": -2.2074877633532985e-17, + "seconds": 0.000154282, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_tdg", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.970911421196547e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.431147619128386e-17, + "global_phase": -2.74751183636626e-17, + "seconds": 0.5856501839589328 + }, + { + "entry": "gate_tdg", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.6151964440328685e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 2.621579032190157e-16, + "global_phase": 1.8282281350235733e-17, + "seconds": 0.0009043989703059196 + }, + { + "entry": "gate_tdg", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.28475541557995e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 8.726175410066437e-17, + "global_phase": -2.7402490746767553e-17, + "seconds": 0.004858100088313222 + }, + { + "entry": "gate_tdg", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.89155383821739e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.9294051504657585e-08, + "global_phase": -5.440896726885419e-09, + "seconds": 0.0004211859777569771 + }, + { + "entry": "gate_tdg", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 5.61834458444498e-10, + "tolerance": 1.5353115308390097e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_sx", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.428935600037752e-10, + "tolerance": 1.9464171686312247e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.34192377821509556, + "global_phase": -0.34361169721419027 + }, + { + "entry": "gate_sx", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 4.47545209131181e-16, + "tolerance": 1.4971938827909958e-14, + "status": "pass" + }, + { + "entry": "gate_sx", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_sx", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.883143723085527e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.1089515082943579e-16, + "global_phase": -7.799576258747036e-17, + "seconds": 0.000115849 + }, + { + "entry": "gate_sx", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.883143723085527e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.1089515082943579e-16, + "global_phase": -7.799576258747036e-17, + "seconds": 0.000133933 + }, + { + "entry": "gate_sx", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.883143723085527e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.1089515082943579e-16, + "global_phase": -7.799576258747036e-17, + "seconds": 0.000121079, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_sx", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.746268447036753e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 9.961413598330114e-17, + "global_phase": 2.0591289991867726e-17, + "seconds": 0.6507809539325535 + }, + { + "entry": "gate_sx", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.2197284139248533e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 1.3610312764631958e-16, + "global_phase": 6.038780769123827e-17, + "seconds": 0.0011995171662420034 + }, + { + "entry": "gate_sx", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.538395718338295e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 4.110604477631002e-17, + "global_phase": 2.0920862582516193e-17, + "seconds": 0.0054354011081159115 + }, + { + "entry": "gate_sx", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.648781749494884e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 6.78300679413258e-08, + "global_phase": 1.3427146129244078e-08, + "seconds": 0.00040903291665017605 + }, + { + "entry": "gate_sx", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 6.677587027880282e-10, + "tolerance": 1.9464172130401457e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_sxdg", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.428935600037752e-10, + "tolerance": 1.9464171686312247e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.34192377821509556, + "global_phase": -0.34361169721419027 + }, + { + "entry": "gate_sxdg", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 4.644396126208125e-16, + "tolerance": 1.4971938827909958e-14, + "status": "pass" + }, + { + "entry": "gate_sxdg", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_sxdg", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.883143723085527e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.1089515082943579e-16, + "global_phase": -7.799576258747036e-17, + "seconds": 0.000114546 + }, + { + "entry": "gate_sxdg", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.883143723085527e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.1089515082943579e-16, + "global_phase": -7.799576258747036e-17, + "seconds": 0.000144934 + }, + { + "entry": "gate_sxdg", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.883143723085527e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.1089515082943579e-16, + "global_phase": -7.799576258747036e-17, + "seconds": 0.000140756, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_sxdg", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3857242566777754e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.9663515787631043e-16, + "global_phase": -1.395101005575933e-16, + "seconds": 0.5474545031320304 + }, + { + "entry": "gate_sxdg", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.6690080258750108e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 1.6741400176489413e-16, + "global_phase": -1.3098476345895072e-17, + "seconds": 0.0009511178359389305 + }, + { + "entry": "gate_sxdg", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.538395718338295e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 4.110604477631002e-17, + "global_phase": 2.0920862582516193e-17, + "seconds": 0.004733975976705551 + }, + { + "entry": "gate_sxdg", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.648781749494884e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 6.78300679413258e-08, + "global_phase": 1.3427146129244078e-08, + "seconds": 0.0004675628151744604 + }, + { + "entry": "gate_sxdg", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 6.677587027880282e-10, + "tolerance": 1.9464172130401457e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_p", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.995197887656662e-10, + "tolerance": 1.760152651279516e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.3419237771409687, + "global_phase": -0.34361169616729076 + }, + { + "entry": "gate_p", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 3.98609107286759e-17, + "tolerance": 1.3563562787088958e-14, + "status": "pass" + }, + { + "entry": "gate_p", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_p", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.313486160344785e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 7.704220013563471e-17, + "global_phase": -2.4223802756456756e-17, + "seconds": 0.000124646 + }, + { + "entry": "gate_p", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.313486160344785e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.704220013563471e-17, + "global_phase": -2.4223802756456756e-17, + "seconds": 0.000144854 + }, + { + "entry": "gate_p", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.313486160344785e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.704220013563471e-17, + "global_phase": -2.4223802756456756e-17, + "seconds": 0.000157508, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_p", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.313486160344785e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 7.704220013563471e-17, + "global_phase": -2.4223802756456756e-17, + "seconds": 0.4954254310578108 + }, + { + "entry": "gate_p", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.591420616507136e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 2.603191180512201e-16, + "global_phase": 2.4727213882336242e-17, + "seconds": 0.0009607959073036909 + }, + { + "entry": "gate_p", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.278012833774088e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 7.7124430933596e-17, + "global_phase": -2.551922345944299e-17, + "seconds": 0.006496717920526862 + }, + { + "entry": "gate_p", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.062011345369532e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 4.100365323443884e-08, + "global_phase": -5.595173160877515e-09, + "seconds": 0.0004484180826693773 + }, + { + "entry": "gate_p", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 7.628483588096815e-10, + "tolerance": 1.760152695688437e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_rz", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.995197887656662e-10, + "tolerance": 1.760152651279516e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.4142227519932298, + "global_phase": -0.41724277398580156 + }, + { + "entry": "gate_rz", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.37549462997806e-16, + "tolerance": 1.3563562787088958e-14, + "status": "pass" + }, + { + "entry": "gate_rz", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_rz", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.675708805561484e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 8.906935906670267e-17, + "global_phase": -2.0163293299049675e-17, + "seconds": 0.000124986 + }, + { + "entry": "gate_rz", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.675708805561484e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.906935906670267e-17, + "global_phase": -2.0163293299049675e-17, + "seconds": 0.000138031 + }, + { + "entry": "gate_rz", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.675708805561484e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.906935906670267e-17, + "global_phase": -2.0163293299049675e-17, + "seconds": 0.000127621, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_rz", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.675708805561484e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.906935906670267e-17, + "global_phase": -2.0163293299049675e-17, + "seconds": 0.5350163779221475 + }, + { + "entry": "gate_rz", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.3950260021364374e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 2.423352576881746e-17, + "global_phase": 3.694430415771201e-18, + "seconds": 0.000952189089730382 + }, + { + "entry": "gate_rz", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4185122429663647e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 2.4301320525273574e-17, + "global_phase": 2.3736116645869262e-18, + "seconds": 0.00674850307404995 + }, + { + "entry": "gate_rz", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.8996080662383454e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 4.94410319513861e-08, + "global_phase": -6.618135859134059e-09, + "seconds": 0.0004510320723056793 + }, + { + "entry": "gate_rz", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 7.628483407254665e-10, + "tolerance": 1.760152695688437e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_rx", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.721338463483747e-10, + "tolerance": 2.396099501536765e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.4142227532791676, + "global_phase": -0.4172427753140338 + }, + { + "entry": "gate_rx", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 3.6407709131783e-16, + "tolerance": 1.6380314868730963e-14, + "status": "pass" + }, + { + "entry": "gate_rx", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_rx", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.5931317397913e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 8.351343419056392e-17, + "global_phase": -3.476965240722211e-17, + "seconds": 0.000117291 + }, + { + "entry": "gate_rx", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.5931317397913e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.351343419056392e-17, + "global_phase": -3.476965240722211e-17, + "seconds": 8.8087e-05 + }, + { + "entry": "gate_rx", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.5931317397913e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.351343419056392e-17, + "global_phase": -3.476965240722211e-17, + "seconds": 0.00014823, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_rx", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.5931317397913e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.351343419056392e-17, + "global_phase": -3.476965240722211e-17, + "seconds": 0.5433218928519636 + }, + { + "entry": "gate_rx", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.81914424214874e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 3.9392622051601065e-17, + "global_phase": 9.65362097176489e-18, + "seconds": 0.0008846421260386705 + }, + { + "entry": "gate_rx", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.9052708578186267e-16, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 1.9052959352986414e-16, + "global_phase": -9.775449483214286e-19, + "seconds": 0.0065087201073765755 + }, + { + "entry": "gate_rx", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.13449943056733e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 7.14538418283606e-08, + "global_phase": -3.942499283618367e-09, + "seconds": 0.00040312111377716064 + }, + { + "entry": "gate_rx", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 4.4181248630638904e-10, + "tolerance": 2.396099545945686e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_ry", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.2409363625347744e-09, + "tolerance": 2.396099501536765e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.414222752292711, + "global_phase": -0.41724277398367 + }, + { + "entry": "gate_ry", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 3.399349888776296e-16, + "tolerance": 1.9197066950372985e-14, + "status": "pass" + }, + { + "entry": "gate_ry", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_ry", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.57345942189955e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 6.842613937384835e-17, + "global_phase": -3.969624109223988e-17, + "seconds": 0.000116199 + }, + { + "entry": "gate_ry", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.57345942189955e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 6.842613937384835e-17, + "global_phase": -3.969624109223988e-17, + "seconds": 0.000173708 + }, + { + "entry": "gate_ry", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.57345942189955e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 6.842613937384835e-17, + "global_phase": -3.969624109223988e-17, + "seconds": 0.000106381, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_ry", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.57345942189955e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 6.842613937384835e-17, + "global_phase": -3.969624109223988e-17, + "seconds": 0.5864750619512051 + }, + { + "entry": "gate_ry", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.6674804081621045e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 1.6948196926025085e-16, + "global_phase": -3.031878606224255e-17, + "seconds": 0.0009316201321780682 + }, + { + "entry": "gate_ry", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.0768514993279215e-16, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 2.076873167985705e-16, + "global_phase": -9.487130142598933e-19, + "seconds": 0.0059508648701012135 + }, + { + "entry": "gate_ry", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.603765595133934e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 6.646933669056669e-08, + "global_phase": -7.563115743658391e-09, + "seconds": 0.0004296218976378441 + }, + { + "entry": "gate_ry", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.2003202420018814e-09, + "tolerance": 2.396099545945686e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_u", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.3299399684452383e-09, + "tolerance": 3.520305348458589e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.414222751716885, + "global_phase": -0.4172427735725292 + }, + { + "entry": "gate_u", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 3.5135752366389115e-16, + "tolerance": 2.623894715447811e-14, + "status": "pass" + }, + { + "entry": "gate_u", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_u", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.314585777625235e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 8.691864484222037e-17, + "global_phase": -2.533016296550929e-17, + "seconds": 0.000115648 + }, + { + "entry": "gate_u", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.314585777625235e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.691864484222037e-17, + "global_phase": -2.533016296550929e-17, + "seconds": 0.000134785 + }, + { + "entry": "gate_u", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.314585777625235e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.691864484222037e-17, + "global_phase": -2.533016296550929e-17, + "seconds": 0.000144023, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_u", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.314585777625235e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.691864484222037e-17, + "global_phase": -2.533016296550929e-17, + "seconds": 0.5263322470709682 + }, + { + "entry": "gate_u", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.8147089735663164e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 4.01615510436094e-17, + "global_phase": -1.2559845816239341e-17, + "seconds": 0.0009926259517669678 + }, + { + "entry": "gate_u", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.358437662023061e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 9.242975907293169e-17, + "global_phase": -3.9457728612879396e-17, + "seconds": 0.0076363710686564445 + }, + { + "entry": "gate_u", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.7473192261710214e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 5.756340185722096e-08, + "global_phase": 3.221397862402741e-09, + "seconds": 0.0005287090316414833, + "adapter": [ + "U as a matrix" + ] + }, + { + "entry": "gate_u", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 2.2736198170971336e-09, + "tolerance": 3.52030539286751e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_cx", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.7176025563172868e-09, + "tolerance": 3.7065698406228126e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5097313190687244, + "global_phase": -0.5154175443934055 + }, + { + "entry": "gate_cx", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 5.69180325632064e-16, + "tolerance": 2.2013819032015023e-14, + "status": "pass" + }, + { + "entry": "gate_cx", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_cx", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.168161905669198e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 8.91361828527817e-17, + "global_phase": -3.568434112943644e-17, + "seconds": 0.000122191 + }, + { + "entry": "gate_cx", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8904608864862223e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9816663129359017e-16, + "global_phase": -5.942718338359123e-17, + "seconds": 0.000161505 + }, + { + "entry": "gate_cx", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8904608864862223e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9816663129359017e-16, + "global_phase": -5.942718338359123e-17, + "seconds": 0.000157969, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_cx", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.80470172216428e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.857402632175859e-17, + "global_phase": -9.647844174701355e-18, + "seconds": 0.6076895829755813 + }, + { + "entry": "gate_cx", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.7597011598389503e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 3.760226996469289e-16, + "global_phase": 6.2882856822035484e-18, + "seconds": 0.0013201450929045677 + }, + { + "entry": "gate_cx", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.240978075601184e-17, + "tolerance": 3.422784300198615e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 4.424447715313029e-17, + "global_phase": -1.260889585891152e-17, + "seconds": 0.007373743923380971 + }, + { + "entry": "gate_cx", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.3688396617454296e-08, + "tolerance": 6.538684074497576e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 4.3725610219115716e-08, + "global_phase": -1.8036046965337988e-09, + "seconds": 0.0004815098363906145 + }, + { + "entry": "gate_cx", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 7.758163812553453e-10, + "tolerance": 3.7065698850317336e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_cy", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.7176025563172868e-09, + "tolerance": 3.7065698406228126e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5097313190687244, + "global_phase": -0.5154175443934055 + }, + { + "entry": "gate_cy", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 5.803058411796183e-16, + "tolerance": 2.2013819032015023e-14, + "status": "pass" + }, + { + "entry": "gate_cy", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_cy", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.168161905669198e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 8.91361828527817e-17, + "global_phase": -3.568434112943644e-17, + "seconds": 0.000125347 + }, + { + "entry": "gate_cy", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8904608864862223e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9816663129359017e-16, + "global_phase": -5.942718338359123e-17, + "seconds": 0.000154222 + }, + { + "entry": "gate_cy", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8904608864862223e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9816663129359017e-16, + "global_phase": -5.942718338359123e-17, + "seconds": 0.000159782, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_cy", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.725119608790783e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.770551865339345e-17, + "global_phase": -8.915536074191195e-18, + "seconds": 0.6105993310920894 + }, + { + "entry": "gate_cy", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.870979453198708e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 4.88014002929309e-16, + "global_phase": 2.9887434152964544e-17, + "seconds": 0.0012942960020154715 + }, + { + "entry": "gate_cy", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.5958386553221286e-17, + "tolerance": 3.422784300198615e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 3.801829443895296e-17, + "global_phase": -1.2344437959503701e-17, + "seconds": 0.005472431890666485 + }, + { + "entry": "gate_cy", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.678315546879831e-08, + "tolerance": 6.538684074497576e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 5.6825705358055105e-08, + "global_phase": -2.1986460052579153e-09, + "seconds": 0.0005499089602380991 + }, + { + "entry": "gate_cy", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 7.758163812553453e-10, + "tolerance": 3.7065698850317336e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_cz", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.7176025563172868e-09, + "tolerance": 3.7065698406228126e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5097313190687244, + "global_phase": -0.5154175443934055 + }, + { + "entry": "gate_cz", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 5.69180325632064e-16, + "tolerance": 2.2013819032015023e-14, + "status": "pass" + }, + { + "entry": "gate_cz", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_cz", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.168161905669198e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 8.91361828527817e-17, + "global_phase": -3.568434112943644e-17, + "seconds": 0.000121068 + }, + { + "entry": "gate_cz", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8904608864862223e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9816663129359017e-16, + "global_phase": -5.942718338359123e-17, + "seconds": 0.000146507 + }, + { + "entry": "gate_cz", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8904608864862223e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9816663129359017e-16, + "global_phase": -5.942718338359123e-17, + "seconds": 0.000146206, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_cz", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.80470172216428e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.857402632175859e-17, + "global_phase": -9.647844174701355e-18, + "seconds": 0.5635489770211279 + }, + { + "entry": "gate_cz", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.328520726670461e-17, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 5.749743207707539e-17, + "global_phase": -3.7846341003276924e-17, + "seconds": 0.0011935059446841478 + }, + { + "entry": "gate_cz", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.863654005462392e-17, + "tolerance": 3.422784300198615e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 3.2301684670985136e-17, + "global_phase": 1.4944812019014365e-17, + "seconds": 0.00658082589507103 + }, + { + "entry": "gate_cz", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.3688396617454296e-08, + "tolerance": 6.538684074497576e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 4.3725610219115716e-08, + "global_phase": -1.8036046965337988e-09, + "seconds": 0.0004947648849338293 + }, + { + "entry": "gate_cz", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 7.758163812553453e-10, + "tolerance": 3.7065698850317336e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_ch", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.9341292084461625e-09, + "tolerance": 4.024543270561464e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.509731319102237, + "global_phase": -0.5154175444351148 + }, + { + "entry": "gate_ch", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 5.691274530154562e-16, + "tolerance": 2.2013819032015023e-14, + "status": "pass" + }, + { + "entry": "gate_ch", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_ch", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.28975981095215e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 9.011893242098248e-17, + "global_phase": -3.534699716199192e-17, + "seconds": 0.000110779 + }, + { + "entry": "gate_ch", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.623398949999615e-17, + "tolerance": 2.9230004492405574e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.0533633233600722e-16, + "global_phase": -6.049332165550436e-17, + "seconds": 0.000161576 + }, + { + "entry": "gate_ch", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.623398949999615e-17, + "tolerance": 2.9230004492405574e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.0533633233600722e-16, + "global_phase": -6.049332165550436e-17, + "seconds": 0.000152529, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_ch", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.785540840236103e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.84074282147305e-17, + "global_phase": -9.864105534567055e-18, + "seconds": 0.6090931938961148 + }, + { + "entry": "gate_ch", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.79756395496844e-17, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 8.84664545257197e-17, + "global_phase": -9.305934782451324e-18, + "seconds": 0.0010515069589018822 + }, + { + "entry": "gate_ch", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1269851648944688e-16, + "tolerance": 3.422784300198615e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 1.1310339669549782e-16, + "global_phase": -9.561523159884953e-18, + "seconds": 0.00552916806191206 + }, + { + "entry": "gate_ch", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.8837376062143836e-08, + "tolerance": 6.538684074497576e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.887514690754156e-08, + "global_phase": -1.7132622630867782e-09, + "seconds": 0.0005035519134253263 + }, + { + "entry": "gate_ch", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.0224330004156118e-09, + "tolerance": 4.024543314970385e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_csx", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.048677441247478e-09, + "tolerance": 5.241881377546922e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5097313188212698, + "global_phase": -0.5154175438919232 + }, + { + "entry": "gate_csx", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 5.66737770278715e-16, + "tolerance": 3.046407527694123e-14, + "status": "pass" + }, + { + "entry": "gate_csx", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_csx", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.725698756055846e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.0208510354511309e-16, + "global_phase": -3.1023325683456925e-17, + "seconds": 0.000124235 + }, + { + "entry": "gate_csx", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8892107758311093e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9841132369045797e-16, + "global_phase": -6.062903440956213e-17, + "seconds": 0.000142018 + }, + { + "entry": "gate_csx", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8892107758311093e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9841132369045797e-16, + "global_phase": -6.062903440956213e-17, + "seconds": 0.000150014, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_csx", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.099356463218705e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 9.125317820124742e-17, + "global_phase": -6.878497463590267e-18, + "seconds": 0.6198930938262492 + }, + { + "entry": "gate_csx", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.912707607396824e-17, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 1.066563277494779e-16, + "global_phase": -5.85827326053431e-17, + "seconds": 0.001084440154954791 + }, + { + "entry": "gate_csx", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.915080762391691e-17, + "tolerance": 3.422784300198615e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 6.011375504119853e-17, + "global_phase": 1.07165993949384e-17, + "seconds": 0.005798267899081111 + }, + { + "entry": "gate_csx", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.125975508692399e-08, + "tolerance": 6.538684074497576e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 9.135192126279703e-08, + "global_phase": -4.1025140345377066e-09, + "seconds": 0.0004738159477710724 + }, + { + "entry": "gate_csx", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.9735472782757593e-09, + "tolerance": 5.241881421955843e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_swap", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.7176025563172868e-09, + "tolerance": 3.7065698406228126e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5097313190687244, + "global_phase": -0.5154175443934055 + }, + { + "entry": "gate_swap", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 5.69180325632064e-16, + "tolerance": 2.483057111365708e-14, + "status": "pass" + }, + { + "entry": "gate_swap", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_swap", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.168161905669198e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 8.91361828527817e-17, + "global_phase": -3.568434112943644e-17, + "seconds": 0.000125608 + }, + { + "entry": "gate_swap", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8904608864862223e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9816663129359017e-16, + "global_phase": -5.942718338359123e-17, + "seconds": 0.000143832 + }, + { + "entry": "gate_swap", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8904608864862223e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9816663129359017e-16, + "global_phase": -5.942718338359123e-17, + "seconds": 0.000130387, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_swap", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.80470172216428e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.857402632175859e-17, + "global_phase": -9.647844174701355e-18, + "seconds": 0.5910857848357409 + }, + { + "entry": "gate_swap", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.274141277000301e-17, + "tolerance": 1.705083595390304e-14, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 9.01323343579344e-17, + "global_phase": -3.574487808951742e-17, + "seconds": 0.0009371310006827116 + }, + { + "entry": "gate_swap", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.5355598403113594e-17, + "tolerance": 3.422784300198615e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 2.929333588180882e-17, + "global_phase": 1.4669463408880753e-17, + "seconds": 0.016697623999789357 + }, + { + "entry": "gate_swap", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.3688396617454296e-08, + "tolerance": 6.538684074497576e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 4.3725610219115716e-08, + "global_phase": -1.8036046965337988e-09, + "seconds": 0.000456071924418211 + }, + { + "entry": "gate_swap", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.269523738641594e-09, + "tolerance": 3.7065698850317336e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_cp", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.90469926587008e-09, + "tolerance": 4.1562521825982275e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5097313190770784, + "global_phase": -0.5154175444015007 + }, + { + "entry": "gate_cp", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 3.395552269415708e-16, + "tolerance": 2.3422195072836047e-14, + "status": "pass" + }, + { + "entry": "gate_cp", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_cp", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.169518313214467e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 8.915186535406673e-17, + "global_phase": -3.5692466279524444e-17, + "seconds": 0.000121981 + }, + { + "entry": "gate_cp", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.890602566691516e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9817542452890808e-16, + "global_phase": -5.941143185791318e-17, + "seconds": 0.000142519 + }, + { + "entry": "gate_cp", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.890602566691516e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9817542452890808e-16, + "global_phase": -5.941143185791318e-17, + "seconds": 0.000125106, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_cp", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.806200314432678e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.858980833816434e-17, + "global_phase": -9.655969324789357e-18, + "seconds": 0.6981419951189309 + }, + { + "entry": "gate_cp", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.989598759799277e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 4.994363711516718e-16, + "global_phase": -2.1811258359976394e-17, + "seconds": 0.0014490680769085884 + }, + { + "entry": "gate_cp", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.8689118145600094e-17, + "tolerance": 3.422784300198615e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 3.235558624947136e-17, + "global_phase": 1.496056354469242e-17, + "seconds": 0.005985841853544116 + }, + { + "entry": "gate_cp", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.37436778904508e-08, + "tolerance": 6.538684074497576e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 4.378062298540436e-08, + "global_phase": -1.7982195301532557e-09, + "seconds": 0.000531103927642107 + }, + { + "entry": "gate_cp", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.038998778744163e-09, + "tolerance": 4.1562522270071485e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_crx", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.8086510103644533e-09, + "tolerance": 6.645484043714706e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5097313191439519, + "global_phase": -0.5154175441769436 + }, + { + "entry": "gate_crx", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 5.656109720225847e-16, + "tolerance": 3.6097579440225456e-14, + "status": "pass" + }, + { + "entry": "gate_crx", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_crx", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.009758628780408e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 9.698821067454252e-17, + "global_phase": -3.59045673273073e-17, + "seconds": 0.000159091 + }, + { + "entry": "gate_crx", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8936689079253123e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9851544823524085e-16, + "global_phase": -5.956982339748994e-17, + "seconds": 0.000151496 + }, + { + "entry": "gate_crx", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8936689079253123e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9851544823524085e-16, + "global_phase": -5.956982339748994e-17, + "seconds": 0.000122231, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_crx", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.738601907354026e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.786005079066397e-17, + "global_phase": -9.114394956161993e-18, + "seconds": 0.6765016198623925 + }, + { + "entry": "gate_crx", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.056910284356371e-17, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 1.1082744485265874e-16, + "global_phase": -6.387456569465732e-17, + "seconds": 0.0012154867872595787 + }, + { + "entry": "gate_crx", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.714283765685584e-17, + "tolerance": 3.422784300198615e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 8.765720863933407e-17, + "global_phase": -9.482197611873177e-18, + "seconds": 0.005727794952690601 + }, + { + "entry": "gate_crx", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.200118250500034e-08, + "tolerance": 6.538684074497576e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 4.2026073233097646e-08, + "global_phase": -1.4462017472784202e-09, + "seconds": 0.0005569730419665575 + }, + { + "entry": "gate_crx", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.722285813315235e-09, + "tolerance": 6.645484088123627e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_cry", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.77532855615282e-09, + "tolerance": 6.645484043714706e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5097313187776382, + "global_phase": -0.5154175441169508 + }, + { + "entry": "gate_cry", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 5.740716077048282e-16, + "tolerance": 3.8914331521867585e-14, + "status": "pass" + }, + { + "entry": "gate_cry", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_cry", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.353427905038781e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.0024255523485516e-16, + "global_phase": -3.6054244168158195e-17, + "seconds": 0.000112252 + }, + { + "entry": "gate_cry", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8885811685639086e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.980659682132769e-16, + "global_phase": -5.968868788740983e-17, + "seconds": 0.000139704 + }, + { + "entry": "gate_cry", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8885811685639086e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.980659682132769e-16, + "global_phase": -5.968868788740983e-17, + "seconds": 0.000122151, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_cry", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.869800509479832e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.917742241711794e-17, + "global_phase": -9.23453091197496e-18, + "seconds": 0.6645212501753122 + }, + { + "entry": "gate_cry", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.87706674467141e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 2.0679924065344703e-16, + "global_phase": -8.678784647247017e-17, + "seconds": 0.001415706006810069 + }, + { + "entry": "gate_cry", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.66864991123379e-17, + "tolerance": 3.422784300198615e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 9.707217474362964e-17, + "global_phase": -8.644535780344246e-18, + "seconds": 0.005047207931056619 + }, + { + "entry": "gate_cry", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.3118870505220374e-08, + "tolerance": 6.538684074497576e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 4.314382574241824e-08, + "global_phase": -1.4672102648496911e-09, + "seconds": 0.0005054951179772615 + }, + { + "entry": "gate_cry", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 2.5391663739707314e-09, + "tolerance": 6.645484088123627e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_crz", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.9439033133440442e-09, + "tolerance": 5.746119354247629e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5097313188687838, + "global_phase": -0.5154175442032387 + }, + { + "entry": "gate_crz", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 3.518939582921733e-16, + "tolerance": 3.328082735858333e-14, + "status": "pass" + }, + { + "entry": "gate_crz", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_crz", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.296418032403142e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 9.947118394848183e-17, + "global_phase": -3.5386121754067354e-17, + "seconds": 0.000120718 + }, + { + "entry": "gate_crz", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8901854785061254e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9815193236339522e-16, + "global_phase": -5.946576214758588e-17, + "seconds": 0.000129695 + }, + { + "entry": "gate_crz", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8901854785061254e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9815193236339522e-16, + "global_phase": -5.946576214758588e-17, + "seconds": 0.000131037, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_crz", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.834713507813499e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.880395942884383e-17, + "global_phase": -8.995939846703679e-18, + "seconds": 0.5478029509540647 + }, + { + "entry": "gate_crz", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.010635823458344e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 5.010747716875595e-16, + "global_phase": 3.348621880571692e-18, + "seconds": 0.001478143036365509 + }, + { + "entry": "gate_crz", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.902136168253713e-17, + "tolerance": 3.422784300198615e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 3.2365718473423015e-17, + "global_phase": 1.4328304100354705e-17, + "seconds": 0.013710869941860437 + }, + { + "entry": "gate_crz", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.100230734531913e-08, + "tolerance": 6.538684074497576e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 4.102382026084183e-08, + "global_phase": -1.3283904116881511e-09, + "seconds": 0.0005028508603572845 + }, + { + "entry": "gate_crz", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.2638698845799286e-09, + "tolerance": 5.74611939865655e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_cu", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.863863056152895e-09, + "tolerance": 1.2539291762508118e-07, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5097313193104122, + "global_phase": -0.5154175446147263 + }, + { + "entry": "gate_cu", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 5.747362977080013e-16, + "tolerance": 7.271535650157442e-14, + "status": "pass" + }, + { + "entry": "gate_cu", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_cu", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.165752854172399e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 8.902240780164087e-17, + "global_phase": -3.5454719336911746e-17, + "seconds": 0.000118253 + }, + { + "entry": "gate_cu", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.9043637023868733e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9900977238579004e-16, + "global_phase": -5.778302861011668e-17, + "seconds": 0.000146006 + }, + { + "entry": "gate_cu", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.9043637023868733e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9900977238579004e-16, + "global_phase": -5.778302861011668e-17, + "seconds": 0.000121038, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_cu", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.148378590907593e-17, + "tolerance": 2.8205178192375537e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 9.162380364018188e-17, + "global_phase": -5.063428604904715e-18, + "seconds": 0.6976491031236947 + }, + { + "entry": "gate_cu", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4682892639927916e-16, + "tolerance": 3.760690425650107e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 2.497052173396658e-16, + "global_phase": 3.779122463256467e-17, + "seconds": 0.001225195126608014 + }, + { + "entry": "gate_cu", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.968315566456375e-16, + "tolerance": 3.422784300198615e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 2.0045300706224988e-16, + "global_phase": -3.793081001973975e-17, + "seconds": 0.010818916140124202 + }, + { + "entry": "gate_cu", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.887472041963794e-08, + "tolerance": 6.538684074497576e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.8943857071260265e-08, + "global_phase": -2.3195076395136797e-09, + "seconds": 0.0005943330470472574, + "adapter": [ + "U as a matrix" + ] + }, + { + "entry": "gate_cu", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 3.3351744719188217e-09, + "tolerance": 1.253929180691704e-07, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_rzz", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.6822854646930724e-09, + "tolerance": 4.3425167016846596e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5805693543359085, + "global_phase": -0.5890486221632601 + }, + { + "entry": "gate_rzz", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 4.786346162255196e-16, + "tolerance": 2.623894715447811e-14, + "status": "pass" + }, + { + "entry": "gate_rzz", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_rzz", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.33804622666319e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 8.114732548118926e-17, + "global_phase": -3.46438477984978e-17, + "seconds": 0.000116821 + }, + { + "entry": "gate_rzz", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.7592535493546625e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.875523507253141e-16, + "global_phase": -6.500887442050855e-17, + "seconds": 0.000155213 + }, + { + "entry": "gate_rzz", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.7592535493546625e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.875523507253141e-16, + "global_phase": -6.500887442050855e-17, + "seconds": 0.000114667, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_rzz", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.81513101190134e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 7.6084808223538e-17, + "global_phase": -3.382745883856216e-17, + "seconds": 0.5659529611002654 + }, + { + "entry": "gate_rzz", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.22844832989741e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 3.2602942662321956e-16, + "global_phase": -4.5457681816075216e-17, + "seconds": 0.0012605919037014246 + }, + { + "entry": "gate_rzz", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.710450010858626e-17, + "tolerance": 3.422784300198615e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 8.865470546336336e-17, + "global_phase": 1.650644909206721e-17, + "seconds": 0.005037269089370966 + }, + { + "entry": "gate_rzz", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.0767355486321105e-08, + "tolerance": 6.538684074497576e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.731200351689503e-08, + "global_phase": -2.11081839962072e-08, + "seconds": 0.00043701590038836 + }, + { + "entry": "gate_rzz", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.0508953557800477e-09, + "tolerance": 4.3425167460935805e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_rxx", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.8152295931612494e-09, + "tolerance": 6.141246060109975e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5805693555554873, + "global_phase": -0.5890486232250471 + }, + { + "entry": "gate_rxx", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 9.186213589515414e-16, + "tolerance": 3.1872451317762287e-14, + "status": "pass" + }, + { + "entry": "gate_rxx", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_rxx", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1359871329650174e-16, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.203844925257312e-16, + "global_phase": -3.9846685910587735e-17, + "seconds": 0.000155303 + }, + { + "entry": "gate_rxx", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.1329278454914164e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.2266091037362635e-16, + "global_phase": -6.390672161584823e-17, + "seconds": 0.000157898 + }, + { + "entry": "gate_rxx", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.1329278454914164e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.2266091037362635e-16, + "global_phase": -6.390672161584823e-17, + "seconds": 0.000151326, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_rxx", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.114663524890915e-16, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.1225432227990271e-16, + "global_phase": -1.3277241177965651e-17, + "seconds": 0.5874973440077156 + }, + { + "entry": "gate_rxx", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.6979681220338075e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 4.698141079668197e-16, + "global_phase": 4.031288652513078e-18, + "seconds": 0.001243620878085494 + }, + { + "entry": "gate_rxx", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.498609912543168e-16, + "tolerance": 3.422784300198615e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 1.5088529315976045e-16, + "global_phase": 1.755149544000275e-17, + "seconds": 0.004985952051356435 + }, + { + "entry": "gate_rxx", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.913954706422256e-08, + "tolerance": 6.538684074497576e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.031567173987386e-08, + "global_phase": 8.362221574148164e-09, + "seconds": 0.00046355603262782097 + }, + { + "entry": "gate_rxx", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.497544958977065e-09, + "tolerance": 6.141246104518896e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_ryy", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.3693764655321138e-09, + "tolerance": 6.141246060109975e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5805693550860144, + "global_phase": -0.5890486226316841 + }, + { + "entry": "gate_ryy", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 9.433897732981284e-16, + "tolerance": 3.750595548104652e-14, + "status": "pass" + }, + { + "entry": "gate_ryy", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_ryy", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1421546500161876e-16, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.288187406182432e-16, + "global_phase": -5.957428546725693e-17, + "seconds": 0.000125818 + }, + { + "entry": "gate_ryy", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.1397265086993938e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.2962602289809404e-16, + "global_phase": -8.332955701122513e-17, + "seconds": 0.000149823 + }, + { + "entry": "gate_ryy", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.1397265086993938e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.2962602289809404e-16, + "global_phase": -8.332955701122513e-17, + "seconds": 0.000123874, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_ryy", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.119511646096584e-16, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.1671980311662524e-16, + "global_phase": -3.302195000488207e-17, + "seconds": 0.5497831839602441 + }, + { + "entry": "gate_ryy", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.896853134672394e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 5.901040528879488e-16, + "global_phase": -2.2226657774544426e-17, + "seconds": 0.0011143549345433712 + }, + { + "entry": "gate_ryy", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1758750379040157e-16, + "tolerance": 3.422784300198615e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 1.2181771912564385e-16, + "global_phase": -3.182350774689283e-17, + "seconds": 0.005448897136375308 + }, + { + "entry": "gate_ryy", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.981631344408152e-08, + "tolerance": 6.538684074497576e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.511769130076908e-08, + "global_phase": 1.855369759389716e-08, + "seconds": 0.00044137402437627316 + }, + { + "entry": "gate_ryy", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 2.3680964273590647e-09, + "tolerance": 6.141246104518896e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_negcx", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.7176025563172868e-09, + "tolerance": 3.7065698406228126e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5097313190687244, + "global_phase": -0.5154175443934055 + }, + { + "entry": "gate_negcx", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 5.803058411796183e-16, + "tolerance": 2.483057111365708e-14, + "status": "pass" + }, + { + "entry": "gate_negcx", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_negcx", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.168161905669198e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 8.91361828527817e-17, + "global_phase": -3.568434112943644e-17, + "seconds": 0.000120478 + }, + { + "entry": "gate_negcx", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8904608864862223e-16, + "tolerance": 1.9486669661603525e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9816663129359017e-16, + "global_phase": -5.942718338359123e-17, + "seconds": 0.000162017 + }, + { + "entry": "gate_negcx", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8904608864862223e-16, + "tolerance": 1.9486669661603525e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9816663129359017e-16, + "global_phase": -5.942718338359123e-17, + "seconds": 0.000143391, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_negcx", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.80470172216428e-17, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.857402632175859e-17, + "global_phase": -9.647844174701355e-18, + "seconds": 0.5796779270749539, + "adapter": [ + "negcx as x, cx, x" + ] + }, + { + "entry": "gate_negcx", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.017124296224758e-16, + "tolerance": 4.230776728856391e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 6.023587187968749e-16, + "global_phase": 2.7895844644493254e-17, + "seconds": 0.001355963060632348, + "adapter": [ + "negcx as x, cx, x" + ] + }, + { + "entry": "gate_negcx", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.240978075601184e-17, + "tolerance": 3.422784300198615e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 4.424447715313029e-17, + "global_phase": -1.260889585891152e-17, + "seconds": 0.005302209872752428 + }, + { + "entry": "gate_negcx", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.3347625565189936e-08, + "tolerance": 6.538684074497576e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 4.337439164317688e-08, + "global_phase": -1.5235511753926034e-09, + "seconds": 0.0004959178622812033 + }, + { + "entry": "gate_negcx", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.269523738641594e-09, + "tolerance": 3.7065698850317336e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_ccx", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.6785286217879533e-09, + "tolerance": 7.862822080966033e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5923017764654656, + "global_phase": -0.6013204685320469 + }, + { + "entry": "gate_ccx", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 6.184836935372749e-16, + "tolerance": 3.1872451317762287e-14, + "status": "pass" + }, + { + "entry": "gate_ccx", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_ccx", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3567340985913269e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.3855057211099486e-16, + "global_phase": -2.8088910435967144e-17, + "seconds": 0.000124165 + }, + { + "entry": "gate_ccx", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4074819462701335e-16, + "tolerance": 1.9486669661603525e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.470248802848714e-16, + "global_phase": -5.533171119339035e-17, + "seconds": 0.00014816 + }, + { + "entry": "gate_ccx", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4074819462701335e-16, + "tolerance": 1.9486669661603525e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.470248802848714e-16, + "global_phase": -5.533171119339035e-17, + "seconds": 0.000176203, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_ccx", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4011068892295785e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.4013366226977055e-16, + "global_phase": -2.5373511133172645e-18, + "seconds": 0.5443693918641657 + }, + { + "entry": "gate_ccx", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3733593038967305e-16, + "tolerance": 6.303404001284882e-13, + "status": "pass", + "note": "double precision, a contraction of width 6.0", + "strict": 1.4013059000063044e-16, + "global_phase": -2.784644461915488e-17, + "seconds": 0.001241516089066863 + }, + { + "entry": "gate_ccx", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.6169634979043014e-16, + "tolerance": 6.383513748404932e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 2.6170785510676706e-16, + "global_phase": -2.4539622958386736e-18, + "seconds": 0.005319994175806642 + }, + { + "entry": "gate_ccx", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.5495612316111926e-08, + "tolerance": 9.154181646441587e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 2.553695652880276e-08, + "global_phase": 1.452549941361316e-09, + "seconds": 0.0004861790221184492 + }, + { + "entry": "gate_ccx", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.3307124261086687e-09, + "tolerance": 7.862822125374954e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_ccz", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.6785286217879533e-09, + "tolerance": 7.862822080966033e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5923017764654656, + "global_phase": -0.6013204685320469 + }, + { + "entry": "gate_ccz", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 6.184836935372749e-16, + "tolerance": 3.1872451317762287e-14, + "status": "pass" + }, + { + "entry": "gate_ccz", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_ccz", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3567340985913269e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.3855057211099486e-16, + "global_phase": -2.8088910435967144e-17, + "seconds": 0.000130356 + }, + { + "entry": "gate_ccz", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4074819462701335e-16, + "tolerance": 1.9486669661603525e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.470248802848714e-16, + "global_phase": -5.533171119339035e-17, + "seconds": 0.000155183 + }, + { + "entry": "gate_ccz", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4074819462701335e-16, + "tolerance": 1.9486669661603525e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.470248802848714e-16, + "global_phase": -5.533171119339035e-17, + "seconds": 0.000135446, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_ccz", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4011068892295785e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.4013366226977055e-16, + "global_phase": -2.5373511133172645e-18, + "seconds": 0.7166171381250024 + }, + { + "entry": "gate_ccz", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3733593038967305e-16, + "tolerance": 6.303404001284882e-13, + "status": "pass", + "note": "double precision, a contraction of width 6.0", + "strict": 1.4013059000063044e-16, + "global_phase": -2.784644461915488e-17, + "seconds": 0.0011293650604784489 + }, + { + "entry": "gate_ccz", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4495375216436052e-17, + "tolerance": 6.383513748404932e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 2.4495985349309682e-17, + "global_phase": 1.7289083146586244e-19, + "seconds": 0.006358145037665963 + }, + { + "entry": "gate_ccz", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.5495612316111926e-08, + "tolerance": 9.154181646441587e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 2.553695652880276e-08, + "global_phase": 1.452549941361316e-09, + "seconds": 0.0005833629984408617 + }, + { + "entry": "gate_ccz", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.649900897125152e-09, + "tolerance": 7.862822125374954e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_cswap", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.6785286217879533e-09, + "tolerance": 7.862822080966033e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5923017764654656, + "global_phase": -0.6013204685320469 + }, + { + "entry": "gate_cswap", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 6.184836935372749e-16, + "tolerance": 3.468920339940439e-14, + "status": "pass" + }, + { + "entry": "gate_cswap", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_cswap", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3567340985913269e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.3855057211099486e-16, + "global_phase": -2.8088910435967144e-17, + "seconds": 0.000189418 + }, + { + "entry": "gate_cswap", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4074819462701335e-16, + "tolerance": 1.9486669661603525e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.470248802848714e-16, + "global_phase": -5.533171119339035e-17, + "seconds": 0.000161055 + }, + { + "entry": "gate_cswap", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4074819462701335e-16, + "tolerance": 1.9486669661603525e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.470248802848714e-16, + "global_phase": -5.533171119339035e-17, + "seconds": 0.000155984, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_cswap", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4011068892295785e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.4013366226977055e-16, + "global_phase": -2.5373511133172645e-18, + "seconds": 0.5686967249494046 + }, + { + "entry": "gate_cswap", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3733593038967305e-16, + "tolerance": 6.303404001284882e-13, + "status": "pass", + "note": "double precision, a contraction of width 6.0", + "strict": 1.4013059000063044e-16, + "global_phase": -2.784644461915488e-17, + "seconds": 0.0012541098985821009 + }, + { + "entry": "gate_cswap", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.025399467459494e-17, + "tolerance": 6.383513748404932e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 3.0254124592450465e-17, + "global_phase": 8.866276048486312e-20, + "seconds": 0.01519713900052011 + }, + { + "entry": "gate_cswap", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.5495612316111926e-08, + "tolerance": 9.154181646441587e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 2.553695652880276e-08, + "global_phase": 1.452549941361316e-09, + "seconds": 0.0005103740841150284 + }, + { + "entry": "gate_cswap", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.649900897125152e-09, + "tolerance": 7.862822125374954e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_c2p", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.454071167970312e-09, + "tolerance": 1.9554563625653759e-07, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5923017765075274, + "global_phase": -0.6013204685722763 + }, + { + "entry": "gate_c2p", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 6.196961625374742e-16, + "tolerance": 8.398236482814388e-14, + "status": "pass" + }, + { + "entry": "gate_c2p", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_c2p", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3795332203059628e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.406968078664509e-16, + "global_phase": -2.7649099163111984e-17, + "seconds": 0.000133112 + }, + { + "entry": "gate_c2p", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4074827868787245e-16, + "tolerance": 1.9486669661603525e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.470249484123369e-16, + "global_phase": -5.5331649595364525e-17, + "seconds": 0.000167287 + }, + { + "entry": "gate_c2p", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4074827868787245e-16, + "tolerance": 1.9486669661603525e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.470249484123369e-16, + "global_phase": -5.5331649595364525e-17, + "seconds": 0.000181733, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_c2p", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4011080952878836e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.4013378258698447e-16, + "global_phase": -2.5373362654207204e-18, + "seconds": 0.6621237089857459 + }, + { + "entry": "gate_c2p", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3205928525733937e-16, + "tolerance": 4.7008630320626785e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 1.352664922370875e-16, + "global_phase": -2.928086575644102e-17, + "seconds": 0.0017729399260133505 + }, + { + "entry": "gate_c2p", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4494334789121303e-17, + "tolerance": 6.383513748404932e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 2.4494944356881143e-17, + "global_phase": 1.7280707492796442e-19, + "seconds": 0.0061339219100773335 + }, + { + "entry": "gate_c2p", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.5495711352552066e-08, + "tolerance": 9.154181646441587e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 2.5537054944531005e-08, + "global_phase": 1.4525418475928885e-09, + "seconds": 0.0004811289254575968 + }, + { + "entry": "gate_c2p", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 2.814006773402658e-09, + "tolerance": 1.955456367006268e-07, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_c2rz", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.17580428423748e-09, + "tolerance": 2.114443102659051e-07, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5923017764901821, + "global_phase": -0.6013204685448793 + }, + { + "entry": "gate_c2rz", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 6.197060096802105e-16, + "tolerance": 9.384099711389237e-14, + "status": "pass" + }, + { + "entry": "gate_c2rz", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_c2rz", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3797862702481386e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.4072146969610702e-16, + "global_phase": -2.7648336618676893e-17, + "seconds": 0.000130636 + }, + { + "entry": "gate_c2rz", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.382833099344837e-16, + "tolerance": 3.653750561550723e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.4470597500024585e-16, + "global_phase": -5.569630515112943e-17, + "seconds": 0.000173177 + }, + { + "entry": "gate_c2rz", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.382833099344837e-16, + "tolerance": 3.653750561550723e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.4470597500024585e-16, + "global_phase": -5.569630515112943e-17, + "seconds": 0.000150614, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_c2rz", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4011092610446333e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.401338580384328e-16, + "global_phase": -2.5350650652912525e-18, + "seconds": 0.5555269778706133 + }, + { + "entry": "gate_c2rz", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3896935382221946e-16, + "tolerance": 4.7008630320626785e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 1.3898649867130245e-16, + "global_phase": -2.183005071623825e-18, + "seconds": 0.0016307621262967587 + }, + { + "entry": "gate_c2rz", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4793608854112484e-17, + "tolerance": 6.383513748404932e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 2.4794165255085104e-17, + "global_phase": 1.6610444227779503e-19, + "seconds": 0.006139372009783983 + }, + { + "entry": "gate_c2rz", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.4593994773011516e-08, + "tolerance": 9.154181646441587e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.462165651149508e-08, + "global_phase": 1.3836998209989688e-09, + "seconds": 0.0005319451447576284 + }, + { + "entry": "gate_c2rz", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 2.814006773402658e-09, + "tolerance": 2.114443107099943e-07, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_c2ry", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.541021517699566e-09, + "tolerance": 2.2416324885154374e-07, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5923017738006157, + "global_phase": -0.6013204660262835 + }, + { + "entry": "gate_c2ry", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.0630271123024982e-15, + "tolerance": 9.947450127717729e-14, + "status": "pass" + }, + { + "entry": "gate_c2ry", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_c2ry", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.7525512980208974e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.7647529931289995e-16, + "global_phase": -2.5946187538679715e-17, + "seconds": 0.000163619 + }, + { + "entry": "gate_c2ry", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4188784163449605e-16, + "tolerance": 2.9230004492405574e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.4813348680394973e-16, + "global_phase": -5.532178000472185e-17, + "seconds": 0.000135426 + }, + { + "entry": "gate_c2ry", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4188784163449605e-16, + "tolerance": 2.9230004492405574e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.4813348680394973e-16, + "global_phase": -5.532178000472185e-17, + "seconds": 0.000127531, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_c2ry", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4014996658435e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.401730153381778e-16, + "global_phase": -2.541868486490896e-18, + "seconds": 0.5549797138664871 + }, + { + "entry": "gate_c2ry", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3813338942963455e-16, + "tolerance": 4.7008630320626785e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 1.381511581476646e-16, + "global_phase": -2.2156764705053963e-18, + "seconds": 0.002065313048660755 + }, + { + "entry": "gate_c2ry", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.8966019434745855e-17, + "tolerance": 6.383513748404932e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 6.140218574169683e-17, + "global_phase": -5.414054055847395e-17, + "seconds": 0.005399283021688461 + }, + { + "entry": "gate_c2ry", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.4613326561899745e-08, + "tolerance": 9.154181646441587e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.46410246490762e-08, + "global_phase": 1.3849956703601621e-09, + "seconds": 0.0004991840105503798 + }, + { + "entry": "gate_c2ry", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 3.9831558884256555e-09, + "tolerance": 2.2416324929563294e-07, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_c3x", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.391512846914285e-09, + "tolerance": 3.0615841194822775e-07, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.6331867499277773, + "global_phase": -0.6442719289752188 + }, + { + "entry": "gate_c3x", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.0921565579432819e-15, + "tolerance": 1.135582616853899e-13, + "status": "pass" + }, + { + "entry": "gate_c3x", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_c3x", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.1830636056125267e-16, + "tolerance": 4.230776728856391e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.221563582442903e-16, + "global_phase": -4.1179854866983266e-17, + "seconds": 0.000258098 + }, + { + "entry": "gate_c3x", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.1718801448946157e-16, + "tolerance": 2.4358337077004524e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.2057454549202864e-16, + "global_phase": -3.850320092070849e-17, + "seconds": 0.000154703 + }, + { + "entry": "gate_c3x", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.1718801448946157e-16, + "tolerance": 2.4358337077004524e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.2057454549202864e-16, + "global_phase": -3.850320092070849e-17, + "seconds": 0.000136377, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_c3x", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.281311985405106e-16, + "tolerance": 4.230776728856391e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.2850088420415793e-16, + "global_phase": 1.2992703127221225e-17, + "seconds": 0.5913158999755979 + }, + { + "entry": "gate_c3x", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.0693502465280125e-16, + "tolerance": 1.3260959313683757e-13, + "status": "pass", + "note": "double precision, a contraction of width 4.0", + "strict": 1.0734769178841271e-16, + "global_phase": -9.403586273589279e-18, + "seconds": 0.0018340859096497297 + }, + { + "entry": "gate_c3x", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.135201724572025e-17, + "tolerance": 1.0253737898419437e-11, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 1.112211140817646e-16, + "global_phase": -6.344245552251684e-17, + "seconds": 0.006365268956869841 + }, + { + "entry": "gate_c3x", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.48851234601127e-08, + "tolerance": 1.1769692899611298e-05, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 7.642205600447223e-08, + "global_phase": 1.5249555543893608e-08, + "seconds": 0.0005379568319767714 + }, + { + "entry": "gate_c3x", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 2.5006092076053317e-09, + "tolerance": 3.0615841239231696e-07, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_c3z", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.669672201661391e-09, + "tolerance": 2.881711166758857e-07, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.6331867502519202, + "global_phase": -0.6442719293465758 + }, + { + "entry": "gate_c3z", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 9.198145331126233e-16, + "tolerance": 1.1074150960374736e-13, + "status": "pass" + }, + { + "entry": "gate_c3z", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_c3z", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1268719879052304e-16, + "tolerance": 4.230776728856391e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.1368631621974608e-16, + "global_phase": -1.5039073254733597e-17, + "seconds": 0.0002643 + }, + { + "entry": "gate_c3z", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.595949810867941e-16, + "tolerance": 2.9230004492405574e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.599966217654964e-16, + "global_phase": 1.4446076422946466e-17, + "seconds": 0.000145575 + }, + { + "entry": "gate_c3z", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.595949810867941e-16, + "tolerance": 2.9230004492405574e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.599966217654964e-16, + "global_phase": 1.4446076422946466e-17, + "seconds": 8.9419e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_c3z", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.281312140139257e-16, + "tolerance": 4.230776728856391e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.2850089960147827e-16, + "global_phase": 1.299270222922428e-17, + "seconds": 0.5843113630544394 + }, + { + "entry": "gate_c3z", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.373058536363095e-16, + "tolerance": 1.3260959313683757e-13, + "status": "pass", + "note": "double precision, a contraction of width 4.0", + "strict": 3.3768940600253865e-16, + "global_phase": -1.609024639425753e-17, + "seconds": 0.0019189659506082535 + }, + { + "entry": "gate_c3z", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4309605600295303e-17, + "tolerance": 1.0253737898419437e-11, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 4.070586436385354e-17, + "global_phase": -3.264981576007027e-17, + "seconds": 0.005728785879909992 + }, + { + "entry": "gate_c3z", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.48851234601127e-08, + "tolerance": 1.1769692899611298e-05, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 7.642205600447223e-08, + "global_phase": 1.5249555543893608e-08, + "seconds": 0.0005061670672148466 + }, + { + "entry": "gate_c3z", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 2.824230953785865e-09, + "tolerance": 2.881711171199749e-07, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "full_turn_rz_t1_0", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.215285710182298e-10, + "tolerance": 1.31047032241826e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 1.9705552845008005, + "global_phase": 2.7979809572714793 + }, + { + "entry": "full_turn_rz_t1_0", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.797157557069881e-17, + "tolerance": 1.0746810705446966e-14, + "status": "pass" + }, + { + "entry": "full_turn_rz_t1_0", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "full_turn_rz_t1_0", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.878018230386136e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.4948344912607779e-16, + "global_phase": -1.2703930273265457e-16, + "seconds": 0.000113184 + }, + { + "entry": "full_turn_rz_t1_0", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.878018230386136e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.4948344912607779e-16, + "global_phase": -1.2703930273265457e-16, + "seconds": 0.000144402 + }, + { + "entry": "full_turn_rz_t1_0", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.878018230386136e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.4948344912607779e-16, + "global_phase": -1.2703930273265457e-16, + "seconds": 0.000117552, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "full_turn_rz_t1_0", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.878018230386136e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.4948344912607779e-16, + "global_phase": -1.2703930273265457e-16, + "seconds": 0.5743864579126239 + }, + { + "entry": "full_turn_rz_t1_0", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.7935930160502477e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 2.9056138362361657e-16, + "global_phase": -7.990180385963304e-17, + "seconds": 0.0008924060966819525 + }, + { + "entry": "full_turn_rz_t1_0", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.450168008707881e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 7.823846913581342e-17, + "global_phase": -2.389053613710233e-17, + "seconds": 0.005496807163581252 + }, + { + "entry": "full_turn_rz_t1_0", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.714135312206995e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 9.037682710149867e-08, + "global_phase": 7.710813084434486e-08, + "seconds": 0.00045442814007401466 + }, + { + "entry": "full_turn_rz_t1_0", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 6.889481801208546e-10, + "tolerance": 1.310470366827181e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "full_turn_rx_t1_0", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.428935600037752e-10, + "tolerance": 1.9464171686312247e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 1.9705552845232173, + "global_phase": 2.797980956375603 + }, + { + "entry": "full_turn_rx_t1_0", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.237726045655905e-16, + "tolerance": 1.3563562787088958e-14, + "status": "pass" + }, + { + "entry": "full_turn_rx_t1_0", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "full_turn_rx_t1_0", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.2354594473300743e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.4345679644901053e-16, + "global_phase": -7.291263256419637e-17, + "seconds": 0.000114567 + }, + { + "entry": "full_turn_rx_t1_0", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.2354594473300743e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.4345679644901053e-16, + "global_phase": -7.291263256419637e-17, + "seconds": 0.000148881 + }, + { + "entry": "full_turn_rx_t1_0", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.2354594473300743e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.4345679644901053e-16, + "global_phase": -7.291263256419637e-17, + "seconds": 0.000143491, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "full_turn_rx_t1_0", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.2354594473300743e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.4345679644901053e-16, + "global_phase": -7.291263256419637e-17, + "seconds": 0.5957106158602983 + }, + { + "entry": "full_turn_rx_t1_0", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.836628346004762e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 2.847827009626881e-16, + "global_phase": -2.523059717935201e-17, + "seconds": 0.0009011528454720974 + }, + { + "entry": "full_turn_rx_t1_0", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.450168008707881e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 7.823846913581342e-17, + "global_phase": -2.389053613710233e-17, + "seconds": 0.005638766102492809 + }, + { + "entry": "full_turn_rx_t1_0", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.443682606077008e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 8.782752682484874e-08, + "global_phase": 2.4168096663117897e-08, + "seconds": 0.0004821009933948517 + }, + { + "entry": "full_turn_rx_t1_0", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 5.450475361776661e-10, + "tolerance": 1.9464172130401457e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "full_turn_ry_t1_0", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.766046792030961e-10, + "tolerance": 1.9464171686312247e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 1.970555285413953, + "global_phase": 2.79798095744968 + }, + { + "entry": "full_turn_ry_t1_0", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.2530044628618934e-16, + "tolerance": 1.6380314868730963e-14, + "status": "pass" + }, + { + "entry": "full_turn_ry_t1_0", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "full_turn_ry_t1_0", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4356863563421938e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.46781205111376e-16, + "global_phase": -3.05412677549014e-17, + "seconds": 0.000116029 + }, + { + "entry": "full_turn_ry_t1_0", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4356863563421938e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.46781205111376e-16, + "global_phase": -3.05412677549014e-17, + "seconds": 0.000145004 + }, + { + "entry": "full_turn_ry_t1_0", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4356863563421938e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.46781205111376e-16, + "global_phase": -3.05412677549014e-17, + "seconds": 0.000143531, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "full_turn_ry_t1_0", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4356863563421938e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.46781205111376e-16, + "global_phase": -3.05412677549014e-17, + "seconds": 0.5622224600519985 + }, + { + "entry": "full_turn_ry_t1_0", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.1409025375601136e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 3.145218421465822e-16, + "global_phase": 1.6471238045877752e-17, + "seconds": 0.0009429322089999914 + }, + { + "entry": "full_turn_ry_t1_0", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.450168008707881e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 7.823846913581342e-17, + "global_phase": -2.389053613710233e-17, + "seconds": 0.004925547866150737 + }, + { + "entry": "full_turn_ry_t1_0", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.0302988878962743e-07, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.0303836032604117e-07, + "global_phase": -1.3212549757350479e-09, + "seconds": 0.00046135205775499344 + }, + { + "entry": "full_turn_ry_t1_0", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 7.196135490629579e-10, + "tolerance": 1.9464172130401457e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "full_turn_p_t1_0", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.215285710182298e-10, + "tolerance": 1.31047032241826e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.34192377730194323, + "global_phase": -0.343611696318314 + }, + { + "entry": "full_turn_p_t1_0", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.797157557069881e-17, + "tolerance": 1.0746810705446966e-14, + "status": "pass" + }, + { + "entry": "full_turn_p_t1_0", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "full_turn_p_t1_0", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.313729468180651e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 9.42812133633664e-17, + "global_phase": -1.4642115032431582e-17, + "seconds": 0.000117602 + }, + { + "entry": "full_turn_p_t1_0", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.313729468180651e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 9.42812133633664e-17, + "global_phase": -1.4642115032431582e-17, + "seconds": 0.000146186 + }, + { + "entry": "full_turn_p_t1_0", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.313729468180651e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 9.42812133633664e-17, + "global_phase": -1.4642115032431582e-17, + "seconds": 0.000144423, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "full_turn_p_t1_0", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.313729468180651e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 9.42812133633664e-17, + "global_phase": -1.4642115032431582e-17, + "seconds": 0.5063490639440715 + }, + { + "entry": "full_turn_p_t1_0", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.644118252139324e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 2.6640113228721536e-16, + "global_phase": 3.249538384058998e-17, + "seconds": 0.0009095780551433563 + }, + { + "entry": "full_turn_p_t1_0", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.450168008707881e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 7.823846913581342e-17, + "global_phase": -2.389053613710233e-17, + "seconds": 0.005562040954828262 + }, + { + "entry": "full_turn_p_t1_0", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.5186428535734515e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 5.666655211839174e-08, + "global_phase": -1.2866865989558174e-08, + "seconds": 0.00043554301373660564 + }, + { + "entry": "full_turn_p_t1_0", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 6.889481801208546e-10, + "tolerance": 1.310470366827181e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "full_turn_rz_t2_0", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.215285710182298e-10, + "tolerance": 1.31047032241826e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.34192377730194323, + "global_phase": -0.343611696318314 + }, + { + "entry": "full_turn_rz_t2_0", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.797157557069881e-17, + "tolerance": 1.0746810705446966e-14, + "status": "pass" + }, + { + "entry": "full_turn_rz_t2_0", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "full_turn_rz_t2_0", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1064834169601487e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.7979863037694193e-16, + "global_phase": -2.5699069640890605e-16, + "seconds": 0.000118514 + }, + { + "entry": "full_turn_rz_t2_0", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1064834169601487e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.7979863037694193e-16, + "global_phase": -2.5699069640890605e-16, + "seconds": 0.000174479 + }, + { + "entry": "full_turn_rz_t2_0", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1064834169601487e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.7979863037694193e-16, + "global_phase": -2.5699069640890605e-16, + "seconds": 0.000124325, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "full_turn_rz_t2_0", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1064834169601487e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.7979863037694193e-16, + "global_phase": -2.5699069640890605e-16, + "seconds": 0.6291984990239143 + }, + { + "entry": "full_turn_rz_t2_0", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.0762013032883892e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 3.0608999734962266e-16, + "global_phase": -2.249110223171109e-16, + "seconds": 0.0009210000280290842 + }, + { + "entry": "full_turn_rz_t2_0", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.450168008707881e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 7.823846913581342e-17, + "global_phase": -2.389053613710233e-17, + "seconds": 0.005128401098772883 + }, + { + "entry": "full_turn_rz_t2_0", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.158076866053959e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.627436187799992e-07, + "global_phase": 1.4615635214958267e-07, + "seconds": 0.0004884130321443081 + }, + { + "entry": "full_turn_rz_t2_0", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 6.889481801208546e-10, + "tolerance": 1.310470366827181e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "full_turn_u_t1_0", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.766046792030961e-10, + "tolerance": 1.9464171686312247e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 1.970555285413953, + "global_phase": 2.79798095744968 + }, + { + "entry": "full_turn_u_t1_0", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.2530044628618934e-16, + "tolerance": 1.6380314868730963e-14, + "status": "pass" + }, + { + "entry": "full_turn_u_t1_0", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "full_turn_u_t1_0", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4356863563421938e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.46781205111376e-16, + "global_phase": -3.05412677549014e-17, + "seconds": 0.000151426 + }, + { + "entry": "full_turn_u_t1_0", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4356863563421938e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.46781205111376e-16, + "global_phase": -3.05412677549014e-17, + "seconds": 0.000129996 + }, + { + "entry": "full_turn_u_t1_0", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4356863563421938e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.46781205111376e-16, + "global_phase": -3.05412677549014e-17, + "seconds": 0.000143111, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "full_turn_u_t1_0", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4356863563421938e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.46781205111376e-16, + "global_phase": -3.05412677549014e-17, + "seconds": 0.6219899258576334 + }, + { + "entry": "full_turn_u_t1_0", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.1409025375601136e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 3.145218421465822e-16, + "global_phase": 1.6471238045877752e-17, + "seconds": 0.0009126539807766676 + }, + { + "entry": "full_turn_u_t1_0", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.450168008707881e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 7.823846913581342e-17, + "global_phase": -2.389053613710233e-17, + "seconds": 0.005236055003479123 + }, + { + "entry": "full_turn_u_t1_0", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.972922373777038e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 4.024089473196959e-08, + "global_phase": -6.396748512344255e-09, + "seconds": 0.0005138509441167116, + "adapter": [ + "U as a matrix" + ] + }, + { + "entry": "full_turn_u_t1_0", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 7.196135490629579e-10, + "tolerance": 1.9464172130401457e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_gphase_controlled", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.0935824753740867e-09, + "tolerance": 4.3425167016846596e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5097313189930806, + "global_phase": -0.5154175443058733 + }, + { + "entry": "gate_gphase_controlled", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 5.655105409258696e-16, + "tolerance": 2.3422195072836047e-14, + "status": "pass" + }, + { + "entry": "gate_gphase_controlled", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_gphase_controlled", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.300406512905069e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 9.02558849753476e-17, + "global_phase": -3.5446437687523536e-17, + "seconds": 0.000125557 + }, + { + "entry": "gate_gphase_controlled", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8869219623193675e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9856040498679177e-16, + "global_phase": -6.181819723743999e-17, + "seconds": 0.000161795 + }, + { + "entry": "gate_gphase_controlled", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8869219623193675e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9856040498679177e-16, + "global_phase": -6.181819723743999e-17, + "seconds": 0.000140266, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_gphase_controlled", + "engine": "quimb.dense", + "quantity": "state", + "measured": null, + "tolerance": null, + "status": "not run", + "note": "no gate gphase" + }, + { + "entry": "gate_gphase_controlled", + "engine": "quimb.tensor_network", + "quantity": "state", + "measured": null, + "tolerance": null, + "status": "not run", + "note": "no gate gphase" + }, + { + "entry": "gate_gphase_controlled", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.684857563868715e-17, + "tolerance": 3.422784300198615e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 3.019615798246159e-17, + "global_phase": 1.3818898041286565e-17, + "seconds": 0.006098846206441522 + }, + { + "entry": "gate_gphase_controlled", + "engine": "qsim.statevector", + "quantity": "state", + "measured": null, + "tolerance": null, + "status": "not run", + "note": "a global phase gate" + }, + { + "entry": "gate_gphase_controlled", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.0508953710096939e-09, + "tolerance": 4.3425167460935805e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "controlled_rz_full_turn", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.727233711018889e-77, + "tolerance": 8.99364639582761e-09, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 1.727233711018889e-77, + "global_phase": 0.0 + }, + { + "entry": "controlled_rz_full_turn", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.220446049250313e-16, + "tolerance": 5.113306542163034e-15, + "status": "pass" + }, + { + "entry": "controlled_rz_full_turn", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "controlled_rz_full_turn", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.383329718893769e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.383329718893769e-16, + "global_phase": 0.0, + "seconds": 0.000155554 + }, + { + "entry": "controlled_rz_full_turn", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.79306168888485e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.79306168888485e-16, + "global_phase": -6.162975822039155e-33, + "seconds": 0.000155554 + }, + { + "entry": "controlled_rz_full_turn", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.79306168888485e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.79306168888485e-16, + "global_phase": -6.162975822039155e-33, + "seconds": 0.000145094, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "controlled_rz_full_turn", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.383329718893769e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.383329718893769e-16, + "global_phase": 0.0, + "seconds": 0.6627723849378526 + }, + { + "entry": "controlled_rz_full_turn", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.051434889952961e-16, + "tolerance": 1.2179168538502112e-14, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 3.051434889952961e-16, + "global_phase": -6.162975822039156e-33, + "seconds": 0.0010266599711030722 + }, + { + "entry": "controlled_rz_full_turn", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.220446049250313e-16, + "tolerance": 2.0536705801163775e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 2.220446049250313e-16, + "global_phase": 0.0, + "seconds": 0.011621121084317565 + }, + { + "entry": "controlled_rz_full_turn", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.181723814526122e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 6.181723814526122e-08, + "global_phase": 0.0, + "seconds": 0.00051506282761693 + }, + { + "entry": "controlled_rz_full_turn", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 8.636168555094445e-78, + "tolerance": 8.99364683991682e-09, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "teleport", + "engine": "qsim.statevector", + "quantity": "counts", + "measured": null, + "tolerance": null, + "status": "not run", + "note": "measurement in the middle (or one qubit measured twice)" + }, + { + "entry": "reset_after_superposition", + "engine": "qsim.statevector", + "quantity": "counts", + "measured": null, + "tolerance": null, + "status": "not run", + "note": "measurement in the middle (or one qubit measured twice)" + }, + { + "entry": "measure_twice", + "engine": "qsim.statevector", + "quantity": "counts", + "measured": null, + "tolerance": null, + "status": "not run", + "note": "measurement in the middle (or one qubit measured twice)" + }, + { + "entry": "feedback_flip", + "engine": "qsim.statevector", + "quantity": "counts", + "measured": null, + "tolerance": null, + "status": "not run", + "note": "measurement in the middle (or one qubit measured twice)" + }, + { + "entry": "ghz_by_fusion", + "engine": "qsim.statevector", + "quantity": "counts", + "measured": null, + "tolerance": null, + "status": "not run", + "note": "measurement in the middle (or one qubit measured twice)" + }, + { + "entry": "repeat_until_success", + "engine": "ddsim.statevector", + "quantity": "counts", + "measured": null, + "tolerance": null, + "status": "known", + "note": "ValueError: [changePermutation] Target must be an injective mapping using only keys and logical qubits from the source permutation. | known: MQT DDSIM 2.7.0's qasm_simulator raises ValueError [changePermutation] on this program (two qubits; qubit 1 measured three times in the middle, with gates between and an x conditioned on each reading; four classical bits) and gives no counts. It raises the same without the conditioned x, and on qubit 1 measured, h, measured again, then qubit 0 measured into a third bit; with no third bit it gives counts. Each is a case of the reproducer.", + "right": "the exact reference, which every other engine that ran this program met (the results files)" + }, + { + "entry": "repeat_until_success", + "engine": "qsim.statevector", + "quantity": "counts", + "measured": null, + "tolerance": null, + "status": "not run", + "note": "measurement in the middle (or one qubit measured twice)" + }, + { + "entry": "clifford_ghz_n100", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 100, + "tolerance": 100, + "status": "pass" + }, + { + "entry": "clifford_ghz_n100", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 5.843094550073147e-05 + }, + { + "entry": "clifford_ghz_n100", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 3.927e-06 + }, + { + "entry": "clifford_ghz_n100", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 1, + "tolerance": 1, + "status": "pass" + }, + { + "entry": "clifford_ghz_n100", + "engine": "aer.stabilizer", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.000347567 + }, + { + "entry": "clifford_ghz_n1000", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 1000, + "tolerance": 1000, + "status": "pass" + }, + { + "entry": "clifford_ghz_n1000", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.0002696290612220764 + }, + { + "entry": "clifford_ghz_n1000", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 3.4966e-05 + }, + { + "entry": "clifford_ghz_n1000", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 1, + "tolerance": 1, + "status": "pass" + }, + { + "entry": "clifford_ghz_n1000", + "engine": "aer.stabilizer", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.010425271 + }, + { + "entry": "clifford_ghz_n5000", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 5000, + "tolerance": 5000, + "status": "pass" + }, + { + "entry": "clifford_ghz_n5000", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.0037442250177264214 + }, + { + "entry": "clifford_ghz_n5000", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 0.001650489 + }, + { + "entry": "clifford_ghz_n5000", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 1, + "tolerance": 1, + "status": "pass" + }, + { + "entry": "clifford_cluster_n65", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 65, + "tolerance": 65, + "status": "pass" + }, + { + "entry": "clifford_cluster_n65", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 3.700004890561104e-05 + }, + { + "entry": "clifford_cluster_n65", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 8.526e-06 + }, + { + "entry": "clifford_cluster_n65", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 65, + "tolerance": 65, + "status": "pass" + }, + { + "entry": "clifford_cluster_n65", + "engine": "aer.stabilizer", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.000209936 + }, + { + "entry": "clifford_cluster_n1000", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 1000, + "tolerance": 1000, + "status": "pass" + }, + { + "entry": "clifford_cluster_n1000", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.00022631813772022724 + }, + { + "entry": "clifford_cluster_n1000", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 6.9311e-05 + }, + { + "entry": "clifford_cluster_n1000", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 1000, + "tolerance": 1000, + "status": "pass" + }, + { + "entry": "clifford_cluster_n1000", + "engine": "aer.stabilizer", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.008283143 + }, + { + "entry": "clifford_cluster_n5000", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 5000, + "tolerance": 5000, + "status": "pass" + }, + { + "entry": "clifford_cluster_n5000", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.0031000489834696054 + }, + { + "entry": "clifford_cluster_n5000", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 0.001490256 + }, + { + "entry": "clifford_cluster_n5000", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 5000, + "tolerance": 5000, + "status": "pass" + }, + { + "entry": "clifford_random_n63", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 63, + "tolerance": 63, + "status": "pass" + }, + { + "entry": "clifford_random_n63", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 5.8862147852778435e-05 + }, + { + "entry": "clifford_random_n63", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 1.3907e-05 + }, + { + "entry": "clifford_random_n63", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 62, + "tolerance": 62, + "status": "pass" + }, + { + "entry": "clifford_random_n63", + "engine": "aer.stabilizer", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.000505275 + }, + { + "entry": "clifford_random_n64", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 64, + "tolerance": 64, + "status": "pass" + }, + { + "entry": "clifford_random_n64", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 5.887099541723728e-05 + }, + { + "entry": "clifford_random_n64", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 1.7994e-05 + }, + { + "entry": "clifford_random_n64", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 62, + "tolerance": 62, + "status": "pass" + }, + { + "entry": "clifford_random_n64", + "engine": "aer.stabilizer", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.000538277 + }, + { + "entry": "clifford_random_n65", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 65, + "tolerance": 65, + "status": "pass" + }, + { + "entry": "clifford_random_n65", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 5.880091339349747e-05 + }, + { + "entry": "clifford_random_n65", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 1.4637e-05 + }, + { + "entry": "clifford_random_n65", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 64, + "tolerance": 64, + "status": "pass" + }, + { + "entry": "clifford_random_n65", + "engine": "aer.stabilizer", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.000548025 + }, + { + "entry": "clifford_random_n127", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 127, + "tolerance": 127, + "status": "pass" + }, + { + "entry": "clifford_random_n127", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 7.997103966772556e-05 + }, + { + "entry": "clifford_random_n127", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 2.8514e-05 + }, + { + "entry": "clifford_random_n127", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 124, + "tolerance": 124, + "status": "pass" + }, + { + "entry": "clifford_random_n127", + "engine": "aer.stabilizer", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.001202913 + }, + { + "entry": "clifford_random_n128", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 128, + "tolerance": 128, + "status": "pass" + }, + { + "entry": "clifford_random_n128", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.00011844304390251637 + }, + { + "entry": "clifford_random_n128", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 3.2602e-05 + }, + { + "entry": "clifford_random_n128", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 123, + "tolerance": 123, + "status": "pass" + }, + { + "entry": "clifford_random_n128", + "engine": "aer.stabilizer", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.001223802 + }, + { + "entry": "clifford_random_n129", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 129, + "tolerance": 129, + "status": "pass" + }, + { + "entry": "clifford_random_n129", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 7.989094592630863e-05 + }, + { + "entry": "clifford_random_n129", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 3.8513e-05 + }, + { + "entry": "clifford_random_n129", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 122, + "tolerance": 122, + "status": "pass" + }, + { + "entry": "clifford_random_n129", + "engine": "aer.stabilizer", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.001216469 + }, + { + "entry": "clifford_random_n1000", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 1000, + "tolerance": 1000, + "status": "pass" + }, + { + "entry": "clifford_random_n1000", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.001214275136590004 + }, + { + "entry": "clifford_random_n1000", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 0.001220486 + }, + { + "entry": "clifford_random_n1000", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 999, + "tolerance": 999, + "status": "pass" + }, + { + "entry": "clifford_random_n1000", + "engine": "aer.stabilizer", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.047719228 + }, + { + "entry": "clifford_random_n2000", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 2000, + "tolerance": 2000, + "status": "pass" + }, + { + "entry": "clifford_random_n2000", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.0035643349401652813 + }, + { + "entry": "clifford_random_n2000", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 0.002156305 + }, + { + "entry": "clifford_random_n2000", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 2000, + "tolerance": 2000, + "status": "pass" + }, + { + "entry": "clifford_random_n10_as_state", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.7114271035800384e-08, + "tolerance": 6.835172444858467e-06, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 1.7114271035800384e-08, + "global_phase": -2.5571778398004984e-77 + }, + { + "entry": "clifford_random_n10_as_state", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 7.53644380168212e-15, + "tolerance": 6.093066280547265e-13, + "status": "pass" + }, + { + "entry": "clifford_random_n10_as_state", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "clifford_random_n10_as_state", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3244320535236393e-15, + "tolerance": 1.7299175958019768e-12, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.3244320535236393e-15, + "global_phase": -2.5571778398004984e-77, + "seconds": 0.005670786 + }, + { + "entry": "clifford_random_n10_as_state", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.526567631408858e-16, + "tolerance": 8.988226381422528e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.0439850796711554e-15, + "global_phase": 1.900363860637374e-15, + "seconds": 0.001180932 + }, + { + "entry": "clifford_random_n10_as_state", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.526567631408858e-16, + "tolerance": 8.988226381422528e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.0439850796711554e-15, + "global_phase": 1.900363860637374e-15, + "seconds": 0.000868391, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "clifford_random_n10_as_state", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.9576473574087966e-15, + "tolerance": 1.7299175958019768e-12, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 4.3182725538710424e-15, + "global_phase": 3.146394755705127e-15, + "seconds": 0.8018477528821677 + }, + { + "entry": "clifford_random_n10_as_state", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.037313662622333e-14, + "tolerance": 7.041552439966656e-07, + "status": "pass", + "note": "double precision, a contraction of width 16.0", + "strict": 3.054762846542765e-14, + "global_phase": 3.2603951212354275e-15, + "seconds": 0.7792259631678462 + }, + { + "entry": "clifford_random_n10_as_state", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.253673324449967e-16, + "tolerance": 9.2130502584579e-10, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 2.253673324449967e-16, + "global_phase": -2.5571778398004988e-77, + "seconds": 0.017550376011058688 + }, + { + "entry": "clifford_random_n10_as_state", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.5102321528432535e-07, + "tolerance": 0.0004814755969898022, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 7.598183428843805e-07, + "global_phase": 7.171549827654089e-07, + "seconds": 0.004993275972083211 + }, + { + "entry": "clifford_random_n10_as_state", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 10, + "tolerance": 10, + "status": "pass" + }, + { + "entry": "clifford_random_n10_as_state", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 6.786896847188473e-05 + }, + { + "entry": "clifford_random_n10_as_state", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 8.716e-06 + }, + { + "entry": "clifford_random_n10_as_state", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 10, + "tolerance": 10, + "status": "pass" + }, + { + "entry": "clifford_random_n10_as_state", + "engine": "aer.stabilizer", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.000315055 + }, + { + "entry": "clifford_random_n10_as_state", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 5.34820969868762e-10, + "tolerance": 6.835172445302556e-06, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "clifford_counts_n40", + "engine": "wai.stabilizer", + "quantity": "shots returned", + "measured": 20000, + "tolerance": 20000, + "status": "pass" + }, + { + "entry": "clifford_counts_n40", + "engine": "wai.stabilizer", + "quantity": "shots outside the affine space the stabilizers fix (dimension 34)", + "measured": 0, + "tolerance": 0, + "status": "pass" + }, + { + "entry": "clifford_counts_n40", + "engine": "wai.stabilizer", + "quantity": "the most frequent outcome's count above shots\u00b72^-34, in units of its Bernstein bound over all 2^34 outcomes", + "measured": 0.036615652745396014, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "clifford_counts_n40", + "engine": "wai.stabilizer", + "quantity": "each of the 39 bits the space leaves free against 1/2, largest deviation in units of its Bernstein bound", + "measured": 0.42917114936767276, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "clifford_counts_n40", + "engine": "wai.stabilizer", + "quantity": "distinct outcomes, of 20000 shots over 2^34", + "measured": 20000, + "tolerance": null, + "status": "info" + }, + { + "entry": "clifford_counts_n40", + "engine": "stim.tableau", + "quantity": "shots returned", + "measured": 20000, + "tolerance": 20000, + "status": "pass" + }, + { + "entry": "clifford_counts_n40", + "engine": "stim.tableau", + "quantity": "shots outside the affine space the stabilizers fix (dimension 34)", + "measured": 0, + "tolerance": 0, + "status": "pass" + }, + { + "entry": "clifford_counts_n40", + "engine": "stim.tableau", + "quantity": "the most frequent outcome's count above shots\u00b72^-34, in units of its Bernstein bound over all 2^34 outcomes", + "measured": 0.036615652745396014, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "clifford_counts_n40", + "engine": "stim.tableau", + "quantity": "each of the 39 bits the space leaves free against 1/2, largest deviation in units of its Bernstein bound", + "measured": 0.29827394881053254, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "clifford_counts_n40", + "engine": "stim.tableau", + "quantity": "distinct outcomes, of 20000 shots over 2^34", + "measured": 20000, + "tolerance": null, + "status": "info" + }, + { + "entry": "clifford_counts_n40", + "engine": "aer.stabilizer", + "quantity": "shots returned", + "measured": 20000, + "tolerance": 20000, + "status": "pass" + }, + { + "entry": "clifford_counts_n40", + "engine": "aer.stabilizer", + "quantity": "shots outside the affine space the stabilizers fix (dimension 34)", + "measured": 0, + "tolerance": 0, + "status": "pass" + }, + { + "entry": "clifford_counts_n40", + "engine": "aer.stabilizer", + "quantity": "the most frequent outcome's count above shots\u00b72^-34, in units of its Bernstein bound over all 2^34 outcomes", + "measured": 0.036615652745396014, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "clifford_counts_n40", + "engine": "aer.stabilizer", + "quantity": "each of the 39 bits the space leaves free against 1/2, largest deviation in units of its Bernstein bound", + "measured": 0.5128595234943689, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "clifford_counts_n40", + "engine": "aer.stabilizer", + "quantity": "distinct outcomes, of 20000 shots over 2^34", + "measured": 20000, + "tolerance": null, + "status": "info" + }, + { + "entry": "noise_depol1_x_chain_p0_01_k20", + "engine": "wai.density_matrix", + "quantity": " against the closed form", + "measured": 9.937140810079922e-16, + "tolerance": 1.2401240634415574e-12, + "status": "pass" + }, + { + "entry": "noise_depol1_x_chain_p0_01_k20", + "engine": "aer.density_matrix", + "quantity": " against the closed form", + "measured": 9.937140810079922e-16, + "tolerance": 1.2401240634415574e-12, + "status": "pass" + }, + { + "entry": "noise_depol1_x_chain_p0_1_k7", + "engine": "wai.density_matrix", + "quantity": " against the closed form", + "measured": 6.305003467449492e-17, + "tolerance": 4.3404342220454503e-13, + "status": "pass" + }, + { + "entry": "noise_depol1_x_chain_p0_1_k7", + "engine": "aer.density_matrix", + "quantity": " against the closed form", + "measured": 6.305003467449492e-17, + "tolerance": 4.3404342220454503e-13, + "status": "pass" + }, + { + "entry": "noise_depol2_cx_chain", + "engine": "wai.density_matrix", + "quantity": " against the closed form", + "measured": 7.326316154075342e-16, + "tolerance": 7.892101212949273e-13, + "status": "pass" + }, + { + "entry": "noise_depol2_cx_chain", + "engine": "aer.density_matrix", + "quantity": " against the closed form", + "measured": 7.326316154075342e-16, + "tolerance": 7.892101212949273e-13, + "status": "pass" + }, + { + "entry": "mps_ghz_n30", + "engine": "wai.mps", + "quantity": "amplitudes against the closed form, worst error", + "measured": 4.833646656726456e-17, + "tolerance": 2.76696570893817e-13, + "status": "pass", + "note": "29 two-site updates at bond 2; truncation from its reported discarded weight", + "seconds": 0.005910599, + "accuracy": { + "class": "exact", + "max_bond": 64, + "max_bond_used": 2, + "note": "no truncation dropped weight beyond the cutoff's rounding" + } + }, + { + "entry": "mps_ghz_n30", + "engine": "wai.tensor_network", + "quantity": "amplitudes against the closed form, worst error", + "measured": 4.833646656726456e-17, + "tolerance": 8.450256244926496e-14, + "status": "pass", + "note": "contraction of width 1.0", + "seconds": 0.04008969, + "accuracy": { + "class": "exact" + } + }, + { + "entry": "mps_ghz_n30", + "engine": "aer.mps", + "quantity": "amplitudes against the closed form, worst error", + "measured": 6.268583589525109e-17, + "tolerance": 2.76696570893817e-13, + "status": "pass", + "note": "29 two-site updates at bond 2, and 0 truncations, from its log", + "seconds": 0.005814388 + }, + { + "entry": "mps_ghz_n30", + "engine": "quimb.mps", + "quantity": "amplitudes against the closed form, worst error", + "measured": 6.268583589525109e-17, + "tolerance": 8.566965708938169e-13, + "status": "pass", + "note": "29 two-site updates at bond 2; its cutoff drops at most 1e-28 of weight at each", + "seconds": 0.8727465441916138 + }, + { + "entry": "mps_ghz_n30", + "engine": "quimb.tensor_network", + "quantity": "amplitudes against the closed form, worst error", + "measured": 3.615399514695752e-15, + "tolerance": 8.450256244926496e-14, + "status": "pass", + "note": "contraction of width 1.0", + "seconds": 0.7897708301898092 + }, + { + "entry": "mps_ghz_n50", + "engine": "wai.mps", + "quantity": "amplitudes against the closed form, worst error", + "measured": 4.833646656726456e-17, + "tolerance": 4.67521792199987e-13, + "status": "pass", + "note": "49 two-site updates at bond 2; truncation from its reported discarded weight", + "seconds": 0.009065572, + "accuracy": { + "class": "exact", + "max_bond": 64, + "max_bond_used": 2, + "note": "no truncation dropped weight beyond the cutoff's rounding" + } + }, + { + "entry": "mps_ghz_n50", + "engine": "wai.tensor_network", + "quantity": "amplitudes against the closed form, worst error", + "measured": 4.833646656726456e-17, + "tolerance": 1.4083760408211617e-13, + "status": "pass", + "note": "contraction of width 1.0", + "seconds": 0.012613888, + "accuracy": { + "class": "exact" + } + }, + { + "entry": "mps_ghz_n50", + "engine": "aer.mps", + "quantity": "amplitudes against the closed form, worst error", + "measured": 6.268583589525109e-17, + "tolerance": 4.67521792199987e-13, + "status": "pass", + "note": "49 two-site updates at bond 2, and 0 truncations, from its log", + "seconds": 0.00046592 + }, + { + "entry": "mps_ghz_n50", + "engine": "quimb.mps", + "quantity": "amplitudes against the closed form, worst error", + "measured": 6.268583589525109e-17, + "tolerance": 1.447521792199987e-12, + "status": "pass", + "note": "49 two-site updates at bond 2; its cutoff drops at most 1e-28 of weight at each", + "seconds": 0.8644838889595121 + }, + { + "entry": "mps_ghz_n50", + "engine": "quimb.tensor_network", + "quantity": "amplitudes against the closed form, worst error", + "measured": 1.1729088605204076e-15, + "tolerance": 1.4083760408211617e-13, + "status": "pass", + "note": "contraction of width 1.0", + "seconds": 0.6748651780653745 + }, + { + "entry": "mps_ghz_n100", + "engine": "wai.mps", + "quantity": "amplitudes against the closed form, worst error", + "measured": 4.833646656726456e-17, + "tolerance": 9.445848454657303e-13, + "status": "pass", + "note": "99 two-site updates at bond 2; truncation from its reported discarded weight", + "seconds": 0.000939996, + "accuracy": { + "class": "exact", + "max_bond": 64, + "max_bond_used": 2, + "note": "no truncation dropped weight beyond the cutoff's rounding" + } + }, + { + "entry": "mps_ghz_n100", + "engine": "wai.tensor_network", + "quantity": "amplitudes against the closed form, worst error", + "measured": 4.833646656726456e-17, + "tolerance": 2.8167520816427206e-13, + "status": "pass", + "note": "contraction of width 1.0", + "seconds": 0.021253845, + "accuracy": { + "class": "exact" + } + }, + { + "entry": "mps_ghz_n100", + "engine": "aer.mps", + "quantity": "amplitudes", + "measured": null, + "tolerance": null, + "status": "not run", + "note": "CircuitTooWideForTarget: 'Number of qubits (100) in circuit-46 is greater than maximum (63) in the coupling_map'" + }, + { + "entry": "mps_ghz_n100", + "engine": "quimb.mps", + "quantity": "amplitudes against the closed form, worst error", + "measured": 6.268583589525109e-17, + "tolerance": 2.9245848454657303e-12, + "status": "pass", + "note": "99 two-site updates at bond 2; its cutoff drops at most 1e-28 of weight at each", + "seconds": 0.6864183908328414 + }, + { + "entry": "mps_ghz_n100", + "engine": "quimb.tensor_network", + "quantity": "amplitudes against the closed form, worst error", + "measured": 2.6161987925331113e-15, + "tolerance": 2.8167520816427206e-13, + "status": "pass", + "note": "contraction of width 1.0", + "seconds": 0.6779680410400033 + }, + { + "entry": "mps_qft_n30", + "engine": "wai.mps", + "quantity": "amplitudes against the closed form, worst error", + "measured": 5.017092331032849e-19, + "tolerance": 5.3837041007541454e-11, + "status": "pass", + "note": "8990 two-site updates at bond 1; truncation from its reported discarded weight", + "seconds": 0.035013476, + "accuracy": { + "class": "exact", + "max_bond": 64, + "max_bond_used": 1, + "note": "no truncation dropped weight beyond the cutoff's rounding" + } + }, + { + "entry": "mps_qft_n30", + "engine": "wai.tensor_network", + "quantity": "amplitudes against the closed form, worst error", + "measured": 1.153914350662781e-19, + "tolerance": 7.408057974723756e-13, + "status": "pass", + "note": "contraction of width 1.0", + "seconds": 0.164373274, + "accuracy": { + "class": "exact" + } + }, + { + "entry": "mps_qft_n30", + "engine": "aer.mps", + "quantity": "amplitudes against the closed form, worst error", + "measured": 2.7107287652268447e-18, + "tolerance": 7.557546801821243e-12, + "status": "pass", + "note": "1262 two-site updates at bond 1, and 0 truncations, from its log", + "seconds": 0.004474757 + }, + { + "entry": "mps_qft_n30", + "engine": "quimb.mps", + "quantity": "amplitudes against the closed form, worst error", + "measured": 3.686496045493355e-18, + "tolerance": 2.3363704100754143e-10, + "status": "pass", + "note": "8990 two-site updates at bond 1; its cutoff drops at most 1e-28 of weight at each", + "seconds": 1.7156467749737203 + }, + { + "entry": "mps_qft_n30", + "engine": "quimb.tensor_network", + "quantity": "amplitudes against the closed form, worst error", + "measured": 1.2432397069272733e-18, + "tolerance": 7.408057974723756e-13, + "status": "pass", + "note": "contraction of width 1.0", + "seconds": 1.0851890570484102 + }, + { + "entry": "mps_qft_n40", + "engine": "wai.mps", + "quantity": "amplitudes against the closed form, worst error", + "measured": 2.3442753311374327e-20, + "tolerance": 1.2767583029650018e-10, + "status": "pass", + "note": "21320 two-site updates at bond 1; truncation from its reported discarded weight", + "seconds": 0.035151688, + "accuracy": { + "class": "exact", + "max_bond": 64, + "max_bond_used": 1, + "note": "no truncation dropped weight beyond the cutoff's rounding" + } + }, + { + "entry": "mps_qft_n40", + "engine": "wai.tensor_network", + "quantity": "amplitudes against the closed form, worst error", + "measured": 2.633360821843449e-21, + "tolerance": 1.2675384367404737e-12, + "status": "pass", + "note": "contraction of width 1.0", + "seconds": 0.447611655, + "accuracy": { + "class": "exact" + } + }, + { + "entry": "mps_qft_n40", + "engine": "aer.mps", + "quantity": "amplitudes against the closed form, worst error", + "measured": 1.1198350454719412e-19, + "tolerance": 1.3665865136181795e-11, + "status": "pass", + "note": "2282 two-site updates at bond 1, and 0 truncations, from its log", + "seconds": 0.012199003 + }, + { + "entry": "mps_qft_n40", + "engine": "quimb.mps", + "quantity": "amplitudes against the closed form, worst error", + "measured": 1.6581416924523827e-19, + "tolerance": 5.540758302965001e-10, + "status": "pass", + "note": "21320 two-site updates at bond 1; its cutoff drops at most 1e-28 of weight at each", + "seconds": 2.09487887006253 + }, + { + "entry": "mps_qft_n40", + "engine": "quimb.tensor_network", + "quantity": "amplitudes against the closed form, worst error", + "measured": 1.7865214104041922e-16, + "tolerance": 1.2675384367404737e-12, + "status": "pass", + "note": "contraction of width 1.0", + "seconds": 1.0387157849036157 + }, + { + "entry": "tn_shallow_n26", + "engine": "aer.mps ~ aer.statevector", + "quantity": "chosen amplitudes, worst difference", + "measured": 4.5485298388570546e-14, + "tolerance": 6.667625655552076e-12, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "aer.mps ~ quimb.mps", + "quantity": "chosen amplitudes, worst difference", + "measured": 4.5485826789018006e-14, + "tolerance": 5.148050435408713e-12, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "aer.mps ~ quimb.tensor_network", + "quantity": "chosen amplitudes, worst difference", + "measured": 4.5484301232674424e-14, + "tolerance": 2.2524595706442426e-12, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "aer.mps ~ wai.mps", + "quantity": "chosen amplitudes, worst difference", + "measured": 4.54850808765129e-14, + "tolerance": 3.888050435408713e-12, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "aer.mps ~ wai.statevector", + "quantity": "chosen amplitudes, worst difference", + "measured": 4.5484933220433114e-14, + "tolerance": 6.667625655552076e-12, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "aer.mps ~ wai.tensor_network", + "quantity": "chosen amplitudes, worst difference", + "measured": 4.548493094844004e-14, + "tolerance": 1.108980912050012e-08, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "aer.statevector ~ quimb.mps", + "quantity": "chosen amplitudes, worst difference", + "measured": 2.4027755412165063e-18, + "tolerance": 7.927625655552075e-12, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "aer.statevector ~ quimb.tensor_network", + "quantity": "chosen amplitudes, worst difference", + "measured": 1.1998271778239293e-18, + "tolerance": 5.032034790787605e-12, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "aer.statevector ~ wai.mps", + "quantity": "chosen amplitudes, worst difference", + "measured": 2.666268133101039e-18, + "tolerance": 6.667625655552076e-12, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "aer.statevector ~ wai.statevector", + "quantity": "chosen amplitudes, worst difference", + "measured": 3.6518025666569515e-19, + "tolerance": 9.447200875695438e-12, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "aer.statevector ~ wai.tensor_network", + "quantity": "chosen amplitudes, worst difference", + "measured": 4.487196511480144e-19, + "tolerance": 1.1092588695720265e-08, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "quimb.mps ~ quimb.tensor_network", + "quantity": "chosen amplitudes, worst difference", + "measured": 3.0800037470964506e-18, + "tolerance": 3.5124595706442425e-12, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "quimb.mps ~ wai.mps", + "quantity": "chosen amplitudes, worst difference", + "measured": 1.596453759782804e-18, + "tolerance": 5.148050435408713e-12, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "quimb.mps ~ wai.statevector", + "quantity": "chosen amplitudes, worst difference", + "measured": 2.0984218564272155e-18, + "tolerance": 7.927625655552075e-12, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "quimb.mps ~ wai.tensor_network", + "quantity": "chosen amplitudes, worst difference", + "measured": 2.4009402520340043e-18, + "tolerance": 1.1091069120500122e-08, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "quimb.tensor_network ~ wai.mps", + "quantity": "chosen amplitudes, worst difference", + "measured": 3.0980570188768405e-18, + "tolerance": 2.2524595706442426e-12, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "quimb.tensor_network ~ wai.statevector", + "quantity": "chosen amplitudes, worst difference", + "measured": 9.881502481403531e-19, + "tolerance": 5.032034790787605e-12, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "quimb.tensor_network ~ wai.tensor_network", + "quantity": "chosen amplitudes, worst difference", + "measured": 7.709470352329783e-19, + "tolerance": 1.1088173529635357e-08, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "wai.mps ~ wai.statevector", + "quantity": "chosen amplitudes, worst difference", + "measured": 2.8325835461781977e-18, + "tolerance": 6.667625655552076e-12, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "wai.mps ~ wai.tensor_network", + "quantity": "chosen amplitudes, worst difference", + "measured": 3.092122748816557e-18, + "tolerance": 1.108980912050012e-08, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "wai.statevector ~ wai.tensor_network", + "quantity": "chosen amplitudes, worst difference", + "measured": 3.632102562304021e-19, + "tolerance": 1.1092588695720265e-08, + "status": "pass" + }, + { + "entry": "tn_mirror_n40", + "engine": "wai.mps", + "quantity": "amplitudes against the closed form, worst error", + "measured": 1.818360945611186e-15, + "tolerance": 1.964309233906341e-12, + "status": "pass", + "note": "118 two-site updates at bond 4; truncation from its reported discarded weight", + "seconds": 0.002749205, + "accuracy": { + "class": "exact", + "max_bond": 64, + "max_bond_used": 4, + "note": "no truncation dropped weight beyond the cutoff's rounding" + } + }, + { + "entry": "tn_mirror_n40", + "engine": "wai.tensor_network", + "quantity": "amplitudes against the closed form, worst error", + "measured": 2.2707199910575792e-15, + "tolerance": 3.563571497430284e-09, + "status": "pass", + "note": "contraction of width 10.9", + "seconds": 0.422630566, + "accuracy": { + "class": "exact" + } + }, + { + "entry": "tn_mirror_n40", + "engine": "aer.mps", + "quantity": "amplitudes against the closed form, worst error", + "measured": 4.0309912409806624e-15, + "tolerance": 1.964309233906341e-12, + "status": "pass", + "note": "118 two-site updates at bond 4, and 0 truncations, from its log", + "seconds": 0.000895773 + }, + { + "entry": "tn_mirror_n40", + "engine": "quimb.mps", + "quantity": "amplitudes against the closed form, worst error", + "measured": 3.3156242820838262e-15, + "tolerance": 3.066648591607605e-12, + "status": "pass", + "note": "118 two-site updates at bond 1; its cutoff drops at most 1e-28 of weight at each", + "seconds": 0.6605651341378689 + }, + { + "entry": "tn_mirror_n40", + "engine": "quimb.tensor_network", + "quantity": "amplitudes against the closed form, worst error", + "measured": 1.1325125173896958e-14, + "tolerance": 5.605336642470576e-13, + "status": "pass", + "note": "contraction of width 1.0", + "seconds": 0.6732260400895029 + }, + { + "entry": "bit_order_named_bits", + "engine": "wai.auto", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.0, + "tolerance": 1.0, + "status": "pass", + "planned": "stabilizer" + }, + { + "entry": "bit_order_named_bits", + "engine": "wai.auto", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0, + "tolerance": 0.10929839642611919, + "status": "pass" + }, + { + "entry": "bit_order_named_bits", + "engine": "wai.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.0, + "tolerance": 1.0, + "status": "pass", + "planned": "statevector" + }, + { + "entry": "bit_order_named_bits", + "engine": "wai.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0, + "tolerance": 0.10929839642611919, + "status": "pass" + }, + { + "entry": "bit_order_named_bits", + "engine": "aer.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.0, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "bit_order_named_bits", + "engine": "aer.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0, + "tolerance": 0.10929839642611919, + "status": "pass" + }, + { + "entry": "bit_order_named_bits", + "engine": "ddsim.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.0, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "bit_order_named_bits", + "engine": "ddsim.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0, + "tolerance": 0.10929839642611919, + "status": "pass" + }, + { + "entry": "bit_order_named_bits", + "engine": "qsim.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.0, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "bit_order_named_bits", + "engine": "qsim.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0, + "tolerance": 0.10929839642611919, + "status": "pass" + }, + { + "entry": "bit_order_named_bits", + "engine": "wai.stabilizer", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.0, + "tolerance": 1.0, + "status": "pass", + "planned": "stabilizer" + }, + { + "entry": "bit_order_named_bits", + "engine": "wai.stabilizer", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0, + "tolerance": 0.10929839642611919, + "status": "pass" + }, + { + "entry": "bit_order_named_bits", + "engine": "stim.tableau", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.0, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "bit_order_named_bits", + "engine": "stim.tableau", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0, + "tolerance": 0.10929839642611919, + "status": "pass" + }, + { + "entry": "ghz_counts_n8", + "engine": "wai.auto", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.022124431970260056, + "tolerance": 1.0, + "status": "pass", + "planned": "stabilizer" + }, + { + "entry": "ghz_counts_n8", + "engine": "wai.auto", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.00048000000000003595, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "ghz_counts_n8", + "engine": "wai.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.207416549721188, + "tolerance": 1.0, + "status": "pass", + "planned": "statevector" + }, + { + "entry": "ghz_counts_n8", + "engine": "wai.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0044999999999999485, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "ghz_counts_n8", + "engine": "aer.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.05899848525402681, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "ghz_counts_n8", + "engine": "aer.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0012799999999999478, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "ghz_counts_n8", + "engine": "ddsim.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.13459029448574866, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "ghz_counts_n8", + "engine": "ddsim.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0029200000000000337, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "ghz_counts_n8", + "engine": "qsim.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.14012140247831367, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "ghz_counts_n8", + "engine": "qsim.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.003039999999999987, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "ghz_counts_n8", + "engine": "wai.stabilizer", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.022124431970260056, + "tolerance": 1.0, + "status": "pass", + "planned": "stabilizer" + }, + { + "entry": "ghz_counts_n8", + "engine": "wai.stabilizer", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.00048000000000003595, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "ghz_counts_n8", + "engine": "stim.tableau", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.2903831696096632, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "ghz_counts_n8", + "engine": "stim.tableau", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.006299999999999972, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "qft_counts_n8", + "engine": "wai.auto", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.4509651202716092, + "tolerance": 1.0, + "status": "pass", + "planned": "exact" + }, + { + "entry": "qft_counts_n8", + "engine": "wai.auto", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.029392500000000002, + "tolerance": 0.04479339348223444, + "status": "pass" + }, + { + "entry": "qft_counts_n8", + "engine": "wai.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.4029632307188889, + "tolerance": 1.0, + "status": "pass", + "planned": "statevector" + }, + { + "entry": "qft_counts_n8", + "engine": "wai.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.026119999999999997, + "tolerance": 0.04479339348223444, + "status": "pass" + }, + { + "entry": "qft_counts_n8", + "engine": "aer.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.44843870503199235, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "qft_counts_n8", + "engine": "aer.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.027297500000000002, + "tolerance": 0.04479339348223444, + "status": "pass" + }, + { + "entry": "qft_counts_n8", + "engine": "ddsim.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.48380851838662836, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "qft_counts_n8", + "engine": "ddsim.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0275375, + "tolerance": 0.04479339348223444, + "status": "pass" + }, + { + "entry": "qft_counts_n8", + "engine": "qsim.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.4560179507508429, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "qft_counts_n8", + "engine": "qsim.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.028130000000000002, + "tolerance": 0.04479339348223444, + "status": "pass" + }, + { + "entry": "grover_counts_n5", + "engine": "wai.auto", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.13997647083085357, + "tolerance": 1.0, + "status": "pass", + "planned": "exact" + }, + { + "entry": "grover_counts_n5", + "engine": "wai.auto", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0004568152105807719, + "tolerance": 0.03012634777731961, + "status": "pass" + }, + { + "entry": "grover_counts_n5", + "engine": "wai.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.12424073859545777, + "tolerance": 1.0, + "status": "pass", + "planned": "statevector" + }, + { + "entry": "grover_counts_n5", + "engine": "wai.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.00034318478941921713, + "tolerance": 0.03012634777731961, + "status": "pass" + }, + { + "entry": "grover_counts_n5", + "engine": "aer.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.2525758062095532, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "grover_counts_n5", + "engine": "aer.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0006342001330852628, + "tolerance": 0.03012634777731961, + "status": "pass" + }, + { + "entry": "grover_counts_n5", + "engine": "ddsim.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.2525758062095532, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "grover_counts_n5", + "engine": "ddsim.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0004231847894192171, + "tolerance": 0.03012634777731961, + "status": "pass" + }, + { + "entry": "grover_counts_n5", + "engine": "qsim.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.26894153650846164, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "grover_counts_n5", + "engine": "qsim.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0005568152105808064, + "tolerance": 0.03012634777731961, + "status": "pass" + }, + { + "entry": "rotations_counts_n6", + "engine": "wai.auto", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.3706876090255593, + "tolerance": 1.0, + "status": "pass", + "planned": "statevector" + }, + { + "entry": "rotations_counts_n6", + "engine": "wai.auto", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.012450634507322185, + "tolerance": 0.025992412604050198, + "status": "pass" + }, + { + "entry": "rotations_counts_n6", + "engine": "wai.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.3706876090255593, + "tolerance": 1.0, + "status": "pass", + "planned": "statevector" + }, + { + "entry": "rotations_counts_n6", + "engine": "wai.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.012450634507322185, + "tolerance": 0.025992412604050198, + "status": "pass" + }, + { + "entry": "rotations_counts_n6", + "engine": "aer.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.4505909702514439, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "rotations_counts_n6", + "engine": "aer.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.012876127428279404, + "tolerance": 0.025992412604050198, + "status": "pass" + }, + { + "entry": "rotations_counts_n6", + "engine": "ddsim.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.3157887812118907, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "rotations_counts_n6", + "engine": "ddsim.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.013452797694966129, + "tolerance": 0.025992412604050198, + "status": "pass" + }, + { + "entry": "rotations_counts_n6", + "engine": "qsim.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.30737854709869, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "rotations_counts_n6", + "engine": "qsim.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.010360411095587168, + "tolerance": 0.025992412604050198, + "status": "pass" + }, + { + "entry": "teleport", + "engine": "wai.auto", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.28986586798694963, + "tolerance": 1.0, + "status": "pass", + "planned": "statevector" + }, + { + "entry": "teleport", + "engine": "wai.auto", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.004056320100807597, + "tolerance": 0.016954146745431286, + "status": "pass" + }, + { + "entry": "teleport", + "engine": "wai.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.28986586798694963, + "tolerance": 1.0, + "status": "pass", + "planned": "statevector" + }, + { + "entry": "teleport", + "engine": "wai.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.004056320100807597, + "tolerance": 0.016954146745431286, + "status": "pass" + }, + { + "entry": "teleport", + "engine": "aer.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.2560408383363076, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "teleport", + "engine": "aer.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0036836798991923695, + "tolerance": 0.016954146745431286, + "status": "pass" + }, + { + "entry": "teleport", + "engine": "ddsim.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.2061044990489412, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "teleport", + "engine": "ddsim.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.003003679899192397, + "tolerance": 0.016954146745431286, + "status": "pass" + }, + { + "entry": "reset_after_superposition", + "engine": "wai.auto", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.207416549721188, + "tolerance": 1.0, + "status": "pass", + "planned": "stabilizer" + }, + { + "entry": "reset_after_superposition", + "engine": "wai.auto", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0044999999999999485, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "reset_after_superposition", + "engine": "wai.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.207416549721188, + "tolerance": 1.0, + "status": "pass", + "planned": "statevector" + }, + { + "entry": "reset_after_superposition", + "engine": "wai.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0044999999999999485, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "reset_after_superposition", + "engine": "aer.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.27194614296777986, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "reset_after_superposition", + "engine": "aer.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.005900000000000016, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "reset_after_superposition", + "engine": "ddsim.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.10877845718711193, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "reset_after_superposition", + "engine": "ddsim.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0023599999999999732, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "reset_after_superposition", + "engine": "wai.stabilizer", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.207416549721188, + "tolerance": 1.0, + "status": "pass", + "planned": "stabilizer" + }, + { + "entry": "reset_after_superposition", + "engine": "wai.stabilizer", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0044999999999999485, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "reset_after_superposition", + "engine": "stim.tableau", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.2903831696096632, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "reset_after_superposition", + "engine": "stim.tableau", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.006299999999999972, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "measure_twice", + "engine": "wai.auto", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.207416549721188, + "tolerance": 1.0, + "status": "pass", + "planned": "stabilizer" + }, + { + "entry": "measure_twice", + "engine": "wai.auto", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0044999999999999485, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "measure_twice", + "engine": "wai.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.207416549721188, + "tolerance": 1.0, + "status": "pass", + "planned": "statevector" + }, + { + "entry": "measure_twice", + "engine": "wai.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0044999999999999485, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "measure_twice", + "engine": "aer.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.05899848525402681, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "measure_twice", + "engine": "aer.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0012799999999999478, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "measure_twice", + "engine": "ddsim.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 46.092566604708445, + "tolerance": 1.0, + "status": "known", + "note": "10: 49902 shots, probability 0; 11: 0 shots, expected 50000.0 \u00b1 1084.8 | known: MQT DDSIM 2.7.0's qasm_simulator, given h q[0]; c[0] = measure q[0]; c[1] = measure q[0]; with nothing between the two measurements, returns 00 and 10: c[0] is never set. With x in place of h it gives 10 on every shot; with a barrier between the measurements, 00 and 11; with c[1] measured first and c[0] second, ValueError [changePermutation]. Each is a case of the reproducer, with the circuit built in Qiskit 2.6.2.", + "right": "the exact reference: a second measurement of a qubit in the same basis repeats the first, so only 00 and 11 occur. Every other engine that ran this program met it (the results files)." + }, + { + "entry": "measure_twice", + "engine": "ddsim.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 1.0, + "tolerance": 0.02217450161929334, + "status": "known", + "note": "known: MQT DDSIM 2.7.0's qasm_simulator, given h q[0]; c[0] = measure q[0]; c[1] = measure q[0]; with nothing between the two measurements, returns 00 and 10: c[0] is never set. With x in place of h it gives 10 on every shot; with a barrier between the measurements, 00 and 11; with c[1] measured first and c[0] second, ValueError [changePermutation]. Each is a case of the reproducer, with the circuit built in Qiskit 2.6.2.", + "right": "the exact reference: a second measurement of a qubit in the same basis repeats the first, so only 00 and 11 occur. Every other engine that ran this program met it (the results files)." + }, + { + "entry": "measure_twice", + "engine": "wai.stabilizer", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.207416549721188, + "tolerance": 1.0, + "status": "pass", + "planned": "stabilizer" + }, + { + "entry": "measure_twice", + "engine": "wai.stabilizer", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0044999999999999485, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "measure_twice", + "engine": "stim.tableau", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.2903831696096632, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "measure_twice", + "engine": "stim.tableau", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.006299999999999972, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "feedback_flip", + "engine": "wai.auto", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.207416549721188, + "tolerance": 1.0, + "status": "pass", + "planned": "stabilizer" + }, + { + "entry": "feedback_flip", + "engine": "wai.auto", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0044999999999999485, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "feedback_flip", + "engine": "wai.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.207416549721188, + "tolerance": 1.0, + "status": "pass", + "planned": "statevector" + }, + { + "entry": "feedback_flip", + "engine": "wai.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0044999999999999485, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "feedback_flip", + "engine": "aer.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.27194614296777986, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "feedback_flip", + "engine": "aer.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.005900000000000016, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "feedback_flip", + "engine": "ddsim.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.09126328187732273, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "feedback_flip", + "engine": "ddsim.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0019800000000000373, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "feedback_flip", + "engine": "wai.stabilizer", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.207416549721188, + "tolerance": 1.0, + "status": "pass", + "planned": "stabilizer" + }, + { + "entry": "feedback_flip", + "engine": "wai.stabilizer", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0044999999999999485, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "feedback_flip", + "engine": "stim.tableau", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.2903831696096632, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "feedback_flip", + "engine": "stim.tableau", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.006299999999999972, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "ghz_by_fusion", + "engine": "wai.auto", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.15736552228088005, + "tolerance": 1.0, + "status": "pass", + "planned": "stabilizer" + }, + { + "entry": "ghz_by_fusion", + "engine": "wai.auto", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.004500000000000032, + "tolerance": 0.022791103731202682, + "status": "pass" + }, + { + "entry": "ghz_by_fusion", + "engine": "wai.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.15736552228088005, + "tolerance": 1.0, + "status": "pass", + "planned": "statevector" + }, + { + "entry": "ghz_by_fusion", + "engine": "wai.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.004500000000000032, + "tolerance": 0.022791103731202682, + "status": "pass" + }, + { + "entry": "ghz_by_fusion", + "engine": "aer.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.3604521084676915, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "ghz_by_fusion", + "engine": "aer.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.006779999999999953, + "tolerance": 0.022791103731202682, + "status": "pass" + }, + { + "entry": "ghz_by_fusion", + "engine": "ddsim.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.21584595285823413, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "ghz_by_fusion", + "engine": "ddsim.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.00405999999999998, + "tolerance": 0.022791103731202682, + "status": "pass" + }, + { + "entry": "ghz_by_fusion", + "engine": "wai.stabilizer", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.15736552228088005, + "tolerance": 1.0, + "status": "pass", + "planned": "stabilizer" + }, + { + "entry": "ghz_by_fusion", + "engine": "wai.stabilizer", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.004500000000000032, + "tolerance": 0.022791103731202682, + "status": "pass" + }, + { + "entry": "ghz_by_fusion", + "engine": "stim.tableau", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.2339217223094163, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "ghz_by_fusion", + "engine": "stim.tableau", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0063, + "tolerance": 0.022791103731202682, + "status": "pass" + }, + { + "entry": "repeat_until_success", + "engine": "wai.auto", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.19356052803434357, + "tolerance": 1.0, + "status": "pass", + "planned": "statevector" + }, + { + "entry": "repeat_until_success", + "engine": "wai.auto", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.00488873926376112, + "tolerance": 0.01851742061709497, + "status": "pass" + }, + { + "entry": "repeat_until_success", + "engine": "wai.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.19356052803434357, + "tolerance": 1.0, + "status": "pass", + "planned": "statevector" + }, + { + "entry": "repeat_until_success", + "engine": "wai.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.00488873926376112, + "tolerance": 0.01851742061709497, + "status": "pass" + }, + { + "entry": "repeat_until_success", + "engine": "aer.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.3143124401477729, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "repeat_until_success", + "engine": "aer.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.005489130879203905, + "tolerance": 0.01851742061709497, + "status": "pass" + }, + { + "entry": "surface_z_d3", + "engine": "stim.generate", + "quantity": "the pinned generator writes the committed circuit, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "surface_z_d3", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 24, + 1 + ], + "tolerance": [ + 24, + 1 + ], + "status": "pass" + }, + { + "entry": "surface_z_d3", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 1.2091022627558345e-15, + "tolerance": 4.778399897986674e-13, + "status": "pass", + "mechanisms": [ + 219, + 219 + ], + "seconds": [ + 0.000552654, + 0.0004958368372172117 + ] + }, + { + "entry": "surface_z_d3", + "engine": "wai.qec", + "quantity": "the engine's own generator writes the same text, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "surface_z_d5", + "engine": "stim.generate", + "quantity": "the pinned generator writes the committed circuit, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "surface_z_d5", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 120, + 1 + ], + "tolerance": [ + 120, + 1 + ], + "status": "pass" + }, + { + "entry": "surface_z_d5", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 1.5404344466674047e-15, + "tolerance": 2.4140689447449404e-12, + "status": "pass", + "mechanisms": [ + 1677, + 1677 + ], + "seconds": [ + 0.001854735, + 0.0032574960496276617 + ] + }, + { + "entry": "surface_z_d5", + "engine": "wai.qec", + "quantity": "the engine's own generator writes the same text, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "surface_z_d7", + "engine": "stim.generate", + "quantity": "the pinned generator writes the committed circuit, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "surface_z_d7", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 336, + 1 + ], + "tolerance": [ + 336, + 1 + ], + "status": "pass" + }, + { + "entry": "surface_z_d7", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 1.5404344466674047e-15, + "tolerance": 6.837197474851564e-12, + "status": "pass", + "mechanisms": [ + 5471, + 5471 + ], + "seconds": [ + 0.005225505, + 0.010384174063801765 + ] + }, + { + "entry": "surface_z_d7", + "engine": "wai.qec", + "quantity": "the engine's own generator writes the same text, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "surface_z_d9", + "engine": "stim.generate", + "quantity": "the pinned generator writes the committed circuit, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "surface_z_d9", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 720, + 1 + ], + "tolerance": [ + 720, + 1 + ], + "status": "pass" + }, + { + "entry": "surface_z_d9", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 1.5404344466674047e-15, + "tolerance": 1.4770407119613083e-11, + "status": "pass", + "mechanisms": [ + 12705, + 12705 + ], + "seconds": [ + 0.012448024, + 0.023616458987817168 + ] + }, + { + "entry": "surface_z_d9", + "engine": "wai.qec", + "quantity": "the engine's own generator writes the same text, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "surface_z_d11", + "engine": "stim.generate", + "quantity": "the pinned generator writes the committed circuit, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "surface_z_d11", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 1320, + 1 + ], + "tolerance": [ + 1320, + 1 + ], + "status": "pass" + }, + { + "entry": "surface_z_d11", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 1.5404344466674047e-15, + "tolerance": 2.723687941852404e-11, + "status": "pass", + "mechanisms": [ + 24483, + 24483 + ], + "seconds": [ + 0.02542107, + 0.04846854298375547 + ] + }, + { + "entry": "surface_z_d11", + "engine": "wai.qec", + "quantity": "the engine's own generator writes the same text, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "surface_z_d15", + "engine": "stim.generate", + "quantity": "the pinned generator writes the committed circuit, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "surface_z_d15", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 3360, + 1 + ], + "tolerance": [ + 3360, + 1 + ], + "status": "pass" + }, + { + "entry": "surface_z_d15", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 1.5404344466674047e-15, + "tolerance": 6.986233813677245e-11, + "status": "pass", + "mechanisms": [ + 66087, + 66087 + ], + "seconds": [ + 0.102933619, + 0.13643201207742095 + ] + }, + { + "entry": "surface_z_d15", + "engine": "wai.qec", + "quantity": "the engine's own generator writes the same text, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "surface_x_d3", + "engine": "stim.generate", + "quantity": "the pinned generator writes the committed circuit, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "surface_x_d3", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 24, + 1 + ], + "tolerance": [ + 24, + 1 + ], + "status": "pass" + }, + { + "entry": "surface_x_d3", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 1.4857906571741353e-15, + "tolerance": 4.778399897986674e-13, + "status": "pass", + "mechanisms": [ + 221, + 221 + ], + "seconds": [ + 0.000600675, + 0.00048607797361910343 + ] + }, + { + "entry": "surface_x_d5", + "engine": "stim.generate", + "quantity": "the pinned generator writes the committed circuit, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "surface_x_d5", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 120, + 1 + ], + "tolerance": [ + 120, + 1 + ], + "status": "pass" + }, + { + "entry": "surface_x_d5", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 1.5413018084053931e-15, + "tolerance": 2.4140689447449404e-12, + "status": "pass", + "mechanisms": [ + 1679, + 1679 + ], + "seconds": [ + 0.001844185, + 0.0031915619038045406 + ] + }, + { + "entry": "surface_x_d7", + "engine": "stim.generate", + "quantity": "the pinned generator writes the committed circuit, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "surface_x_d7", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 336, + 1 + ], + "tolerance": [ + 336, + 1 + ], + "status": "pass" + }, + { + "entry": "surface_x_d7", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 1.5413018084053931e-15, + "tolerance": 6.837197474851564e-12, + "status": "pass", + "mechanisms": [ + 5473, + 5473 + ], + "seconds": [ + 0.005458465, + 0.010414219927042723 + ] + }, + { + "entry": "unrotated_z_d3", + "engine": "stim.generate", + "quantity": "the pinned generator writes the committed circuit, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "unrotated_z_d3", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 36, + 1 + ], + "tolerance": [ + 36, + 1 + ], + "status": "pass" + }, + { + "entry": "unrotated_z_d3", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 1.0408340855860843e-17, + "tolerance": 7.549516567451064e-13, + "status": "pass", + "mechanisms": [ + 423, + 423 + ], + "seconds": [ + 0.000676799, + 0.0008642831817269325 + ] + }, + { + "entry": "unrotated_z_d5", + "engine": "stim.generate", + "quantity": "the pinned generator writes the committed circuit, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "unrotated_z_d5", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 200, + 1 + ], + "tolerance": [ + 200, + 1 + ], + "status": "pass" + }, + { + "entry": "unrotated_z_d5", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 1.0408340855860843e-17, + "tolerance": 4.204636638860393e-12, + "status": "pass", + "mechanisms": [ + 3139, + 3139 + ], + "seconds": [ + 0.003236376, + 0.006776847178116441 + ] + }, + { + "entry": "repetition_d3", + "engine": "stim.generate", + "quantity": "the pinned generator writes the committed circuit, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "repetition_d3", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 8, + 1 + ], + "tolerance": [ + 8, + 1 + ], + "status": "pass" + }, + { + "entry": "repetition_d3", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 3.469446951953614e-18, + "tolerance": 9.414691248821327e-14, + "status": "pass", + "mechanisms": [ + 21, + 21 + ], + "seconds": [ + 8.0643e-05, + 8.376804180443287e-05 + ] + }, + { + "entry": "repetition_d9", + "engine": "stim.generate", + "quantity": "the pinned generator writes the committed circuit, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "repetition_d9", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 80, + 1 + ], + "tolerance": [ + 80, + 1 + ], + "status": "pass" + }, + { + "entry": "repetition_d9", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 3.469446951953614e-18, + "tolerance": 9.57456336436735e-13, + "status": "pass", + "mechanisms": [ + 225, + 225 + ], + "seconds": [ + 0.000474437, + 0.0006941421888768673 + ] + }, + { + "entry": "repetition_d25", + "engine": "stim.generate", + "quantity": "the pinned generator writes the committed circuit, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "repetition_d25", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 624, + 1 + ], + "tolerance": [ + 624, + 1 + ], + "status": "pass" + }, + { + "entry": "repetition_d25", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 3.469446951953614e-18, + "tolerance": 7.636558052581677e-12, + "status": "pass", + "mechanisms": [ + 1825, + 1825 + ], + "seconds": [ + 0.003353948, + 0.007225824985653162 + ] + }, + { + "entry": "surface_z_d5_noiseless", + "engine": "stim.generate", + "quantity": "the pinned generator writes the committed circuit, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "surface_z_d5_noiseless", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 120, + 1 + ], + "tolerance": [ + 120, + 1 + ], + "status": "pass" + }, + { + "entry": "surface_z_d5_noiseless", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 0.0, + "tolerance": 0.0, + "status": "pass", + "mechanisms": [ + 0, + 0 + ], + "seconds": [ + 3.8332e-05, + 7.666507735848427e-05 + ] + }, + { + "entry": "surface_z_d5_noiseless", + "engine": "wai.qec", + "quantity": "the engine's own generator writes the same text, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "color_d3", + "engine": "stim.generate", + "quantity": "the pinned generator writes the committed circuit, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "color_d3", + "engine": "wai.qec", + "quantity": "refuses, as listed: the frame simulator does not implement C_XYZ", + "measured": "line 16: unsupported instruction 'C_XYZ'", + "tolerance": "unsupported instruction 'C_XYZ'", + "status": "refused" + }, + { + "entry": "qec_inverted_and_tagged", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 1, + 1 + ], + "tolerance": [ + 1, + 1 + ], + "status": "pass" + }, + { + "entry": "qec_inverted_and_tagged", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 0.0, + "tolerance": 1.7763568394002505e-15, + "status": "pass", + "mechanisms": [ + 1, + 1 + ], + "seconds": [ + 1.4638e-05, + 2.843397669494152e-05 + ] + }, + { + "entry": "qec_measure_flip_noise", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 2, + 0 + ], + "tolerance": [ + 2, + 0 + ], + "status": "pass" + }, + { + "entry": "qec_measure_flip_noise", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 0.0, + "tolerance": 3.552713678800501e-15, + "status": "pass", + "mechanisms": [ + 2, + 2 + ], + "seconds": [ + 1.7353e-05, + 2.712104469537735e-05 + ] + }, + { + "entry": "qec_depolarize_merge", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 2, + 0 + ], + "tolerance": [ + 2, + 0 + ], + "status": "pass" + }, + { + "entry": "qec_depolarize_merge", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 1.3877787807814457e-17, + "tolerance": 7.105427357601002e-15, + "status": "pass", + "mechanisms": [ + 3, + 3 + ], + "seconds": [ + 2.085e-05, + 3.865291364490986e-05 + ] + }, + { + "entry": "qec_pauli_observable", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 0, + 1 + ], + "tolerance": [ + 0, + 1 + ], + "status": "pass" + }, + { + "entry": "qec_pauli_observable", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 0.0, + "tolerance": 1.7763568394002505e-15, + "status": "pass", + "mechanisms": [ + 1, + 1 + ], + "seconds": [ + 9.388e-06, + 2.9845861718058586e-05 + ] + }, + { + "entry": "qec_refused_correlated", + "engine": "wai.qec", + "quantity": "refuses, as listed: the frame simulator does not implement correlated errors", + "measured": "line 2: unsupported instruction 'E'", + "tolerance": "unsupported instruction 'E'", + "status": "refused" + }, + { + "entry": "qec_refused_pauli_channel", + "engine": "wai.qec", + "quantity": "refuses, as listed: the frame simulator does not implement general Pauli channels", + "measured": "line 2: unsupported instruction 'PAULI_CHANNEL_1'", + "tolerance": "unsupported instruction 'PAULI_CHANNEL_1'", + "status": "refused" + }, + { + "entry": "qec_refused_random_detector", + "engine": "wai.qec", + "quantity": "refuses, as listed: a detector that is random without noise is no detector", + "measured": "a detector or observable is not deterministic (it anticommutes with op 0)", + "tolerance": "is not deterministic", + "status": "refused" + }, + { + "entry": "qec_refused_random_detector", + "engine": "stim.tableau", + "quantity": "detector error model", + "measured": null, + "tolerance": null, + "status": "not run", + "note": "ValueError: The circuit contains non-deterministic detectors.\n\nTo make an SVG picture of the problem, you can use the python API like this:\n your_circuit.diagram('detslice-with-ops-svg', tick=range(0, 5), filter_coords=['D0', ])\nor the command line API like this:\n stim diagram --in your_circui" + }, + { + "entry": "surface_z_d3", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.23048646026773695, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.003273036 + }, + { + "entry": "surface_z_d3", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.3592711753792007, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.11952466191723943 + }, + { + "entry": "surface_z_d5", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.39879503356455986, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.073881808 + }, + { + "entry": "surface_z_d5", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.348853128238409, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.5215588361024857 + }, + { + "entry": "surface_z_d7", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.39837199632438514, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.216456329 + }, + { + "entry": "surface_z_d7", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.4630406856700305, + "tolerance": 1.0, + "status": "pass", + "seconds": 2.3744985421653837 + }, + { + "entry": "surface_z_d9", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.44562403085450897, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.457566798 + }, + { + "entry": "surface_z_d9", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.4913567590524131, + "tolerance": 1.0, + "status": "pass", + "seconds": 5.795652603032067 + }, + { + "entry": "surface_z_d11", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.47332548889429565, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.825810045 + }, + { + "entry": "surface_z_d11", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.49428560970834634, + "tolerance": 1.0, + "status": "pass", + "seconds": 10.459553766064346 + }, + { + "entry": "surface_z_d15", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.6058088014595989, + "tolerance": 1.0, + "status": "pass", + "seconds": 2.044841552 + }, + { + "entry": "surface_z_d15", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.5310636653361563, + "tolerance": 1.0, + "status": "pass", + "seconds": 28.632590687135234 + }, + { + "entry": "surface_x_d3", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.23097594113424208, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.016231153 + }, + { + "entry": "surface_x_d3", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.24837640039353057, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.15008011390455067 + }, + { + "entry": "surface_x_d5", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.39879503356455986, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.078095381 + }, + { + "entry": "surface_x_d5", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.348853128238566, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.5164686371572316 + }, + { + "entry": "surface_x_d7", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.39837199632438514, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.217463062 + }, + { + "entry": "surface_x_d7", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.46304068566963813, + "tolerance": 1.0, + "status": "pass", + "seconds": 2.418697948101908 + }, + { + "entry": "unrotated_z_d3", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.4432082368513014, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.03345403 + }, + { + "entry": "unrotated_z_d3", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.2977523416701549, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.17649936000816524 + }, + { + "entry": "unrotated_z_d5", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.36438632201668025, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.183764228 + }, + { + "entry": "unrotated_z_d5", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.367859547998725, + "tolerance": 1.0, + "status": "pass", + "seconds": 1.5735818790271878 + }, + { + "entry": "repetition_d3", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.21697348529638835, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.006626923 + }, + { + "entry": "repetition_d3", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.16873429933816403, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.07808838807977736 + }, + { + "entry": "repetition_d9", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.37170291528054833, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.06200319 + }, + { + "entry": "repetition_d9", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.31118589085846693, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.34441129211336374 + }, + { + "entry": "repetition_d25", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.47631886714818006, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.498233137 + }, + { + "entry": "repetition_d25", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.42763874819012493, + "tolerance": 1.0, + "status": "pass", + "seconds": 4.987409282941371 + }, + { + "entry": "surface_z_d5_noiseless", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.0, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.002916191 + }, + { + "entry": "surface_z_d5_noiseless", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.0, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.13386849802918732 + }, + { + "entry": "qec_inverted_and_tagged", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.05174419279569804, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.000403673 + }, + { + "entry": "qec_inverted_and_tagged", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.26990889755585934, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.12145335716195405 + }, + { + "entry": "qec_measure_flip_noise", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.16886942380692735, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.001128161 + }, + { + "entry": "qec_measure_flip_noise", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.17752680404250587, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.1185579551383853 + }, + { + "entry": "qec_depolarize_merge", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.09894171264046614, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.00169335 + }, + { + "entry": "qec_depolarize_merge", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.10116512191328873, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.11785018700174987 + }, + { + "entry": "qec_pauli_observable", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.213969229668632, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.000342557 + }, + { + "entry": "qec_pauli_observable", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.07551855164776967, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.1231748501304537 + }, + { + "entry": "measure_twice", + "engine": "ddsim.statevector", + "quantity": "reproducer (corpus/reproducers/ddsim_repeated_measurement.py): h, then c[0] and c[1] measured from the qubit with nothing between: only 00 and 10 come", + "measured": [ + "00", + "10" + ], + "tolerance": [ + "00", + "10" + ], + "status": "known" + }, + { + "entry": "measure_twice", + "engine": "ddsim.statevector", + "quantity": "reproducer (corpus/reproducers/ddsim_repeated_measurement.py): x, then the same two measurements: 10 on every shot", + "measured": [ + "10" + ], + "tolerance": [ + "10" + ], + "status": "known" + }, + { + "entry": "measure_twice", + "engine": "ddsim.statevector", + "quantity": "reproducer (corpus/reproducers/ddsim_repeated_measurement.py): h, the two measurements with a barrier between: 00 and 11", + "measured": [ + "00", + "11" + ], + "tolerance": [ + "00", + "11" + ], + "status": "known" + }, + { + "entry": "measure_twice", + "engine": "ddsim.statevector", + "quantity": "reproducer (corpus/reproducers/ddsim_repeated_measurement.py): h, then c[1] measured first and c[0] second: an error naming changePermutation", + "measured": "ValueError: [changePermutation] Target must be an injective mapping using only keys and logical qubits from the source permutation.", + "tolerance": "ValueError: [changePermutation] ...", + "status": "known" + }, + { + "entry": "repeat_until_success", + "engine": "ddsim.statevector", + "quantity": "reproducer (corpus/reproducers/ddsim_feedback_rounds.py): repeat_until_success: an error naming changePermutation, and no counts", + "measured": "ValueError: [changePermutation] Target must be an injective mapping using only keys and logical qubits from the source permutation.", + "tolerance": "ValueError: [changePermutation] ...", + "status": "known" + }, + { + "entry": "repeat_until_success", + "engine": "ddsim.statevector", + "quantity": "reproducer (corpus/reproducers/ddsim_feedback_rounds.py): the same three rounds without the conditioned x: the same error", + "measured": "ValueError: [changePermutation] Target must be an injective mapping using only keys and logical qubits from the source permutation.", + "tolerance": "ValueError: [changePermutation] ...", + "status": "known" + }, + { + "entry": "repeat_until_success", + "engine": "ddsim.statevector", + "quantity": "reproducer (corpus/reproducers/ddsim_feedback_rounds.py): qubit 1 measured, h, measured again, then qubit 0 measured into a third bit: the same error", + "measured": "ValueError: [changePermutation] Target must be an injective mapping using only keys and logical qubits from the source permutation.", + "tolerance": "ValueError: [changePermutation] ...", + "status": "known" + }, + { + "entry": "repeat_until_success", + "engine": "ddsim.statevector", + "quantity": "reproducer (corpus/reproducers/ddsim_feedback_rounds.py): the same without qubit 0's measurement into a third bit: counts", + "measured": "counts over 4 outcomes", + "tolerance": "counts", + "status": "known" + }, + { + "entry": "corpus", + "engine": "corpus.py", + "quantity": "corpus/expected-refusals.json is the reader's rule and corpus.py's list", + "measured": true, + "tolerance": true, + "status": "pass" + } + ] +} diff --git a/wai/quantum-cross-simulator/results/conformance-macos-arm64.json b/wai/quantum-cross-simulator/results/conformance-macos-arm64.json new file mode 100644 index 000000000..132d446c5 --- /dev/null +++ b/wai/quantum-cross-simulator/results/conformance-macos-arm64.json @@ -0,0 +1,18080 @@ +{ + "about": "One run of the cross-simulator corpus: every check, its measured value and its tolerance. tools/compare.py writes it.", + "tier": "full", + "inject": null, + "host": { + "system": "Darwin", + "machine": "arm64", + "release": "27.2.0", + "cpu": "Apple M3 Ultra", + "memory_bytes": 274877906944, + "os": "macOS 27.2", + "logical_cpus": 32, + "load_average": [ + 26.69775390625, + 39.84912109375, + 57.98876953125 + ] + }, + "versions": { + "cirq-core": "1.7.0", + "mqt.core": "3.11.0", + "mqt.ddsim": "2.7.0", + "numpy": "2.5.4", + "python": "3.12.16", + "qiskit": "2.6.2", + "qiskit-aer": "0.18.2", + "qsimcirq": "0.22.1", + "quimb": "1.15.0", + "scipy": "1.18.1", + "stim": "1.16.0" + }, + "engine_under_test": { + "driver": "cross_simulator", + "build": "wai/wai-quantum fb308edc04d9803b8549b17fbabbdd53aa453776, wai/wai-quantum-qpu c1031872aac2c4d2bcf134af80b9dc454954a2de, wai/wai-quantum-cli 24fea35fd3b93a064120613c39cae963e1a66762, wai/quantum-cross-simulator/tools 185753899b00ca765330a404b6617eb569cdd26b, wai/quantum-cross-simulator/corpus 464ca70c805b560a246962242c1db196435455f3; rustc 1.99.1 (58cf8f9c3 2026-10-13)" + }, + "seconds": 2100.0, + "summary": { + "pass": 1638, + "refused": 12, + "info": 12, + "not run": 11, + "known": 11 + }, + "checks": [ + { + "entry": "corpus", + "engine": "corpus.py", + "quantity": "circuits whose text differs from the manifest", + "measured": [], + "tolerance": [], + "status": "pass" + }, + { + "entry": "corpus", + "engine": "exact", + "quantity": "the extension's phase table P(1..32): the integer reference's cos and sin, rounded to the nearest 2^-30, against the referee's", + "measured": [], + "tolerance": [], + "status": "pass" + }, + { + "entry": "bit_order_x_low", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 0.0, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.0, + "global_phase": 0.0 + }, + { + "entry": "bit_order_x_low", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 0.0, + "tolerance": 2.2965544605210906e-15, + "status": "pass" + }, + { + "entry": "bit_order_x_low", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "bit_order_x_low", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 4.700863032062479e-15, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 8.5416e-05 + }, + { + "entry": "bit_order_x_low", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 4.871667415400809e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.000778792 + }, + { + "entry": "bit_order_x_low", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 4.871667415400809e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 7.175e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "bit_order_x_low", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 4.700863032062479e-15, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 1.109131500008516 + }, + { + "entry": "bit_order_x_low", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 1.468476820049565e-13, + "status": "pass", + "note": "double precision, a contraction of width 5.0", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.0019407919608056545 + }, + { + "entry": "bit_order_x_low", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 1.3666778863689539e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.027442332939244807 + }, + { + "entry": "bit_order_x_low", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 1.3077299742866642e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.004637249978259206 + }, + { + "entry": "bit_order_x_low", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 5, + "tolerance": 5, + "status": "pass" + }, + { + "entry": "bit_order_x_low", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.00028974993620067835 + }, + { + "entry": "bit_order_x_low", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 1.7834e-05 + }, + { + "entry": "bit_order_x_low", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 0, + "tolerance": 0, + "status": "pass" + }, + { + "entry": "bit_order_x_low", + "engine": "aer.stabilizer", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 9.1125e-05 + }, + { + "entry": "bit_order_x_low", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 0.0, + "tolerance": 4.440892098500626e-16, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "bit_order_x_high", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 0.0, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.0, + "global_phase": 0.0 + }, + { + "entry": "bit_order_x_high", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 0.0, + "tolerance": 2.2965544605210906e-15, + "status": "pass" + }, + { + "entry": "bit_order_x_high", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "bit_order_x_high", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 4.700863032062479e-15, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 1.1958e-05 + }, + { + "entry": "bit_order_x_high", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 4.871667415400809e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 6.9041e-05 + }, + { + "entry": "bit_order_x_high", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 4.871667415400809e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 7.5208e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "bit_order_x_high", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 4.700863032062479e-15, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.5448072920553386 + }, + { + "entry": "bit_order_x_high", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 1.468476820049565e-13, + "status": "pass", + "note": "double precision, a contraction of width 5.0", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.0010467079700902104 + }, + { + "entry": "bit_order_x_high", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 1.3666778863689539e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.005098875029943883 + }, + { + "entry": "bit_order_x_high", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 1.3077299742866642e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.0019561670487746596 + }, + { + "entry": "bit_order_x_high", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 5, + "tolerance": 5, + "status": "pass" + }, + { + "entry": "bit_order_x_high", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 1.9083963707089424e-05 + }, + { + "entry": "bit_order_x_high", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 2.125e-06 + }, + { + "entry": "bit_order_x_high", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 0, + "tolerance": 0, + "status": "pass" + }, + { + "entry": "bit_order_x_high", + "engine": "aer.stabilizer", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 6.1e-05 + }, + { + "entry": "bit_order_x_high", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 0.0, + "tolerance": 4.440892098500626e-16, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "bit_order_product", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.101340961075098e-09, + "tolerance": 4.4478839744439606e-07, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.6636598699191941, + "global_phase": -0.6764855256910371 + }, + { + "entry": "bit_order_product", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.1686050303392196e-15, + "tolerance": 6.003997213418409e-14, + "status": "pass" + }, + { + "entry": "bit_order_product", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "bit_order_product", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.7994248207898495e-16, + "tolerance": 5.6410356384752665e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.853028722211445e-16, + "global_phase": -5.504485103160786e-17, + "seconds": 2.5042e-05 + }, + { + "entry": "bit_order_product", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.5470875668068414e-16, + "tolerance": 3.166583820010611e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.7214193512736154e-16, + "global_phase": -7.54854054484019e-17, + "seconds": 0.000332041 + }, + { + "entry": "bit_order_product", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.5470875668068414e-16, + "tolerance": 3.166583820010611e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.7214193512736154e-16, + "global_phase": -7.54854054484019e-17, + "seconds": 7.2083e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "bit_order_product", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.949534607949252e-16, + "tolerance": 5.6410356384752665e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 3.964222321740644e-16, + "global_phase": -3.4093253995171833e-17, + "seconds": 0.5020796250319108 + }, + { + "entry": "bit_order_product", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.718413879481438e-16, + "tolerance": 1.134612720231851e-12, + "status": "pass", + "note": "double precision, a contraction of width 6.0", + "strict": 2.773703885184681e-16, + "global_phase": -5.510528309801803e-17, + "seconds": 0.0016183749539777637 + }, + { + "entry": "bit_order_product", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.928203655289495e-17, + "tolerance": 1.9128618742088685e-11, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 6.011275315895486e-17, + "global_phase": 9.959077994004481e-18, + "seconds": 0.006051791948266327 + }, + { + "entry": "bit_order_product", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8065407544283725e-07, + "tolerance": 1.5692985431664063e-05, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.8082357865143764e-07, + "global_phase": -7.827618484916611e-09, + "seconds": 0.001848959014751017 + }, + { + "entry": "bit_order_product", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 2.4598165464178547e-09, + "tolerance": 4.4478839788848527e-07, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "bit_order_control", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 0.0, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.0, + "global_phase": 0.0 + }, + { + "entry": "bit_order_control", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 0.0, + "tolerance": 3.7049305013420606e-15, + "status": "pass" + }, + { + "entry": "bit_order_control", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "bit_order_control", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 9.401726064125002e-15, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 1.4792e-05 + }, + { + "entry": "bit_order_control", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 7.307501123101233e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 6.4417e-05 + }, + { + "entry": "bit_order_control", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 7.307501123101233e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 7.4542e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "bit_order_control", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 9.401726064125002e-15, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.5300896669505164 + }, + { + "entry": "bit_order_control", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.3306690738754696e-16, + "tolerance": 6.120442760161298e-14, + "status": "pass", + "note": "double precision, a contraction of width 4.0", + "strict": 3.3306690738754696e-16, + "global_phase": 0.0, + "seconds": 0.001426790957339108 + }, + { + "entry": "bit_order_control", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 2.2786084218528912e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.006351500051096082 + }, + { + "entry": "bit_order_control", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 2.6154633688797537e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.0016487499233335257 + }, + { + "entry": "bit_order_control", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 4, + "tolerance": 4, + "status": "pass" + }, + { + "entry": "bit_order_control", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.0002695420989766717 + }, + { + "entry": "bit_order_control", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 2.333e-06 + }, + { + "entry": "bit_order_control", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 0, + "tolerance": 0, + "status": "pass" + }, + { + "entry": "bit_order_control", + "engine": "aer.stabilizer", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 6.1666e-05 + }, + { + "entry": "bit_order_control", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 0.0, + "tolerance": 4.440892098500626e-16, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "empty_register", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 0.0, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.0, + "global_phase": 0.0 + }, + { + "entry": "empty_register", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 0.0, + "tolerance": 8.881784197001252e-16, + "status": "pass" + }, + { + "entry": "empty_register", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "empty_register", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 0.0, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 6.959e-06 + }, + { + "entry": "empty_register", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 2.4358337077003988e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 6.0417e-05 + }, + { + "entry": "empty_register", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 2.4358337077003988e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 6.4292e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "empty_register", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 0.0, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.5537012920249254 + }, + { + "entry": "empty_register", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.000846165930852294 + }, + { + "entry": "empty_register", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 0.0, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.005313250003382564 + }, + { + "entry": "empty_register", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 0.0, + "tolerance": 0.0, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 0.0, + "global_phase": 0.0, + "seconds": 0.0018525829073041677 + }, + { + "entry": "empty_register", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 3, + "tolerance": 3, + "status": "pass" + }, + { + "entry": "empty_register", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 2.3165950551629066e-05 + }, + { + "entry": "empty_register", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 1.541e-06 + }, + { + "entry": "empty_register", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 0, + "tolerance": 0, + "status": "pass" + }, + { + "entry": "empty_register", + "engine": "aer.stabilizer", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 5.4708e-05 + }, + { + "entry": "empty_register", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 0.0, + "tolerance": 4.440892098500626e-16, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "one_qubit", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.886171750317574e-12, + "tolerance": 3.179734171119112e-09, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 7.886171750317574e-12, + "global_phase": 0.0 + }, + { + "entry": "one_qubit", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.5700924586837752e-16, + "tolerance": 2.2965544605210906e-15, + "status": "pass" + }, + { + "entry": "one_qubit", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "one_qubit", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.835808657661923e-17, + "tolerance": 4.700863032062479e-15, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 6.835808657661923e-17, + "global_phase": 0.0, + "seconds": 1.9875e-05 + }, + { + "entry": "one_qubit", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.9157615060679e-17, + "tolerance": 4.871667415400809e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.9157615060679e-17, + "global_phase": 0.0, + "seconds": 6.2375e-05 + }, + { + "entry": "one_qubit", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.9157615060679e-17, + "tolerance": 4.871667415400809e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.9157615060679e-17, + "global_phase": 0.0, + "seconds": 0.00012025, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "one_qubit", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.865115929175827e-17, + "tolerance": 4.700863032062479e-15, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.865115929175827e-17, + "global_phase": 0.0, + "seconds": 0.5133254170650616 + }, + { + "entry": "one_qubit", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.865115929175827e-17, + "tolerance": 2.8167520816419354e-15, + "status": "pass", + "note": "double precision, a contraction of width 1.0", + "strict": 8.865115929175827e-17, + "global_phase": 0.0, + "seconds": 0.0006971660768613219 + }, + { + "entry": "one_qubit", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.835808657661923e-17, + "tolerance": 4.571831845943713e-13, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 6.835808657661923e-17, + "global_phase": 0.0, + "seconds": 0.006698541925288737 + }, + { + "entry": "one_qubit", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.7114271035800384e-08, + "tolerance": 1.3077299742866642e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.7114271035800384e-08, + "global_phase": 0.0, + "seconds": 0.002036249963566661 + }, + { + "entry": "one_qubit", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 1, + "tolerance": 1, + "status": "pass" + }, + { + "entry": "one_qubit", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 3.1125033274292946e-05 + }, + { + "entry": "one_qubit", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 2.208e-06 + }, + { + "entry": "one_qubit", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 1, + "tolerance": 1, + "status": "pass" + }, + { + "entry": "one_qubit", + "engine": "aer.stabilizer", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 5.6708e-05 + }, + { + "entry": "one_qubit", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 5.576365522251341e-12, + "tolerance": 3.179734615208322e-09, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "top_index_n20", + "engine": "aer.statevector ~ ddsim.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.1102230246251565e-16, + "tolerance": 9.627989877124816e-12, + "status": "pass" + }, + { + "entry": "top_index_n20", + "engine": "aer.statevector ~ qsim.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.7114271182663092e-08, + "tolerance": 2.6154634423035948e-06, + "status": "pass" + }, + { + "entry": "top_index_n20", + "engine": "aer.statevector ~ quimb.dense", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.1102230246251565e-16, + "tolerance": 8.282556706659787e-14, + "status": "pass" + }, + { + "entry": "top_index_n20", + "engine": "aer.statevector ~ wai.exact", + "quantity": "distance between the two states, modulo a global phase", + "measured": 7.886181897244677e-12, + "tolerance": 2.302373546467205e-06, + "status": "pass" + }, + { + "entry": "top_index_n20", + "engine": "aer.statevector ~ wai.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.1102230246251565e-16, + "tolerance": 8.282556706659787e-14, + "status": "pass" + }, + { + "entry": "top_index_n20", + "engine": "ddsim.statevector ~ qsim.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.7114271104158468e-08, + "tolerance": 2.61547292344579e-06, + "status": "pass" + }, + { + "entry": "top_index_n20", + "engine": "ddsim.statevector ~ quimb.dense", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.5700924586837752e-16, + "tolerance": 9.563967762186469e-12, + "status": "pass" + }, + { + "entry": "top_index_n20", + "engine": "ddsim.statevector ~ wai.exact", + "quantity": "distance between the two states, modulo a global phase", + "measured": 7.886103392230998e-12, + "tolerance": 2.3023830276094e-06, + "status": "pass" + }, + { + "entry": "top_index_n20", + "engine": "ddsim.statevector ~ wai.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 0.0, + "tolerance": 9.563967762186469e-12, + "status": "pass" + }, + { + "entry": "top_index_n20", + "engine": "qsim.statevector ~ quimb.dense", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.7114270790139978e-08, + "tolerance": 2.6154633782814798e-06, + "status": "pass" + }, + { + "entry": "top_index_n20", + "engine": "qsim.statevector ~ wai.exact", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.71221572075507e-08, + "tolerance": 4.9178368419231175e-06, + "status": "pass" + }, + { + "entry": "top_index_n20", + "engine": "qsim.statevector ~ wai.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.7114271104158468e-08, + "tolerance": 2.6154633782814798e-06, + "status": "pass" + }, + { + "entry": "top_index_n20", + "engine": "quimb.dense ~ wai.exact", + "quantity": "distance between the two states, modulo a global phase", + "measured": 7.886260401476866e-12, + "tolerance": 2.30237348244509e-06, + "status": "pass" + }, + { + "entry": "top_index_n20", + "engine": "quimb.dense ~ wai.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.5700924586837752e-16, + "tolerance": 1.8803452128250005e-14, + "status": "pass" + }, + { + "entry": "top_index_n20", + "engine": "wai.exact ~ wai.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 7.886103392230998e-12, + "tolerance": 2.30237348244509e-06, + "status": "pass" + }, + { + "entry": "ghz_n2", + "engine": "exact", + "quantity": "integer reference against the closed form, units of 2^-256", + "measured": 0, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "ghz_n2", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.886171750317574e-12, + "tolerance": 4.49682318953782e-09, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 7.886171750317574e-12, + "global_phase": 0.0 + }, + { + "entry": "ghz_n2", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.5700924586837752e-16, + "tolerance": 3.7049305013420606e-15, + "status": "pass" + }, + { + "entry": "ghz_n2", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "ghz_n2", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.835808657661923e-17, + "tolerance": 9.401726064125002e-15, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 6.835808657661923e-17, + "global_phase": 0.0, + "seconds": 1.4291e-05 + }, + { + "entry": "ghz_n2", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.9157615060679e-17, + "tolerance": 7.307501123101233e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.9157615060679e-17, + "global_phase": 0.0, + "seconds": 7.6375e-05 + }, + { + "entry": "ghz_n2", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.9157615060679e-17, + "tolerance": 7.307501123101233e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.9157615060679e-17, + "global_phase": 0.0, + "seconds": 7.2875e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "ghz_n2", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.865115929175827e-17, + "tolerance": 9.401726064125002e-15, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.865115929175827e-17, + "global_phase": 0.0, + "seconds": 0.5078657499980181 + }, + { + "entry": "ghz_n2", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.026696510285133e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 4.026696510285133e-16, + "global_phase": 0.0, + "seconds": 0.0006884579779580235 + }, + { + "entry": "ghz_n2", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.835808657661923e-17, + "tolerance": 1.3691137200766543e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 6.835808657661923e-17, + "global_phase": 0.0, + "seconds": 0.005253041977994144 + }, + { + "entry": "ghz_n2", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.7114271035800384e-08, + "tolerance": 2.6154633688797537e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.7114271035800384e-08, + "global_phase": 0.0, + "seconds": 0.001860541058704257 + }, + { + "entry": "ghz_n2", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 5.576365522251341e-12, + "tolerance": 4.49682363362703e-09, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "ghz_n3", + "engine": "exact", + "quantity": "integer reference against the closed form, units of 2^-256", + "measured": 0, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "ghz_n3", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.886171750317574e-12, + "tolerance": 6.359468342238224e-09, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 7.886171750317574e-12, + "global_phase": 0.0 + }, + { + "entry": "ghz_n3", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.5700924586837752e-16, + "tolerance": 5.113306542163034e-15, + "status": "pass" + }, + { + "entry": "ghz_n3", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "ghz_n3", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.835808657661923e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 6.835808657661923e-17, + "global_phase": 0.0, + "seconds": 1.6792e-05 + }, + { + "entry": "ghz_n3", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.9157615060679e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.9157615060679e-17, + "global_phase": 0.0, + "seconds": 6.9459e-05 + }, + { + "entry": "ghz_n3", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.9157615060679e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.9157615060679e-17, + "global_phase": 0.0, + "seconds": 0.000102875, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "ghz_n3", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.865115929175827e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.865115929175827e-17, + "global_phase": 0.0, + "seconds": 0.49980425008106977 + }, + { + "entry": "ghz_n3", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.166881427652682e-16, + "tolerance": 2.8205178192375537e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 7.166881427652682e-16, + "global_phase": 0.0, + "seconds": 0.0009283330291509628 + }, + { + "entry": "ghz_n3", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.835808657661923e-17, + "tolerance": 2.7357916064493307e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 6.835808657661923e-17, + "global_phase": 0.0, + "seconds": 0.00561708293389529 + }, + { + "entry": "ghz_n3", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.7114271035800384e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.7114271035800384e-08, + "global_phase": 0.0, + "seconds": 0.001643666997551918 + }, + { + "entry": "ghz_n3", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 5.576365522251341e-12, + "tolerance": 6.359468786327434e-09, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "ghz_n5", + "engine": "exact", + "quantity": "integer reference against the closed form, units of 2^-256", + "measured": 0, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "ghz_n5", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.886171750317574e-12, + "tolerance": 1.2718936684476448e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 7.886171750317574e-12, + "global_phase": 0.0 + }, + { + "entry": "ghz_n5", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.5700924586837752e-16, + "tolerance": 7.930058623804993e-15, + "status": "pass" + }, + { + "entry": "ghz_n5", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "ghz_n5", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.835808657661923e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 6.835808657661923e-17, + "global_phase": 0.0, + "seconds": 1.9959e-05 + }, + { + "entry": "ghz_n5", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.9157615060679e-17, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.9157615060679e-17, + "global_phase": 0.0, + "seconds": 7.1e-05 + }, + { + "entry": "ghz_n5", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.9157615060679e-17, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.9157615060679e-17, + "global_phase": 0.0, + "seconds": 7.3667e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "ghz_n5", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.865115929175827e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.865115929175827e-17, + "global_phase": 0.0, + "seconds": 0.5123908339301124 + }, + { + "entry": "ghz_n5", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1877158803704008e-15, + "tolerance": 2.4474613667495144e-13, + "status": "pass", + "note": "double precision, a contraction of width 5.0", + "strict": 1.1877158803704008e-15, + "global_phase": 0.0, + "seconds": 0.0018896670080721378 + }, + { + "entry": "ghz_n5", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.835808657661923e-17, + "tolerance": 6.833389431881993e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 6.835808657661923e-17, + "global_phase": 0.0, + "seconds": 0.0052430410869419575 + }, + { + "entry": "ghz_n5", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.7114271035800384e-08, + "tolerance": 6.538684074497576e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.7114271035800384e-08, + "global_phase": 0.0, + "seconds": 0.002067374996840954 + }, + { + "entry": "ghz_n5", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 5.576365522251341e-12, + "tolerance": 1.2718937128565658e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "ghz_n8", + "engine": "exact", + "quantity": "integer reference against the closed form, units of 2^-256", + "measured": 0, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "ghz_n8", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.886171750317574e-12, + "tolerance": 3.597458551630256e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 7.886171750317574e-12, + "global_phase": 0.0 + }, + { + "entry": "ghz_n8", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.5700924586837752e-16, + "tolerance": 1.2155186746267961e-14, + "status": "pass" + }, + { + "entry": "ghz_n8", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "ghz_n8", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.835808657661923e-17, + "tolerance": 3.760690425650107e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 6.835808657661923e-17, + "global_phase": 0.0, + "seconds": 6.2542e-05 + }, + { + "entry": "ghz_n8", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.9157615060679e-17, + "tolerance": 2.1922503369304018e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.9157615060679e-17, + "global_phase": 0.0, + "seconds": 0.000152209 + }, + { + "entry": "ghz_n8", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.9157615060679e-17, + "tolerance": 2.1922503369304018e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.9157615060679e-17, + "global_phase": 0.0, + "seconds": 8.35e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "ghz_n8", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.865115929175827e-17, + "tolerance": 3.760690425650107e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.865115929175827e-17, + "global_phase": 0.0, + "seconds": 0.6430845839204267 + }, + { + "entry": "ghz_n8", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.757808339054176e-15, + "tolerance": 7.474057491103321e-12, + "status": "pass", + "note": "double precision, a contraction of width 8.0", + "strict": 2.757808339054176e-15, + "global_phase": 0.0, + "seconds": 0.002479500020854175 + }, + { + "entry": "ghz_n8", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.835808657661923e-17, + "tolerance": 1.639039130184232e-11, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 6.835808657661923e-17, + "global_phase": 0.0, + "seconds": 0.006642083055339754 + }, + { + "entry": "ghz_n8", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.7114271035800384e-08, + "tolerance": 1.046193556287323e-05, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.7114271035800384e-08, + "global_phase": 0.0, + "seconds": 0.0019068330293521285 + }, + { + "entry": "ghz_n8", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 5.576365522251341e-12, + "tolerance": 3.597458596039177e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "ghz_n12", + "engine": "exact", + "quantity": "integer reference against the closed form, units of 2^-256", + "measured": 0, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "ghz_n12", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.886171750317574e-12, + "tolerance": 1.4389834206521024e-07, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 7.886171750317574e-12, + "global_phase": 0.0 + }, + { + "entry": "ghz_n12", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.5700924586837752e-16, + "tolerance": 1.778869090955197e-14, + "status": "pass" + }, + { + "entry": "ghz_n12", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "ghz_n12", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.835808657661923e-17, + "tolerance": 5.6410356384752665e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 6.835808657661923e-17, + "global_phase": 0.0, + "seconds": 0.000146542 + }, + { + "entry": "ghz_n12", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.9157615060679e-17, + "tolerance": 3.166583820010611e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.9157615060679e-17, + "global_phase": 0.0, + "seconds": 0.000105417 + }, + { + "entry": "ghz_n12", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.9157615060679e-17, + "tolerance": 3.166583820010611e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.9157615060679e-17, + "global_phase": 0.0, + "seconds": 0.000123333, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "ghz_n12", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.865115929175827e-17, + "tolerance": 5.6410356384752665e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.865115929175827e-17, + "global_phase": 0.0, + "seconds": 0.5266235410235822 + }, + { + "entry": "ghz_n12", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.071826830790931e-15, + "tolerance": 6.99680530712346e-10, + "status": "pass", + "note": "double precision, a contraction of width 12.0", + "strict": 3.071826830790931e-15, + "global_phase": 0.0, + "seconds": 0.0051289169350638986 + }, + { + "entry": "ghz_n12", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.835808657661923e-17, + "tolerance": 3.549952337489475e-11, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 6.835808657661923e-17, + "global_phase": 0.0, + "seconds": 0.005363833042792976 + }, + { + "entry": "ghz_n12", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.7114271035800384e-08, + "tolerance": 1.5692985431664063e-05, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.7114271035800384e-08, + "global_phase": 0.0, + "seconds": 0.0019410829991102219 + }, + { + "entry": "ghz_n12", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 5.576365522251341e-12, + "tolerance": 1.4389834250929945e-07, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "qft_n3_x5", + "engine": "exact", + "quantity": "integer reference against the closed form, units of 2^-256", + "measured": 2, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "qft_n3_x5", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.313392689245104e-10, + "tolerance": 2.225813932221083e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 9.313392689245104e-10, + "global_phase": 0.0 + }, + { + "entry": "qft_n3_x5", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.995802653854976e-16, + "tolerance": 1.6380314868730963e-14, + "status": "pass" + }, + { + "entry": "qft_n3_x5", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "qft_n3_x5", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.252779016081387e-16, + "tolerance": 4.230776728856391e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.257974101246671e-16, + "global_phase": 1.5308084989341915e-17, + "seconds": 2.1584e-05 + }, + { + "entry": "qft_n3_x5", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.1840584452439329e-16, + "tolerance": 2.4358337077004524e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 4.3884324549296737e-16, + "global_phase": 3.806340515408302e-16, + "seconds": 9.0167e-05 + }, + { + "entry": "qft_n3_x5", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.1840584452439329e-16, + "tolerance": 2.4358337077004524e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 4.3884324549296737e-16, + "global_phase": 3.806340515408302e-16, + "seconds": 7.475e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "qft_n3_x5", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.632807079419969e-16, + "tolerance": 4.230776728856391e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.6677932835798804e-16, + "global_phase": 4.306366060497084e-17, + "seconds": 0.5577322080498561 + }, + { + "entry": "qft_n3_x5", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1359368202582151e-15, + "tolerance": 1.2240885520323343e-13, + "status": "pass", + "note": "double precision, a contraction of width 4.0", + "strict": 1.139868629242718e-15, + "global_phase": 9.45940395232614e-17, + "seconds": 0.002094083931297064 + }, + { + "entry": "qft_n3_x5", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.237121377012062e-16, + "tolerance": 8.20737481939266e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 2.237121377012062e-16, + "global_phase": 0.0, + "seconds": 0.0060634169494733214 + }, + { + "entry": "qft_n3_x5", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.702671112978455e-08, + "tolerance": 1.1769692899611298e-05, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.268347795371965e-08, + "global_phase": -1.8378428171781463e-08, + "seconds": 0.001997042098082602 + }, + { + "entry": "qft_n3_x5", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 4.684494700688649e-10, + "tolerance": 2.225813976630004e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "qft_n5_x19", + "engine": "exact", + "quantity": "integer reference against the closed form, units of 2^-256", + "measured": 2, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "qft_n5_x19", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4342198696292555e-09, + "tolerance": 1.0175149537108086e-07, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 2.6361110763507337e-09, + "global_phase": -1.0117584855042321e-09 + }, + { + "entry": "qft_n5_x19", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 4.742198977197559e-16, + "tolerance": 3.468920339940439e-14, + "status": "pass" + }, + { + "entry": "qft_n5_x19", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "qft_n5_x19", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.2632379315606653e-16, + "tolerance": 9.401726064125798e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 3.506724345492627e-16, + "global_phase": 1.283897907660248e-16, + "seconds": 6.6709e-05 + }, + { + "entry": "qft_n5_x19", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.5859903063725824e-16, + "tolerance": 5.1152507861710864e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 5.303815859586128e-16, + "global_phase": 4.630671312859982e-16, + "seconds": 8.0292e-05 + }, + { + "entry": "qft_n5_x19", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.5859903063725824e-16, + "tolerance": 5.1152507861710864e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 5.303815859586128e-16, + "global_phase": 4.630671312859982e-16, + "seconds": 0.000131917, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "qft_n5_x19", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.842135466297101e-16, + "tolerance": 9.401726064125798e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 5.057824840498477e-16, + "global_phase": 1.4612721318054353e-16, + "seconds": 0.546699499944225 + }, + { + "entry": "qft_n5_x19", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.567668674478441e-15, + "tolerance": 1.5758510003227105e-12, + "status": "pass", + "note": "double precision, a contraction of width 6.0", + "strict": 3.568580925489774e-15, + "global_phase": 8.068488653208091e-17, + "seconds": 0.09002704103477299 + }, + { + "entry": "qft_n5_x19", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.887619644836046e-16, + "tolerance": 2.733355772808632e-11, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 2.9241850975309797e-16, + "global_phase": 4.6098944822979383e-17, + "seconds": 0.006292124977335334 + }, + { + "entry": "qft_n5_x19", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.840354403706966e-08, + "tolerance": 2.615524934395415e-05, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.1451268568459642e-07, + "global_phase": -9.183741409430032e-08, + "seconds": 0.0018071249360218644 + }, + { + "entry": "qft_n5_x19", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 7.0585935224679e-10, + "tolerance": 1.0175149581517007e-07, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "qft_n8_x173", + "engine": "exact", + "quantity": "integer reference against the closed form, units of 2^-256", + "measured": 3, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "qft_n8_x173", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.724053157002002e-09, + "tolerance": 6.655298667616834e-07, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 8.761167869755205e-09, + "global_phase": -8.055798883266803e-10 + }, + { + "entry": "qft_n8_x173", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 7.980987116353798e-16, + "tolerance": 7.553210858321676e-14, + "status": "pass" + }, + { + "entry": "qft_n8_x173", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "qft_n8_x173", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.635397297566191e-16, + "tolerance": 2.115388364428553e-13, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 8.320669916157845e-16, + "global_phase": 3.306698650009266e-16, + "seconds": 6.9e-05 + }, + { + "entry": "qft_n8_x173", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.1722753805375257e-16, + "tolerance": 1.1204835055423063e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 9.996490609257424e-16, + "global_phase": 9.084158885110515e-16, + "seconds": 9.2958e-05 + }, + { + "entry": "qft_n8_x173", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.1722753805375257e-16, + "tolerance": 1.1204835055423063e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 9.996490609257424e-16, + "global_phase": 9.084158885110515e-16, + "seconds": 8.8125e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "qft_n8_x173", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.144694440220219e-16, + "tolerance": 2.115388364428553e-13, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 7.763478117220366e-16, + "global_phase": 3.0372576170693494e-16, + "seconds": 0.5243140000384301 + }, + { + "entry": "qft_n8_x173", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.85893465695849e-15, + "tolerance": 5.472132013758785e-10, + "status": "pass", + "note": "double precision, a contraction of width 11.0", + "strict": 9.85894159189309e-15, + "global_phase": -1.1693681297208822e-17, + "seconds": 0.25726012501399964 + }, + { + "entry": "qft_n8_x173", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.6467620904973764e-16, + "tolerance": 9.219595107983541e-11, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 3.6777798095682838e-16, + "global_phase": 4.766451331749067e-17, + "seconds": 0.005494833108969033 + }, + { + "entry": "qft_n8_x173", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1441329185639547e-07, + "tolerance": 5.8851234946261254e-05, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 2.0308642052851654e-07, + "global_phase": -1.6779062518160655e-07, + "seconds": 0.002679583034478128 + }, + { + "entry": "qft_n8_x173", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 5.710560892009663e-10, + "tolerance": 6.655298672057726e-07, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "qft_n12_x2741", + "engine": "exact", + "quantity": "integer reference against the closed form, units of 2^-256", + "measured": 5, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "qft_n12_x2741", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.918010747732075e-08, + "tolerance": 5.683985210334096e-06, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 3.919121479303013e-08, + "global_phase": -9.330032255980238e-10 + }, + { + "entry": "qft_n12_x2741", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.1146400475291828e-15, + "tolerance": 1.4595091062428039e-13, + "status": "pass" + }, + { + "entry": "qft_n12_x2741", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "qft_n12_x2741", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.392256510636577e-16, + "tolerance": 4.277785359178666e-13, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.05735130271346e-15, + "global_phase": 4.856407661367594e-16, + "seconds": 0.000566292 + }, + { + "entry": "qft_n12_x2741", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.67842422397199e-16, + "tolerance": 2.2409670110848635e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.4235804381409074e-15, + "global_phase": 1.3445091043436557e-15, + "seconds": 0.000296042 + }, + { + "entry": "qft_n12_x2741", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.67842422397199e-16, + "tolerance": 2.2409670110848635e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.4235804381409074e-15, + "global_phase": 1.3445091043436557e-15, + "seconds": 0.000287625, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "qft_n12_x2741", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1772673067731489e-15, + "tolerance": 4.277785359178666e-13, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.2719000340925913e-15, + "global_phase": 4.81426406762063e-16, + "seconds": 0.5725494169164449 + }, + { + "entry": "qft_n12_x2741", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.706387055627893e-15, + "tolerance": 1.22787892058417e-05, + "status": "pass", + "note": "double precision, a contraction of width 20.0", + "strict": 7.730692152322484e-15, + "global_phase": 6.125354706719433e-16, + "seconds": 0.5643632500432432 + }, + { + "entry": "qft_n12_x2741", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.468244394316334e-16, + "tolerance": 2.692047189890962e-10, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 4.468256033541478e-16, + "global_phase": -1.0198722492404313e-18, + "seconds": 0.007590875029563904 + }, + { + "entry": "qft_n12_x2741", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.7520169394464561e-07, + "tolerance": 0.00011901743381489938, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.14510201058313e-07, + "global_phase": -2.6119155895849175e-07, + "seconds": 0.004691208014264703 + }, + { + "entry": "qft_n12_x2741", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 8.08499660132462e-10, + "tolerance": 5.683985210778185e-06, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "qft_n14_x10923", + "engine": "exact", + "quantity": "integer reference against the closed form, units of 2^-256", + "measured": 5, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "qft_n14_x10923", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.123600519580009e-08, + "tolerance": 1.5253226844344835e-05, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 8.124087223371373e-08, + "global_phase": -8.892587490604286e-10 + }, + { + "entry": "qft_n14_x10923", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.3215827786991902e-15, + "tolerance": 1.8961056788974485e-13, + "status": "pass" + }, + { + "entry": "qft_n14_x10923", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "qft_n14_x10923", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.2540331917503802e-15, + "tolerance": 5.64103563847813e-13, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.3611349762871244e-15, + "global_phase": 5.292345204732061e-16, + "seconds": 0.002701792 + }, + { + "entry": "qft_n14_x10923", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.808533049352818e-16, + "tolerance": 2.961428253774958e-12, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.4337352821423908e-15, + "global_phase": 1.310803683777888e-15, + "seconds": 0.001190916 + }, + { + "entry": "qft_n14_x10923", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.808533049352818e-16, + "tolerance": 2.961428253774958e-12, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.4337352821423908e-15, + "global_phase": 1.310803683777888e-15, + "seconds": 0.001222875, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "qft_n14_x10923", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3382469481878975e-15, + "tolerance": 5.64103563847813e-13, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.4189542437976667e-15, + "global_phase": 4.717268824830606e-16, + "seconds": 0.5541025419952348 + }, + { + "entry": "qft_n14_x10923", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.796120857760904e-16, + "tolerance": 4.095649160102459e-10, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 6.017553738362537e-16, + "global_phase": -1.617385543496028e-16, + "seconds": 0.008645707974210382 + }, + { + "entry": "qft_n14_x10923", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.9667520195733016e-07, + "tolerance": 0.00015695201790227864, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.536286417090728e-07, + "global_phase": -2.9389127543731344e-07, + "seconds": 0.005106124910525978 + }, + { + "entry": "qft_n14_x10923", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 4.1312680833559717e-10, + "tolerance": 1.5253226844788924e-05, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "qft_superposed_n10", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.2527675334123936e-08, + "tolerance": 2.7602554918843368e-06, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 3.2549313467624344e-08, + "global_phase": 1.1866526751514608e-09 + }, + { + "entry": "qft_superposed_n10", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.450141061328652e-15, + "tolerance": 1.6848492727742287e-13, + "status": "pass" + }, + { + "entry": "qft_superposed_n10", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "qft_superposed_n10", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.0834517633660347e-15, + "tolerance": 5.123940704950704e-13, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.101391650619332e-15, + "global_phase": 1.9797940426470196e-16, + "seconds": 0.00021825 + }, + { + "entry": "qft_superposed_n10", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.170554803783693e-16, + "tolerance": 2.67941707847115e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.0602512121224904e-15, + "global_phase": 9.256274969002942e-16, + "seconds": 0.000161625 + }, + { + "entry": "qft_superposed_n10", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.170554803783693e-16, + "tolerance": 2.67941707847115e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.0602512121224904e-15, + "global_phase": 9.256274969002942e-16, + "seconds": 0.000155667, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "qft_superposed_n10", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.2776920206944696e-15, + "tolerance": 5.123940704950704e-13, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.279828475104203e-15, + "global_phase": 7.391904992106145e-17, + "seconds": 0.5278040829580277 + }, + { + "entry": "qft_superposed_n10", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.125357840244715e-15, + "tolerance": 5.015566805471182e-06, + "status": "pass", + "note": "double precision, a contraction of width 19.0", + "strict": 9.13118557098487e-15, + "global_phase": 3.2618126746734123e-16, + "seconds": 0.3624925420153886 + }, + { + "entry": "qft_superposed_n10", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.2904995070989195e-15, + "tolerance": 2.728865428048969e-10, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 1.290631012079495e-15, + "global_phase": -1.8423667354437054e-17, + "seconds": 0.007292332942597568 + }, + { + "entry": "qft_superposed_n10", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.5245284320355367e-07, + "tolerance": 0.00014256269912086766, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 2.840131214670391e-07, + "global_phase": -1.3011922087152788e-07, + "seconds": 0.0028625420527532697 + }, + { + "entry": "qft_superposed_n10", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 7.178697734284312e-10, + "tolerance": 2.760255492328426e-06, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "qft_wide_n20", + "engine": "aer.statevector ~ ddsim.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.657414979661573e-15, + "tolerance": 1.1092304887490738e-09, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "aer.statevector ~ qsim.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 3.087154481786427e-07, + "tolerance": 0.00030217649017852654, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "aer.statevector ~ quimb.dense", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.2970088247161288e-15, + "tolerance": 6.7640097312973315e-12, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "aer.statevector ~ wai.exact", + "quantity": "distance between the two states, modulo a global phase", + "measured": 6.509150050476847e-07, + "tolerance": 0.00024290049304727954, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "aer.statevector ~ wai.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 2.411786544527841e-15, + "tolerance": 6.7640097312973315e-12, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "ddsim.statevector ~ qsim.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 3.08715447297401e-07, + "tolerance": 0.00030217758805279455, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "ddsim.statevector ~ quimb.dense", + "quantity": "distance between the two states, modulo a global phase", + "measured": 2.665298486689674e-15, + "tolerance": 1.1046382777385916e-09, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "ddsim.statevector ~ wai.exact", + "quantity": "distance between the two states, modulo a global phase", + "measured": 6.50915005060085e-07, + "tolerance": 0.00024290159092154754, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "ddsim.statevector ~ wai.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.0214200972885318e-15, + "tolerance": 1.1046382777385916e-09, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "qsim.statevector ~ quimb.dense", + "quantity": "distance between the two states, modulo a global phase", + "measured": 3.087154488807168e-07, + "tolerance": 0.00030217648558631554, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "qsim.statevector ~ wai.exact", + "quantity": "distance between the two states, modulo a global phase", + "measured": 7.224527148608255e-07, + "tolerance": 0.0005450769718695853, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "qsim.statevector ~ wai.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 3.0871544698572016e-07, + "tolerance": 0.00030217648558631554, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "quimb.dense ~ wai.exact", + "quantity": "distance between the two states, modulo a global phase", + "measured": 6.509150050418292e-07, + "tolerance": 0.00024290048845506852, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "quimb.dense ~ wai.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 3.3954765577194685e-15, + "tolerance": 2.171798720815213e-12, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "wai.exact ~ wai.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 6.509150050651242e-07, + "tolerance": 0.00024290048845506852, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "aer.statevector", + "quantity": "64 amplitudes against the closed form, worst error, modulo nothing", + "measured": 2.4446027073661675e-18, + "tolerance": 5.678110370889725e-12, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "ddsim.statevector", + "quantity": "64 amplitudes against the closed form, worst error, modulo nothing", + "measured": 1.668229649552477e-18, + "tolerance": 1.103552378378184e-09, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "qsim.statevector", + "quantity": "64 amplitudes against the closed form, worst error, modulo nothing", + "measured": 8.31039584734786e-10, + "tolerance": 0.00030217648450041616, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "quimb.dense", + "quantity": "64 amplitudes against the closed form, worst error, modulo nothing", + "measured": 2.4950711591365744e-18, + "tolerance": 1.0858993604076065e-12, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "wai.exact", + "quantity": "64 amplitudes against the closed form, worst error, modulo nothing", + "measured": 1.2072271730535939e-09, + "tolerance": 0.00024290048736916916, + "status": "pass" + }, + { + "entry": "qft_wide_n20", + "engine": "wai.statevector", + "quantity": "64 amplitudes against the closed form, worst error, modulo nothing", + "measured": 3.2681524740608303e-18, + "tolerance": 1.0858993604076065e-12, + "status": "pass" + }, + { + "entry": "grover_n3", + "engine": "exact", + "quantity": "integer reference: P(marked) against sin\u00b2((2k+1)\u03b8), computed in integers, units of 2^-256", + "measured": 12, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "grover_n3", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.7911892892304827e-09, + "tolerance": 9.539202762111427e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 2.7911892892304827e-09, + "global_phase": 0.0 + }, + { + "entry": "grover_n3", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.3056188547111068e-15, + "tolerance": 5.018133984843628e-14, + "status": "pass" + }, + { + "entry": "grover_n3", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "grover_n3", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.0198506246188093e-15, + "tolerance": 1.6453020612221307e-13, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.0198506246188093e-15, + "global_phase": 0.0, + "seconds": 4.0542e-05 + }, + { + "entry": "grover_n3", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.2583224885975757e-16, + "tolerance": 8.769001347722183e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.82855567997045e-16, + "global_phase": 7.11825952004399e-16, + "seconds": 7.6083e-05 + }, + { + "entry": "grover_n3", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.2583224885975757e-16, + "tolerance": 8.769001347722183e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.82855567997045e-16, + "global_phase": 7.11825952004399e-16, + "seconds": 7.9083e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "grover_n3", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1870146619100088e-15, + "tolerance": 1.6453020612221307e-13, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.1870146619100088e-15, + "global_phase": 0.0, + "seconds": 0.5315179999452084 + }, + { + "entry": "grover_n3", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.858767716474483e-16, + "tolerance": 2.3952935204924824e-12, + "status": "pass", + "note": "double precision, a contraction of width 6.0", + "strict": 4.858767716474483e-16, + "global_phase": 0.0, + "seconds": 0.002694666967727244 + }, + { + "entry": "grover_n3", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.322204543158198e-16, + "tolerance": 3.19175687428353e-11, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 1.322204543158198e-16, + "global_phase": 0.0, + "seconds": 0.0071585000259801745 + }, + { + "entry": "grover_n3", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.712509627811334e-07, + "tolerance": 4.5772584182356496e-05, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.712509627811334e-07, + "global_phase": 0.0, + "seconds": 0.0025690830079838634 + }, + { + "entry": "grover_n3", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 1.5127021380598712e-09, + "tolerance": 9.539202806520348e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "grover_n5", + "engine": "exact", + "quantity": "integer reference: P(marked) against sin\u00b2((2k+1)\u03b8), computed in integers, units of 2^-256", + "measured": 64, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "grover_n5", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.357680396066808e-08, + "tolerance": 4.96125650003204e-06, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 5.816360794765578e-08, + "global_phase": 2.2639155599760047e-08 + }, + { + "entry": "grover_n5", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 7.477199939210867e-15, + "tolerance": 1.5064421660595767e-12, + "status": "pass" + }, + { + "entry": "grover_n5", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "grover_n5", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.158084160675823e-15, + "tolerance": 5.123940704950704e-13, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.3939509068552803e-15, + "global_phase": 7.75848056976644e-16, + "seconds": 0.000329375 + }, + { + "entry": "grover_n5", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3073026341015893e-15, + "tolerance": 3.0691504717034365e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 3.554278208317962e-15, + "global_phase": 3.3051253236443238e-15, + "seconds": 0.000106083 + }, + { + "entry": "grover_n5", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3073026341015893e-15, + "tolerance": 3.0691504717034365e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 3.554278208317962e-15, + "global_phase": 3.3051253236443238e-15, + "seconds": 0.000104, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "grover_n5", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.979364197199202e-15, + "tolerance": 5.123940704950704e-13, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 3.979364197199202e-15, + "global_phase": 0.0, + "seconds": 0.5344202499836683 + }, + { + "entry": "grover_n5", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.2508459331614375e-15, + "tolerance": 1.9326685410829237e-11, + "status": "pass", + "note": "double precision, a contraction of width 7.0", + "strict": 6.2508459331614375e-15, + "global_phase": 0.0, + "seconds": 0.3493333749938756 + }, + { + "entry": "grover_n5", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.063150391861205e-17, + "tolerance": 1.489678896361256e-10, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 8.063150391861205e-17, + "global_phase": 0.0, + "seconds": 0.005345209036022425 + }, + { + "entry": "grover_n5", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1936071641818266e-07, + "tolerance": 0.00014256269912086766, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.1936071641818266e-07, + "global_phase": 0.0, + "seconds": 0.002919459016993642 + }, + { + "entry": "grover_n5", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.7071169087468234e-08, + "tolerance": 4.9612565004761295e-06, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "grover_n8", + "engine": "exact", + "quantity": "integer reference: P(marked) against sin\u00b2((2k+1)\u03b8), computed in integers, units of 2^-256", + "measured": 209, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "grover_n8", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1094619788314317e-06, + "tolerance": 0.0005505700009309958, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 1.401073732234653e-06, + "global_phase": 8.556293856380556e-07 + }, + { + "entry": "grover_n8", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 5.612798993591805e-14, + "tolerance": 4.790820758528071e-11, + "status": "pass" + }, + { + "entry": "grover_n8", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "grover_n8", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.760138446045135e-14, + "tolerance": 2.2940211596517415e-12, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 7.760404568189749e-14, + "global_phase": -6.426787838823215e-16, + "seconds": 0.01001475 + }, + { + "entry": "grover_n8", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.631879843797361e-15, + "tolerance": 1.308042701036822e-12, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.3818998850279718e-14, + "global_phase": 1.3333198341892727e-14, + "seconds": 0.000347625 + }, + { + "entry": "grover_n8", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.631879843797361e-15, + "tolerance": 1.308042701036822e-12, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.3818998850279718e-14, + "global_phase": 1.3333198341892727e-14, + "seconds": 0.000348916, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "grover_n8", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8051945192911557e-14, + "tolerance": 2.2940211596517415e-12, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.8051945192911557e-14, + "global_phase": 0.0, + "seconds": 0.6633391659706831 + }, + { + "entry": "grover_n8", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.178610058568759e-14, + "tolerance": 1.4460064500364516e-08, + "status": "pass", + "note": "double precision, a contraction of width 12.0", + "strict": 7.178610058568759e-14, + "global_phase": 0.0, + "seconds": 0.9559548340039328 + }, + { + "entry": "grover_n8", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.0522346859459808e-15, + "tolerance": 9.998138703932867e-10, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 1.0522346859459808e-15, + "global_phase": 0.0, + "seconds": 0.014790582936257124 + }, + { + "entry": "grover_n8", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.865674201535373e-07, + "tolerance": 0.0006385786556238365, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.865674201535373e-07, + "global_phase": 0.0, + "seconds": 0.028526917099952698 + }, + { + "entry": "grover_n8", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.1852138799866191e-07, + "tolerance": 0.0005505700009314399, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "grover_n10", + "engine": "exact", + "quantity": "integer reference: P(marked) against sin\u00b2((2k+1)\u03b8), computed in integers, units of 2^-256", + "measured": 469, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "grover_n10", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.2966310402143949e-05, + "tolerance": 0.011743156745052948, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 1.2988878121540966e-05, + "global_phase": 7.653435437075795e-07 + }, + { + "entry": "grover_n10", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 6.687368364924087e-13, + "tolerance": 4.6956754416903e-10, + "status": "pass" + }, + { + "entry": "grover_n10", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "grover_n10", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.868605386549578e-13, + "tolerance": 5.923087420433778e-12, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 9.868608702522018e-13, + "global_phase": 8.089997403269279e-16, + "seconds": 0.19583175 + }, + { + "entry": "grover_n10", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.944472891143808e-15, + "tolerance": 3.3151696761912246e-12, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 3.3673609522423125e-14, + "global_phase": 3.2463955134398285e-14, + "seconds": 0.001789833 + }, + { + "entry": "grover_n10", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.944472891143808e-15, + "tolerance": 3.3151696761912246e-12, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 3.3673609522423125e-14, + "global_phase": 3.2463955134398285e-14, + "seconds": 0.001794625, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "grover_n10", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.53350780910714e-14, + "tolerance": 5.923087420433778e-12, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 4.53350780910714e-14, + "global_phase": 0.0, + "seconds": 0.7330822499934584 + }, + { + "entry": "grover_n10", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.5078178957389337e-13, + "tolerance": 1.892533604466189e-05, + "status": "pass", + "note": "double precision, a contraction of width 18.0", + "strict": 1.5078178957389337e-13, + "global_phase": 0.0, + "seconds": 5.9243225830141455 + }, + { + "entry": "grover_n10", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.2520782731179646e-15, + "tolerance": 3.154468302046225e-09, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 1.2520782731179646e-15, + "global_phase": 0.0, + "seconds": 0.009894083021208644 + }, + { + "entry": "grover_n10", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.156421069340362e-07, + "tolerance": 0.0016504526520488114, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 2.156421069340362e-07, + "global_phase": 0.0, + "seconds": 0.11605699989013374 + }, + { + "entry": "grover_n10", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 2.3730155923783575e-06, + "tolerance": 0.011743156745053392, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "qpe_t4_m5", + "engine": "exact", + "quantity": "integer reference: P(m) against 1, the closed form, units of 2^-256", + "measured": 21, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "qpe_t4_m5", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.2812650937430355e-09, + "tolerance": 1.3990830691703475e-07, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 2.2812650937430355e-09, + "global_phase": 8.636168547051386e-78 + }, + { + "entry": "qpe_t4_m5", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 6.738653000098427e-16, + "tolerance": 5.29980919300785e-14, + "status": "pass" + }, + { + "entry": "qpe_t4_m5", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "qpe_t4_m5", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.96872475652504e-16, + "tolerance": 9.871812367332136e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 8.969588494495959e-16, + "global_phase": 1.2447490626286985e-17, + "seconds": 3.5458e-05 + }, + { + "entry": "qpe_t4_m5", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4942393618123933e-16, + "tolerance": 5.3588341569411506e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 3.950557577583702e-16, + "global_phase": 3.063604932067729e-16, + "seconds": 8.3083e-05 + }, + { + "entry": "qpe_t4_m5", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4942393618123933e-16, + "tolerance": 5.3588341569411506e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 3.950557577583702e-16, + "global_phase": 3.063604932067729e-16, + "seconds": 9.1791e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "qpe_t4_m5", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.738056626212538e-16, + "tolerance": 9.871812367332136e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 6.852031677756625e-16, + "global_phase": 1.2445605710183747e-16, + "seconds": 0.509219583007507 + }, + { + "entry": "qpe_t4_m5", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.79939260424279e-15, + "tolerance": 1.638885040335722e-12, + "status": "pass", + "note": "double precision, a contraction of width 6.0", + "strict": 1.8188266366102144e-15, + "global_phase": 2.6517275470752373e-16, + "seconds": 0.09545283298939466 + }, + { + "entry": "qpe_t4_m5", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.132622887710837e-76, + "tolerance": 2.870023561452972e-11, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 1.132622887710837e-76, + "global_phase": 8.636168555094445e-78, + "seconds": 0.005204041954129934 + }, + { + "entry": "qpe_t4_m5", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.0053557371184271e-07, + "tolerance": 2.746304772436933e-05, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.4589360127265824e-07, + "global_phase": -1.0572389186336255e-07, + "seconds": 0.0018070000223815441 + }, + { + "entry": "qpe_t4_m5", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.862645149230957e-09, + "tolerance": 1.3990830736112396e-07, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "qpe_t8_m173", + "engine": "exact", + "quantity": "integer reference: P(m) against 1, the closed form, units of 2^-256", + "measured": 79, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "qpe_t8_m173", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.812739523998364e-08, + "tolerance": 2.5946634944328434e-06, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 4.328396185719315e-08, + "global_phase": -2.0489096889605984e-08 + }, + { + "entry": "qpe_t8_m173", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.3822672508259872e-15, + "tolerance": 2.3186184911439147e-13, + "status": "pass" + }, + { + "entry": "qpe_t8_m173", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "qpe_t8_m173", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3997538539219514e-15, + "tolerance": 2.6794919282763184e-13, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.4100014542159497e-15, + "global_phase": -1.6968573694255317e-16, + "seconds": 9.4667e-05 + }, + { + "entry": "qpe_t8_m173", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.555164442535527e-16, + "tolerance": 1.4127835504664274e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.356875146241596e-16, + "global_phase": 4.823252008114053e-16, + "seconds": 0.000101583 + }, + { + "entry": "qpe_t8_m173", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.555164442535527e-16, + "tolerance": 1.4127835504664274e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.356875146241596e-16, + "global_phase": 4.823252008114053e-16, + "seconds": 0.0001065, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "qpe_t8_m173", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3832395307701107e-15, + "tolerance": 2.6794919282763184e-13, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.3854297339966442e-15, + "global_phase": -7.787135774401854e-17, + "seconds": 0.49049741693306714 + }, + { + "entry": "qpe_t8_m173", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.57526908432817e-15, + "tolerance": 1.5373360013432097e-08, + "status": "pass", + "note": "double precision, a contraction of width 14.0", + "strict": 7.578522646700638e-15, + "global_phase": 2.22044604925033e-16, + "seconds": 0.27706475008744746 + }, + { + "entry": "qpe_t8_m173", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.605398797765447e-76, + "tolerance": 1.2974183754077814e-10, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 6.607656667869935e-76, + "global_phase": -1.727233711018889e-77, + "seconds": 0.005615917034447193 + }, + { + "entry": "qpe_t8_m173", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.7722554611658762e-07, + "tolerance": 7.454606734339516e-05, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 2.729623098522114e-07, + "global_phase": -2.0760425911703052e-07, + "seconds": 0.002936417004093528 + }, + { + "entry": "qpe_t8_m173", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.2107193247956616e-08, + "tolerance": 2.5946634948769326e-06, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "qpe_t12_m2741", + "engine": "exact", + "quantity": "integer reference: P(m) against 1, the closed form, units of 2^-256", + "measured": 271, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "qpe_t12_m2741", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.897294043453971e-07, + "tolerance": 3.062721528136228e-05, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 1.9177557825276994e-07, + "global_phase": 2.7939676405797104e-08 + }, + { + "entry": "qpe_t12_m2741", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.106274994226196e-15, + "tolerance": 6.219820124221308e-13, + "status": "pass" + }, + { + "entry": "qpe_t12_m2741", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "qpe_t12_m2741", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8446378487848027e-15, + "tolerance": 5.123940704950704e-13, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.882816968641882e-15, + "global_phase": 3.7724122817685328e-16, + "seconds": 0.001115125 + }, + { + "entry": "qpe_t12_m2741", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.805613248894342e-16, + "tolerance": 2.67941707847115e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.839500472473385e-16, + "global_phase": 5.640957091605201e-16, + "seconds": 0.000672792 + }, + { + "entry": "qpe_t12_m2741", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.518453725686628e-16, + "tolerance": 2.67941707847115e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.4625597378806557e-15, + "global_phase": 1.2545156525992895e-15, + "seconds": 0.00066325, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "qpe_t12_m2741", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.14995265766557e-15, + "tolerance": 5.123940704950704e-13, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.1563814583286734e-15, + "global_phase": -1.663867892004838e-16, + "seconds": 0.522463999921456 + }, + { + "entry": "qpe_t12_m2741", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.21120340550861e-75, + "tolerance": 3.4723773472090127e-10, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 3.21584525039295e-75, + "global_phase": 1.727233711018889e-76, + "seconds": 0.006212792010046542 + }, + { + "entry": "qpe_t12_m2741", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.784483472170002e-07, + "tolerance": 0.00014256269912086766, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 4.3259611122588005e-07, + "global_phase": -3.31067838033038e-07, + "seconds": 0.0035364170325919986 + }, + { + "entry": "qpe_t12_m2741", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 2.980232283178452e-08, + "tolerance": 3.062721528180637e-05, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "qpe_t6_third", + "engine": "exact", + "quantity": "integer reference: every outcome's probability against sin\u00b2(\u03c02^t\u03b4)/(2^2t sin\u00b2(\u03c0\u03b4)), units of 2^-256", + "measured": 71, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "qpe_t6_third", + "engine": "wai.exact", + "quantity": "refuses, as listed: an angle no grid of 2^32 holds within 10^-14 of a turn", + "measured": "the angle 2.0943951023931953 is not a dyadic multiple of 2\u03c0 (2\u03c0m/2^k, k \u2264 32) [Q500]", + "tolerance": "[Q500]", + "status": "refused" + }, + { + "entry": "qpe_t6_third", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.0778786485207591e-15, + "tolerance": 1.7393193218634114e-13, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.4189449206665662e-15, + "global_phase": 9.228121731687924e-16, + "seconds": 5.725e-05 + }, + { + "entry": "qpe_t6_third", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.6083423247021445e-16, + "tolerance": 9.25616808926235e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.824931761242946e-16, + "global_phase": -7.526127929350746e-16, + "seconds": 9.0792e-05 + }, + { + "entry": "qpe_t6_third", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.805379459074605e-16, + "tolerance": 9.25616808926235e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.3608328976433878e-15, + "global_phase": 1.178445704938736e-15, + "seconds": 8.8209e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "qpe_t6_third", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.0861429883032491e-15, + "tolerance": 1.7393193218634114e-13, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.5279328846936548e-15, + "global_phase": -1.0746498541794729e-15, + "seconds": 0.5179355830186978 + }, + { + "entry": "qpe_t6_third", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.01115222495751e-15, + "tolerance": 4.542902048736096e-10, + "status": "pass", + "note": "double precision, a contraction of width 11.0", + "strict": 8.050793398774208e-15, + "global_phase": -7.979438440796979e-16, + "seconds": 0.2691608750028536 + }, + { + "entry": "qpe_t6_third", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.719452587735039e-16, + "tolerance": 6.739273378291126e-11, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 4.829526496671626e-16, + "global_phase": -1.0252284887645072e-16, + "seconds": 0.005400332971476018 + }, + { + "entry": "qpe_t6_third", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.5725733323873765e-07, + "tolerance": 4.8388286972686044e-05, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 2.273125193510748e-07, + "global_phase": -1.6413748348371467e-07, + "seconds": 0.0024407500168308616 + }, + { + "entry": "qpe_t6_third", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 1.2162346928681588e-15, + "tolerance": 1.7393193218634114e-13, + "status": "pass", + "note": "planned statevector" + }, + { + "entry": "qpe_t10_third", + "engine": "exact", + "quantity": "integer reference: every outcome's probability against sin\u00b2(\u03c02^t\u03b4)/(2^2t sin\u00b2(\u03c0\u03b4)), units of 2^-256", + "measured": 461, + "tolerance": 1099511627776, + "status": "pass" + }, + { + "entry": "qpe_t10_third", + "engine": "wai.exact", + "quantity": "refuses, as listed: an angle no grid of 2^32 holds within 10^-14 of a turn", + "measured": "the angle 2.0943951023931953 is not a dyadic multiple of 2\u03c0 (2\u03c0m/2^k, k \u2264 32) [Q500]", + "tolerance": "[Q500]", + "status": "refused" + }, + { + "entry": "qpe_t10_third", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.796606182330923e-15, + "tolerance": 3.80769905597204e-13, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.278811280653084e-15, + "global_phase": 1.4018513039698793e-15, + "seconds": 0.000267 + }, + { + "entry": "qpe_t10_third", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.984126218366767e-16, + "tolerance": 1.9973836403147212e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.5115343349619408e-15, + "global_phase": -1.3405058207363578e-15, + "seconds": 0.000193542 + }, + { + "entry": "qpe_t10_third", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.300429038261986e-16, + "tolerance": 1.9973836403147212e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.1163134250061386e-15, + "global_phase": 1.946743766053711e-15, + "seconds": 0.000208, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "qpe_t10_third", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.788892892583871e-15, + "tolerance": 3.80769905597204e-13, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.574356364266145e-15, + "global_phase": -1.8512625176080566e-15, + "seconds": 0.5336976670660079 + }, + { + "entry": "qpe_t10_third", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.7116860766941084e-15, + "tolerance": 8.774588089962489e-05, + "status": "pass", + "note": "double precision, a contraction of width 22.0", + "strict": 2.8860389397552567e-15, + "global_phase": -9.87916688414039e-16, + "seconds": 0.4123232909478247 + }, + { + "entry": "qpe_t10_third", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.977080686653918e-16, + "tolerance": 2.2120451510998953e-10, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 7.993372128915001e-16, + "global_phase": -5.100801014823151e-17, + "seconds": 0.008596708066761494 + }, + { + "entry": "qpe_t10_third", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.051398831945164e-07, + "tolerance": 0.00010593720971003882, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 2.898835952510858e-07, + "global_phase": -2.0481730274295468e-07, + "seconds": 0.003083124989643693 + }, + { + "entry": "qpe_t10_third", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 1.9062480016440573e-15, + "tolerance": 3.80769905597204e-13, + "status": "pass", + "note": "planned statevector" + }, + { + "entry": "clifford_t_n4_d20", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.153123487039424e-09, + "tolerance": 2.557346099079737e-07, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 9.855402861642344e-09, + "global_phase": 3.653668846370256e-09 + }, + { + "entry": "clifford_t_n4_d20", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.996590550308032e-15, + "tolerance": 1.3750065437935224e-13, + "status": "pass" + }, + { + "entry": "clifford_t_n4_d20", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "clifford_t_n4_d20", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.1283823308778985e-15, + "tolerance": 4.559837141102664e-13, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.1287684798629586e-15, + "global_phase": 4.054496842783867e-17, + "seconds": 8.6167e-05 + }, + { + "entry": "clifford_t_n4_d20", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.0096790638024118e-15, + "tolerance": 2.387117033546955e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.3114612183423928e-15, + "global_phase": 8.36946064770723e-16, + "seconds": 8.9625e-05 + }, + { + "entry": "clifford_t_n4_d20", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.0096790638024118e-15, + "tolerance": 2.387117033546955e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.3114612183423928e-15, + "global_phase": 8.36946064770723e-16, + "seconds": 9.1166e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "clifford_t_n4_d20", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.37339659069541e-15, + "tolerance": 4.559837141102664e-13, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.390711969694405e-15, + "global_phase": -2.1877291266863018e-16, + "seconds": 0.480836792034097 + }, + { + "entry": "clifford_t_n4_d20", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4097253105678868e-15, + "tolerance": 6.366438041334249e-12, + "status": "pass", + "note": "double precision, a contraction of width 6.0", + "strict": 1.4365078386565215e-15, + "global_phase": -2.7609657597642537e-16, + "seconds": 0.27518424997106194 + }, + { + "entry": "clifford_t_n4_d20", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.528977502397698e-16, + "tolerance": 1.105125084717754e-10, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 6.726554759573411e-16, + "global_phase": -1.6183299128189006e-16, + "seconds": 0.005191667005419731 + }, + { + "entry": "clifford_t_n4_d20", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4830681033350615e-07, + "tolerance": 0.00012686573245252413, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 2.386055560508683e-07, + "global_phase": 1.8691628929767302e-07, + "seconds": 0.002483207965269685 + }, + { + "entry": "clifford_t_n4_d20", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.6356259584741358e-09, + "tolerance": 2.557346103520629e-07, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "clifford_t_n8_d40", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.017532148587371e-08, + "tolerance": 3.342460177766595e-06, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 5.048837286771091e-08, + "global_phase": 5.613635949877929e-09 + }, + { + "entry": "clifford_t_n8_d40", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 6.526532694228908e-15, + "tolerance": 5.276208176870179e-13, + "status": "pass" + }, + { + "entry": "clifford_t_n8_d40", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "clifford_t_n8_d40", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.6222540811788984e-15, + "tolerance": 1.7581227739944499e-12, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 5.622384485102909e-15, + "global_phase": 3.829288436678506e-17, + "seconds": 0.000301667 + }, + { + "entry": "clifford_t_n8_d40", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.1879700467120467e-15, + "tolerance": 9.134376403884818e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 3.882352168215574e-15, + "global_phase": 2.215740359183579e-15, + "seconds": 0.000209209 + }, + { + "entry": "clifford_t_n8_d40", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.1879700467120467e-15, + "tolerance": 9.134376403884818e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 3.882352168215574e-15, + "global_phase": 2.215740359183579e-15, + "seconds": 0.0002245, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "clifford_t_n8_d40", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.0239044960628715e-15, + "tolerance": 1.7581227739944499e-12, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 4.036090676030125e-15, + "global_phase": 3.1340158216307306e-16, + "seconds": 0.5388846249552444 + }, + { + "entry": "clifford_t_n8_d40", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.7050697629454546e-13, + "tolerance": 3.14722561000377e-08, + "status": "pass", + "note": "double precision, a contraction of width 13.0", + "strict": 3.7050729940251434e-13, + "global_phase": 4.89313414438718e-16, + "seconds": 0.7548519580159336 + }, + { + "entry": "clifford_t_n8_d40", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.0498904125429746e-15, + "tolerance": 7.662507939343449e-10, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 2.1078899783670994e-15, + "global_phase": -4.910697073378121e-16, + "seconds": 0.010511124972254038 + }, + { + "entry": "clifford_t_n8_d40", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.577500217816409e-07, + "tolerance": 0.0004893295801767063, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 8.033646023253315e-07, + "global_phase": 7.19311878181064e-07, + "seconds": 0.006192833068780601 + }, + { + "entry": "clifford_t_n8_d40", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 3.6077392841198395e-09, + "tolerance": 3.342460178210684e-06, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "clifford_t_n12_d40", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.459746568494258e-07, + "tolerance": 1.7682557127713214e-05, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 2.459756455523028e-07, + "global_phase": 6.974185770216621e-10 + }, + { + "entry": "clifford_t_n12_d40", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 9.000585916602294e-15, + "tolerance": 7.712698727493606e-13, + "status": "pass" + }, + { + "entry": "clifford_t_n12_d40", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "clifford_t_n12_d40", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.237536939221416e-15, + "tolerance": 2.5713720785447756e-12, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 7.23755922358584e-15, + "global_phase": 1.7960187025050173e-17, + "seconds": 0.002107666 + }, + { + "entry": "clifford_t_n12_d40", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.637520322363948e-15, + "tolerance": 1.3348368718215973e-12, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 5.465338738445407e-15, + "global_phase": 2.891942735534964e-15, + "seconds": 0.001355708 + }, + { + "entry": "clifford_t_n12_d40", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.637520322363948e-15, + "tolerance": 1.3348368718215973e-12, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 5.465338738445407e-15, + "global_phase": 2.891942735534964e-15, + "seconds": 0.001356417, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "clifford_t_n12_d40", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.209789669144606e-15, + "tolerance": 2.5713720785447756e-12, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 5.220686102560184e-15, + "global_phase": -3.371275496591598e-16, + "seconds": 0.6021328750066459 + }, + { + "entry": "clifford_t_n12_d40", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.0947692346452734e-12, + "tolerance": 0.00018851685818136647, + "status": "pass", + "note": "double precision, a contraction of width 21.0", + "strict": 3.0947692522897992e-12, + "global_phase": -3.304715913378452e-16, + "seconds": 1.7703031660057604 + }, + { + "entry": "clifford_t_n12_d40", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.96369211197395e-14, + "tolerance": 1.6181866097291546e-09, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 6.011129495297865e-14, + "global_phase": 7.53693706235948e-15, + "seconds": 0.11110345798078924 + }, + { + "entry": "clifford_t_n12_d40", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.2708833369560684e-07, + "tolerance": 0.0007158390537136506, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.5859800767816736e-06, + "global_phase": 1.5273926930313058e-06, + "seconds": 0.010045291972346604 + }, + { + "entry": "clifford_t_n12_d40", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 4.918993519161239e-09, + "tolerance": 1.7682557128157303e-05, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "dyadic_n6_k20", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.989486721523507e-08, + "tolerance": 1.339873433652581e-05, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.39934443734408126, + "global_phase": 0.40204678241385533 + }, + { + "entry": "dyadic_n6_k20", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.1189511364870592e-14, + "tolerance": 1.745866092999919e-12, + "status": "pass" + }, + { + "entry": "dyadic_n6_k20", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "dyadic_n6_k20", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4180869825539321e-15, + "tolerance": 7.991467154512563e-13, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.5858100500850096e-15, + "global_phase": -7.098047794018468e-16, + "seconds": 9.9375e-05 + }, + { + "entry": "dyadic_n6_k20", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.28627577666731e-15, + "tolerance": 4.165275640169407e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.4084340793192475e-15, + "global_phase": 5.737431325486733e-16, + "seconds": 0.00012775 + }, + { + "entry": "dyadic_n6_k20", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.5687141564291269e-15, + "tolerance": 4.165275640169407e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.7608481323261614e-15, + "global_phase": -7.998262564678552e-16, + "seconds": 0.000135625, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "dyadic_n6_k20", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1342303962098356e-15, + "tolerance": 7.991467154512563e-13, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.1996783412008028e-15, + "global_phase": 3.9083184448044817e-16, + "seconds": 0.5433649170445278 + }, + { + "entry": "dyadic_n6_k20", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3051178017215327e-14, + "tolerance": 8.221463240828132e-11, + "status": "pass", + "note": "double precision, a contraction of width 8.0", + "strict": 1.308207153651081e-14, + "global_phase": 8.985254861948449e-16, + "seconds": 0.3002147909719497 + }, + { + "entry": "dyadic_n6_k20", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.1598295020719944e-15, + "tolerance": 2.7098876558096605e-10, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 2.230505161772939e-15, + "global_phase": 5.570366223823753e-16, + "seconds": 0.006640417035669088 + }, + { + "entry": "dyadic_n6_k20", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.899112644982083e-07, + "tolerance": 0.00022236322833053704, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 9.57930475196668e-07, + "global_phase": 3.545260787119959e-07, + "seconds": 0.0026472919853404164 + }, + { + "entry": "dyadic_n6_k20", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 2.1884845584357334e-08, + "tolerance": 1.3398734336969899e-05, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "dyadic_n10_k30", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.662489981109932e-07, + "tolerance": 0.00025925791074704726, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 1.2358534025545123, + "global_phase": -1.3322055732900404 + }, + { + "entry": "dyadic_n10_k30", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.957060599565951e-14, + "tolerance": 7.835684093568104e-12, + "status": "pass" + }, + { + "entry": "dyadic_n10_k30", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "dyadic_n10_k30", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.07060654547701e-15, + "tolerance": 2.0448754189513503e-12, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.144929701446449e-15, + "global_phase": -5.597427605381909e-16, + "seconds": 0.00047825 + }, + { + "entry": "dyadic_n10_k30", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.0553328230562804e-15, + "tolerance": 1.0620234965584993e-12, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.163222238363559e-15, + "global_phase": 6.746387470477434e-16, + "seconds": 0.000659792 + }, + { + "entry": "dyadic_n10_k30", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.1070566216043007e-15, + "tolerance": 1.0620234965584993e-12, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.122060579030768e-15, + "global_phase": -2.5189977060304857e-16, + "seconds": 0.000640459, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "dyadic_n10_k30", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.0257443870650174e-15, + "tolerance": 2.0448754189513503e-12, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.0893664437453894e-15, + "global_phase": 5.116754972869361e-16, + "seconds": 0.5898645829875022 + }, + { + "entry": "dyadic_n10_k30", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.7418937148709036e-14, + "tolerance": 2.931147265744985e-07, + "status": "pass", + "note": "double precision, a contraction of width 15.0", + "strict": 3.741970009676067e-14, + "global_phase": 2.3895186225216853e-16, + "seconds": 0.6732775409473106 + }, + { + "entry": "dyadic_n10_k30", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.433068083664134e-15, + "tolerance": 1.0890426258424233e-09, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 4.48600669128831e-15, + "global_phase": 6.871414700641309e-16, + "seconds": 0.051220000023022294 + }, + { + "entry": "dyadic_n10_k30", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.2958430437727125e-06, + "tolerance": 0.0005691853986397459, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.31241549090106e-06, + "global_phase": 2.0790676466732445e-07, + "seconds": 0.005587375024333596 + }, + { + "entry": "dyadic_n10_k30", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 4.1831292292358954e-08, + "tolerance": 0.00025925791074749135, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "rotations_n6", + "engine": "wai.exact", + "quantity": "refuses, as listed: an angle no grid of 2^32 holds within 10^-14 of a turn", + "measured": "the angle 1.6459015101789476 is not a dyadic multiple of 2\u03c0 (2\u03c0m/2^k, k \u2264 32) [Q500]", + "tolerance": "[Q500]", + "status": "refused" + }, + { + "entry": "rotations_n6", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.5154933030070789e-15, + "tolerance": 7.991467154512563e-13, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.72086804212411e-15, + "global_phase": -8.152710389464119e-16, + "seconds": 9.3208e-05 + }, + { + "entry": "rotations_n6", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.6305998238095008e-15, + "tolerance": 4.165275640169407e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.905715024096332e-15, + "global_phase": -9.8635387547214e-16, + "seconds": 0.000142917 + }, + { + "entry": "rotations_n6", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.6305998238095008e-15, + "tolerance": 4.165275640169407e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.905715024096332e-15, + "global_phase": -9.8635387547214e-16, + "seconds": 0.000138583, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "rotations_n6", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4990717788917019e-15, + "tolerance": 7.991467154512563e-13, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.7352268023762315e-15, + "global_phase": -8.73954150636811e-16, + "seconds": 0.525062458938919 + }, + { + "entry": "rotations_n6", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1463300144212569e-14, + "tolerance": 8.221463240828132e-11, + "status": "pass", + "note": "double precision, a contraction of width 8.0", + "strict": 1.1553597786782342e-14, + "global_phase": -1.4416558613059689e-15, + "seconds": 0.3640246669529006 + }, + { + "entry": "rotations_n6", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.451829625576893e-15, + "tolerance": 2.7098876558096605e-10, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 2.700975318360868e-15, + "global_phase": -1.1330486121689853e-15, + "seconds": 0.007659082999452949 + }, + { + "entry": "rotations_n6", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.913743035213031e-07, + "tolerance": 0.00022236322833053704, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 4.913755143058781e-07, + "global_phase": -1.0908246135531504e-09, + "seconds": 0.0035076659405604005, + "adapter": [ + "U as a matrix" + ] + }, + { + "entry": "rotations_n6", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 3.6925340820413464e-16, + "tolerance": 7.991467154512563e-13, + "status": "pass", + "note": "planned statevector" + }, + { + "entry": "rotations_n10", + "engine": "wai.exact", + "quantity": "refuses, as listed: an angle no grid of 2^32 holds within 10^-14 of a turn", + "measured": "the angle 0.49840613019150304 is not a dyadic multiple of 2\u03c0 (2\u03c0m/2^k, k \u2264 32) [Q500]", + "tolerance": "[Q500]", + "status": "refused" + }, + { + "entry": "rotations_n10", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.464502051374197e-15, + "tolerance": 2.0448754189513503e-12, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.9061712219412836e-15, + "global_phase": -1.5401496063733773e-15, + "seconds": 0.00048225 + }, + { + "entry": "rotations_n10", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4143196186593406e-15, + "tolerance": 1.0620234965584993e-12, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.6382365134157053e-15, + "global_phase": -1.0636506379805698e-15, + "seconds": 0.000795708 + }, + { + "entry": "rotations_n10", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4143196186593406e-15, + "tolerance": 1.0620234965584993e-12, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.6382365134157053e-15, + "global_phase": -1.0636506379805698e-15, + "seconds": 0.000760958, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "rotations_n10", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.3602844610714314e-15, + "tolerance": 2.0448754189513503e-12, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.5904531582104556e-15, + "global_phase": -1.0674759143452676e-15, + "seconds": 0.6028056659270078 + }, + { + "entry": "rotations_n10", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.628356582873701e-14, + "tolerance": 2.931147265744985e-07, + "status": "pass", + "note": "double precision, a contraction of width 15.0", + "strict": 3.631662272767651e-14, + "global_phase": -1.549173036202927e-15, + "seconds": 0.640352041926235 + }, + { + "entry": "rotations_n10", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.17372837499147e-15, + "tolerance": 1.0890426258424233e-09, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 7.286480728746005e-15, + "global_phase": 1.2768800304762984e-15, + "seconds": 0.08923191705252975 + }, + { + "entry": "rotations_n10", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.282887916817331e-07, + "tolerance": 0.0005691853986397459, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 7.295684771927766e-07, + "global_phase": -4.3192578052393335e-08, + "seconds": 0.005776625010184944, + "adapter": [ + "U as a matrix" + ] + }, + { + "entry": "rotations_n10", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 1.8265293292099646e-16, + "tolerance": 2.0448754189513503e-12, + "status": "pass", + "note": "planned statevector" + }, + { + "entry": "rotations_n12", + "engine": "wai.exact", + "quantity": "refuses, as listed: an angle no grid of 2^32 holds within 10^-14 of a turn", + "measured": "the angle 1.437905822610216 is not a dyadic multiple of 2\u03c0 (2\u03c0m/2^k, k \u2264 32) [Q500]", + "tolerance": "[Q500]", + "status": "refused" + }, + { + "entry": "rotations_n12", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.10908033510255e-15, + "tolerance": 3.2906041224545485e-12, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 3.898968578999015e-15, + "global_phase": -2.3527803658438282e-15, + "seconds": 0.002123166 + }, + { + "entry": "rotations_n12", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.093518337966418e-15, + "tolerance": 1.707519429100891e-12, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 4.331119798114088e-15, + "global_phase": -3.031293947851528e-15, + "seconds": 0.00383275 + }, + { + "entry": "rotations_n12", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.093518337966418e-15, + "tolerance": 1.707519429100891e-12, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 4.331119798114088e-15, + "global_phase": -3.031293947851528e-15, + "seconds": 0.003786542, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "rotations_n12", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.029434690449638e-15, + "tolerance": 3.2906041224545485e-12, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 4.11654606819691e-15, + "global_phase": -2.7871987707890047e-15, + "seconds": 0.6933131250552833 + }, + { + "entry": "rotations_n12", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.67181278776525e-12, + "tolerance": 1.3263461525542181e-06, + "status": "pass", + "note": "double precision, a contraction of width 16.0", + "strict": 2.671814243095426e-12, + "global_phase": -2.7886809903588532e-15, + "seconds": 1.2355647920630872 + }, + { + "entry": "rotations_n12", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1963452167521439e-14, + "tolerance": 2.0708055344099814e-09, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 1.210254510477273e-14, + "global_phase": -1.8295929187895565e-15, + "seconds": 0.8588252499466762 + }, + { + "entry": "rotations_n12", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.555154261125553e-07, + "tolerance": 0.0009162477599676945, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 9.826555759371395e-07, + "global_phase": 2.2935179604588235e-07, + "seconds": 0.03263383300509304, + "adapter": [ + "U as a matrix" + ] + }, + { + "entry": "rotations_n12", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 1.9380251804308974e-16, + "tolerance": 3.2906041224545485e-12, + "status": "pass", + "note": "planned statevector" + }, + { + "entry": "rotations_wide_n20", + "engine": "aer.statevector ~ ddsim.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.1697438847821144e-13, + "tolerance": 1.4165429779443213e-09, + "status": "pass" + }, + { + "entry": "rotations_wide_n20", + "engine": "aer.statevector ~ qsim.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 2.5980182774576787e-05, + "tolerance": 0.00038592867124719895, + "status": "pass" + }, + { + "entry": "rotations_wide_n20", + "engine": "aer.statevector ~ quimb.dense", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.421550185013701e-15, + "tolerance": 8.63124024008962e-12, + "status": "pass" + }, + { + "entry": "rotations_wide_n20", + "engine": "aer.statevector ~ wai.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.502910518297138e-15, + "tolerance": 8.63124024008962e-12, + "status": "pass" + }, + { + "entry": "rotations_wide_n20", + "engine": "ddsim.statevector ~ qsim.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 2.598018276591867e-05, + "tolerance": 0.0003859300733012056, + "status": "pass" + }, + { + "entry": "rotations_wide_n20", + "engine": "ddsim.statevector ~ quimb.dense", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.169691701042057e-13, + "tolerance": 1.4106852468931524e-09, + "status": "pass" + }, + { + "entry": "rotations_wide_n20", + "engine": "ddsim.statevector ~ wai.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.1696490123049338e-13, + "tolerance": 1.4106852468931524e-09, + "status": "pass" + }, + { + "entry": "rotations_wide_n20", + "engine": "qsim.statevector ~ quimb.dense", + "quantity": "distance between the two states, modulo a global phase", + "measured": 2.5980182774262524e-05, + "tolerance": 0.00038592866538946787, + "status": "pass" + }, + { + "entry": "rotations_wide_n20", + "engine": "qsim.statevector ~ wai.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 2.598018277419488e-05, + "tolerance": 0.00038592866538946787, + "status": "pass" + }, + { + "entry": "rotations_wide_n20", + "engine": "quimb.dense ~ wai.statevector", + "quantity": "distance between the two states, modulo a global phase", + "measured": 1.4905584817309385e-15, + "tolerance": 2.7735091889206955e-12, + "status": "pass" + }, + { + "entry": "mirror_n10", + "engine": "wai.exact", + "quantity": "distance from |0\u20260>, modulo a global phase", + "measured": 1.5187978165169593e-06, + "tolerance": 0.0003597153067337921, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 1.5188537817569304e-06, + "seconds": 0.009540958 + }, + { + "entry": "mirror_n10", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 8.201255427515003e-14, + "tolerance": 1.1724210342350836e-11, + "status": "pass" + }, + { + "entry": "mirror_n10", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "mirror_n10", + "engine": "wai.statevector", + "quantity": "distance from |0\u20260>, modulo a global phase", + "measured": 1.9510560572688773e-15, + "tolerance": 5.453001117222185e-12, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.984140267936255e-15, + "seconds": 0.001213459 + }, + { + "entry": "mirror_n10", + "engine": "aer.statevector", + "quantity": "distance from |0\u20260>, modulo a global phase", + "measured": 3.116093335117587e-15, + "tolerance": 2.8280029346481536e-12, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 3.117234406512196e-15, + "seconds": 0.001622958 + }, + { + "entry": "mirror_n10", + "engine": "quimb.dense", + "quantity": "distance from |0\u20260>, modulo a global phase", + "measured": 2.6988486950719913e-15, + "tolerance": 5.453001117222185e-12, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.7208750497259247e-15, + "seconds": 0.8620582079747692 + }, + { + "entry": "mirror_n10", + "engine": "ddsim.statevector", + "quantity": "distance from |0\u20260>, modulo a global phase", + "measured": 0.0, + "tolerance": 2.904113674174054e-09, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 0.0, + "seconds": 0.14204579195939004 + }, + { + "entry": "mirror_n10", + "engine": "qsim.statevector", + "quantity": "distance from |0\u20260>, modulo a global phase", + "measured": 8.91467530037236e-07, + "tolerance": 0.0015192659685579655, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 8.972856072673777e-07, + "seconds": 0.011170499958097935 + }, + { + "entry": "mirror_n16", + "engine": "wai.exact", + "quantity": "distance from |0\u20260>, modulo a global phase", + "measured": 1.5097730264204684e-05, + "tolerance": 0.003469576937108643, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 1.5097785874851365e-05, + "seconds": 0.821582083 + }, + { + "entry": "mirror_n16", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 9.778321890684503e-14, + "tolerance": 1.4102957475358876e-11, + "status": "pass" + }, + { + "entry": "mirror_n16", + "engine": "wai.statevector", + "quantity": "distance from |0\u20260>, modulo a global phase", + "measured": 2.2300760905380908e-15, + "tolerance": 6.628216875251998e-12, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.238789057608218e-15, + "seconds": 0.205464916 + }, + { + "entry": "mirror_n16", + "engine": "aer.statevector", + "quantity": "distance from |0\u20260>, modulo a global phase", + "measured": 3.24982545300699e-15, + "tolerance": 3.453367988601977e-11, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 3.2761650953232175e-15, + "seconds": 0.136669084 + }, + { + "entry": "mirror_n16", + "engine": "quimb.dense", + "quantity": "distance from |0\u20260>, modulo a global phase", + "measured": 1.9930936758272993e-15, + "tolerance": 6.628216875251998e-12, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.994124091015089e-15, + "seconds": 1.1354445000179112 + }, + { + "entry": "mirror_n16", + "engine": "ddsim.statevector", + "quantity": "distance from |0\u20260>, modulo a global phase", + "measured": 8.514930450382587e-13, + "tolerance": 5.453581555606244e-09, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 8.514930450382587e-13, + "seconds": 31.997934874962084 + }, + { + "entry": "mirror_n16", + "engine": "qsim.statevector", + "quantity": "distance from |0\u20260>, modulo a global phase", + "measured": 1.0293821662146303e-06, + "tolerance": 0.0018472968080305607, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.0399434223545688e-06, + "seconds": 0.07397233403753489 + }, + { + "entry": "mirror_n20", + "engine": "wai.exact", + "quantity": "distance from |0\u20260>, modulo a global phase", + "measured": 4.73896084651158e-05, + "tolerance": 0.01155545431658005, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 4.738962099310268e-05, + "seconds": 12.119621709 + }, + { + "entry": "mirror_n20", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 8.090288470075473e-14, + "tolerance": 1.181152965688379e-11, + "status": "pass" + }, + { + "entry": "mirror_n20", + "engine": "wai.statevector", + "quantity": "distance from |0\u20260>, modulo a global phase", + "measured": 1.7612504605929993e-15, + "tolerance": 5.547018377864469e-12, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.783666617688025e-15, + "seconds": 0.656774125 + }, + { + "entry": "mirror_n20", + "engine": "aer.statevector", + "quantity": "distance from |0\u20260>, modulo a global phase", + "measured": 2.321364850386153e-15, + "tolerance": 2.8904518742140163e-11, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.3233717576401003e-15, + "seconds": 1.83291025 + }, + { + "entry": "mirror_n20", + "engine": "quimb.dense", + "quantity": "distance from |0\u20260>, modulo a global phase", + "measured": 2.3823357481473787e-15, + "tolerance": 5.547018377864469e-12, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.391665972196861e-15, + "seconds": 6.670653457986191 + }, + { + "entry": "mirror_n20", + "engine": "ddsim.statevector", + "quantity": "distance from |0\u20260>, modulo a global phase", + "measured": 4.446097421476058e-12, + "tolerance": 5.637193993003943e-09, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 4.51898665365181e-12, + "seconds": 852.6768856249982 + }, + { + "entry": "mirror_n20", + "engine": "qsim.statevector", + "quantity": "distance from |0\u20260>, modulo a global phase", + "measured": 9.0450940167473e-07, + "tolerance": 0.0015455005690109941, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 9.146325270517816e-07, + "seconds": 0.7057173330103979 + }, + { + "entry": "small_angle_k8", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.780451001345842e-10, + "tolerance": 8.607879969073985e-09, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 1.1888709590001065e-09, + "global_phase": 6.759008355409271e-10 + }, + { + "entry": "small_angle_k8", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.2258192659821766e-16, + "tolerance": 5.113306542163034e-15, + "status": "pass" + }, + { + "entry": "small_angle_k8", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "small_angle_k8", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8595955020684147e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.85959557341835e-16, + "global_phase": -5.1513497497288096e-20, + "seconds": 0.000458417 + }, + { + "entry": "small_angle_k8", + "engine": "wai.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 0.01227176929830895 + }, + { + "entry": "small_angle_k8", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.478119303198938e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 9.718539386259611e-17, + "global_phase": 6.207071732258519e-17, + "seconds": 0.000862958 + }, + { + "entry": "small_angle_k8", + "engine": "aer.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999951, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 0.01227176929830895 + }, + { + "entry": "small_angle_k8", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.478119303198938e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 9.718539386259611e-17, + "global_phase": 6.207071732258519e-17, + "seconds": 7.8292e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "small_angle_k8", + "engine": "aer.qasm_import", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999951, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 0.01227176929830895 + }, + { + "entry": "small_angle_k8", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.6306117118131227e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.630646413577557e-16, + "global_phase": -1.3512029458769615e-18, + "seconds": 0.6756830828962848 + }, + { + "entry": "small_angle_k8", + "engine": "quimb.dense", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 0.01227176929830895 + }, + { + "entry": "small_angle_k8", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.5236203411213074e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 1.5236203454172553e-16, + "global_phase": 1.1441497725281051e-20, + "seconds": 0.0007124579278752208 + }, + { + "entry": "small_angle_k8", + "engine": "quimb.tensor_network", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999999, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 0.01227176929830895 + }, + { + "entry": "small_angle_k8", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.814761250837923e-16, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 1.8147667325496875e-16, + "global_phase": 4.460496188388002e-19, + "seconds": 0.007737208041362464 + }, + { + "entry": "small_angle_k8", + "engine": "ddsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 0.01227176929830895 + }, + { + "entry": "small_angle_k8", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.9358970450937013e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 2.9370438261224258e-08, + "global_phase": -8.206690548754471e-10, + "seconds": 0.002991250017657876 + }, + { + "entry": "small_angle_k8", + "engine": "qsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.000000081545135, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 0.01227176929830895 + }, + { + "entry": "small_angle_k8", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 8.455796964207331e-10, + "tolerance": 8.607880413163195e-09, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "small_angle_k16", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.145354530188233e-10, + "tolerance": 8.607879969073985e-09, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 7.2737423971223e-10, + "global_phase": -1.3606017413376997e-10 + }, + { + "entry": "small_angle_k16", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.1150240354016243e-16, + "tolerance": 5.113306542163034e-15, + "status": "pass" + }, + { + "entry": "small_angle_k16", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "small_angle_k16", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8254756992859056e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.82547570059512e-16, + "global_phase": 6.91366666472064e-21, + "seconds": 1.3375e-05 + }, + { + "entry": "small_angle_k16", + "engine": "wai.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999999, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 4.793689961683644e-05 + }, + { + "entry": "small_angle_k16", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.050673116660162e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.0927932505288209e-16, + "global_phase": 6.124134630745771e-17, + "seconds": 0.000104292 + }, + { + "entry": "small_angle_k16", + "engine": "aer.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999987227, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 4.793689961683644e-05 + }, + { + "entry": "small_angle_k16", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.050673116660162e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.0927932505288209e-16, + "global_phase": 6.124134630745771e-17, + "seconds": 6.6e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "small_angle_k16", + "engine": "aer.qasm_import", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999987227, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 4.793689961683644e-05 + }, + { + "entry": "small_angle_k16", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.5653899922577952e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.565389992262524e-16, + "global_phase": 3.847678097819925e-22, + "seconds": 0.5540071249706671 + }, + { + "entry": "small_angle_k16", + "engine": "quimb.dense", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999999, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 4.793689961683644e-05 + }, + { + "entry": "small_angle_k16", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.565390000217615e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 1.5653900018555572e-16, + "global_phase": 7.161031376499654e-21, + "seconds": 0.0006461659213528037 + }, + { + "entry": "small_angle_k16", + "engine": "quimb.tensor_network", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999998, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 4.793689961683644e-05 + }, + { + "entry": "small_angle_k16", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.58472171734119e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 6.584721728060106e-17, + "global_phase": 3.757155249022045e-21, + "seconds": 0.0059100419748574495 + }, + { + "entry": "small_angle_k16", + "engine": "ddsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 4.793689961683644e-05 + }, + { + "entry": "small_angle_k16", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.2497990667184677e-09, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.2498100863323152e-09, + "global_phase": -8.463048083580325e-12, + "seconds": 0.0016736250836402178 + }, + { + "entry": "small_angle_k16", + "engine": "qsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0000001776945606, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 4.793689961683644e-05 + }, + { + "entry": "small_angle_k16", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 5.143249684326293e-10, + "tolerance": 8.607880413163195e-09, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "small_angle_k24", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.767666978444572e-11, + "tolerance": 8.607879969073985e-09, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 8.156711358706537e-11, + "global_phase": 5.7676648494005915e-11 + }, + { + "entry": "small_angle_k24", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.228704956460842e-16, + "tolerance": 5.113306542163034e-15, + "status": "pass" + }, + { + "entry": "small_angle_k24", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "small_angle_k24", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.1618425343289953e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.1618425343289958e-16, + "global_phase": -4.874625787480407e-24, + "seconds": 2.8584e-05 + }, + { + "entry": "small_angle_k24", + "engine": "wai.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0000000000000002, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.8725351414619617e-07 + }, + { + "entry": "small_angle_k24", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.696492554710878e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 9.073974588850753e-17, + "global_phase": 6.123234627532328e-17, + "seconds": 0.000110375 + }, + { + "entry": "small_angle_k24", + "engine": "aer.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999996729978, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.8725351414619617e-07 + }, + { + "entry": "small_angle_k24", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.696492554710878e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 9.073974588850753e-17, + "global_phase": 6.123234627532328e-17, + "seconds": 8.9792e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "small_angle_k24", + "engine": "aer.qasm_import", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999996729978, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.8725351414619617e-07 + }, + { + "entry": "small_angle_k24", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4197409606121313e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.4197409606121436e-16, + "global_phase": -2.4697673580566565e-23, + "seconds": 0.6342483339831233 + }, + { + "entry": "small_angle_k24", + "engine": "quimb.dense", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.8725351414619617e-07 + }, + { + "entry": "small_angle_k24", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3159495123847854e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 1.315949512384786e-16, + "global_phase": -3.9083572958578904e-24, + "seconds": 0.0005943329306319356 + }, + { + "entry": "small_angle_k24", + "engine": "quimb.tensor_network", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.8725351414619617e-07 + }, + { + "entry": "small_angle_k24", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.5063878560098153e-14, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 3.5063878560100614e-14, + "global_phase": 1.3154399712170649e-20, + "seconds": 0.009554458083584905 + }, + { + "entry": "small_angle_k24", + "engine": "ddsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999473, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.8725351414619617e-07 + }, + { + "entry": "small_angle_k24", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.991742884792483e-14, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 6.871130644612338e-14, + "global_phase": -3.3632504423353635e-14, + "seconds": 0.0016456249868497252 + }, + { + "entry": "small_angle_k24", + "engine": "qsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0000001796094875, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.8725351414619617e-07 + }, + { + "entry": "small_angle_k24", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 5.7676659132664505e-11, + "tolerance": 8.607880413163195e-09, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "small_angle_k26", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.47249805794336e-10, + "tolerance": 8.607879969073985e-09, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 3.4966402863501713e-10, + "global_phase": 2.4724980577531914e-10 + }, + { + "entry": "small_angle_k26", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.2362716297279847e-16, + "tolerance": 5.113306542163034e-15, + "status": "pass" + }, + { + "entry": "small_angle_k26", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "small_angle_k26", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.952496715825137e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.9524967158251372e-16, + "global_phase": 6.71583667849561e-25, + "seconds": 2.3166e-05 + }, + { + "entry": "small_angle_k26", + "engine": "wai.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 4.68133785365491e-08 + }, + { + "entry": "small_angle_k26", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.366157294584462e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 9.578845626274399e-17, + "global_phase": 6.123235275851835e-17, + "seconds": 6.7e-05 + }, + { + "entry": "small_angle_k26", + "engine": "aer.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999986919904, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 4.68133785365491e-08 + }, + { + "entry": "small_angle_k26", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.366157294584462e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 9.578845626274399e-17, + "global_phase": 6.123235275851835e-17, + "seconds": 0.000116417, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "small_angle_k26", + "engine": "aer.qasm_import", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999986919904, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 4.68133785365491e-08 + }, + { + "entry": "small_angle_k26", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.5239932650251915e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.5239932650251915e-16, + "global_phase": 2.3332666200026874e-24, + "seconds": 0.5691471250029281 + }, + { + "entry": "small_angle_k26", + "engine": "quimb.dense", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999998, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 4.68133785365491e-08 + }, + { + "entry": "small_angle_k26", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4293906912430871e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 1.4293906912430874e-16, + "global_phase": -1.6855137448329943e-24, + "seconds": 0.0006411249050870538 + }, + { + "entry": "small_angle_k26", + "engine": "quimb.tensor_network", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 4.68133785365491e-08 + }, + { + "entry": "small_angle_k26", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.1914924100062304e-15, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 2.1914924100062395e-15, + "global_phase": 2.014580430297663e-22, + "seconds": 0.009791209013201296 + }, + { + "entry": "small_angle_k26", + "engine": "ddsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999968, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 4.68133785365491e-08 + }, + { + "entry": "small_angle_k26", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.961132963119457e-15, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.2288145633023052e-14, + "global_phase": -8.408128157662514e-15, + "seconds": 0.001902917050756514 + }, + { + "entry": "small_angle_k26", + "engine": "qsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0000001796095148, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 4.68133785365491e-08 + }, + { + "entry": "small_angle_k26", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 2.4724980578472594e-10, + "tolerance": 8.607880413163195e-09, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "small_angle_k28", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.038488358639941e-10, + "tolerance": 8.607879969073985e-09, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 5.711285008274089e-10, + "global_phase": -4.038488358639409e-10 + }, + { + "entry": "small_angle_k28", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.3769972679217414e-16, + "tolerance": 5.113306542163034e-15, + "status": "pass" + }, + { + "entry": "small_angle_k28", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "small_angle_k28", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3940409624957706e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.3940409624957706e-16, + "global_phase": -3.6016109745977435e-25, + "seconds": 1.3667e-05 + }, + { + "entry": "small_angle_k28", + "engine": "wai.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.1703344634137277e-08 + }, + { + "entry": "small_angle_k28", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.5225932261746305e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.6411063727342416e-16, + "global_phase": 6.123234392345849e-17, + "seconds": 0.00010975 + }, + { + "entry": "small_angle_k28", + "engine": "aer.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999947679622, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.1703344634137277e-08 + }, + { + "entry": "small_angle_k28", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.5225932261746305e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.6411063727342416e-16, + "global_phase": 6.123234392345849e-17, + "seconds": 6.8833e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "small_angle_k28", + "engine": "aer.qasm_import", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999947679622, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.1703344634137277e-08 + }, + { + "entry": "small_angle_k28", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1778473976565104e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.1778473976565107e-16, + "global_phase": 2.6539241761670182e-24, + "seconds": 0.5563693750882521 + }, + { + "entry": "small_angle_k28", + "engine": "quimb.dense", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999998, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.1703344634137277e-08 + }, + { + "entry": "small_angle_k28", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.894478810177485e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 8.894478810177485e-17, + "global_phase": 3.498968171638388e-25, + "seconds": 0.0006107499357312918 + }, + { + "entry": "small_angle_k28", + "engine": "quimb.tensor_network", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999999, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.1703344634137277e-08 + }, + { + "entry": "small_angle_k28", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3696827562538977e-16, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 1.3696827562538982e-16, + "global_phase": 2.6449066869591424e-24, + "seconds": 0.005708791082724929 + }, + { + "entry": "small_angle_k28", + "engine": "ddsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999999, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.1703344634137277e-08 + }, + { + "entry": "small_angle_k28", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.110938055349543e-15, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 2.9790264018692395e-15, + "global_phase": -2.10203207147538e-15, + "seconds": 0.0019380840240046382 + }, + { + "entry": "small_angle_k28", + "engine": "qsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0000001796095166, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.1703344634137277e-08 + }, + { + "entry": "small_angle_k28", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 4.0384883586396925e-10, + "tolerance": 8.607880413163195e-09, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "small_angle_k30", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.318684346878843e-10, + "tolerance": 8.607879969073985e-09, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 1.8649012878451636e-10, + "global_phase": 1.3186843468788386e-10 + }, + { + "entry": "small_angle_k30", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.2220956107130027e-16, + "tolerance": 5.113306542163034e-15, + "status": "pass" + }, + { + "entry": "small_angle_k30", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "small_angle_k30", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.30763959096193e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.30763959096193e-16, + "global_phase": 3.8352550973466707e-25, + "seconds": 1.2958e-05 + }, + { + "entry": "small_angle_k30", + "engine": "wai.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.9258361585343192e-09 + }, + { + "entry": "small_angle_k30", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.24176605255026e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.743777155297435e-17, + "global_phase": 6.123234070875654e-17, + "seconds": 6.3625e-05 + }, + { + "entry": "small_angle_k30", + "engine": "aer.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999790718493, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.9258361585343192e-09 + }, + { + "entry": "small_angle_k30", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.24176605255026e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.743777155297435e-17, + "global_phase": 6.123234070875654e-17, + "seconds": 7.3792e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "small_angle_k30", + "engine": "aer.qasm_import", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999790718493, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.9258361585343192e-09 + }, + { + "entry": "small_angle_k30", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.1365565322645643e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.1365565322645643e-16, + "global_phase": -8.86261455065536e-26, + "seconds": 0.541969042038545 + }, + { + "entry": "small_angle_k30", + "engine": "quimb.dense", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999999, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.9258361585343192e-09 + }, + { + "entry": "small_angle_k30", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.0281877206483399e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 1.0281877206483399e-16, + "global_phase": -1.7738338483450532e-25, + "seconds": 0.0006060840096324682 + }, + { + "entry": "small_angle_k30", + "engine": "quimb.tensor_network", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.9258361585343192e-09 + }, + { + "entry": "small_angle_k30", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.560517226586876e-18, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 8.560517226586893e-18, + "global_phase": 5.359933175532669e-25, + "seconds": 0.005582000012509525 + }, + { + "entry": "small_angle_k30", + "engine": "ddsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999998, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.9258361585343192e-09 + }, + { + "entry": "small_angle_k30", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.256474506611849e-16, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 7.432791667721722e-16, + "global_phase": -5.255080183697786e-16, + "seconds": 0.0020214589312672615 + }, + { + "entry": "small_angle_k30", + "engine": "qsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0000001796095166, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.9258361585343192e-09 + }, + { + "entry": "small_angle_k30", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.3186843468788406e-10, + "tolerance": 8.607880413163195e-09, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "small_angle_k32", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.9986353498189868e-10, + "tolerance": 8.607879969073985e-09, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 2.8264972179523065e-10, + "global_phase": -1.9986353498189868e-10 + }, + { + "entry": "small_angle_k32", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.220452495233884e-16, + "tolerance": 5.113306542163034e-15, + "status": "pass" + }, + { + "entry": "small_angle_k32", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "small_angle_k32", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.2258028030058234e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.2258028030058234e-16, + "global_phase": 8.805429279700935e-26, + "seconds": 1.4959e-05 + }, + { + "entry": "small_angle_k32", + "engine": "wai.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 7.314590396335798e-10 + }, + { + "entry": "small_angle_k32", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.123701466044248e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.659891128289178e-17, + "global_phase": 6.123234007335431e-17, + "seconds": 6.7167e-05 + }, + { + "entry": "small_angle_k32", + "engine": "aer.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999162873975, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 7.314590396335798e-10 + }, + { + "entry": "small_angle_k32", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.123701466044248e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.659891128289178e-17, + "global_phase": 6.123234007335431e-17, + "seconds": 7.2583e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "small_angle_k32", + "engine": "aer.qasm_import", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999162873975, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 7.314590396335798e-10 + }, + { + "entry": "small_angle_k32", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.2151021875367953e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.2151021875367953e-16, + "global_phase": -2.998362101329583e-26, + "seconds": 0.5357412500306964 + }, + { + "entry": "small_angle_k32", + "engine": "quimb.dense", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999999, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 7.314590396335798e-10 + }, + { + "entry": "small_angle_k32", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1048856556976266e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 1.1048856556976266e-16, + "global_phase": -5.217293084528376e-26, + "seconds": 0.0006518330192193389 + }, + { + "entry": "small_angle_k32", + "engine": "quimb.tensor_network", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 7.314590396335798e-10 + }, + { + "entry": "small_angle_k32", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.350323266616951e-19, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 5.350323266617113e-19, + "global_phase": 1.3204155822915235e-25, + "seconds": 0.0059607080183923244 + }, + { + "entry": "small_angle_k32", + "engine": "ddsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999998, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 7.314590396335798e-10 + }, + { + "entry": "small_angle_k32", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3137918350078252e-16, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.8579668241137169e-16, + "global_phase": -1.3137700460027175e-16, + "seconds": 0.0016284170560538769 + }, + { + "entry": "small_angle_k32", + "engine": "qsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0000001796095168, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 7.314590396335798e-10 + }, + { + "entry": "small_angle_k32", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.9986353498189868e-10, + "tolerance": 8.607880413163195e-09, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "below_grid_k33", + "engine": "wai.exact", + "quantity": "refuses, as listed: an angle no grid of 2^32 holds within 10^-14 of a turn", + "measured": "the angle 0.0000000007314590396335798 is not a dyadic multiple of 2\u03c0 (2\u03c0m/2^k, k \u2264 32) [Q500]", + "tolerance": "[Q500]", + "status": "refused" + }, + { + "entry": "below_grid_k33", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.221784032698946e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.221784032698946e-16, + "global_phase": 4.3831469282588235e-26, + "seconds": 1.2875e-05 + }, + { + "entry": "below_grid_k33", + "engine": "wai.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 3.657295198167899e-10 + }, + { + "entry": "below_grid_k33", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.123263208852025e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.65958122267691e-17, + "global_phase": 6.123234000694218e-17, + "seconds": 6.9875e-05 + }, + { + "entry": "below_grid_k33", + "engine": "aer.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999998325747947, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 3.657295198167899e-10 + }, + { + "entry": "below_grid_k33", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.123263208852025e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.65958122267691e-17, + "global_phase": 6.123234000694218e-17, + "seconds": 7.0875e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "below_grid_k33", + "engine": "aer.qasm_import", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999998325747947, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 3.657295198167899e-10 + }, + { + "entry": "below_grid_k33", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.2191088715510154e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.2191088715510154e-16, + "global_phase": -1.518748762256435e-26, + "seconds": 0.5545749999582767 + }, + { + "entry": "below_grid_k33", + "engine": "quimb.dense", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999999, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 3.657295198167899e-10 + }, + { + "entry": "below_grid_k33", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1088862505292507e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 1.1088862505292507e-16, + "global_phase": -2.628214253855832e-26, + "seconds": 0.0006372500211000443 + }, + { + "entry": "below_grid_k33", + "engine": "quimb.tensor_network", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 3.657295198167899e-10 + }, + { + "entry": "below_grid_k33", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3375808166543595e-19, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 1.3375808166545222e-19, + "global_phase": 6.597185983559708e-26, + "seconds": 0.006643666070885956 + }, + { + "entry": "below_grid_k33", + "engine": "ddsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999998, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 3.657295198167899e-10 + }, + { + "entry": "below_grid_k33", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.568877466458933e-17, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 9.28977634359184e-17, + "global_phase": -6.568850230033155e-17, + "seconds": 0.002044458989985287 + }, + { + "entry": "below_grid_k33", + "engine": "qsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0000001796095168, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 3.657295198167899e-10 + }, + { + "entry": "below_grid_k33", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 2.2217836300669674e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "planned statevector" + }, + { + "entry": "below_grid_k40", + "engine": "wai.exact", + "quantity": "refuses, as listed: an angle no grid of 2^32 holds within 10^-14 of a turn", + "measured": "the angle 0.000000000005714523747137342 is not a dyadic multiple of 2\u03c0 (2\u03c0m/2^k, k \u2264 32) [Q500]", + "tolerance": "[Q500]", + "status": "refused" + }, + { + "entry": "below_grid_k40", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.220446130889769e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.220446130889769e-16, + "global_phase": 3.419238090495615e-28, + "seconds": 1.3416e-05 + }, + { + "entry": "below_grid_k40", + "engine": "wai.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.857261873568671e-12 + }, + { + "entry": "below_grid_k40", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.123233995718975e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.659560562386814e-17, + "global_phase": 6.123233995799644e-17, + "seconds": 6.9958e-05 + }, + { + "entry": "below_grid_k40", + "engine": "aer.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999785695737154, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.857261873568671e-12 + }, + { + "entry": "below_grid_k40", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.123233995718975e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.659560562386814e-17, + "global_phase": 6.123233995799644e-17, + "seconds": 6.3708e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "below_grid_k40", + "engine": "aer.qasm_import", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999785695737154, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.857261873568671e-12 + }, + { + "entry": "below_grid_k40", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.2204459676108604e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.2204459676108604e-16, + "global_phase": -1.1916179177194308e-28, + "seconds": 0.5176627500914037 + }, + { + "entry": "below_grid_k40", + "engine": "quimb.dense", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999999, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.857261873568671e-12 + }, + { + "entry": "below_grid_k40", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1102229429857054e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 1.1102229429857054e-16, + "global_phase": -2.0583878330314597e-28, + "seconds": 0.00146566703915596 + }, + { + "entry": "below_grid_k40", + "engine": "quimb.tensor_network", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.857261873568671e-12 + }, + { + "entry": "below_grid_k40", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.163945430410356e-24, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 8.16394544667156e-24, + "global_phase": 5.152777687854373e-28, + "seconds": 0.005340541014447808 + }, + { + "entry": "below_grid_k40", + "engine": "ddsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999998, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.857261873568671e-12 + }, + { + "entry": "below_grid_k40", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.131914243517235e-19, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 7.25762272319939e-19, + "global_phase": -5.1319142422184975e-19, + "seconds": 0.0014925419818609953 + }, + { + "entry": "below_grid_k40", + "engine": "qsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0000001796095168, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.857261873568671e-12 + }, + { + "entry": "below_grid_k40", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 2.2204461308897673e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "planned statevector" + }, + { + "entry": "below_grid_k47", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.2322358387255243e-14, + "tolerance": 6.359468354083656e-09, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 3.1568581975409175e-14, + "global_phase": 2.2322358387255243e-14 + }, + { + "entry": "below_grid_k47", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.232346271920288e-14, + "tolerance": 4.8349647275852546e-14, + "status": "pass", + "note": "the reader moved its angles by 7.11e-15 of a turn in all, as its rule has it" + }, + { + "entry": "below_grid_k47", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "below_grid_k47", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.2204460492552957e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.2204460492552957e-16, + "global_phase": 2.6712795152298427e-30, + "seconds": 1.3458e-05 + }, + { + "entry": "below_grid_k47", + "engine": "wai.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.2322358387255243e-14 + }, + { + "entry": "below_grid_k47", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.123233995736529e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.659560562355044e-17, + "global_phase": 6.12323399573716e-17, + "seconds": 6.6583e-05 + }, + { + "entry": "below_grid_k47", + "engine": "aer.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9972569054355688, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.2322358387255243e-14 + }, + { + "entry": "below_grid_k47", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.123233995736529e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.659560562355044e-17, + "global_phase": 6.12323399573716e-17, + "seconds": 8.3125e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "below_grid_k47", + "engine": "aer.qasm_import", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9972569054355688, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.2322358387255243e-14 + }, + { + "entry": "below_grid_k47", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.2204460492453302e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.2204460492453302e-16, + "global_phase": -9.309517411881617e-31, + "seconds": 0.5267902920022607 + }, + { + "entry": "below_grid_k47", + "engine": "quimb.dense", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999999, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.2322358387255243e-14 + }, + { + "entry": "below_grid_k47", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1102230246201737e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 1.1102230246201737e-16, + "global_phase": -1.6081157375256844e-30, + "seconds": 0.0005880839889869094 + }, + { + "entry": "below_grid_k47", + "engine": "quimb.tensor_network", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.2322358387255243e-14 + }, + { + "entry": "below_grid_k47", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.2322358387255243e-14, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 3.1568581975409175e-14, + "global_phase": 2.2322358387255243e-14, + "seconds": 0.005247208988294005 + }, + { + "entry": "below_grid_k47", + "engine": "ddsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": -4.318084277547319e-78, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "info", + "note": "drops it: the angle, 4.46e-14 rad, is below its parameter tolerance of 1e-13 rad, where it may read an angle as 0", + "step": 2.2322358387255243e-14 + }, + { + "entry": "below_grid_k47", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.0093080017332636e-21, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 5.67001775178211e-21, + "global_phase": -4.009308001733202e-21, + "seconds": 0.0017613749951124191 + }, + { + "entry": "below_grid_k47", + "engine": "qsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0000001796095168, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.2322358387255243e-14 + }, + { + "entry": "below_grid_k47", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 2.2322358387255243e-14, + "tolerance": 6.359468798172866e-09, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "below_grid_k48", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1161179193627622e-14, + "tolerance": 6.359468354083656e-09, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 1.5784290987704587e-14, + "global_phase": 1.1161179193627622e-14 + }, + { + "entry": "below_grid_k48", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.1163387693654755e-14, + "tolerance": 2.6027288888597302e-14, + "status": "pass", + "note": "the reader moved its angles by 3.55e-15 of a turn in all, as its rule has it" + }, + { + "entry": "below_grid_k48", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "below_grid_k48", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.2204460492515585e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.2204460492515585e-16, + "global_phase": 1.3356397576093598e-30, + "seconds": 1.325e-05 + }, + { + "entry": "below_grid_k48", + "engine": "wai.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.1161179193627622e-14 + }, + { + "entry": "below_grid_k48", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.123233995736643e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.659560562354982e-17, + "global_phase": 6.123233995736958e-17, + "seconds": 6.75e-05 + }, + { + "entry": "below_grid_k48", + "engine": "aer.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9945138108711374, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.1161179193627622e-14 + }, + { + "entry": "below_grid_k48", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.123233995736643e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.659560562354982e-17, + "global_phase": 6.123233995736958e-17, + "seconds": 7.6292e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "below_grid_k48", + "engine": "aer.qasm_import", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9945138108711374, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.1161179193627622e-14 + }, + { + "entry": "below_grid_k48", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.2204460492490674e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.2204460492490674e-16, + "global_phase": -4.654758705996424e-31, + "seconds": 0.5210537080420181 + }, + { + "entry": "below_grid_k48", + "engine": "quimb.dense", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999999, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.1161179193627622e-14 + }, + { + "entry": "below_grid_k48", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1102230246239108e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 1.1102230246239108e-16, + "global_phase": -8.040578687684036e-31, + "seconds": 0.0006201250944286585 + }, + { + "entry": "below_grid_k48", + "engine": "quimb.tensor_network", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.1161179193627622e-14 + }, + { + "entry": "below_grid_k48", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1161179193627622e-14, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 1.5784290987704587e-14, + "global_phase": 1.1161179193627622e-14, + "seconds": 0.004996666102670133 + }, + { + "entry": "below_grid_k48", + "engine": "ddsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": -4.31808427754727e-78, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "info", + "note": "drops it: the angle, 2.23e-14 rad, is below its parameter tolerance of 1e-13 rad, where it may read an angle as 0", + "step": 1.1161179193627622e-14 + }, + { + "entry": "below_grid_k48", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.0046540008666085e-21, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 2.8350088758910386e-21, + "global_phase": -2.004654000866601e-21, + "seconds": 0.00168224994558841 + }, + { + "entry": "below_grid_k48", + "engine": "qsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0000001796095168, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 1.1161179193627622e-14 + }, + { + "entry": "below_grid_k48", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.1161179193627622e-14, + "tolerance": 6.359468798172866e-09, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "below_grid_k52", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.975736996017264e-16, + "tolerance": 6.359468354083656e-09, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 9.865181867315367e-16, + "global_phase": 6.975736996017264e-16 + }, + { + "entry": "below_grid_k52", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 7.320607030515658e-16, + "tolerance": 5.100077900545513e-15, + "status": "pass", + "note": "the reader moved its angles by 2.22e-16 of a turn in all, as its rule has it" + }, + { + "entry": "below_grid_k52", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "below_grid_k52", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.220446049250318e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.220446049250318e-16, + "global_phase": 8.347748485046958e-32, + "seconds": 1.2625e-05 + }, + { + "entry": "below_grid_k52", + "engine": "wai.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 6.975736996017264e-16 + }, + { + "entry": "below_grid_k52", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.12323399573676e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.659560562354938e-17, + "global_phase": 6.12323399573678e-17, + "seconds": 6.525e-05 + }, + { + "entry": "below_grid_k52", + "engine": "aer.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.912220973938198, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 6.975736996017264e-16 + }, + { + "entry": "below_grid_k52", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.12323399573676e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.659560562354938e-17, + "global_phase": 6.12323399573678e-17, + "seconds": 7.6125e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "below_grid_k52", + "engine": "aer.qasm_import", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.912220973938198, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 6.975736996017264e-16 + }, + { + "entry": "below_grid_k52", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.2204460492503082e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.2204460492503082e-16, + "global_phase": -2.9092241912593063e-32, + "seconds": 0.5181437080027536 + }, + { + "entry": "below_grid_k52", + "engine": "quimb.dense", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999999, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 6.975736996017264e-16 + }, + { + "entry": "below_grid_k52", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1102230246251516e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 1.1102230246251516e-16, + "global_phase": -5.025361679814063e-32, + "seconds": 0.0006188750267028809 + }, + { + "entry": "below_grid_k52", + "engine": "quimb.tensor_network", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 6.975736996017264e-16 + }, + { + "entry": "below_grid_k52", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.975736996017264e-16, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 9.865181867315367e-16, + "global_phase": 6.975736996017264e-16, + "seconds": 0.005563082988373935 + }, + { + "entry": "below_grid_k52", + "engine": "ddsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": -4.318084277547225e-78, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "info", + "note": "drops it: the angle, 1.4e-15 rad, is below its parameter tolerance of 1e-13 rad, where it may read an angle as 0", + "step": 6.975736996017264e-16 + }, + { + "entry": "below_grid_k52", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.2529087505416256e-22, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.7718805474318958e-22, + "global_phase": -1.2529087505416256e-22, + "seconds": 0.0017705420032143593 + }, + { + "entry": "below_grid_k52", + "engine": "qsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0000001796095168, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 6.975736996017264e-16 + }, + { + "entry": "below_grid_k52", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 6.975736996017264e-16, + "tolerance": 6.359468798172866e-09, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "below_grid_k60", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.7248972640692436e-18, + "tolerance": 6.359468354083656e-09, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 3.853586666920065e-18, + "global_phase": 2.7248972640692436e-18 + }, + { + "entry": "below_grid_k60", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.220613240557954e-16, + "tolerance": 3.7103802958702e-15, + "status": "pass", + "note": "the reader moved its angles by 8.67e-19 of a turn in all, as its rule has it" + }, + { + "entry": "below_grid_k60", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "below_grid_k60", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.220446049250313e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.220446049250313e-16, + "global_phase": 3.2608392519714503e-34, + "seconds": 1.2791e-05 + }, + { + "entry": "below_grid_k60", + "engine": "wai.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "info", + "note": "neither can be told: its distance from the ideal state, 2.22e-16, is more than half the gate's effect, 2.72e-18", + "step": 2.7248972640692436e-18 + }, + { + "entry": "below_grid_k60", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.123233995736766e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.659560562354932e-17, + "global_phase": 6.123233995736765e-17, + "seconds": 6.8666e-05 + }, + { + "entry": "below_grid_k60", + "engine": "aer.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": -21.47143067182134, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "info", + "note": "neither can be told: its distance from the ideal state, 6.12e-17, is more than half the gate's effect, 2.72e-18", + "step": 2.7248972640692436e-18 + }, + { + "entry": "below_grid_k60", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.123233995736766e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.659560562354932e-17, + "global_phase": 6.123233995736765e-17, + "seconds": 8.1083e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "below_grid_k60", + "engine": "aer.qasm_import", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": -21.47143067182134, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "info", + "note": "neither can be told: its distance from the ideal state, 6.12e-17, is more than half the gate's effect, 2.72e-18", + "step": 2.7248972640692436e-18 + }, + { + "entry": "below_grid_k60", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.220446049250313e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.220446049250313e-16, + "global_phase": -1.136415699710684e-34, + "seconds": 0.5310310000786558 + }, + { + "entry": "below_grid_k60", + "engine": "quimb.dense", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999999, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "info", + "note": "neither can be told: its distance from the ideal state, 2.22e-16, is more than half the gate's effect, 2.72e-18", + "step": 2.7248972640692436e-18 + }, + { + "entry": "below_grid_k60", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1102230246251565e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 1.1102230246251565e-16, + "global_phase": -1.9630319061773865e-34, + "seconds": 0.0007335409754887223 + }, + { + "entry": "below_grid_k60", + "engine": "quimb.tensor_network", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "info", + "note": "neither can be told: its distance from the ideal state, 1.11e-16, is more than half the gate's effect, 2.72e-18", + "step": 2.7248972640692436e-18 + }, + { + "entry": "below_grid_k60", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.7248972640692436e-18, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 3.853586666920065e-18, + "global_phase": 2.7248972640692436e-18, + "seconds": 0.006361834006384015 + }, + { + "entry": "below_grid_k60", + "engine": "ddsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": -4.3180842775472223e-78, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "info", + "note": "drops it: the angle, 5.45e-18 rad, is below its parameter tolerance of 1e-13 rad, where it may read an angle as 0", + "step": 2.7248972640692436e-18 + }, + { + "entry": "below_grid_k60", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.894174806803225e-25, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 6.921408388405842e-25, + "global_phase": -4.894174806803225e-25, + "seconds": 0.0015851249918341637 + }, + { + "entry": "below_grid_k60", + "engine": "qsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0000001796095168, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.7248972640692436e-18 + }, + { + "entry": "below_grid_k60", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 2.7248972640692436e-18, + "tolerance": 6.359468798172866e-09, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "tiny_radians", + "engine": "wai.exact", + "quantity": "refuses, as listed: an angle no grid of 2^32 holds within 10^-14 of a turn", + "measured": "the angle 0.000000000001 is not a dyadic multiple of 2\u03c0 (2\u03c0m/2^k, k \u2264 32) [Q500]", + "tolerance": "[Q500]", + "status": "refused" + }, + { + "entry": "tiny_radians", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.220446050500313e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.220446050500313e-16, + "global_phase": -8.636168555094445e-78, + "seconds": 1.4208e-05 + }, + { + "entry": "tiny_radians", + "engine": "wai.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 5e-13 + }, + { + "entry": "tiny_radians", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.123233995739025e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.659560562364557e-17, + "global_phase": 6.123233995748117e-17, + "seconds": 6.7583e-05 + }, + { + "entry": "tiny_radians", + "engine": "aer.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9998775353200852, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 5e-13 + }, + { + "entry": "tiny_radians", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.123233995739025e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.659560562364557e-17, + "global_phase": 6.123233995748117e-17, + "seconds": 0.000119917, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "tiny_radians", + "engine": "aer.qasm_import", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9998775353200852, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 5e-13 + }, + { + "entry": "tiny_radians", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.220446048000313e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.220446048000313e-16, + "global_phase": -8.636168555094445e-78, + "seconds": 0.635874166036956 + }, + { + "entry": "tiny_radians", + "engine": "quimb.dense", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999999, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 5e-13 + }, + { + "entry": "tiny_radians", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1102230233751565e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 1.1102230233751565e-16, + "global_phase": 6.15135748657355e-30, + "seconds": 0.0005718340398743749 + }, + { + "entry": "tiny_radians", + "engine": "quimb.tensor_network", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999998, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 5e-13 + }, + { + "entry": "tiny_radians", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.0710678118654759e-13, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 2.0710678118654759e-13, + "global_phase": -8.636168555094445e-78, + "seconds": 0.005865374929271638 + }, + { + "entry": "tiny_radians", + "engine": "ddsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.4142135623730951, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 5e-13 + }, + { + "entry": "tiny_radians", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.2212207224549863e-20, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 5.2212207224549863e-20, + "global_phase": -8.636168555094445e-78, + "seconds": 0.0016536250477656722 + }, + { + "entry": "tiny_radians", + "engine": "qsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0000001044244144, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 5e-13 + }, + { + "entry": "tiny_radians", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 2.220446050500313e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "planned statevector" + }, + { + "entry": "controlled_small_angle_k30", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1420141439699675e-10, + "tolerance": 1.124205801572448e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 1.318684346878841e-10, + "global_phase": 6.593421734394193e-11 + }, + { + "entry": "controlled_small_angle_k30", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.220446049250313e-16, + "tolerance": 5.113306542163034e-15, + "status": "pass" + }, + { + "entry": "controlled_small_angle_k30", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "controlled_small_angle_k30", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.264462534400411e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.264462534400411e-16, + "global_phase": 1.9176275486733354e-25, + "seconds": 1.3792e-05 + }, + { + "entry": "controlled_small_angle_k30", + "engine": "wai.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.533848440601795e-09 + }, + { + "entry": "controlled_small_angle_k30", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.5107736123526882e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.5107736123526882e-16, + "global_phase": 1.6248208038498013e-25, + "seconds": 6.8875e-05 + }, + { + "entry": "controlled_small_angle_k30", + "engine": "aer.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999998, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.533848440601795e-09 + }, + { + "entry": "controlled_small_angle_k30", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.5107736123526882e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.5107736123526882e-16, + "global_phase": 1.6248208038498013e-25, + "seconds": 8.9e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "controlled_small_angle_k30", + "engine": "aer.qasm_import", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999998, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.533848440601795e-09 + }, + { + "entry": "controlled_small_angle_k30", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.1789050545163395e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.1789050545163395e-16, + "global_phase": -4.43130727532768e-26, + "seconds": 0.5433771250536665 + }, + { + "entry": "controlled_small_angle_k30", + "engine": "quimb.dense", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 0.9999999999999999, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.533848440601795e-09 + }, + { + "entry": "controlled_small_angle_k30", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.2442154962177805e-16, + "tolerance": 1.2179168538502112e-14, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 1.2442154962177805e-16, + "global_phase": -2.9672735360837903e-26, + "seconds": 0.0007592081092298031 + }, + { + "entry": "controlled_small_angle_k30", + "engine": "quimb.tensor_network", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.533848440601795e-09 + }, + { + "entry": "controlled_small_angle_k30", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.264462534400411e-16, + "tolerance": 2.0536705801163775e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 2.264462534400411e-16, + "global_phase": 1.9176275486733354e-25, + "seconds": 0.005941374925896525 + }, + { + "entry": "controlled_small_angle_k30", + "engine": "ddsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.0, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.533848440601795e-09 + }, + { + "entry": "controlled_small_angle_k30", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.629464108145288e-16, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.035841329600863e-16, + "global_phase": -1.5173170672237367e-16, + "seconds": 0.0016951250145211816 + }, + { + "entry": "controlled_small_angle_k30", + "engine": "qsim.statevector", + "quantity": "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)", + "measured": 1.000000103718526, + "tolerance": [ + 0.5, + 1.5 + ], + "status": "pass", + "note": "holds it", + "step": 2.533848440601795e-09 + }, + { + "entry": "controlled_small_angle_k30", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 1.318684346878841e-10, + "tolerance": 1.124205845981369e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "repeated_phase_k19", + "engine": "wai.exact", + "quantity": "distance from the exact state, with its phase", + "measured": 2.090091719567029e-05, + "tolerance": 0.0005896954749609032, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 2.090091719567029e-05, + "global_phase": -8.98616194923116e-06 + }, + { + "entry": "repeated_phase_k19", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.1469269978192642e-11, + "tolerance": 3.691996255357389e-10, + "status": "pass" + }, + { + "entry": "repeated_phase_k19", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "repeated_phase_k19", + "engine": "wai.exact", + "quantity": "modulus of the half turn's amplitude against the extension's figure, 1.0000189 (section 5)", + "measured": 1.0000188704983832, + "tolerance": [ + 1.00001885, + 1.00001895 + ], + "status": "pass" + }, + { + "entry": "repeated_phase_k19", + "engine": "wai.exact", + "quantity": "its angle from the half turn, in radians, which the extension states is within 1e-5", + "measured": 8.986161949664506e-06, + "tolerance": 1e-05, + "status": "pass" + }, + { + "entry": "repeated_phase_k19", + "engine": "wai.statevector", + "quantity": "distance from the exact state, with its phase", + "measured": 1.1478380657970898e-11, + "tolerance": 1.2323077410585953e-09, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.1478380657970898e-11, + "global_phase": 1.2540980081523036e-14, + "seconds": 0.040856584 + }, + { + "entry": "repeated_phase_k19", + "engine": "aer.statevector", + "quantity": "distance from the exact state, with its phase", + "measured": 1.1478380657970898e-11, + "tolerance": 6.385440635465657e-10, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.1478380657970898e-11, + "global_phase": 1.2540980081523036e-14, + "seconds": 0.084487917 + }, + { + "entry": "repeated_phase_k19", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, with its phase", + "measured": 1.1472378602661593e-11, + "tolerance": 1.1984830013680813e-07, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 1.1472378602661593e-11, + "global_phase": 1.8012456755360483e-73, + "seconds": 0.6355022500501946 + }, + { + "entry": "repeated_phase_k19", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, with its phase", + "measured": 3.567080057109706e-06, + "tolerance": 0.4603361563387136, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.567080057109706e-06, + "global_phase": -3.567080057094577e-06, + "seconds": 2.439985541976057 + }, + { + "entry": "repeated_phase_k19", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 2.090091719567029e-05, + "tolerance": 0.0005896954749613473, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "repeated_phase_k19_quarter", + "engine": "wai.exact", + "quantity": "distance from the exact state, with its phase", + "measured": 1.047244444186998e-05, + "tolerance": 0.0002947757619556973, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 1.047244444186998e-05, + "global_phase": -4.540154705363209e-06 + }, + { + "entry": "repeated_phase_k19_quarter", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 5.743183706385935e-12, + "tolerance": 1.8460096101102305e-10, + "status": "pass" + }, + { + "entry": "repeated_phase_k19_quarter", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "repeated_phase_k19_quarter", + "engine": "wai.statevector", + "quantity": "distance from the exact state, with its phase", + "measured": 5.74251759013435e-12, + "tolerance": 6.161562205811709e-10, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 5.74251759013435e-12, + "global_phase": -4.491256677518576e-16, + "seconds": 0.019211334 + }, + { + "entry": "repeated_phase_k19_quarter", + "engine": "aer.statevector", + "quantity": "distance from the exact state, with its phase", + "measured": 5.74251759013435e-12, + "tolerance": 3.1927446750505746e-10, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 5.74251759013435e-12, + "global_phase": -4.491256677518576e-16, + "seconds": 0.037688292 + }, + { + "entry": "repeated_phase_k19_quarter", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, with its phase", + "measured": 5.740297126521909e-12, + "tolerance": 5.992437510718075e-08, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 5.740297126521909e-12, + "global_phase": -2.703379842801214e-73, + "seconds": 0.30666233296506107 + }, + { + "entry": "repeated_phase_k19_quarter", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, with its phase", + "measured": 1.6820540622575209e-06, + "tolerance": 0.20078852355361088, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.6820540622575209e-06, + "global_phase": -1.6820540622559346e-06, + "seconds": 1.2120335419895127 + }, + { + "entry": "repeated_phase_k19_quarter", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 1.047244444186998e-05, + "tolerance": 0.0002947757619561414, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "h_squared_chain", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.268858116783184e-74, + "tolerance": 1.3024290507716588e-05, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 4.268858116783184e-74, + "global_phase": 0.0 + }, + { + "entry": "h_squared_chain", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 3.2152058793144533e-13, + "tolerance": 5.769596441655645e-12, + "status": "pass" + }, + { + "entry": "h_squared_chain", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "h_squared_chain", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.220446049250313e-16, + "tolerance": 1.925473497969857e-11, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.220446049250313e-16, + "global_phase": 0.0, + "seconds": 0.000857041 + }, + { + "entry": "h_squared_chain", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.2540383223268955e-13, + "tolerance": 9.979610700548103e-12, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.7734780031702986e-13, + "global_phase": 1.2540383223268955e-13, + "seconds": 0.001152958 + }, + { + "entry": "h_squared_chain", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.268858116783184e-74, + "tolerance": 1.8726223275672444e-09, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 4.268858116783184e-74, + "global_phase": 0.0, + "seconds": 0.011749959085136652 + }, + { + "entry": "h_squared_chain", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.268858116783184e-74, + "tolerance": 0.005385146579735082, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 4.268858116783184e-74, + "global_phase": 0.0, + "seconds": 0.03480233298614621 + }, + { + "entry": "h_squared_chain", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.2152058793144533e-13, + "tolerance": 1.925473497969857e-11, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 3.2152058793144533e-13, + "global_phase": 0.0, + "seconds": 1.4285633750259876 + }, + { + "entry": "h_squared_chain", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 1, + "tolerance": 1, + "status": "pass" + }, + { + "entry": "h_squared_chain", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.00043887505307793617 + }, + { + "entry": "h_squared_chain", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 0.001089917 + }, + { + "entry": "h_squared_chain", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 0, + "tolerance": 0, + "status": "pass" + }, + { + "entry": "h_squared_chain", + "engine": "aer.stabilizer", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.001087958 + }, + { + "entry": "h_squared_chain", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 4.268858116783184e-74, + "tolerance": 1.3024290508160677e-05, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_id", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.215285710182298e-10, + "tolerance": 1.31047032241826e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.34192377730194323, + "global_phase": -0.343611696318314 + }, + { + "entry": "gate_id", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.797157557069881e-17, + "tolerance": 1.0746810705446966e-14, + "status": "pass" + }, + { + "entry": "gate_id", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_id", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 1.4666e-05 + }, + { + "entry": "gate_id", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 6.3875e-05 + }, + { + "entry": "gate_id", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 8.1834e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_id", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 0.4866178329102695 + }, + { + "entry": "gate_id", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 5.633504163283886e-15, + "status": "pass", + "note": "double precision, a contraction of width 1.0", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 0.0005180409643799067 + }, + { + "entry": "gate_id", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.450168008707881e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 7.823846913581342e-17, + "global_phase": -2.389053613710233e-17, + "seconds": 0.007302417070604861 + }, + { + "entry": "gate_id", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.9297896670805505e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.96561472339793e-08, + "global_phase": -5.3183955982678255e-09, + "seconds": 0.001657125074416399 + }, + { + "entry": "gate_id", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 6.889481879551719e-10, + "tolerance": 1.310470366827181e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_x", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.215285710182298e-10, + "tolerance": 1.31047032241826e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.34192377730194323, + "global_phase": -0.343611696318314 + }, + { + "entry": "gate_x", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.797157557069881e-17, + "tolerance": 1.2155186746267961e-14, + "status": "pass" + }, + { + "entry": "gate_x", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_x", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 1.4916e-05 + }, + { + "entry": "gate_x", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 6.9167e-05 + }, + { + "entry": "gate_x", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 7.2083e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_x", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 0.4983305420028046 + }, + { + "entry": "gate_x", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.601258332818384e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 2.612115705267018e-16, + "global_phase": 2.3791499247742048e-17, + "seconds": 0.0005506250308826566 + }, + { + "entry": "gate_x", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.450168008707881e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 7.823846913581342e-17, + "global_phase": -2.389053613710233e-17, + "seconds": 0.004994707996957004 + }, + { + "entry": "gate_x", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.9297896670805505e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.96561472339793e-08, + "global_phase": -5.3183955982678255e-09, + "seconds": 0.0016768750501796603 + }, + { + "entry": "gate_x", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 6.889481879551719e-10, + "tolerance": 1.310470366827181e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_y", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.215285710182298e-10, + "tolerance": 1.31047032241826e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.34192377730194323, + "global_phase": -0.343611696318314 + }, + { + "entry": "gate_y", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.797157557069881e-17, + "tolerance": 1.2155186746267961e-14, + "status": "pass" + }, + { + "entry": "gate_y", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_y", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 1.2417e-05 + }, + { + "entry": "gate_y", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 7.5375e-05 + }, + { + "entry": "gate_y", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 8.3417e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_y", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 0.5177787500433624 + }, + { + "entry": "gate_y", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.601258332818384e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 2.612115705267018e-16, + "global_phase": 2.3791499247742048e-17, + "seconds": 0.0008301249472424388 + }, + { + "entry": "gate_y", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.450168008707881e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 7.823846913581342e-17, + "global_phase": -2.389053613710233e-17, + "seconds": 0.005592041998170316 + }, + { + "entry": "gate_y", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.9297896670805505e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.96561472339793e-08, + "global_phase": -5.3183955982678255e-09, + "seconds": 0.0016497090691700578 + }, + { + "entry": "gate_y", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 6.889481853437328e-10, + "tolerance": 1.310470366827181e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_z", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.215285710182298e-10, + "tolerance": 1.31047032241826e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.34192377730194323, + "global_phase": -0.343611696318314 + }, + { + "entry": "gate_z", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.797157557069881e-17, + "tolerance": 1.2155186746267961e-14, + "status": "pass" + }, + { + "entry": "gate_z", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_z", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 1.375e-05 + }, + { + "entry": "gate_z", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 6.2834e-05 + }, + { + "entry": "gate_z", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 8.375e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_z", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 0.5139708330389112 + }, + { + "entry": "gate_z", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.601258332818384e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 2.612115705267018e-16, + "global_phase": 2.3791499247742048e-17, + "seconds": 0.0006588329561054707 + }, + { + "entry": "gate_z", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.450168008707881e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 7.823846913581342e-17, + "global_phase": -2.389053613710233e-17, + "seconds": 0.00518912507686764 + }, + { + "entry": "gate_z", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.9297896670805505e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.96561472339793e-08, + "global_phase": -5.3183955982678255e-09, + "seconds": 0.0017044999403879046 + }, + { + "entry": "gate_z", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 6.889481879551719e-10, + "tolerance": 1.310470366827181e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_h", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.297418772464286e-10, + "tolerance": 1.6284437449324706e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.34192377761663945, + "global_phase": -0.3436116965470948 + }, + { + "entry": "gate_h", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.6184142622847344e-16, + "tolerance": 1.2155186746267961e-14, + "status": "pass" + }, + { + "entry": "gate_h", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_h", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.21629110735534e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.2276852703978877e-16, + "global_phase": -1.6687439983489124e-17, + "seconds": 1.3917e-05 + }, + { + "entry": "gate_h", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.302360779314378e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 4.3023652669763116e-17, + "global_phase": -6.214105046513707e-20, + "seconds": 7.0083e-05 + }, + { + "entry": "gate_h", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.302360779314378e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 4.3023652669763116e-17, + "global_phase": -6.214105046513707e-20, + "seconds": 7.4709e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_h", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.0522854711993345e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.0613476464155822e-16, + "global_phase": -1.3839838747142408e-17, + "seconds": 0.5318124999757856 + }, + { + "entry": "gate_h", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4061607773457148e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 1.4067532397194434e-16, + "global_phase": -4.0823347678073176e-18, + "seconds": 0.0005724999355152249 + }, + { + "entry": "gate_h", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.2969339781024482e-16, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 1.2980934883817818e-16, + "global_phase": 5.485399732509767e-18, + "seconds": 0.0051901249680668116 + }, + { + "entry": "gate_h", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.8615613090768116e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 5.870101997830907e-08, + "global_phase": -3.165382910808944e-09, + "seconds": 0.0017924170242622495 + }, + { + "entry": "gate_h", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 6.106383581313981e-10, + "tolerance": 1.6284437893413916e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_s", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.215285710182298e-10, + "tolerance": 1.31047032241826e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.34192377730194323, + "global_phase": -0.343611696318314 + }, + { + "entry": "gate_s", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.797157557069881e-17, + "tolerance": 1.2155186746267961e-14, + "status": "pass" + }, + { + "entry": "gate_s", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_s", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 1.3875e-05 + }, + { + "entry": "gate_s", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 6.9708e-05 + }, + { + "entry": "gate_s", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 7.5208e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_s", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.630852225491436e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 7.941848649409825e-17, + "global_phase": -2.2006940457149062e-17, + "seconds": 0.5132220831001177 + }, + { + "entry": "gate_s", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.603005323109453e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 2.615108259473306e-16, + "global_phase": 2.51305584158725e-17, + "seconds": 0.0006515829591080546 + }, + { + "entry": "gate_s", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.450168008707881e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 7.823846913581342e-17, + "global_phase": -2.389053613710233e-17, + "seconds": 0.005658040987327695 + }, + { + "entry": "gate_s", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.9297896670805505e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.96561472339793e-08, + "global_phase": -5.3183955982678255e-09, + "seconds": 0.0016858750022947788 + }, + { + "entry": "gate_s", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 6.889481853437328e-10, + "tolerance": 1.310470366827181e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_sdg", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.215285710182298e-10, + "tolerance": 1.31047032241826e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.34192377730194323, + "global_phase": -0.343611696318314 + }, + { + "entry": "gate_sdg", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.797157557069881e-17, + "tolerance": 1.2155186746267961e-14, + "status": "pass" + }, + { + "entry": "gate_sdg", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_sdg", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 1.2583e-05 + }, + { + "entry": "gate_sdg", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 6.9083e-05 + }, + { + "entry": "gate_sdg", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.437755222056047e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.815859464913049e-17, + "global_phase": -2.401552920934474e-17, + "seconds": 7.7917e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_sdg", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.382173285089092e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 7.827453581328017e-17, + "global_phase": -2.6024117961540415e-17, + "seconds": 0.5135919169988483 + }, + { + "entry": "gate_sdg", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.603108606914298e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 2.6116569270757267e-16, + "global_phase": 2.1113380911481146e-17, + "seconds": 0.0006012500962242484 + }, + { + "entry": "gate_sdg", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.450168008707881e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 7.823846913581342e-17, + "global_phase": -2.389053613710233e-17, + "seconds": 0.0050181669648736715 + }, + { + "entry": "gate_sdg", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.0263177564077166e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 4.041685167365834e-08, + "global_phase": -3.5211407407071473e-09, + "seconds": 0.00173204205930233 + }, + { + "entry": "gate_sdg", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 6.889481853437328e-10, + "tolerance": 1.310470366827181e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_t", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.106142013710921e-10, + "tolerance": 1.5353114864300887e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.3419237772241995, + "global_phase": -0.34361169624455096 + }, + { + "entry": "gate_t", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.391654643720554e-16, + "tolerance": 1.2155186746267961e-14, + "status": "pass" + }, + { + "entry": "gate_t", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_t", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.505517921169503e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 7.853716323280881e-17, + "global_phase": -2.312587473280089e-17, + "seconds": 1.4e-05 + }, + { + "entry": "gate_t", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.717808846720379e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.992952424721852e-17, + "global_phase": -2.2074877633532985e-17, + "seconds": 6.9958e-05 + }, + { + "entry": "gate_t", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.717808846720379e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.992952424721852e-17, + "global_phase": -2.2074877633532985e-17, + "seconds": 6.7292e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_t", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.719606756839859e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.897950494461851e-17, + "global_phase": -1.7725634002671274e-17, + "seconds": 0.5225296249845996 + }, + { + "entry": "gate_t", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.5714418874366743e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 2.583379157683397e-16, + "global_phase": 2.4806146796528305e-17, + "seconds": 0.0006376249948516488 + }, + { + "entry": "gate_t", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.28475541557995e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 8.726175410066437e-17, + "global_phase": -2.7402490746767553e-17, + "seconds": 0.005094374995678663 + }, + { + "entry": "gate_t", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.89155383821739e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.9294051504657585e-08, + "global_phase": -5.440896726885419e-09, + "seconds": 0.0020068750018253922 + }, + { + "entry": "gate_t", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 5.618344701580195e-10, + "tolerance": 1.5353115308390097e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_tdg", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.106142013710921e-10, + "tolerance": 1.5353114864300887e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.3419237772241995, + "global_phase": -0.34361169624455096 + }, + { + "entry": "gate_tdg", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 3.925231146709438e-17, + "tolerance": 1.2155186746267961e-14, + "status": "pass" + }, + { + "entry": "gate_tdg", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_tdg", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.505517921169503e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 7.853716323280881e-17, + "global_phase": -2.312587473280089e-17, + "seconds": 1.2917e-05 + }, + { + "entry": "gate_tdg", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.717808846720379e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.992952424721852e-17, + "global_phase": -2.2074877633532985e-17, + "seconds": 7.05e-05 + }, + { + "entry": "gate_tdg", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.717808846720379e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.992952424721852e-17, + "global_phase": -2.2074877633532985e-17, + "seconds": 8.3833e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_tdg", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.970911421196547e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.431147619128386e-17, + "global_phase": -2.74751183636626e-17, + "seconds": 0.5202181250788271 + }, + { + "entry": "gate_tdg", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.6151964440328685e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 2.621579032190157e-16, + "global_phase": 1.8282281350235733e-17, + "seconds": 0.0006180000491440296 + }, + { + "entry": "gate_tdg", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.28475541557995e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 8.726175410066437e-17, + "global_phase": -2.7402490746767553e-17, + "seconds": 0.005320292082615197 + }, + { + "entry": "gate_tdg", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.89155383821739e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.9294051504657585e-08, + "global_phase": -5.440896726885419e-09, + "seconds": 0.0017556670354679227 + }, + { + "entry": "gate_tdg", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 5.618344701580195e-10, + "tolerance": 1.5353115308390097e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_sx", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.428935600037752e-10, + "tolerance": 1.9464171686312247e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.34192377821509556, + "global_phase": -0.34361169721419027 + }, + { + "entry": "gate_sx", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 4.47545209131181e-16, + "tolerance": 1.4971938827909958e-14, + "status": "pass" + }, + { + "entry": "gate_sx", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_sx", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.883143723085527e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.1089515082943579e-16, + "global_phase": -7.799576258747036e-17, + "seconds": 1.3042e-05 + }, + { + "entry": "gate_sx", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.883143723085527e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.1089515082943579e-16, + "global_phase": -7.799576258747036e-17, + "seconds": 8.2291e-05 + }, + { + "entry": "gate_sx", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.883143723085527e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.1089515082943579e-16, + "global_phase": -7.799576258747036e-17, + "seconds": 8.7833e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_sx", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.9607077632707053e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.1256783263827326e-16, + "global_phase": 8.210562796199066e-17, + "seconds": 0.5094600419979542 + }, + { + "entry": "gate_sx", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.419129816679908e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 1.1090496388272583e-16, + "global_phase": 8.243520055263914e-17, + "seconds": 0.0007136249914765358 + }, + { + "entry": "gate_sx", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.538395718338295e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 4.110604477631002e-17, + "global_phase": 2.0920862582516193e-17, + "seconds": 0.005892583052627742 + }, + { + "entry": "gate_sx", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.648781749494884e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 6.78300679413258e-08, + "global_phase": 1.3427146129244078e-08, + "seconds": 0.0017865410773083568 + }, + { + "entry": "gate_sx", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 6.677586199513426e-10, + "tolerance": 1.9464172130401457e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_sxdg", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.428935600037752e-10, + "tolerance": 1.9464171686312247e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.34192377821509556, + "global_phase": -0.34361169721419027 + }, + { + "entry": "gate_sxdg", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 4.644396126208125e-16, + "tolerance": 1.4971938827909958e-14, + "status": "pass" + }, + { + "entry": "gate_sxdg", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_sxdg", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.883143723085527e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.1089515082943579e-16, + "global_phase": -7.799576258747036e-17, + "seconds": 1.4625e-05 + }, + { + "entry": "gate_sxdg", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.883143723085527e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.1089515082943579e-16, + "global_phase": -7.799576258747036e-17, + "seconds": 7.225e-05 + }, + { + "entry": "gate_sxdg", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.883143723085527e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.1089515082943579e-16, + "global_phase": -7.799576258747036e-17, + "seconds": 6.8042e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_sxdg", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4844103062598976e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.7383536862858317e-16, + "global_phase": -9.046543988136775e-17, + "seconds": 0.48502799996640533 + }, + { + "entry": "gate_sxdg", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.6690080258750108e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 1.6741400176489413e-16, + "global_phase": -1.3098476345895072e-17, + "seconds": 0.0006239579524844885 + }, + { + "entry": "gate_sxdg", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.538395718338295e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 4.110604477631002e-17, + "global_phase": 2.0920862582516193e-17, + "seconds": 0.004947707988321781 + }, + { + "entry": "gate_sxdg", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.648781749494884e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 6.78300679413258e-08, + "global_phase": 1.3427146129244078e-08, + "seconds": 0.0015298330690711737 + }, + { + "entry": "gate_sxdg", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 6.677586199513426e-10, + "tolerance": 1.9464172130401457e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_p", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.995197887656662e-10, + "tolerance": 1.760152651279516e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.3419237771409687, + "global_phase": -0.34361169616729076 + }, + { + "entry": "gate_p", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 3.98609107286759e-17, + "tolerance": 1.3563562787088958e-14, + "status": "pass" + }, + { + "entry": "gate_p", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_p", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.313486160344785e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 7.704220013563471e-17, + "global_phase": -2.4223802756456756e-17, + "seconds": 1.2583e-05 + }, + { + "entry": "gate_p", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.313486160344785e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.704220013563471e-17, + "global_phase": -2.4223802756456756e-17, + "seconds": 7.1208e-05 + }, + { + "entry": "gate_p", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.313486160344785e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 7.704220013563471e-17, + "global_phase": -2.4223802756456756e-17, + "seconds": 6.6417e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_p", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.313486160344785e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 7.704220013563471e-17, + "global_phase": -2.4223802756456756e-17, + "seconds": 0.4815820410149172 + }, + { + "entry": "gate_p", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.591420616507136e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 2.603191180512201e-16, + "global_phase": 2.4727213882336242e-17, + "seconds": 0.0005827499553561211 + }, + { + "entry": "gate_p", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.278012833774088e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 7.7124430933596e-17, + "global_phase": -2.551922345944299e-17, + "seconds": 0.004816708969883621 + }, + { + "entry": "gate_p", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.039450838158249e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 4.069058074240716e-08, + "global_phase": -4.899699442767947e-09, + "seconds": 0.0015377909876406193 + }, + { + "entry": "gate_p", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 7.628483787943117e-10, + "tolerance": 1.760152695688437e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_rz", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.995197887656662e-10, + "tolerance": 1.760152651279516e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.4142227519932298, + "global_phase": -0.41724277398580156 + }, + { + "entry": "gate_rz", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.37549462997806e-16, + "tolerance": 1.3563562787088958e-14, + "status": "pass" + }, + { + "entry": "gate_rz", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_rz", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.675708805561484e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 8.906935906670267e-17, + "global_phase": -2.0163293299049675e-17, + "seconds": 1.3042e-05 + }, + { + "entry": "gate_rz", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.675708805561484e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.906935906670267e-17, + "global_phase": -2.0163293299049675e-17, + "seconds": 6.825e-05 + }, + { + "entry": "gate_rz", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.675708805561484e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.906935906670267e-17, + "global_phase": -2.0163293299049675e-17, + "seconds": 6.6e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_rz", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.675708805561484e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.906935906670267e-17, + "global_phase": -2.0163293299049675e-17, + "seconds": 0.502990375040099 + }, + { + "entry": "gate_rz", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.3950260021364374e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 2.423352576881746e-17, + "global_phase": 3.694430415771201e-18, + "seconds": 0.0006063750479370356 + }, + { + "entry": "gate_rz", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4185122429663647e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 2.4301320525273574e-17, + "global_phase": 2.3736116645869262e-18, + "seconds": 0.004904208006337285 + }, + { + "entry": "gate_rz", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.888940117507479e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 4.9245204249981744e-08, + "global_phase": -5.909026658431931e-09, + "seconds": 0.0026783329667523503 + }, + { + "entry": "gate_rz", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 7.628483407254665e-10, + "tolerance": 1.760152695688437e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_rx", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.721338463483747e-10, + "tolerance": 2.396099501536765e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.4142227532791676, + "global_phase": -0.4172427753140338 + }, + { + "entry": "gate_rx", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 3.6407709131783e-16, + "tolerance": 1.6380314868730963e-14, + "status": "pass" + }, + { + "entry": "gate_rx", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_rx", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.5931317397913e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 8.351343419056392e-17, + "global_phase": -3.476965240722211e-17, + "seconds": 4.6417e-05 + }, + { + "entry": "gate_rx", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.5931317397913e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.351343419056392e-17, + "global_phase": -3.476965240722211e-17, + "seconds": 7.0625e-05 + }, + { + "entry": "gate_rx", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.5931317397913e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.351343419056392e-17, + "global_phase": -3.476965240722211e-17, + "seconds": 7.0875e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_rx", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.5931317397913e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.351343419056392e-17, + "global_phase": -3.476965240722211e-17, + "seconds": 0.5224874169798568 + }, + { + "entry": "gate_rx", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.4224315513385303e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 4.747293914809713e-17, + "global_phase": -1.7259486340313865e-17, + "seconds": 0.0005693749990314245 + }, + { + "entry": "gate_rx", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.9052708578186267e-16, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 1.9052959352986414e-16, + "global_phase": -9.775449483214286e-19, + "seconds": 0.005463041947223246 + }, + { + "entry": "gate_rx", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.122435446302364e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 7.129914998234027e-08, + "global_phase": -3.2649839578724243e-09, + "seconds": 0.001752167008817196 + }, + { + "entry": "gate_rx", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 4.4181248630638904e-10, + "tolerance": 2.396099545945686e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_ry", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.2409363625347744e-09, + "tolerance": 2.396099501536765e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.414222752292711, + "global_phase": -0.41724277398367 + }, + { + "entry": "gate_ry", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 3.399349888776296e-16, + "tolerance": 1.9197066950372985e-14, + "status": "pass" + }, + { + "entry": "gate_ry", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_ry", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.57345942189955e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 6.842613937384835e-17, + "global_phase": -3.969624109223988e-17, + "seconds": 1.5834e-05 + }, + { + "entry": "gate_ry", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.57345942189955e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 6.842613937384835e-17, + "global_phase": -3.969624109223988e-17, + "seconds": 6.7125e-05 + }, + { + "entry": "gate_ry", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.57345942189955e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 6.842613937384835e-17, + "global_phase": -3.969624109223988e-17, + "seconds": 7.2875e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_ry", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.57345942189955e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 6.842613937384835e-17, + "global_phase": -3.969624109223988e-17, + "seconds": 0.509302958031185 + }, + { + "entry": "gate_ry", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.6674804081621045e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 1.6948196926025085e-16, + "global_phase": -3.031878606224255e-17, + "seconds": 0.0007227500900626183 + }, + { + "entry": "gate_ry", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.0768514993279215e-16, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 2.076873167985705e-16, + "global_phase": -9.487130142598933e-19, + "seconds": 0.00493766600266099 + }, + { + "entry": "gate_ry", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.588589343875194e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 6.62136778343432e-08, + "global_phase": -6.580287270675968e-09, + "seconds": 0.001650916994549334 + }, + { + "entry": "gate_ry", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.2003202503841864e-09, + "tolerance": 2.396099545945686e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_u", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.3299399684452383e-09, + "tolerance": 3.520305348458589e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.414222751716885, + "global_phase": -0.41724277357252926 + }, + { + "entry": "gate_u", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 3.5135752366389115e-16, + "tolerance": 2.623894715447811e-14, + "status": "pass" + }, + { + "entry": "gate_u", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_u", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.314585777625235e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 8.691864484222037e-17, + "global_phase": -2.533016296550929e-17, + "seconds": 1.2375e-05 + }, + { + "entry": "gate_u", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.314585777625235e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.691864484222037e-17, + "global_phase": -2.533016296550929e-17, + "seconds": 6.8375e-05 + }, + { + "entry": "gate_u", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.314585777625235e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 8.691864484222037e-17, + "global_phase": -2.533016296550929e-17, + "seconds": 8.0833e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_u", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.705620158468847e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 9.062939036628874e-17, + "global_phase": -2.5197304693384104e-17, + "seconds": 0.5498194580432028 + }, + { + "entry": "gate_u", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.8147089735663164e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 4.01615510436094e-17, + "global_phase": -1.2559845816239341e-17, + "seconds": 0.0006767500890418887 + }, + { + "entry": "gate_u", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.358437662023061e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 9.242975907293169e-17, + "global_phase": -3.9457728612879396e-17, + "seconds": 0.00494249991606921 + }, + { + "entry": "gate_u", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.589486380371862e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 5.612864953246846e-08, + "global_phase": 5.11756754852118e-09, + "seconds": 0.0017585840541869402, + "adapter": [ + "U as a matrix" + ] + }, + { + "entry": "gate_u", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 2.2736198170971336e-09, + "tolerance": 3.52030539286751e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_cx", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.7176025563172868e-09, + "tolerance": 3.7065698406228126e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5097313190687244, + "global_phase": -0.5154175443934055 + }, + { + "entry": "gate_cx", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 3.3949429265039597e-16, + "tolerance": 2.2013819032015023e-14, + "status": "pass" + }, + { + "entry": "gate_cx", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_cx", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.168161905669198e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 8.91361828527817e-17, + "global_phase": -3.568434112943644e-17, + "seconds": 1.4666e-05 + }, + { + "entry": "gate_cx", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8904608864862223e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9816663129359017e-16, + "global_phase": -5.942718338359123e-17, + "seconds": 7.2041e-05 + }, + { + "entry": "gate_cx", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8904608864862223e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9816663129359017e-16, + "global_phase": -5.942718338359123e-17, + "seconds": 7.85e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_cx", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.168161905669198e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.91361828527817e-17, + "global_phase": -3.568434112943644e-17, + "seconds": 0.4990512499352917 + }, + { + "entry": "gate_cx", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.777998977551571e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 3.778483450154536e-16, + "global_phase": 6.050544364771103e-18, + "seconds": 0.0010509169660508633 + }, + { + "entry": "gate_cx", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.240978075601184e-17, + "tolerance": 3.422784300198615e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 4.424447715313029e-17, + "global_phase": -1.260889585891152e-17, + "seconds": 0.005614958005025983 + }, + { + "entry": "gate_cx", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.296212960624633e-08, + "tolerance": 6.538684074497576e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 4.296790162479773e-08, + "global_phase": -7.042653724334558e-10, + "seconds": 0.0016930829733610153 + }, + { + "entry": "gate_cx", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 7.758165017426065e-10, + "tolerance": 3.7065698850317336e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_cy", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.7176025563172868e-09, + "tolerance": 3.7065698406228126e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5097313190687244, + "global_phase": -0.5154175443934055 + }, + { + "entry": "gate_cy", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 3.4418964068514073e-16, + "tolerance": 2.2013819032015023e-14, + "status": "pass" + }, + { + "entry": "gate_cy", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_cy", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.168161905669198e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 8.91361828527817e-17, + "global_phase": -3.568434112943644e-17, + "seconds": 1.625e-05 + }, + { + "entry": "gate_cy", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8904608864862223e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9816663129359017e-16, + "global_phase": -5.942718338359123e-17, + "seconds": 6.6917e-05 + }, + { + "entry": "gate_cy", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8904608864862223e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9816663129359017e-16, + "global_phase": -5.942718338359123e-17, + "seconds": 6.8875e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_cy", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.168161905669198e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.91361828527817e-17, + "global_phase": -3.568434112943644e-17, + "seconds": 0.5230492909904569 + }, + { + "entry": "gate_cy", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.777998977551571e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 3.778483450154536e-16, + "global_phase": 6.050544364771103e-18, + "seconds": 0.000869082985445857 + }, + { + "entry": "gate_cy", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.5958386553221286e-17, + "tolerance": 3.422784300198615e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 3.801829443895296e-17, + "global_phase": -1.2344437959503701e-17, + "seconds": 0.008013624930754304 + }, + { + "entry": "gate_cy", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.678315546879831e-08, + "tolerance": 6.538684074497576e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 5.6825705358055105e-08, + "global_phase": -2.1986460052579153e-09, + "seconds": 0.0017819158965721726 + }, + { + "entry": "gate_cy", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 7.758165017426065e-10, + "tolerance": 3.7065698850317336e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_cz", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.7176025563172868e-09, + "tolerance": 3.7065698406228126e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5097313190687244, + "global_phase": -0.5154175443934055 + }, + { + "entry": "gate_cz", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 3.3949429265039597e-16, + "tolerance": 2.2013819032015023e-14, + "status": "pass" + }, + { + "entry": "gate_cz", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_cz", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.168161905669198e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 8.91361828527817e-17, + "global_phase": -3.568434112943644e-17, + "seconds": 1.5041e-05 + }, + { + "entry": "gate_cz", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8904608864862223e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9816663129359017e-16, + "global_phase": -5.942718338359123e-17, + "seconds": 7.125e-05 + }, + { + "entry": "gate_cz", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8904608864862223e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9816663129359017e-16, + "global_phase": -5.942718338359123e-17, + "seconds": 7.7875e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_cz", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.168161905669198e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.91361828527817e-17, + "global_phase": -3.568434112943644e-17, + "seconds": 0.5037128750700504 + }, + { + "entry": "gate_cz", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.021314172790941e-17, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 8.156704561960557e-17, + "global_phase": -6.427926048830758e-17, + "seconds": 0.0009522079490125179 + }, + { + "entry": "gate_cz", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.863654005462392e-17, + "tolerance": 3.422784300198615e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 3.2301684670985136e-17, + "global_phase": 1.4944812019014365e-17, + "seconds": 0.005588041967712343 + }, + { + "entry": "gate_cz", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.296212960624633e-08, + "tolerance": 6.538684074497576e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 4.296790162479773e-08, + "global_phase": -7.042653724334558e-10, + "seconds": 0.0015303329564630985 + }, + { + "entry": "gate_cz", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 7.758165017426065e-10, + "tolerance": 3.7065698850317336e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_ch", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.9341292084461625e-09, + "tolerance": 4.024543270561464e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.509731319102237, + "global_phase": -0.5154175444351148 + }, + { + "entry": "gate_ch", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 3.4383208299579344e-16, + "tolerance": 2.2013819032015023e-14, + "status": "pass" + }, + { + "entry": "gate_ch", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_ch", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.28975981095215e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 9.011893242098248e-17, + "global_phase": -3.534699716199192e-17, + "seconds": 1.5834e-05 + }, + { + "entry": "gate_ch", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.623398949999615e-17, + "tolerance": 2.9230004492405574e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.0533633233600722e-16, + "global_phase": -6.049332165550436e-17, + "seconds": 7.6958e-05 + }, + { + "entry": "gate_ch", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.623398949999615e-17, + "tolerance": 2.9230004492405574e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.0533633233600722e-16, + "global_phase": -6.049332165550436e-17, + "seconds": 7.6042e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_ch", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.244698913031682e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.985218225594548e-17, + "global_phase": -3.5719863374613633e-17, + "seconds": 0.5355633749859408 + }, + { + "entry": "gate_ch", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.72190845279248e-17, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 8.772139154731484e-17, + "global_phase": -9.37410417629485e-18, + "seconds": 0.0007565829437226057 + }, + { + "entry": "gate_ch", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1269851648944688e-16, + "tolerance": 3.422784300198615e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 1.1310339669549782e-16, + "global_phase": -9.561523159884953e-18, + "seconds": 0.005301333963871002 + }, + { + "entry": "gate_ch", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.8300203404652885e-08, + "tolerance": 6.538684074497576e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.830341195150859e-08, + "global_phase": -4.95768373465406e-10, + "seconds": 0.0017234169645234942 + }, + { + "entry": "gate_ch", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.0224330141402672e-09, + "tolerance": 4.024543314970385e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_csx", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.048677441247478e-09, + "tolerance": 5.241881377546922e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5097313188212698, + "global_phase": -0.5154175438919232 + }, + { + "entry": "gate_csx", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 5.66737770278715e-16, + "tolerance": 3.046407527694123e-14, + "status": "pass" + }, + { + "entry": "gate_csx", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_csx", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.725698756055846e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.0208510354511309e-16, + "global_phase": -3.1023325683456925e-17, + "seconds": 1.6e-05 + }, + { + "entry": "gate_csx", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8892107758311093e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9841132369045797e-16, + "global_phase": -6.062903440956213e-17, + "seconds": 7.1167e-05 + }, + { + "entry": "gate_csx", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8892107758311093e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9841132369045797e-16, + "global_phase": -6.062903440956213e-17, + "seconds": 8.75e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_csx", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.0184166922862395e-16, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.0607870396802327e-16, + "global_phase": -2.968106878572714e-17, + "seconds": 0.5170532909687608 + }, + { + "entry": "gate_csx", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.669995594970356e-17, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 9.680265184438853e-17, + "global_phase": -4.4577935608648455e-18, + "seconds": 0.0007839170284569263 + }, + { + "entry": "gate_csx", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.318022527739437e-17, + "tolerance": 3.422784300198615e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 5.398241258913e-17, + "global_phase": 9.271704718585812e-18, + "seconds": 0.005511124967597425 + }, + { + "entry": "gate_csx", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.125975508692399e-08, + "tolerance": 6.538684074497576e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 9.135192126279703e-08, + "global_phase": -4.1025140345377066e-09, + "seconds": 0.0017212920356541872 + }, + { + "entry": "gate_csx", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.973547292029626e-09, + "tolerance": 5.241881421955843e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_swap", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.7176025563172868e-09, + "tolerance": 3.7065698406228126e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5097313190687244, + "global_phase": -0.5154175443934055 + }, + { + "entry": "gate_swap", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 3.4453481788126517e-16, + "tolerance": 2.483057111365708e-14, + "status": "pass" + }, + { + "entry": "gate_swap", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_swap", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.168161905669198e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 8.91361828527817e-17, + "global_phase": -3.568434112943644e-17, + "seconds": 1.5875e-05 + }, + { + "entry": "gate_swap", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8904608864862223e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9816663129359017e-16, + "global_phase": -5.942718338359123e-17, + "seconds": 7.5792e-05 + }, + { + "entry": "gate_swap", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8904608864862223e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9816663129359017e-16, + "global_phase": -5.942718338359123e-17, + "seconds": 7.5917e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_swap", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.80470172216428e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.857402632175859e-17, + "global_phase": -9.647844174701355e-18, + "seconds": 0.5410298339556903 + }, + { + "entry": "gate_swap", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.274141277000301e-17, + "tolerance": 1.705083595390304e-14, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 9.01323343579344e-17, + "global_phase": -3.574487808951742e-17, + "seconds": 0.0014881249517202377 + }, + { + "entry": "gate_swap", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.5355598403113594e-17, + "tolerance": 3.422784300198615e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 2.929333588180882e-17, + "global_phase": 1.4669463408880753e-17, + "seconds": 0.005548999994061887 + }, + { + "entry": "gate_swap", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.296212960624633e-08, + "tolerance": 6.538684074497576e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 4.296790162479773e-08, + "global_phase": -7.042653724334558e-10, + "seconds": 0.0022610840387642384 + }, + { + "entry": "gate_swap", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.2695237243377327e-09, + "tolerance": 3.7065698850317336e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_cp", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.90469926587008e-09, + "tolerance": 4.1562521825982275e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5097313190770784, + "global_phase": -0.5154175444015007 + }, + { + "entry": "gate_cp", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 3.395552269415708e-16, + "tolerance": 2.3422195072836047e-14, + "status": "pass" + }, + { + "entry": "gate_cp", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_cp", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.169518313214467e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 8.915186535406673e-17, + "global_phase": -3.5692466279524444e-17, + "seconds": 1.525e-05 + }, + { + "entry": "gate_cp", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.890602566691516e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9817542452890808e-16, + "global_phase": -5.941143185791318e-17, + "seconds": 7.3875e-05 + }, + { + "entry": "gate_cp", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.890602566691516e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9817542452890808e-16, + "global_phase": -5.941143185791318e-17, + "seconds": 7.225e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_cp", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.169518313214467e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.915186535406673e-17, + "global_phase": -3.5692466279524444e-17, + "seconds": 0.5577524170512334 + }, + { + "entry": "gate_cp", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.970439505857471e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 4.974582733262186e-16, + "global_phase": -2.029888880742396e-17, + "seconds": 0.0010105000110343099 + }, + { + "entry": "gate_cp", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.8689118145600094e-17, + "tolerance": 3.422784300198615e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 3.235558624947136e-17, + "global_phase": 1.496056354469242e-17, + "seconds": 0.00546183402184397 + }, + { + "entry": "gate_cp", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.301037439582576e-08, + "tolerance": 6.538684074497576e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 4.301606447545541e-08, + "global_phase": -6.996408136330974e-10, + "seconds": 0.0019919159822165966 + }, + { + "entry": "gate_cp", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.0389987781377676e-09, + "tolerance": 4.1562522270071485e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_crx", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.8086510103644533e-09, + "tolerance": 6.645484043714706e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5097313191439519, + "global_phase": -0.5154175441769436 + }, + { + "entry": "gate_crx", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 5.656109720225847e-16, + "tolerance": 3.6097579440225456e-14, + "status": "pass" + }, + { + "entry": "gate_crx", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_crx", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.009758628780408e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 9.698821067454252e-17, + "global_phase": -3.59045673273073e-17, + "seconds": 1.5583e-05 + }, + { + "entry": "gate_crx", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8936689079253123e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9851544823524085e-16, + "global_phase": -5.956982339748994e-17, + "seconds": 7.9125e-05 + }, + { + "entry": "gate_crx", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8936689079253123e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9851544823524085e-16, + "global_phase": -5.956982339748994e-17, + "seconds": 7.6e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_crx", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.201444448964958e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.937313609797023e-17, + "global_phase": -3.551321375263718e-17, + "seconds": 0.5391868749866262 + }, + { + "entry": "gate_crx", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.301945350239332e-17, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 5.905751555211743e-17, + "global_phase": -4.0461299578041385e-17, + "seconds": 0.0008879159577190876 + }, + { + "entry": "gate_crx", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.714283765685584e-17, + "tolerance": 3.422784300198615e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 8.765720863933407e-17, + "global_phase": -9.482197611873177e-18, + "seconds": 0.00573491700924933 + }, + { + "entry": "gate_crx", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.162811554890168e-08, + "tolerance": 6.538684074497576e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 4.162956293979161e-08, + "global_phase": -3.4714031841852236e-10, + "seconds": 0.002124957973137498 + }, + { + "entry": "gate_crx", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.722285840811641e-09, + "tolerance": 6.645484088123627e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_cry", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.77532855615282e-09, + "tolerance": 6.645484043714706e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5097313187776382, + "global_phase": -0.5154175441169508 + }, + { + "entry": "gate_cry", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 5.740716077048282e-16, + "tolerance": 3.8914331521867585e-14, + "status": "pass" + }, + { + "entry": "gate_cry", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_cry", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.353427905038781e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.0024255523485516e-16, + "global_phase": -3.6054244168158195e-17, + "seconds": 1.7042e-05 + }, + { + "entry": "gate_cry", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8885811685639086e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.980659682132769e-16, + "global_phase": -5.968868788740983e-17, + "seconds": 6.9583e-05 + }, + { + "entry": "gate_cry", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8885811685639086e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.980659682132769e-16, + "global_phase": -5.968868788740983e-17, + "seconds": 8.3667e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_cry", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.340439272968946e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 9.069659730700616e-17, + "global_phase": -3.563116664468008e-17, + "seconds": 0.506125875050202 + }, + { + "entry": "gate_cry", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.428733415802383e-17, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 9.178037186815411e-17, + "global_phase": -3.6321921215572887e-17, + "seconds": 0.0010637089144438505 + }, + { + "entry": "gate_cry", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.66864991123379e-17, + "tolerance": 3.422784300198615e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 9.707217474362964e-17, + "global_phase": -8.644535780344246e-18, + "seconds": 0.0060269590467214584 + }, + { + "entry": "gate_cry", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.267270044446099e-08, + "tolerance": 6.538684074497576e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 4.267426359551002e-08, + "global_phase": -3.6525359836624644e-10, + "seconds": 0.001560000004246831 + }, + { + "entry": "gate_cry", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 2.5391663646610705e-09, + "tolerance": 6.645484088123627e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_crz", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.9439033133440442e-09, + "tolerance": 5.746119354247629e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5097313188687838, + "global_phase": -0.5154175442032387 + }, + { + "entry": "gate_crz", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 5.757054915708395e-16, + "tolerance": 3.328082735858333e-14, + "status": "pass" + }, + { + "entry": "gate_crz", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_crz", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.296418032403142e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 9.947118394848183e-17, + "global_phase": -3.5386121754067354e-17, + "seconds": 1.5125e-05 + }, + { + "entry": "gate_crz", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8901854785061254e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9815193236339522e-16, + "global_phase": -5.946576214758588e-17, + "seconds": 7.1917e-05 + }, + { + "entry": "gate_crz", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8901854785061254e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9815193236339522e-16, + "global_phase": -5.946576214758588e-17, + "seconds": 0.000167917, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_crz", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.296418032403142e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 9.947118394848183e-17, + "global_phase": -3.5386121754067354e-17, + "seconds": 0.5167616669787094 + }, + { + "entry": "gate_crz", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.987729600393125e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 4.992581333239521e-16, + "global_phase": -2.2004954527095423e-17, + "seconds": 0.0008887499570846558 + }, + { + "entry": "gate_crz", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.902136168253713e-17, + "tolerance": 3.422784300198615e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 3.2365718473423015e-17, + "global_phase": 1.4328304100354705e-17, + "seconds": 0.005288250045850873 + }, + { + "entry": "gate_crz", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.0835460240915985e-08, + "tolerance": 6.538684074497576e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 4.083610273043291e-08, + "global_phase": -2.29070122492177e-10, + "seconds": 0.0017942088888958097 + }, + { + "entry": "gate_crz", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.263869888993882e-09, + "tolerance": 5.74611939865655e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_cu", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.863863056152895e-09, + "tolerance": 1.2539291762508118e-07, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5097313193104122, + "global_phase": -0.5154175446147263 + }, + { + "entry": "gate_cu", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 5.932456283267893e-16, + "tolerance": 7.271535650157442e-14, + "status": "pass" + }, + { + "entry": "gate_cu", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_cu", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.165752854172399e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 8.902240780164087e-17, + "global_phase": -3.5454719336911746e-17, + "seconds": 1.6833e-05 + }, + { + "entry": "gate_cu", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.9043637023868733e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9900977238579004e-16, + "global_phase": -5.778302861011668e-17, + "seconds": 6.5959e-05 + }, + { + "entry": "gate_cu", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.9043637023868733e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9900977238579004e-16, + "global_phase": -5.778302861011668e-17, + "seconds": 8.65e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_cu", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.50246085037571e-17, + "tolerance": 2.8205178192375537e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 9.116147684377254e-17, + "global_phase": -3.288207428251009e-17, + "seconds": 0.5236769580515102 + }, + { + "entry": "gate_cu", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.568320518182513e-16, + "tolerance": 3.760690425650107e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 2.572025557052927e-16, + "global_phase": 1.3800428260067192e-17, + "seconds": 0.0008482080884277821 + }, + { + "entry": "gate_cu", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.968315566456375e-16, + "tolerance": 3.422784300198615e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 2.0045300706224988e-16, + "global_phase": -3.793081001973975e-17, + "seconds": 0.005972083075903356 + }, + { + "entry": "gate_cu", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.7808500614302225e-08, + "tolerance": 6.538684074497576e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.781885610752036e-08, + "global_phase": -8.849624579695987e-10, + "seconds": 0.001973459031432867, + "adapter": [ + "U as a matrix" + ] + }, + { + "entry": "gate_cu", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 3.3351744700641347e-09, + "tolerance": 1.253929180691704e-07, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_rzz", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.6822854646930724e-09, + "tolerance": 4.3425167016846596e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5805693543359085, + "global_phase": -0.5890486221632601 + }, + { + "entry": "gate_rzz", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 3.747803464925276e-16, + "tolerance": 2.623894715447811e-14, + "status": "pass" + }, + { + "entry": "gate_rzz", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_rzz", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.33804622666319e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 8.114732548118926e-17, + "global_phase": -3.46438477984978e-17, + "seconds": 1.6333e-05 + }, + { + "entry": "gate_rzz", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.7592535493546625e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.875523507253141e-16, + "global_phase": -6.500887442050855e-17, + "seconds": 6.7833e-05 + }, + { + "entry": "gate_rzz", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.7592535493546625e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.875523507253141e-16, + "global_phase": -6.500887442050855e-17, + "seconds": 7.1792e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_rzz", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.33804622666319e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.114732548118926e-17, + "global_phase": -3.46438477984978e-17, + "seconds": 0.5316947499522939 + }, + { + "entry": "gate_rzz", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.0788805681758894e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 3.132901957985602e-16, + "global_phase": 5.792832858446134e-17, + "seconds": 0.0010251249186694622 + }, + { + "entry": "gate_rzz", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.710450010858626e-17, + "tolerance": 3.422784300198615e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 8.865470546336336e-17, + "global_phase": 1.650644909206721e-17, + "seconds": 0.005069875041954219 + }, + { + "entry": "gate_rzz", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.018338806772118e-08, + "tolerance": 6.538684074497576e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.6217862026912536e-08, + "global_phase": -2.001740753797614e-08, + "seconds": 0.0015962920151650906 + }, + { + "entry": "gate_rzz", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.0508953581969621e-09, + "tolerance": 4.3425167460935805e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_rxx", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.8152295931612494e-09, + "tolerance": 6.141246060109975e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5805693555554873, + "global_phase": -0.5890486232250471 + }, + { + "entry": "gate_rxx", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 6.844304429465897e-16, + "tolerance": 3.1872451317762287e-14, + "status": "pass" + }, + { + "entry": "gate_rxx", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_rxx", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1359871329650174e-16, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.203844925257312e-16, + "global_phase": -3.9846685910587735e-17, + "seconds": 2.7167e-05 + }, + { + "entry": "gate_rxx", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.1329278454914164e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.2266091037362635e-16, + "global_phase": -6.390672161584823e-17, + "seconds": 7.4792e-05 + }, + { + "entry": "gate_rxx", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.1329278454914164e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.2266091037362635e-16, + "global_phase": -6.390672161584823e-17, + "seconds": 7.1916e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_rxx", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.5380247778951383e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.993293632559793e-17, + "global_phase": -1.5868953958951843e-17, + "seconds": 0.6106187918921933 + }, + { + "entry": "gate_rxx", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.6071979750121086e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 2.7024896234354156e-16, + "global_phase": -7.113148978257477e-17, + "seconds": 0.0009421249851584435 + }, + { + "entry": "gate_rxx", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.498609912543168e-16, + "tolerance": 3.422784300198615e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 1.5088529315976045e-16, + "global_phase": 1.755149544000275e-17, + "seconds": 0.007204542052932084 + }, + { + "entry": "gate_rxx", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.2536351466759007e-07, + "tolerance": 6.538684074497576e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.2554825913126517e-07, + "global_phase": 6.8084188181270535e-09, + "seconds": 0.0019224589923396707 + }, + { + "entry": "gate_rxx", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.4975449712103276e-09, + "tolerance": 6.141246104518896e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_ryy", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.3693764655321138e-09, + "tolerance": 6.141246060109975e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5805693550860144, + "global_phase": -0.589048622631684 + }, + { + "entry": "gate_ryy", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 8.490102485476358e-16, + "tolerance": 3.750595548104652e-14, + "status": "pass" + }, + { + "entry": "gate_ryy", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_ryy", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1421546500161876e-16, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.288187406182432e-16, + "global_phase": -5.957428546725693e-17, + "seconds": 1.5708e-05 + }, + { + "entry": "gate_ryy", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.1397265086993938e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.2962602289809404e-16, + "global_phase": -8.332955701122513e-17, + "seconds": 9.0167e-05 + }, + { + "entry": "gate_ryy", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.1397265086993938e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.2962602289809404e-16, + "global_phase": -8.332955701122513e-17, + "seconds": 0.000128542, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_ryy", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1185022362943843e-16, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.1667039620467854e-16, + "global_phase": -3.318898649554226e-17, + "seconds": 0.6486924999626353 + }, + { + "entry": "gate_ryy", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.345995816585419e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 3.365212531259756e-16, + "global_phase": 3.591202806032668e-17, + "seconds": 0.0009667499689385295 + }, + { + "entry": "gate_ryy", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1758750379040157e-16, + "tolerance": 3.422784300198615e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 1.2181771912564385e-16, + "global_phase": -3.182350774689283e-17, + "seconds": 0.006679916987195611 + }, + { + "entry": "gate_ryy", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.235906459541524e-07, + "tolerance": 6.538684074497576e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.2389415268537378e-07, + "global_phase": 8.666792549211895e-09, + "seconds": 0.0019352500094100833 + }, + { + "entry": "gate_ryy", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 2.368096426854949e-09, + "tolerance": 6.141246104518896e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_negcx", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.7176025563172868e-09, + "tolerance": 3.7065698406228126e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5097313190687244, + "global_phase": -0.5154175443934055 + }, + { + "entry": "gate_negcx", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 3.3949429265039597e-16, + "tolerance": 2.483057111365708e-14, + "status": "pass" + }, + { + "entry": "gate_negcx", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_negcx", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.168161905669198e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 8.91361828527817e-17, + "global_phase": -3.568434112943644e-17, + "seconds": 1.7167e-05 + }, + { + "entry": "gate_negcx", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8904608864862223e-16, + "tolerance": 1.9486669661603525e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9816663129359017e-16, + "global_phase": -5.942718338359123e-17, + "seconds": 0.000115208 + }, + { + "entry": "gate_negcx", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8904608864862223e-16, + "tolerance": 1.9486669661603525e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9816663129359017e-16, + "global_phase": -5.942718338359123e-17, + "seconds": 7.7667e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_negcx", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.168161905669198e-17, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 8.91361828527817e-17, + "global_phase": -3.568434112943644e-17, + "seconds": 0.6466070839669555, + "adapter": [ + "negcx as x, cx, x" + ] + }, + { + "entry": "gate_negcx", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.035125790277273e-16, + "tolerance": 4.230776728856391e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 6.041622321583409e-16, + "global_phase": 2.8010171756885993e-17, + "seconds": 0.0018723750254139304, + "adapter": [ + "negcx as x, cx, x" + ] + }, + { + "entry": "gate_negcx", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.240978075601184e-17, + "tolerance": 3.422784300198615e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 4.424447715313029e-17, + "global_phase": -1.260889585891152e-17, + "seconds": 0.006404582993127406 + }, + { + "entry": "gate_negcx", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.286323953411605e-08, + "tolerance": 6.538684074497576e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 4.286542552850247e-08, + "global_phase": -4.328999574845852e-10, + "seconds": 0.0017347080865874887 + }, + { + "entry": "gate_negcx", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.2695237243377327e-09, + "tolerance": 3.7065698850317336e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_ccx", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.6785286217879533e-09, + "tolerance": 7.862822080966033e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5923017764654656, + "global_phase": -0.6013204685320469 + }, + { + "entry": "gate_ccx", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 5.774452895122657e-16, + "tolerance": 3.1872451317762287e-14, + "status": "pass" + }, + { + "entry": "gate_ccx", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_ccx", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3567340985913269e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.3855057211099486e-16, + "global_phase": -2.8088910435967144e-17, + "seconds": 3.3458e-05 + }, + { + "entry": "gate_ccx", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4074819462701335e-16, + "tolerance": 1.9486669661603525e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.470248802848714e-16, + "global_phase": -5.533171119339035e-17, + "seconds": 0.000122625 + }, + { + "entry": "gate_ccx", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4074819462701335e-16, + "tolerance": 1.9486669661603525e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.470248802848714e-16, + "global_phase": -5.533171119339035e-17, + "seconds": 0.000125791, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_ccx", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3567340985913269e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.3855057211099486e-16, + "global_phase": -2.8088910435967144e-17, + "seconds": 0.6038099159486592 + }, + { + "entry": "gate_ccx", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3452867776003723e-16, + "tolerance": 6.303404001284882e-13, + "status": "pass", + "note": "double precision, a contraction of width 6.0", + "strict": 1.3744133063303021e-16, + "global_phase": -2.814523452227737e-17, + "seconds": 0.0009867919143289328 + }, + { + "entry": "gate_ccx", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.6169634979043014e-16, + "tolerance": 6.383513748404932e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 2.6170785510676706e-16, + "global_phase": -2.4539622958386736e-18, + "seconds": 0.0055560830514878035 + }, + { + "entry": "gate_ccx", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4929996171625433e-08, + "tolerance": 9.154181646441587e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 2.505080409941186e-08, + "global_phase": 2.4572498391005102e-09, + "seconds": 0.0017328750109300017 + }, + { + "entry": "gate_ccx", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.3307124265255067e-09, + "tolerance": 7.862822125374954e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_ccz", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.6785286217879533e-09, + "tolerance": 7.862822080966033e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5923017764654656, + "global_phase": -0.6013204685320469 + }, + { + "entry": "gate_ccz", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 5.774452895122657e-16, + "tolerance": 3.1872451317762287e-14, + "status": "pass" + }, + { + "entry": "gate_ccz", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_ccz", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3567340985913269e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.3855057211099486e-16, + "global_phase": -2.8088910435967144e-17, + "seconds": 2.2458e-05 + }, + { + "entry": "gate_ccz", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4074819462701335e-16, + "tolerance": 1.9486669661603525e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.470248802848714e-16, + "global_phase": -5.533171119339035e-17, + "seconds": 7.1458e-05 + }, + { + "entry": "gate_ccz", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4074819462701335e-16, + "tolerance": 1.9486669661603525e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.470248802848714e-16, + "global_phase": -5.533171119339035e-17, + "seconds": 6.6625e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_ccz", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3567340985913269e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.3855057211099486e-16, + "global_phase": -2.8088910435967144e-17, + "seconds": 0.5785532920854166 + }, + { + "entry": "gate_ccz", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3452867776003723e-16, + "tolerance": 6.303404001284882e-13, + "status": "pass", + "note": "double precision, a contraction of width 6.0", + "strict": 1.3744133063303021e-16, + "global_phase": -2.814523452227737e-17, + "seconds": 0.0009576249867677689 + }, + { + "entry": "gate_ccz", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4495375216436052e-17, + "tolerance": 6.383513748404932e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 2.4495985349309682e-17, + "global_phase": 1.7289083146586244e-19, + "seconds": 0.0063772499561309814 + }, + { + "entry": "gate_ccz", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4929996171625433e-08, + "tolerance": 9.154181646441587e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 2.505080409941186e-08, + "global_phase": 2.4572498391005102e-09, + "seconds": 0.001748249982483685 + }, + { + "entry": "gate_ccz", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.6499008972333567e-09, + "tolerance": 7.862822125374954e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_cswap", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.6785286217879533e-09, + "tolerance": 7.862822080966033e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5923017764654656, + "global_phase": -0.6013204685320469 + }, + { + "entry": "gate_cswap", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 5.774452895122657e-16, + "tolerance": 3.468920339940439e-14, + "status": "pass" + }, + { + "entry": "gate_cswap", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_cswap", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3567340985913269e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.3855057211099486e-16, + "global_phase": -2.8088910435967144e-17, + "seconds": 1.7333e-05 + }, + { + "entry": "gate_cswap", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4074819462701335e-16, + "tolerance": 1.9486669661603525e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.470248802848714e-16, + "global_phase": -5.533171119339035e-17, + "seconds": 7.3875e-05 + }, + { + "entry": "gate_cswap", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4074819462701335e-16, + "tolerance": 1.9486669661603525e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.470248802848714e-16, + "global_phase": -5.533171119339035e-17, + "seconds": 7.1875e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_cswap", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3567340985913269e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.3855057211099486e-16, + "global_phase": -2.8088910435967144e-17, + "seconds": 0.5677801659330726 + }, + { + "entry": "gate_cswap", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3452867776003723e-16, + "tolerance": 6.303404001284882e-13, + "status": "pass", + "note": "double precision, a contraction of width 6.0", + "strict": 1.3744133063303021e-16, + "global_phase": -2.814523452227737e-17, + "seconds": 0.001299042021855712 + }, + { + "entry": "gate_cswap", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.025399467459494e-17, + "tolerance": 6.383513748404932e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 3.0254124592450465e-17, + "global_phase": 8.866276048486312e-20, + "seconds": 0.007308333995752037 + }, + { + "entry": "gate_cswap", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4929996171625433e-08, + "tolerance": 9.154181646441587e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 2.505080409941186e-08, + "global_phase": 2.4572498391005102e-09, + "seconds": 0.0018432500073686242 + }, + { + "entry": "gate_cswap", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.6499008972333567e-09, + "tolerance": 7.862822125374954e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_c2p", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.454071167970312e-09, + "tolerance": 1.9554563625653759e-07, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5923017765075274, + "global_phase": -0.6013204685722763 + }, + { + "entry": "gate_c2p", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 5.857121295822811e-16, + "tolerance": 8.398236482814388e-14, + "status": "pass" + }, + { + "entry": "gate_c2p", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_c2p", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3795332203059628e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.406968078664509e-16, + "global_phase": -2.7649099163111984e-17, + "seconds": 2.8916e-05 + }, + { + "entry": "gate_c2p", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4074827868787245e-16, + "tolerance": 1.9486669661603525e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.470249484123369e-16, + "global_phase": -5.5331649595364525e-17, + "seconds": 7.3917e-05 + }, + { + "entry": "gate_c2p", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4074827868787245e-16, + "tolerance": 1.9486669661603525e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.470249484123369e-16, + "global_phase": -5.5331649595364525e-17, + "seconds": 0.000171584, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_c2p", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3817311961039155e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.381935547493514e-16, + "global_phase": -2.3764661567994983e-18, + "seconds": 0.6522031249478459 + }, + { + "entry": "gate_c2p", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3199067244219277e-16, + "tolerance": 4.7008630320626785e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 1.352333458073505e-16, + "global_phase": -2.9436715280550853e-17, + "seconds": 0.0033210839610546827 + }, + { + "entry": "gate_c2p", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4494334789121303e-17, + "tolerance": 6.383513748404932e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 2.4494944356881143e-17, + "global_phase": 1.7280707492796442e-19, + "seconds": 0.004939833073876798 + }, + { + "entry": "gate_c2p", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4930064260105203e-08, + "tolerance": 9.154181646441587e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 2.5050870937410084e-08, + "global_phase": 2.4572404383192984e-09, + "seconds": 0.00214545801281929 + }, + { + "entry": "gate_c2p", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 2.8140068004064167e-09, + "tolerance": 1.955456367006268e-07, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_c2rz", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.17580428423748e-09, + "tolerance": 2.114443102659051e-07, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5923017764901821, + "global_phase": -0.6013204685448793 + }, + { + "entry": "gate_c2rz", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 5.857276606526499e-16, + "tolerance": 9.384099711389237e-14, + "status": "pass" + }, + { + "entry": "gate_c2rz", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_c2rz", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3797862702481386e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.4072146969610702e-16, + "global_phase": -2.7648336618676893e-17, + "seconds": 3.3542e-05 + }, + { + "entry": "gate_c2rz", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.382833099344837e-16, + "tolerance": 3.653750561550723e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.4470597500024585e-16, + "global_phase": -5.569630515112943e-17, + "seconds": 7.9125e-05 + }, + { + "entry": "gate_c2rz", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.382833099344837e-16, + "tolerance": 3.653750561550723e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.4470597500024585e-16, + "global_phase": -5.569630515112943e-17, + "seconds": 7.975e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_c2rz", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3818672801607905e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.382070635945764e-16, + "global_phase": -2.3707862926640698e-18, + "seconds": 0.5805520839057863 + }, + { + "entry": "gate_c2rz", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4042201517886655e-16, + "tolerance": 4.7008630320626785e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 1.4044232659053483e-16, + "global_phase": -2.38846211370799e-18, + "seconds": 0.00222100003156811 + }, + { + "entry": "gate_c2rz", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4793608854112484e-17, + "tolerance": 6.383513748404932e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 2.4794165255085104e-17, + "global_phase": 1.6610444227779503e-19, + "seconds": 0.005383917014114559 + }, + { + "entry": "gate_c2rz", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.204218075283135e-08, + "tolerance": 9.154181646441587e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.4097718185246246e-08, + "global_phase": -1.165989000760594e-08, + "seconds": 0.0018331670435145497 + }, + { + "entry": "gate_c2rz", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 2.8140068004064167e-09, + "tolerance": 2.114443107099943e-07, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_c2ry", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.541021517699566e-09, + "tolerance": 2.2416324885154374e-07, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5923017738006157, + "global_phase": -0.6013204660262835 + }, + { + "entry": "gate_c2ry", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.158178915508011e-15, + "tolerance": 9.947450127717729e-14, + "status": "pass" + }, + { + "entry": "gate_c2ry", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_c2ry", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.7525512980208974e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.7647529931289995e-16, + "global_phase": -2.5946187538679715e-17, + "seconds": 3.4083e-05 + }, + { + "entry": "gate_c2ry", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4188784163449605e-16, + "tolerance": 2.9230004492405574e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.4813348680394973e-16, + "global_phase": -5.532178000472185e-17, + "seconds": 0.000233666 + }, + { + "entry": "gate_c2ry", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4188784163449605e-16, + "tolerance": 2.9230004492405574e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.4813348680394973e-16, + "global_phase": -5.532178000472185e-17, + "seconds": 8.175e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_c2ry", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3813566833664707e-16, + "tolerance": 3.2906041224438275e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.381563334637396e-16, + "global_phase": -2.3894788829053065e-18, + "seconds": 0.5615597910946235 + }, + { + "entry": "gate_c2ry", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4042407588443382e-16, + "tolerance": 4.7008630320626785e-14, + "status": "pass", + "note": "double precision, a contraction of width 3.0", + "strict": 1.404446644746442e-16, + "global_phase": -2.404722727917057e-18, + "seconds": 0.0015344999264925718 + }, + { + "entry": "gate_c2ry", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.8996600363392133e-17, + "tolerance": 6.383513748404932e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 6.141577281672248e-17, + "global_phase": -5.4139581805191244e-17, + "seconds": 0.005555415991693735 + }, + { + "entry": "gate_c2ry", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.205813630673841e-08, + "tolerance": 9.154181646441587e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.411380878821099e-08, + "global_phase": -1.1663097509706392e-08, + "seconds": 0.002722500008530915 + }, + { + "entry": "gate_c2ry", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 3.9831558884256555e-09, + "tolerance": 2.2416324929563294e-07, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_c3x", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.391512846914285e-09, + "tolerance": 3.0615841194822775e-07, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.6331867499277773, + "global_phase": -0.6442719289752188 + }, + { + "entry": "gate_c3x", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 1.0921565579432819e-15, + "tolerance": 1.135582616853899e-13, + "status": "pass" + }, + { + "entry": "gate_c3x", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_c3x", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.1830636056125267e-16, + "tolerance": 4.230776728856391e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.221563582442903e-16, + "global_phase": -4.1179854866983266e-17, + "seconds": 4.4708e-05 + }, + { + "entry": "gate_c3x", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.1718801448946157e-16, + "tolerance": 2.4358337077004524e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.2057454549202864e-16, + "global_phase": -3.850320092070849e-17, + "seconds": 7.4333e-05 + }, + { + "entry": "gate_c3x", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.1718801448946157e-16, + "tolerance": 2.4358337077004524e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.2057454549202864e-16, + "global_phase": -3.850320092070849e-17, + "seconds": 0.000116834, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_c3x", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.281311985405106e-16, + "tolerance": 4.230776728856391e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.2850088420415793e-16, + "global_phase": 1.2992703127221225e-17, + "seconds": 0.5530899160075933 + }, + { + "entry": "gate_c3x", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.0693502465280125e-16, + "tolerance": 1.3260959313683757e-13, + "status": "pass", + "note": "double precision, a contraction of width 4.0", + "strict": 1.0734769178841271e-16, + "global_phase": -9.403586273589279e-18, + "seconds": 0.0015789590543136 + }, + { + "entry": "gate_c3x", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.135201724572025e-17, + "tolerance": 1.0253737898419437e-11, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 1.112211140817646e-16, + "global_phase": -6.344245552251684e-17, + "seconds": 0.007404165924526751 + }, + { + "entry": "gate_c3x", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.6497640337928358e-08, + "tolerance": 1.1769692899611298e-05, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.6502501688319433e-08, + "global_phase": 4.00531217091603e-10, + "seconds": 0.0017838750500231981 + }, + { + "entry": "gate_c3x", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 2.500609181152564e-09, + "tolerance": 3.0615841239231696e-07, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_c3z", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.669672201661391e-09, + "tolerance": 2.881711166758857e-07, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.6331867502519202, + "global_phase": -0.6442719293465758 + }, + { + "entry": "gate_c3z", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 9.198145331126233e-16, + "tolerance": 1.1074150960374736e-13, + "status": "pass" + }, + { + "entry": "gate_c3z", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_c3z", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1268719879052304e-16, + "tolerance": 4.230776728856391e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.1368631621974608e-16, + "global_phase": -1.5039073254733597e-17, + "seconds": 4.4166e-05 + }, + { + "entry": "gate_c3z", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.595949810867941e-16, + "tolerance": 2.9230004492405574e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.599966217654964e-16, + "global_phase": 1.4446076422946466e-17, + "seconds": 7.5958e-05 + }, + { + "entry": "gate_c3z", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.595949810867941e-16, + "tolerance": 2.9230004492405574e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.599966217654964e-16, + "global_phase": 1.4446076422946466e-17, + "seconds": 7.1542e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_c3z", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.281312140139257e-16, + "tolerance": 4.230776728856391e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.2850089960147827e-16, + "global_phase": 1.299270222922428e-17, + "seconds": 0.5119033749215305 + }, + { + "entry": "gate_c3z", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.373058536363095e-16, + "tolerance": 1.3260959313683757e-13, + "status": "pass", + "note": "double precision, a contraction of width 4.0", + "strict": 3.3768940600253865e-16, + "global_phase": -1.609024639425753e-17, + "seconds": 0.0019944999366998672 + }, + { + "entry": "gate_c3z", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.4309605600295303e-17, + "tolerance": 1.0253737898419437e-11, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 4.070586436385354e-17, + "global_phase": -3.264981576007027e-17, + "seconds": 0.005690040998160839 + }, + { + "entry": "gate_c3z", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.6497640337928358e-08, + "tolerance": 1.1769692899611298e-05, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.6502501688319433e-08, + "global_phase": 4.00531217091603e-10, + "seconds": 0.0018081249436363578 + }, + { + "entry": "gate_c3z", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 2.8242309537864265e-09, + "tolerance": 2.881711171199749e-07, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "full_turn_rz_t1_0", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.215285710182298e-10, + "tolerance": 1.31047032241826e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 1.9705552845008005, + "global_phase": 2.7979809572714793 + }, + { + "entry": "full_turn_rz_t1_0", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.797157557069881e-17, + "tolerance": 1.0746810705446966e-14, + "status": "pass" + }, + { + "entry": "full_turn_rz_t1_0", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "full_turn_rz_t1_0", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.878018230386136e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.4948344912607779e-16, + "global_phase": -1.2703930273265457e-16, + "seconds": 1.3833e-05 + }, + { + "entry": "full_turn_rz_t1_0", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.878018230386136e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.4948344912607779e-16, + "global_phase": -1.2703930273265457e-16, + "seconds": 0.00015975 + }, + { + "entry": "full_turn_rz_t1_0", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.878018230386136e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.4948344912607779e-16, + "global_phase": -1.2703930273265457e-16, + "seconds": 7.5166e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "full_turn_rz_t1_0", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.878018230386136e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.4948344912607779e-16, + "global_phase": -1.2703930273265457e-16, + "seconds": 0.6236509579466656 + }, + { + "entry": "full_turn_rz_t1_0", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.7935930160502477e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 2.9056138362361657e-16, + "global_phase": -7.990180385963304e-17, + "seconds": 0.0018845420563593507 + }, + { + "entry": "full_turn_rz_t1_0", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.450168008707881e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 7.823846913581342e-17, + "global_phase": -2.389053613710233e-17, + "seconds": 0.005332041997462511 + }, + { + "entry": "full_turn_rz_t1_0", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 4.267054075425819e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 8.90724488612628e-08, + "global_phase": 7.818648375738633e-08, + "seconds": 0.0017719169845804572 + }, + { + "entry": "full_turn_rz_t1_0", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 6.889481879551719e-10, + "tolerance": 1.310470366827181e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "full_turn_rx_t1_0", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.428935600037752e-10, + "tolerance": 1.9464171686312247e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 1.9705552845232173, + "global_phase": 2.797980956375603 + }, + { + "entry": "full_turn_rx_t1_0", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.237726045655905e-16, + "tolerance": 1.3563562787088958e-14, + "status": "pass" + }, + { + "entry": "full_turn_rx_t1_0", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "full_turn_rx_t1_0", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.2354594473300743e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.4345679644901053e-16, + "global_phase": -7.291263256419637e-17, + "seconds": 1.375e-05 + }, + { + "entry": "full_turn_rx_t1_0", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.2354594473300743e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.4345679644901053e-16, + "global_phase": -7.291263256419637e-17, + "seconds": 7.925e-05 + }, + { + "entry": "full_turn_rx_t1_0", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.2354594473300743e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.4345679644901053e-16, + "global_phase": -7.291263256419637e-17, + "seconds": 6.7583e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "full_turn_rx_t1_0", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.2354594473300743e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.4345679644901053e-16, + "global_phase": -7.291263256419637e-17, + "seconds": 0.5111395000712946 + }, + { + "entry": "full_turn_rx_t1_0", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.836628346004762e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 2.847827009626881e-16, + "global_phase": -2.523059717935201e-17, + "seconds": 0.0005561669822782278 + }, + { + "entry": "full_turn_rx_t1_0", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.450168008707881e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 7.823846913581342e-17, + "global_phase": -2.389053613710233e-17, + "seconds": 0.006071083014830947 + }, + { + "entry": "full_turn_rx_t1_0", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.937079523226147e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 9.286830585039391e-08, + "global_phase": 2.5246449585516763e-08, + "seconds": 0.0018574590794742107 + }, + { + "entry": "full_turn_rx_t1_0", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 5.450475579178957e-10, + "tolerance": 1.9464172130401457e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "full_turn_ry_t1_0", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.766046792030961e-10, + "tolerance": 1.9464171686312247e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 1.970555285413953, + "global_phase": 2.79798095744968 + }, + { + "entry": "full_turn_ry_t1_0", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.2530044628618934e-16, + "tolerance": 1.6380314868730963e-14, + "status": "pass" + }, + { + "entry": "full_turn_ry_t1_0", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "full_turn_ry_t1_0", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4356863563421938e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.46781205111376e-16, + "global_phase": -3.05412677549014e-17, + "seconds": 1.4542e-05 + }, + { + "entry": "full_turn_ry_t1_0", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4356863563421938e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.46781205111376e-16, + "global_phase": -3.05412677549014e-17, + "seconds": 6.8542e-05 + }, + { + "entry": "full_turn_ry_t1_0", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4356863563421938e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.46781205111376e-16, + "global_phase": -3.05412677549014e-17, + "seconds": 7.4792e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "full_turn_ry_t1_0", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4356863563421938e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.46781205111376e-16, + "global_phase": -3.05412677549014e-17, + "seconds": 0.5236045840429142 + }, + { + "entry": "full_turn_ry_t1_0", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.1409025375601136e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 3.145218421465822e-16, + "global_phase": 1.6471238045877752e-17, + "seconds": 0.0006215840112417936 + }, + { + "entry": "full_turn_ry_t1_0", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.450168008707881e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 7.823846913581342e-17, + "global_phase": -2.389053613710233e-17, + "seconds": 0.005696624983102083 + }, + { + "entry": "full_turn_ry_t1_0", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.0351735059329867e-07, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.03517635576141e-07, + "global_phase": -2.429020790497895e-10, + "seconds": 0.0017010840820148587 + }, + { + "entry": "full_turn_ry_t1_0", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 7.196135420537896e-10, + "tolerance": 1.9464172130401457e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "full_turn_p_t1_0", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.215285710182298e-10, + "tolerance": 1.31047032241826e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.34192377730194323, + "global_phase": -0.343611696318314 + }, + { + "entry": "full_turn_p_t1_0", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.797157557069881e-17, + "tolerance": 1.0746810705446966e-14, + "status": "pass" + }, + { + "entry": "full_turn_p_t1_0", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "full_turn_p_t1_0", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.313729468180651e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 9.42812133633664e-17, + "global_phase": -1.4642115032431582e-17, + "seconds": 1.4125e-05 + }, + { + "entry": "full_turn_p_t1_0", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.313729468180651e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 9.42812133633664e-17, + "global_phase": -1.4642115032431582e-17, + "seconds": 7.3958e-05 + }, + { + "entry": "full_turn_p_t1_0", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.313729468180651e-17, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 9.42812133633664e-17, + "global_phase": -1.4642115032431582e-17, + "seconds": 7.075e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "full_turn_p_t1_0", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.313729468180651e-17, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 9.42812133633664e-17, + "global_phase": -1.4642115032431582e-17, + "seconds": 0.5404429170303047 + }, + { + "entry": "full_turn_p_t1_0", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.644118252139324e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 2.6640113228721536e-16, + "global_phase": 3.249538384058998e-17, + "seconds": 0.0005765419919043779 + }, + { + "entry": "full_turn_p_t1_0", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.450168008707881e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 7.823846913581342e-17, + "global_phase": -2.389053613710233e-17, + "seconds": 0.005730458069592714 + }, + { + "entry": "full_turn_p_t1_0", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 5.148503886776068e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 5.281740492289452e-08, + "global_phase": -1.1788513077551646e-08, + "seconds": 0.0016431669937446713 + }, + { + "entry": "full_turn_p_t1_0", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 6.889481879551719e-10, + "tolerance": 1.310470366827181e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "full_turn_rz_t2_0", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.215285710182298e-10, + "tolerance": 1.31047032241826e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.34192377730194323, + "global_phase": -0.343611696318314 + }, + { + "entry": "full_turn_rz_t2_0", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.797157557069881e-17, + "tolerance": 1.0746810705446966e-14, + "status": "pass" + }, + { + "entry": "full_turn_rz_t2_0", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "full_turn_rz_t2_0", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1064834169601487e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.7979863037694193e-16, + "global_phase": -2.5699069640890605e-16, + "seconds": 1.3625e-05 + }, + { + "entry": "full_turn_rz_t2_0", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1064834169601487e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.7979863037694193e-16, + "global_phase": -2.5699069640890605e-16, + "seconds": 7.0292e-05 + }, + { + "entry": "full_turn_rz_t2_0", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1064834169601487e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.7979863037694193e-16, + "global_phase": -2.5699069640890605e-16, + "seconds": 8e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "full_turn_rz_t2_0", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1064834169601487e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.7979863037694193e-16, + "global_phase": -2.5699069640890605e-16, + "seconds": 0.5217940839938819 + }, + { + "entry": "full_turn_rz_t2_0", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.0762013032883892e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 3.0608999734962266e-16, + "global_phase": -2.249110223171109e-16, + "seconds": 0.0006562089547514915 + }, + { + "entry": "full_turn_rz_t2_0", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.450168008707881e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 7.823846913581342e-17, + "global_phase": -2.389053613710233e-17, + "seconds": 0.0052841659635305405 + }, + { + "entry": "full_turn_rz_t2_0", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.62269392489593e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.6144369169283853e-07, + "global_phase": 1.4723470506158917e-07, + "seconds": 0.0015831670025363564 + }, + { + "entry": "full_turn_rz_t2_0", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 6.889481879551719e-10, + "tolerance": 1.310470366827181e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "full_turn_u_t1_0", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 9.766046792030961e-10, + "tolerance": 1.9464171686312247e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 1.970555285413953, + "global_phase": 2.79798095744968 + }, + { + "entry": "full_turn_u_t1_0", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.2530044628618934e-16, + "tolerance": 1.6380314868730963e-14, + "status": "pass" + }, + { + "entry": "full_turn_u_t1_0", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "full_turn_u_t1_0", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4356863563421938e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.46781205111376e-16, + "global_phase": -3.05412677549014e-17, + "seconds": 1.3959e-05 + }, + { + "entry": "full_turn_u_t1_0", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4356863563421938e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.46781205111376e-16, + "global_phase": -3.05412677549014e-17, + "seconds": 7.1583e-05 + }, + { + "entry": "full_turn_u_t1_0", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4356863563421938e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.46781205111376e-16, + "global_phase": -3.05412677549014e-17, + "seconds": 6.5416e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "full_turn_u_t1_0", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.4356863563421938e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 1.46781205111376e-16, + "global_phase": -3.05412677549014e-17, + "seconds": 0.5126439589075744 + }, + { + "entry": "full_turn_u_t1_0", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.1409025375601136e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 3.145218421465822e-16, + "global_phase": 1.6471238045877752e-17, + "seconds": 0.0006301249377429485 + }, + { + "entry": "full_turn_u_t1_0", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.450168008707881e-17, + "tolerance": 1.3715495537843548e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 7.823846913581342e-17, + "global_phase": -2.389053613710233e-17, + "seconds": 0.004780541989021003 + }, + { + "entry": "full_turn_u_t1_0", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.9297896670805505e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 3.96561472339793e-08, + "global_phase": -5.3183955982678255e-09, + "seconds": 0.0019206249853596091, + "adapter": [ + "U as a matrix" + ] + }, + { + "entry": "full_turn_u_t1_0", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 7.196135420537896e-10, + "tolerance": 1.9464172130401457e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "gate_gphase_controlled", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.0935824753740867e-09, + "tolerance": 4.3425167016846596e-08, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 0.5097313189930806, + "global_phase": -0.5154175443058733 + }, + { + "entry": "gate_gphase_controlled", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 3.451554848981427e-16, + "tolerance": 2.3422195072836047e-14, + "status": "pass" + }, + { + "entry": "gate_gphase_controlled", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "gate_gphase_controlled", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 8.300406512905069e-17, + "tolerance": 2.3504315160312837e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 9.02558849753476e-17, + "global_phase": -3.5446437687523536e-17, + "seconds": 1.6333e-05 + }, + { + "entry": "gate_gphase_controlled", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8869219623193675e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9856040498679177e-16, + "global_phase": -6.181819723743999e-17, + "seconds": 6.9958e-05 + }, + { + "entry": "gate_gphase_controlled", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.8869219623193675e-16, + "tolerance": 1.4615002246202573e-14, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.9856040498679177e-16, + "global_phase": -6.181819723743999e-17, + "seconds": 7.325e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "gate_gphase_controlled", + "engine": "quimb.dense", + "quantity": "state", + "measured": null, + "tolerance": null, + "status": "not run", + "note": "no gate gphase" + }, + { + "entry": "gate_gphase_controlled", + "engine": "quimb.tensor_network", + "quantity": "state", + "measured": null, + "tolerance": null, + "status": "not run", + "note": "no gate gphase" + }, + { + "entry": "gate_gphase_controlled", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.684857563868715e-17, + "tolerance": 3.422784300198615e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 3.019615798246159e-17, + "global_phase": 1.3818898041286565e-17, + "seconds": 0.005297375028021634 + }, + { + "entry": "gate_gphase_controlled", + "engine": "qsim.statevector", + "quantity": "state", + "measured": null, + "tolerance": null, + "status": "not run", + "note": "a global phase gate" + }, + { + "entry": "gate_gphase_controlled", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error, modulo a global phase", + "measured": 1.0508953922908828e-09, + "tolerance": 4.3425167460935805e-08, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "controlled_rz_full_turn", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.727233711018889e-77, + "tolerance": 8.99364639582761e-09, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 1.727233711018889e-77, + "global_phase": 0.0 + }, + { + "entry": "controlled_rz_full_turn", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 2.220446049250313e-16, + "tolerance": 5.113306542163034e-15, + "status": "pass" + }, + { + "entry": "controlled_rz_full_turn", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "controlled_rz_full_turn", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.383329718893769e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 2.383329718893769e-16, + "global_phase": 0.0, + "seconds": 1.5875e-05 + }, + { + "entry": "controlled_rz_full_turn", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.79306168888485e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.79306168888485e-16, + "global_phase": -6.162975822039155e-33, + "seconds": 7.6625e-05 + }, + { + "entry": "controlled_rz_full_turn", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.79306168888485e-16, + "tolerance": 9.743334830801666e-15, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 1.79306168888485e-16, + "global_phase": -6.162975822039155e-33, + "seconds": 8.25e-05, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "controlled_rz_full_turn", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.383329718893769e-16, + "tolerance": 1.4102589096187571e-14, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 2.383329718893769e-16, + "global_phase": 0.0, + "seconds": 0.5507367090322077 + }, + { + "entry": "controlled_rz_full_turn", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.051434889952961e-16, + "tolerance": 1.2179168538502112e-14, + "status": "pass", + "note": "double precision, a contraction of width 2.0", + "strict": 3.051434889952961e-16, + "global_phase": -6.162975822039156e-33, + "seconds": 0.0007693750085309148 + }, + { + "entry": "controlled_rz_full_turn", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.220446049250313e-16, + "tolerance": 2.0536705801163775e-12, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 2.220446049250313e-16, + "global_phase": 0.0, + "seconds": 0.005635875044390559 + }, + { + "entry": "controlled_rz_full_turn", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 6.181723814526122e-08, + "tolerance": 3.92320018377927e-06, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 6.181723814526122e-08, + "global_phase": 0.0, + "seconds": 0.0017365000676363707 + }, + { + "entry": "controlled_rz_full_turn", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 8.636168555094445e-78, + "tolerance": 8.99364683991682e-09, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "teleport", + "engine": "qsim.statevector", + "quantity": "counts", + "measured": null, + "tolerance": null, + "status": "not run", + "note": "measurement in the middle (or one qubit measured twice)" + }, + { + "entry": "reset_after_superposition", + "engine": "qsim.statevector", + "quantity": "counts", + "measured": null, + "tolerance": null, + "status": "not run", + "note": "measurement in the middle (or one qubit measured twice)" + }, + { + "entry": "measure_twice", + "engine": "qsim.statevector", + "quantity": "counts", + "measured": null, + "tolerance": null, + "status": "not run", + "note": "measurement in the middle (or one qubit measured twice)" + }, + { + "entry": "feedback_flip", + "engine": "qsim.statevector", + "quantity": "counts", + "measured": null, + "tolerance": null, + "status": "not run", + "note": "measurement in the middle (or one qubit measured twice)" + }, + { + "entry": "ghz_by_fusion", + "engine": "qsim.statevector", + "quantity": "counts", + "measured": null, + "tolerance": null, + "status": "not run", + "note": "measurement in the middle (or one qubit measured twice)" + }, + { + "entry": "repeat_until_success", + "engine": "ddsim.statevector", + "quantity": "counts", + "measured": null, + "tolerance": null, + "status": "known", + "note": "ValueError: [changePermutation] Target must be an injective mapping using only keys and logical qubits from the source permutation. | known: MQT DDSIM 2.7.0's qasm_simulator raises ValueError [changePermutation] on this program (two qubits; qubit 1 measured three times in the middle, with gates between and an x conditioned on each reading; four classical bits) and gives no counts. It raises the same without the conditioned x, and on qubit 1 measured, h, measured again, then qubit 0 measured into a third bit; with no third bit it gives counts. Each is a case of the reproducer.", + "right": "the exact reference, which every other engine that ran this program met (the results files)" + }, + { + "entry": "repeat_until_success", + "engine": "qsim.statevector", + "quantity": "counts", + "measured": null, + "tolerance": null, + "status": "not run", + "note": "measurement in the middle (or one qubit measured twice)" + }, + { + "entry": "clifford_ghz_n100", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 100, + "tolerance": 100, + "status": "pass" + }, + { + "entry": "clifford_ghz_n100", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 2.6292051188647747e-05 + }, + { + "entry": "clifford_ghz_n100", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 3.209e-06 + }, + { + "entry": "clifford_ghz_n100", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 1, + "tolerance": 1, + "status": "pass" + }, + { + "entry": "clifford_ghz_n100", + "engine": "aer.stabilizer", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.000236625 + }, + { + "entry": "clifford_ghz_n1000", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 1000, + "tolerance": 1000, + "status": "pass" + }, + { + "entry": "clifford_ghz_n1000", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.00012362503912299871 + }, + { + "entry": "clifford_ghz_n1000", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 3.15e-05 + }, + { + "entry": "clifford_ghz_n1000", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 1, + "tolerance": 1, + "status": "pass" + }, + { + "entry": "clifford_ghz_n1000", + "engine": "aer.stabilizer", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.015637834 + }, + { + "entry": "clifford_ghz_n5000", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 5000, + "tolerance": 5000, + "status": "pass" + }, + { + "entry": "clifford_ghz_n5000", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.003386166994459927 + }, + { + "entry": "clifford_ghz_n5000", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 0.001093416 + }, + { + "entry": "clifford_ghz_n5000", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 1, + "tolerance": 1, + "status": "pass" + }, + { + "entry": "clifford_cluster_n65", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 65, + "tolerance": 65, + "status": "pass" + }, + { + "entry": "clifford_cluster_n65", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 2.1915999241173267e-05 + }, + { + "entry": "clifford_cluster_n65", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 4.417e-06 + }, + { + "entry": "clifford_cluster_n65", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 65, + "tolerance": 65, + "status": "pass" + }, + { + "entry": "clifford_cluster_n65", + "engine": "aer.stabilizer", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.000172125 + }, + { + "entry": "clifford_cluster_n1000", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 1000, + "tolerance": 1000, + "status": "pass" + }, + { + "entry": "clifford_cluster_n1000", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.0001200410770252347 + }, + { + "entry": "clifford_cluster_n1000", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 6.8875e-05 + }, + { + "entry": "clifford_cluster_n1000", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 1000, + "tolerance": 1000, + "status": "pass" + }, + { + "entry": "clifford_cluster_n1000", + "engine": "aer.stabilizer", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.010609 + }, + { + "entry": "clifford_cluster_n5000", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 5000, + "tolerance": 5000, + "status": "pass" + }, + { + "entry": "clifford_cluster_n5000", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.002953292103484273 + }, + { + "entry": "clifford_cluster_n5000", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 0.001917625 + }, + { + "entry": "clifford_cluster_n5000", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 5000, + "tolerance": 5000, + "status": "pass" + }, + { + "entry": "clifford_random_n63", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 63, + "tolerance": 63, + "status": "pass" + }, + { + "entry": "clifford_random_n63", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 5.208398215472698e-05 + }, + { + "entry": "clifford_random_n63", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 1.3708e-05 + }, + { + "entry": "clifford_random_n63", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 62, + "tolerance": 62, + "status": "pass" + }, + { + "entry": "clifford_random_n63", + "engine": "aer.stabilizer", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.000372917 + }, + { + "entry": "clifford_random_n64", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 64, + "tolerance": 64, + "status": "pass" + }, + { + "entry": "clifford_random_n64", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 4.224991425871849e-05 + }, + { + "entry": "clifford_random_n64", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 1.625e-05 + }, + { + "entry": "clifford_random_n64", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 62, + "tolerance": 62, + "status": "pass" + }, + { + "entry": "clifford_random_n64", + "engine": "aer.stabilizer", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.000394458 + }, + { + "entry": "clifford_random_n65", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 65, + "tolerance": 65, + "status": "pass" + }, + { + "entry": "clifford_random_n65", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 3.812497016042471e-05 + }, + { + "entry": "clifford_random_n65", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 1.4375e-05 + }, + { + "entry": "clifford_random_n65", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 64, + "tolerance": 64, + "status": "pass" + }, + { + "entry": "clifford_random_n65", + "engine": "aer.stabilizer", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.000405 + }, + { + "entry": "clifford_random_n127", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 127, + "tolerance": 127, + "status": "pass" + }, + { + "entry": "clifford_random_n127", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 5.40000619366765e-05 + }, + { + "entry": "clifford_random_n127", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 2.6667e-05 + }, + { + "entry": "clifford_random_n127", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 124, + "tolerance": 124, + "status": "pass" + }, + { + "entry": "clifford_random_n127", + "engine": "aer.stabilizer", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.000764084 + }, + { + "entry": "clifford_random_n128", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 128, + "tolerance": 128, + "status": "pass" + }, + { + "entry": "clifford_random_n128", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 5.337502807378769e-05 + }, + { + "entry": "clifford_random_n128", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 2.5959e-05 + }, + { + "entry": "clifford_random_n128", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 123, + "tolerance": 123, + "status": "pass" + }, + { + "entry": "clifford_random_n128", + "engine": "aer.stabilizer", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.000770833 + }, + { + "entry": "clifford_random_n129", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 129, + "tolerance": 129, + "status": "pass" + }, + { + "entry": "clifford_random_n129", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 5.9959013015031815e-05 + }, + { + "entry": "clifford_random_n129", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 2.9292e-05 + }, + { + "entry": "clifford_random_n129", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 122, + "tolerance": 122, + "status": "pass" + }, + { + "entry": "clifford_random_n129", + "engine": "aer.stabilizer", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.00082825 + }, + { + "entry": "clifford_random_n1000", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 1000, + "tolerance": 1000, + "status": "pass" + }, + { + "entry": "clifford_random_n1000", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.0019239590037614107 + }, + { + "entry": "clifford_random_n1000", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 0.000992791 + }, + { + "entry": "clifford_random_n1000", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 999, + "tolerance": 999, + "status": "pass" + }, + { + "entry": "clifford_random_n1000", + "engine": "aer.stabilizer", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.032259958 + }, + { + "entry": "clifford_random_n2000", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 2000, + "tolerance": 2000, + "status": "pass" + }, + { + "entry": "clifford_random_n2000", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.0039406249998137355 + }, + { + "entry": "clifford_random_n2000", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 0.002682291 + }, + { + "entry": "clifford_random_n2000", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 2000, + "tolerance": 2000, + "status": "pass" + }, + { + "entry": "clifford_random_n10_as_state", + "engine": "wai.exact", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.7114271035800384e-08, + "tolerance": 6.835172444858467e-06, + "status": "pass", + "note": "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran", + "strict": 1.7114271035800384e-08, + "global_phase": -2.5571778398004984e-77 + }, + { + "entry": "clifford_random_n10_as_state", + "engine": "wai.exact", + "quantity": "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", + "measured": 7.53644380168212e-15, + "tolerance": 6.093066280547265e-13, + "status": "pass" + }, + { + "entry": "clifford_random_n10_as_state", + "engine": "wai.exact", + "quantity": "state hash, recomputed by the referee from the op-log and from the integers written", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "clifford_random_n10_as_state", + "engine": "wai.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.3244320535236393e-15, + "tolerance": 1.7299175958019768e-12, + "status": "pass", + "note": "double precision, fusion width 3", + "strict": 1.3244320535236393e-15, + "global_phase": -2.5571778398004984e-77, + "seconds": 0.000477958 + }, + { + "entry": "clifford_random_n10_as_state", + "engine": "aer.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.526567631408858e-16, + "tolerance": 8.988226381422528e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.0439850796711554e-15, + "global_phase": 1.900363860637374e-15, + "seconds": 0.0003985 + }, + { + "entry": "clifford_random_n10_as_state", + "engine": "aer.qasm_import", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 7.526567631408858e-16, + "tolerance": 8.988226381422528e-13, + "status": "pass", + "note": "double precision, fusion up to 5 qubits from 14 qubits", + "strict": 2.0439850796711554e-15, + "global_phase": 1.900363860637374e-15, + "seconds": 0.000416583, + "adapter": [ + "read from the published OpenQASM 3 text" + ] + }, + { + "entry": "clifford_random_n10_as_state", + "engine": "quimb.dense", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.9576473574087966e-15, + "tolerance": 1.7299175958019768e-12, + "status": "pass", + "note": "double precision, gate by gate", + "strict": 4.3182725538710424e-15, + "global_phase": 3.146394755705127e-15, + "seconds": 0.5172130420105532 + }, + { + "entry": "clifford_random_n10_as_state", + "engine": "quimb.tensor_network", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 3.519725803178183e-14, + "tolerance": 7.041552439966656e-07, + "status": "pass", + "note": "double precision, a contraction of width 16.0", + "strict": 3.532433476075347e-14, + "global_phase": 2.9936020667325145e-15, + "seconds": 0.7061612500110641 + }, + { + "entry": "clifford_random_n10_as_state", + "engine": "ddsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 2.253673324449967e-16, + "tolerance": 9.2130502584579e-10, + "status": "pass", + "note": "decision-diagram edge weights merged within 2^-42", + "strict": 2.253673324449967e-16, + "global_phase": -2.5571778398004988e-77, + "seconds": 0.008819249924272299 + }, + { + "entry": "clifford_random_n10_as_state", + "engine": "qsim.statevector", + "quantity": "distance from the exact state, modulo a global phase", + "measured": 1.1689170703509095e-06, + "tolerance": 0.0004814755969898022, + "status": "pass", + "note": "single precision, fusion width 2", + "strict": 1.3551576450466702e-06, + "global_phase": 6.85627931991555e-07, + "seconds": 0.005546625005081296 + }, + { + "entry": "clifford_random_n10_as_state", + "engine": "exact", + "quantity": "the integer tableau's group has full rank", + "measured": 10, + "tolerance": 10, + "status": "pass" + }, + { + "entry": "clifford_random_n10_as_state", + "engine": "stim.tableau", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 2.645899076014757e-05 + }, + { + "entry": "clifford_random_n10_as_state", + "engine": "wai.stabilizer", + "quantity": "generators of the reference group whose expectation is not their sign", + "measured": 0, + "tolerance": 0, + "status": "pass", + "seconds": 7.25e-06 + }, + { + "entry": "clifford_random_n10_as_state", + "engine": "wai.stabilizer", + "quantity": "outcome dimension against the rank of the group's X part", + "measured": 10, + "tolerance": 10, + "status": "pass" + }, + { + "entry": "clifford_random_n10_as_state", + "engine": "aer.stabilizer", + "quantity": "reduced stabilizer group equals the reference's", + "measured": true, + "tolerance": true, + "status": "pass", + "seconds": 0.000137875 + }, + { + "entry": "clifford_random_n10_as_state", + "engine": "wai.auto", + "quantity": "chosen amplitudes through the job path, worst error", + "measured": 5.34820969868762e-10, + "tolerance": 6.835172445302556e-06, + "status": "pass", + "note": "planned exact" + }, + { + "entry": "clifford_counts_n40", + "engine": "wai.stabilizer", + "quantity": "shots returned", + "measured": 20000, + "tolerance": 20000, + "status": "pass" + }, + { + "entry": "clifford_counts_n40", + "engine": "wai.stabilizer", + "quantity": "shots outside the affine space the stabilizers fix (dimension 34)", + "measured": 0, + "tolerance": 0, + "status": "pass" + }, + { + "entry": "clifford_counts_n40", + "engine": "wai.stabilizer", + "quantity": "the most frequent outcome's count above shots\u00b72^-34, in units of its Bernstein bound over all 2^34 outcomes", + "measured": 0.036615652745396014, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "clifford_counts_n40", + "engine": "wai.stabilizer", + "quantity": "each of the 39 bits the space leaves free against 1/2, largest deviation in units of its Bernstein bound", + "measured": 0.42917114936767276, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "clifford_counts_n40", + "engine": "wai.stabilizer", + "quantity": "distinct outcomes, of 20000 shots over 2^34", + "measured": 20000, + "tolerance": null, + "status": "info" + }, + { + "entry": "clifford_counts_n40", + "engine": "stim.tableau", + "quantity": "shots returned", + "measured": 20000, + "tolerance": 20000, + "status": "pass" + }, + { + "entry": "clifford_counts_n40", + "engine": "stim.tableau", + "quantity": "shots outside the affine space the stabilizers fix (dimension 34)", + "measured": 0, + "tolerance": 0, + "status": "pass" + }, + { + "entry": "clifford_counts_n40", + "engine": "stim.tableau", + "quantity": "the most frequent outcome's count above shots\u00b72^-34, in units of its Bernstein bound over all 2^34 outcomes", + "measured": 0.036615652745396014, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "clifford_counts_n40", + "engine": "stim.tableau", + "quantity": "each of the 39 bits the space leaves free against 1/2, largest deviation in units of its Bernstein bound", + "measured": 0.34119106374729985, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "clifford_counts_n40", + "engine": "stim.tableau", + "quantity": "distinct outcomes, of 20000 shots over 2^34", + "measured": 20000, + "tolerance": null, + "status": "info" + }, + { + "entry": "clifford_counts_n40", + "engine": "aer.stabilizer", + "quantity": "shots returned", + "measured": 20000, + "tolerance": 20000, + "status": "pass" + }, + { + "entry": "clifford_counts_n40", + "engine": "aer.stabilizer", + "quantity": "shots outside the affine space the stabilizers fix (dimension 34)", + "measured": 0, + "tolerance": 0, + "status": "pass" + }, + { + "entry": "clifford_counts_n40", + "engine": "aer.stabilizer", + "quantity": "the most frequent outcome's count above shots\u00b72^-34, in units of its Bernstein bound over all 2^34 outcomes", + "measured": 0.036615652745396014, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "clifford_counts_n40", + "engine": "aer.stabilizer", + "quantity": "each of the 39 bits the space leaves free against 1/2, largest deviation in units of its Bernstein bound", + "measured": 0.5128595234943689, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "clifford_counts_n40", + "engine": "aer.stabilizer", + "quantity": "distinct outcomes, of 20000 shots over 2^34", + "measured": 20000, + "tolerance": null, + "status": "info" + }, + { + "entry": "noise_depol1_x_chain_p0_01_k20", + "engine": "wai.density_matrix", + "quantity": " against the closed form", + "measured": 9.937140810079922e-16, + "tolerance": 1.2401240634415574e-12, + "status": "pass" + }, + { + "entry": "noise_depol1_x_chain_p0_01_k20", + "engine": "aer.density_matrix", + "quantity": " against the closed form", + "measured": 9.937140810079922e-16, + "tolerance": 1.2401240634415574e-12, + "status": "pass" + }, + { + "entry": "noise_depol1_x_chain_p0_1_k7", + "engine": "wai.density_matrix", + "quantity": " against the closed form", + "measured": 6.305003467449492e-17, + "tolerance": 4.3404342220454503e-13, + "status": "pass" + }, + { + "entry": "noise_depol1_x_chain_p0_1_k7", + "engine": "aer.density_matrix", + "quantity": " against the closed form", + "measured": 6.305003467449492e-17, + "tolerance": 4.3404342220454503e-13, + "status": "pass" + }, + { + "entry": "noise_depol2_cx_chain", + "engine": "wai.density_matrix", + "quantity": " against the closed form", + "measured": 7.326316154075342e-16, + "tolerance": 7.892101212949273e-13, + "status": "pass" + }, + { + "entry": "noise_depol2_cx_chain", + "engine": "aer.density_matrix", + "quantity": " against the closed form", + "measured": 7.326316154075342e-16, + "tolerance": 7.892101212949273e-13, + "status": "pass" + }, + { + "entry": "mps_ghz_n30", + "engine": "wai.mps", + "quantity": "amplitudes against the closed form, worst error", + "measured": 4.833646656726456e-17, + "tolerance": 2.76696570893817e-13, + "status": "pass", + "note": "29 two-site updates at bond 2; truncation from its reported discarded weight", + "seconds": 0.000605334, + "accuracy": { + "class": "exact", + "max_bond": 64, + "max_bond_used": 2, + "note": "no truncation dropped weight beyond the cutoff's rounding" + } + }, + { + "entry": "mps_ghz_n30", + "engine": "wai.tensor_network", + "quantity": "amplitudes against the closed form, worst error", + "measured": 4.833646656726456e-17, + "tolerance": 8.450256244926496e-14, + "status": "pass", + "note": "contraction of width 1.0", + "seconds": 0.001867625, + "accuracy": { + "class": "exact" + } + }, + { + "entry": "mps_ghz_n30", + "engine": "aer.mps", + "quantity": "amplitudes against the closed form, worst error", + "measured": 6.268583589525109e-17, + "tolerance": 2.76696570893817e-13, + "status": "pass", + "note": "29 two-site updates at bond 2, and 0 truncations, from its log", + "seconds": 0.000585125 + }, + { + "entry": "mps_ghz_n30", + "engine": "quimb.mps", + "quantity": "amplitudes against the closed form, worst error", + "measured": 6.268583589525109e-17, + "tolerance": 8.566965708938169e-13, + "status": "pass", + "note": "29 two-site updates at bond 2; its cutoff drops at most 1e-28 of weight at each", + "seconds": 0.48977429198566824 + }, + { + "entry": "mps_ghz_n30", + "engine": "quimb.tensor_network", + "quantity": "amplitudes against the closed form, worst error", + "measured": 3.615399514695752e-15, + "tolerance": 8.450256244926496e-14, + "status": "pass", + "note": "contraction of width 1.0", + "seconds": 0.5178561250213534 + }, + { + "entry": "mps_ghz_n50", + "engine": "wai.mps", + "quantity": "amplitudes against the closed form, worst error", + "measured": 4.833646656726456e-17, + "tolerance": 4.67521792199987e-13, + "status": "pass", + "note": "49 two-site updates at bond 2; truncation from its reported discarded weight", + "seconds": 0.000713167, + "accuracy": { + "class": "exact", + "max_bond": 64, + "max_bond_used": 2, + "note": "no truncation dropped weight beyond the cutoff's rounding" + } + }, + { + "entry": "mps_ghz_n50", + "engine": "wai.tensor_network", + "quantity": "amplitudes against the closed form, worst error", + "measured": 4.833646656726456e-17, + "tolerance": 1.4083760408211617e-13, + "status": "pass", + "note": "contraction of width 1.0", + "seconds": 0.002192375, + "accuracy": { + "class": "exact" + } + }, + { + "entry": "mps_ghz_n50", + "engine": "aer.mps", + "quantity": "amplitudes against the closed form, worst error", + "measured": 6.268583589525109e-17, + "tolerance": 4.67521792199987e-13, + "status": "pass", + "note": "49 two-site updates at bond 2, and 0 truncations, from its log", + "seconds": 0.000316125 + }, + { + "entry": "mps_ghz_n50", + "engine": "quimb.mps", + "quantity": "amplitudes against the closed form, worst error", + "measured": 6.268583589525109e-17, + "tolerance": 1.447521792199987e-12, + "status": "pass", + "note": "49 two-site updates at bond 2; its cutoff drops at most 1e-28 of weight at each", + "seconds": 0.4893723330460489 + }, + { + "entry": "mps_ghz_n50", + "engine": "quimb.tensor_network", + "quantity": "amplitudes against the closed form, worst error", + "measured": 1.1729088605204076e-15, + "tolerance": 1.4083760408211617e-13, + "status": "pass", + "note": "contraction of width 1.0", + "seconds": 0.5230827080085874 + }, + { + "entry": "mps_ghz_n100", + "engine": "wai.mps", + "quantity": "amplitudes against the closed form, worst error", + "measured": 4.833646656726456e-17, + "tolerance": 9.445848454657303e-13, + "status": "pass", + "note": "99 two-site updates at bond 2; truncation from its reported discarded weight", + "seconds": 0.000929166, + "accuracy": { + "class": "exact", + "max_bond": 64, + "max_bond_used": 2, + "note": "no truncation dropped weight beyond the cutoff's rounding" + } + }, + { + "entry": "mps_ghz_n100", + "engine": "wai.tensor_network", + "quantity": "amplitudes against the closed form, worst error", + "measured": 4.833646656726456e-17, + "tolerance": 2.8167520816427206e-13, + "status": "pass", + "note": "contraction of width 1.0", + "seconds": 0.003083833, + "accuracy": { + "class": "exact" + } + }, + { + "entry": "mps_ghz_n100", + "engine": "aer.mps", + "quantity": "amplitudes", + "measured": null, + "tolerance": null, + "status": "not run", + "note": "CircuitTooWideForTarget: 'Number of qubits (100) in circuit-46 is greater than maximum (63) in the coupling_map'" + }, + { + "entry": "mps_ghz_n100", + "engine": "quimb.mps", + "quantity": "amplitudes against the closed form, worst error", + "measured": 6.268583589525109e-17, + "tolerance": 2.9245848454657303e-12, + "status": "pass", + "note": "99 two-site updates at bond 2; its cutoff drops at most 1e-28 of weight at each", + "seconds": 0.49615958402864635 + }, + { + "entry": "mps_ghz_n100", + "engine": "quimb.tensor_network", + "quantity": "amplitudes against the closed form, worst error", + "measured": 2.6161987925331113e-15, + "tolerance": 2.8167520816427206e-13, + "status": "pass", + "note": "contraction of width 1.0", + "seconds": 0.5439550000010058 + }, + { + "entry": "mps_qft_n30", + "engine": "wai.mps", + "quantity": "amplitudes against the closed form, worst error", + "measured": 5.017092331032849e-19, + "tolerance": 5.3837041007541454e-11, + "status": "pass", + "note": "8990 two-site updates at bond 1; truncation from its reported discarded weight", + "seconds": 0.008494209, + "accuracy": { + "class": "exact", + "max_bond": 64, + "max_bond_used": 1, + "note": "no truncation dropped weight beyond the cutoff's rounding" + } + }, + { + "entry": "mps_qft_n30", + "engine": "wai.tensor_network", + "quantity": "amplitudes against the closed form, worst error", + "measured": 1.153914350662781e-19, + "tolerance": 7.408057974723756e-13, + "status": "pass", + "note": "contraction of width 1.0", + "seconds": 0.063323459, + "accuracy": { + "class": "exact" + } + }, + { + "entry": "mps_qft_n30", + "engine": "aer.mps", + "quantity": "amplitudes against the closed form, worst error", + "measured": 6.296371713642247e-18, + "tolerance": 7.557546801821243e-12, + "status": "pass", + "note": "1262 two-site updates at bond 1, and 0 truncations, from its log", + "seconds": 0.004738166 + }, + { + "entry": "mps_qft_n30", + "engine": "quimb.mps", + "quantity": "amplitudes against the closed form, worst error", + "measured": 2.0528086115746623e-18, + "tolerance": 2.3363704100754143e-10, + "status": "pass", + "note": "8990 two-site updates at bond 1; its cutoff drops at most 1e-28 of weight at each", + "seconds": 1.0808285409584641 + }, + { + "entry": "mps_qft_n30", + "engine": "quimb.tensor_network", + "quantity": "amplitudes against the closed form, worst error", + "measured": 1.06092989973211e-18, + "tolerance": 7.408057974723756e-13, + "status": "pass", + "note": "contraction of width 1.0", + "seconds": 0.6794686249922961 + }, + { + "entry": "mps_qft_n40", + "engine": "wai.mps", + "quantity": "amplitudes against the closed form, worst error", + "measured": 2.3442753311374327e-20, + "tolerance": 1.2767583029650018e-10, + "status": "pass", + "note": "21320 two-site updates at bond 1; truncation from its reported discarded weight", + "seconds": 0.015819042, + "accuracy": { + "class": "exact", + "max_bond": 64, + "max_bond_used": 1, + "note": "no truncation dropped weight beyond the cutoff's rounding" + } + }, + { + "entry": "mps_qft_n40", + "engine": "wai.tensor_network", + "quantity": "amplitudes against the closed form, worst error", + "measured": 2.633360821843449e-21, + "tolerance": 1.2675384367404737e-12, + "status": "pass", + "note": "contraction of width 1.0", + "seconds": 0.182650291, + "accuracy": { + "class": "exact" + } + }, + { + "entry": "mps_qft_n40", + "engine": "aer.mps", + "quantity": "amplitudes against the closed form, worst error", + "measured": 3.210394166867094e-19, + "tolerance": 1.3665865136181795e-11, + "status": "pass", + "note": "2282 two-site updates at bond 1, and 0 truncations, from its log", + "seconds": 0.009591667 + }, + { + "entry": "mps_qft_n40", + "engine": "quimb.mps", + "quantity": "amplitudes against the closed form, worst error", + "measured": 1.7456895488437204e-19, + "tolerance": 5.540758302965001e-10, + "status": "pass", + "note": "21320 two-site updates at bond 1; its cutoff drops at most 1e-28 of weight at each", + "seconds": 1.8204210840631276 + }, + { + "entry": "mps_qft_n40", + "engine": "quimb.tensor_network", + "quantity": "amplitudes against the closed form, worst error", + "measured": 1.7865540658853884e-16, + "tolerance": 1.2675384367404737e-12, + "status": "pass", + "note": "contraction of width 1.0", + "seconds": 0.8702120839152485 + }, + { + "entry": "tn_shallow_n26", + "engine": "aer.mps ~ aer.statevector", + "quantity": "chosen amplitudes, worst difference", + "measured": 3.4912680055292545e-14, + "tolerance": 6.667625655552076e-12, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "aer.mps ~ quimb.mps", + "quantity": "chosen amplitudes, worst difference", + "measured": 3.491506169616187e-14, + "tolerance": 5.148050435408713e-12, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "aer.mps ~ quimb.tensor_network", + "quantity": "chosen amplitudes, worst difference", + "measured": 3.491225806440382e-14, + "tolerance": 2.2524595706442426e-12, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "aer.mps ~ wai.mps", + "quantity": "chosen amplitudes, worst difference", + "measured": 3.491292706365458e-14, + "tolerance": 3.888050435408713e-12, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "aer.mps ~ wai.statevector", + "quantity": "chosen amplitudes, worst difference", + "measured": 3.4912591366872967e-14, + "tolerance": 6.667625655552076e-12, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "aer.mps ~ wai.tensor_network", + "quantity": "chosen amplitudes, worst difference", + "measured": 3.491247592469553e-14, + "tolerance": 1.108980912050012e-08, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "aer.statevector ~ quimb.mps", + "quantity": "chosen amplitudes, worst difference", + "measured": 2.3860461076794517e-18, + "tolerance": 7.927625655552075e-12, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "aer.statevector ~ quimb.tensor_network", + "quantity": "chosen amplitudes, worst difference", + "measured": 1.5363001558967743e-18, + "tolerance": 5.032034790787605e-12, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "aer.statevector ~ wai.mps", + "quantity": "chosen amplitudes, worst difference", + "measured": 2.67781612718429e-18, + "tolerance": 6.667625655552076e-12, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "aer.statevector ~ wai.statevector", + "quantity": "chosen amplitudes, worst difference", + "measured": 5.744482278055672e-19, + "tolerance": 9.447200875695438e-12, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "aer.statevector ~ wai.tensor_network", + "quantity": "chosen amplitudes, worst difference", + "measured": 4.879380327352975e-19, + "tolerance": 1.1092588695720265e-08, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "quimb.mps ~ quimb.tensor_network", + "quantity": "chosen amplitudes, worst difference", + "measured": 3.2910324741456392e-18, + "tolerance": 3.5124595706442425e-12, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "quimb.mps ~ wai.mps", + "quantity": "chosen amplitudes, worst difference", + "measured": 2.3597737439810326e-18, + "tolerance": 5.148050435408713e-12, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "quimb.mps ~ wai.statevector", + "quantity": "chosen amplitudes, worst difference", + "measured": 2.5710285329788336e-18, + "tolerance": 7.927625655552075e-12, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "quimb.mps ~ wai.tensor_network", + "quantity": "chosen amplitudes, worst difference", + "measured": 2.6361898484026205e-18, + "tolerance": 1.1091069120500122e-08, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "quimb.tensor_network ~ wai.mps", + "quantity": "chosen amplitudes, worst difference", + "measured": 4.175415728808466e-18, + "tolerance": 2.2524595706442426e-12, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "quimb.tensor_network ~ wai.statevector", + "quantity": "chosen amplitudes, worst difference", + "measured": 1.4816947631522958e-18, + "tolerance": 5.032034790787605e-12, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "quimb.tensor_network ~ wai.tensor_network", + "quantity": "chosen amplitudes, worst difference", + "measured": 1.2483231218546238e-18, + "tolerance": 1.1088173529635357e-08, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "wai.mps ~ wai.statevector", + "quantity": "chosen amplitudes, worst difference", + "measured": 2.8325835461781977e-18, + "tolerance": 6.667625655552076e-12, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "wai.mps ~ wai.tensor_network", + "quantity": "chosen amplitudes, worst difference", + "measured": 3.092122748816557e-18, + "tolerance": 1.108980912050012e-08, + "status": "pass" + }, + { + "entry": "tn_shallow_n26", + "engine": "wai.statevector ~ wai.tensor_network", + "quantity": "chosen amplitudes, worst difference", + "measured": 3.632102562304021e-19, + "tolerance": 1.1092588695720265e-08, + "status": "pass" + }, + { + "entry": "tn_mirror_n40", + "engine": "wai.mps", + "quantity": "amplitudes against the closed form, worst error", + "measured": 1.818360945611186e-15, + "tolerance": 1.964309233906341e-12, + "status": "pass", + "note": "118 two-site updates at bond 4; truncation from its reported discarded weight", + "seconds": 0.002326416, + "accuracy": { + "class": "exact", + "max_bond": 64, + "max_bond_used": 4, + "note": "no truncation dropped weight beyond the cutoff's rounding" + } + }, + { + "entry": "tn_mirror_n40", + "engine": "wai.tensor_network", + "quantity": "amplitudes against the closed form, worst error", + "measured": 2.2707199910575792e-15, + "tolerance": 3.563571497430284e-09, + "status": "pass", + "note": "contraction of width 10.9", + "seconds": 0.17406575, + "accuracy": { + "class": "exact" + } + }, + { + "entry": "tn_mirror_n40", + "engine": "aer.mps", + "quantity": "amplitudes against the closed form, worst error", + "measured": 6.439925339993816e-15, + "tolerance": 1.964309233906341e-12, + "status": "pass", + "note": "118 two-site updates at bond 4, and 0 truncations, from its log", + "seconds": 0.0006955 + }, + { + "entry": "tn_mirror_n40", + "engine": "quimb.mps", + "quantity": "amplitudes against the closed form, worst error", + "measured": 1.842075977593791e-15, + "tolerance": 3.066648591607605e-12, + "status": "pass", + "note": "118 two-site updates at bond 1; its cutoff drops at most 1e-28 of weight at each", + "seconds": 0.5303458750713617 + }, + { + "entry": "tn_mirror_n40", + "engine": "quimb.tensor_network", + "quantity": "amplitudes against the closed form, worst error", + "measured": 1.0555449878659167e-14, + "tolerance": 5.605336642470576e-13, + "status": "pass", + "note": "contraction of width 1.0", + "seconds": 0.5798521250253543 + }, + { + "entry": "bit_order_named_bits", + "engine": "wai.auto", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.0, + "tolerance": 1.0, + "status": "pass", + "planned": "stabilizer" + }, + { + "entry": "bit_order_named_bits", + "engine": "wai.auto", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0, + "tolerance": 0.10929839642611919, + "status": "pass" + }, + { + "entry": "bit_order_named_bits", + "engine": "wai.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.0, + "tolerance": 1.0, + "status": "pass", + "planned": "statevector" + }, + { + "entry": "bit_order_named_bits", + "engine": "wai.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0, + "tolerance": 0.10929839642611919, + "status": "pass" + }, + { + "entry": "bit_order_named_bits", + "engine": "aer.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.0, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "bit_order_named_bits", + "engine": "aer.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0, + "tolerance": 0.10929839642611919, + "status": "pass" + }, + { + "entry": "bit_order_named_bits", + "engine": "ddsim.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.0, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "bit_order_named_bits", + "engine": "ddsim.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0, + "tolerance": 0.10929839642611919, + "status": "pass" + }, + { + "entry": "bit_order_named_bits", + "engine": "qsim.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.0, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "bit_order_named_bits", + "engine": "qsim.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0, + "tolerance": 0.10929839642611919, + "status": "pass" + }, + { + "entry": "bit_order_named_bits", + "engine": "wai.stabilizer", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.0, + "tolerance": 1.0, + "status": "pass", + "planned": "stabilizer" + }, + { + "entry": "bit_order_named_bits", + "engine": "wai.stabilizer", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0, + "tolerance": 0.10929839642611919, + "status": "pass" + }, + { + "entry": "bit_order_named_bits", + "engine": "stim.tableau", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.0, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "bit_order_named_bits", + "engine": "stim.tableau", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0, + "tolerance": 0.10929839642611919, + "status": "pass" + }, + { + "entry": "ghz_counts_n8", + "engine": "wai.auto", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.022124431970260056, + "tolerance": 1.0, + "status": "pass", + "planned": "stabilizer" + }, + { + "entry": "ghz_counts_n8", + "engine": "wai.auto", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.00048000000000003595, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "ghz_counts_n8", + "engine": "wai.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.207416549721188, + "tolerance": 1.0, + "status": "pass", + "planned": "statevector" + }, + { + "entry": "ghz_counts_n8", + "engine": "wai.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0044999999999999485, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "ghz_counts_n8", + "engine": "aer.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.05899848525402681, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "ghz_counts_n8", + "engine": "aer.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0012799999999999478, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "ghz_counts_n8", + "engine": "ddsim.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.10877845718711193, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "ghz_counts_n8", + "engine": "ddsim.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0023599999999999732, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "ghz_counts_n8", + "engine": "qsim.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.14012140247831367, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "ghz_counts_n8", + "engine": "qsim.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.003039999999999987, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "ghz_counts_n8", + "engine": "wai.stabilizer", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.022124431970260056, + "tolerance": 1.0, + "status": "pass", + "planned": "stabilizer" + }, + { + "entry": "ghz_counts_n8", + "engine": "wai.stabilizer", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.00048000000000003595, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "ghz_counts_n8", + "engine": "stim.tableau", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.2903831696096632, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "ghz_counts_n8", + "engine": "stim.tableau", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.006299999999999972, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "qft_counts_n8", + "engine": "wai.auto", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.4509651202716092, + "tolerance": 1.0, + "status": "pass", + "planned": "exact" + }, + { + "entry": "qft_counts_n8", + "engine": "wai.auto", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.029392500000000002, + "tolerance": 0.04479339348223444, + "status": "pass" + }, + { + "entry": "qft_counts_n8", + "engine": "wai.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.4029632307188889, + "tolerance": 1.0, + "status": "pass", + "planned": "statevector" + }, + { + "entry": "qft_counts_n8", + "engine": "wai.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.026119999999999997, + "tolerance": 0.04479339348223444, + "status": "pass" + }, + { + "entry": "qft_counts_n8", + "engine": "aer.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.44843870503199235, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "qft_counts_n8", + "engine": "aer.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.027297500000000002, + "tolerance": 0.04479339348223444, + "status": "pass" + }, + { + "entry": "qft_counts_n8", + "engine": "ddsim.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.4635971964696935, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "qft_counts_n8", + "engine": "ddsim.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.028427500000000005, + "tolerance": 0.04479339348223444, + "status": "pass" + }, + { + "entry": "qft_counts_n8", + "engine": "qsim.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.4560179507508429, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "qft_counts_n8", + "engine": "qsim.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.028140000000000002, + "tolerance": 0.04479339348223444, + "status": "pass" + }, + { + "entry": "grover_counts_n5", + "engine": "wai.auto", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.13997647083085357, + "tolerance": 1.0, + "status": "pass", + "planned": "exact" + }, + { + "entry": "grover_counts_n5", + "engine": "wai.auto", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0004568152105807719, + "tolerance": 0.03012634777731961, + "status": "pass" + }, + { + "entry": "grover_counts_n5", + "engine": "wai.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.12424073859545777, + "tolerance": 1.0, + "status": "pass", + "planned": "statevector" + }, + { + "entry": "grover_counts_n5", + "engine": "wai.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.00034318478941921713, + "tolerance": 0.03012634777731961, + "status": "pass" + }, + { + "entry": "grover_counts_n5", + "engine": "aer.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.2525758062095532, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "grover_counts_n5", + "engine": "aer.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0006342001330852628, + "tolerance": 0.03012634777731961, + "status": "pass" + }, + { + "entry": "grover_counts_n5", + "engine": "ddsim.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.2525758062095532, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "grover_counts_n5", + "engine": "ddsim.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0005031847894191861, + "tolerance": 0.03012634777731961, + "status": "pass" + }, + { + "entry": "grover_counts_n5", + "engine": "qsim.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.26894153650846164, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "grover_counts_n5", + "engine": "qsim.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0005568152105808064, + "tolerance": 0.03012634777731961, + "status": "pass" + }, + { + "entry": "rotations_counts_n6", + "engine": "wai.auto", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.3706876090255593, + "tolerance": 1.0, + "status": "pass", + "planned": "statevector" + }, + { + "entry": "rotations_counts_n6", + "engine": "wai.auto", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.012450634507322185, + "tolerance": 0.025992412604050198, + "status": "pass" + }, + { + "entry": "rotations_counts_n6", + "engine": "wai.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.3706876090255593, + "tolerance": 1.0, + "status": "pass", + "planned": "statevector" + }, + { + "entry": "rotations_counts_n6", + "engine": "wai.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.012450634507322185, + "tolerance": 0.025992412604050198, + "status": "pass" + }, + { + "entry": "rotations_counts_n6", + "engine": "aer.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.4505909702514439, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "rotations_counts_n6", + "engine": "aer.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.012876127428279404, + "tolerance": 0.025992412604050198, + "status": "pass" + }, + { + "entry": "rotations_counts_n6", + "engine": "ddsim.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.5496311377807417, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "rotations_counts_n6", + "engine": "ddsim.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.014540483162413891, + "tolerance": 0.025992412604050198, + "status": "pass" + }, + { + "entry": "rotations_counts_n6", + "engine": "qsim.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.30737854709869, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "rotations_counts_n6", + "engine": "qsim.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.010360411095587168, + "tolerance": 0.025992412604050198, + "status": "pass" + }, + { + "entry": "teleport", + "engine": "wai.auto", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.28986586798694963, + "tolerance": 1.0, + "status": "pass", + "planned": "statevector" + }, + { + "entry": "teleport", + "engine": "wai.auto", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.004056320100807597, + "tolerance": 0.016954146745431286, + "status": "pass" + }, + { + "entry": "teleport", + "engine": "wai.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.28986586798694963, + "tolerance": 1.0, + "status": "pass", + "planned": "statevector" + }, + { + "entry": "teleport", + "engine": "wai.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.004056320100807597, + "tolerance": 0.016954146745431286, + "status": "pass" + }, + { + "entry": "teleport", + "engine": "aer.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.2560408383363076, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "teleport", + "engine": "aer.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0036836798991923695, + "tolerance": 0.016954146745431286, + "status": "pass" + }, + { + "entry": "teleport", + "engine": "ddsim.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.22688828086408425, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "teleport", + "engine": "ddsim.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0020799999999999664, + "tolerance": 0.016954146745431286, + "status": "pass" + }, + { + "entry": "reset_after_superposition", + "engine": "wai.auto", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.207416549721188, + "tolerance": 1.0, + "status": "pass", + "planned": "stabilizer" + }, + { + "entry": "reset_after_superposition", + "engine": "wai.auto", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0044999999999999485, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "reset_after_superposition", + "engine": "wai.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.207416549721188, + "tolerance": 1.0, + "status": "pass", + "planned": "statevector" + }, + { + "entry": "reset_after_superposition", + "engine": "wai.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0044999999999999485, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "reset_after_superposition", + "engine": "aer.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.27194614296777986, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "reset_after_superposition", + "engine": "aer.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.005900000000000016, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "reset_after_superposition", + "engine": "ddsim.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.1069347545229236, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "reset_after_superposition", + "engine": "ddsim.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0023200000000000442, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "reset_after_superposition", + "engine": "wai.stabilizer", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.207416549721188, + "tolerance": 1.0, + "status": "pass", + "planned": "stabilizer" + }, + { + "entry": "reset_after_superposition", + "engine": "wai.stabilizer", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0044999999999999485, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "reset_after_superposition", + "engine": "stim.tableau", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.2903831696096632, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "reset_after_superposition", + "engine": "stim.tableau", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.006299999999999972, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "measure_twice", + "engine": "wai.auto", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.207416549721188, + "tolerance": 1.0, + "status": "pass", + "planned": "stabilizer" + }, + { + "entry": "measure_twice", + "engine": "wai.auto", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0044999999999999485, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "measure_twice", + "engine": "wai.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.207416549721188, + "tolerance": 1.0, + "status": "pass", + "planned": "statevector" + }, + { + "entry": "measure_twice", + "engine": "wai.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0044999999999999485, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "measure_twice", + "engine": "aer.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.05899848525402681, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "measure_twice", + "engine": "aer.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0012799999999999478, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "measure_twice", + "engine": "ddsim.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 46.092566604708445, + "tolerance": 1.0, + "status": "known", + "note": "10: 49971 shots, probability 0; 11: 0 shots, expected 50000.0 \u00b1 1084.8 | known: MQT DDSIM 2.7.0's qasm_simulator, given h q[0]; c[0] = measure q[0]; c[1] = measure q[0]; with nothing between the two measurements, returns 00 and 10: c[0] is never set. With x in place of h it gives 10 on every shot; with a barrier between the measurements, 00 and 11; with c[1] measured first and c[0] second, ValueError [changePermutation]. Each is a case of the reproducer, with the circuit built in Qiskit 2.6.2.", + "right": "the exact reference: a second measurement of a qubit in the same basis repeats the first, so only 00 and 11 occur. Every other engine that ran this program met it (the results files)." + }, + { + "entry": "measure_twice", + "engine": "ddsim.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 1.0, + "tolerance": 0.02217450161929334, + "status": "known", + "note": "known: MQT DDSIM 2.7.0's qasm_simulator, given h q[0]; c[0] = measure q[0]; c[1] = measure q[0]; with nothing between the two measurements, returns 00 and 10: c[0] is never set. With x in place of h it gives 10 on every shot; with a barrier between the measurements, 00 and 11; with c[1] measured first and c[0] second, ValueError [changePermutation]. Each is a case of the reproducer, with the circuit built in Qiskit 2.6.2.", + "right": "the exact reference: a second measurement of a qubit in the same basis repeats the first, so only 00 and 11 occur. Every other engine that ran this program met it (the results files)." + }, + { + "entry": "measure_twice", + "engine": "wai.stabilizer", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.207416549721188, + "tolerance": 1.0, + "status": "pass", + "planned": "stabilizer" + }, + { + "entry": "measure_twice", + "engine": "wai.stabilizer", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0044999999999999485, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "measure_twice", + "engine": "stim.tableau", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.2903831696096632, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "measure_twice", + "engine": "stim.tableau", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.006299999999999972, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "feedback_flip", + "engine": "wai.auto", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.207416549721188, + "tolerance": 1.0, + "status": "pass", + "planned": "stabilizer" + }, + { + "entry": "feedback_flip", + "engine": "wai.auto", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0044999999999999485, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "feedback_flip", + "engine": "wai.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.207416549721188, + "tolerance": 1.0, + "status": "pass", + "planned": "statevector" + }, + { + "entry": "feedback_flip", + "engine": "wai.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0044999999999999485, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "feedback_flip", + "engine": "aer.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.27194614296777986, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "feedback_flip", + "engine": "aer.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.005900000000000016, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "feedback_flip", + "engine": "ddsim.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.00921851332094169, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "feedback_flip", + "engine": "ddsim.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.00019999999999997797, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "feedback_flip", + "engine": "wai.stabilizer", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.207416549721188, + "tolerance": 1.0, + "status": "pass", + "planned": "stabilizer" + }, + { + "entry": "feedback_flip", + "engine": "wai.stabilizer", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0044999999999999485, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "feedback_flip", + "engine": "stim.tableau", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.2903831696096632, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "feedback_flip", + "engine": "stim.tableau", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.006299999999999972, + "tolerance": 0.02217450161929334, + "status": "pass" + }, + { + "entry": "ghz_by_fusion", + "engine": "wai.auto", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.15736552228088005, + "tolerance": 1.0, + "status": "pass", + "planned": "stabilizer" + }, + { + "entry": "ghz_by_fusion", + "engine": "wai.auto", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.004500000000000032, + "tolerance": 0.022791103731202682, + "status": "pass" + }, + { + "entry": "ghz_by_fusion", + "engine": "wai.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.15736552228088005, + "tolerance": 1.0, + "status": "pass", + "planned": "statevector" + }, + { + "entry": "ghz_by_fusion", + "engine": "wai.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.004500000000000032, + "tolerance": 0.022791103731202682, + "status": "pass" + }, + { + "entry": "ghz_by_fusion", + "engine": "aer.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.3604521084676915, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "ghz_by_fusion", + "engine": "aer.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.006779999999999953, + "tolerance": 0.022791103731202682, + "status": "pass" + }, + { + "entry": "ghz_by_fusion", + "engine": "ddsim.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.06592339446901732, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "ghz_by_fusion", + "engine": "ddsim.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0012400000000000189, + "tolerance": 0.022791103731202682, + "status": "pass" + }, + { + "entry": "ghz_by_fusion", + "engine": "wai.stabilizer", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.15736552228088005, + "tolerance": 1.0, + "status": "pass", + "planned": "stabilizer" + }, + { + "entry": "ghz_by_fusion", + "engine": "wai.stabilizer", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.004500000000000032, + "tolerance": 0.022791103731202682, + "status": "pass" + }, + { + "entry": "ghz_by_fusion", + "engine": "stim.tableau", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.315794325117712, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "ghz_by_fusion", + "engine": "stim.tableau", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.0063, + "tolerance": 0.022791103731202682, + "status": "pass" + }, + { + "entry": "repeat_until_success", + "engine": "wai.auto", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.19356052803434357, + "tolerance": 1.0, + "status": "pass", + "planned": "statevector" + }, + { + "entry": "repeat_until_success", + "engine": "wai.auto", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.00488873926376112, + "tolerance": 0.01851742061709497, + "status": "pass" + }, + { + "entry": "repeat_until_success", + "engine": "wai.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.19356052803434357, + "tolerance": 1.0, + "status": "pass", + "planned": "statevector" + }, + { + "entry": "repeat_until_success", + "engine": "wai.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.00488873926376112, + "tolerance": 0.01851742061709497, + "status": "pass" + }, + { + "entry": "repeat_until_success", + "engine": "aer.statevector", + "quantity": "largest deviation of an outcome's count, in units of its Bernstein bound", + "measured": 0.3143124401477729, + "tolerance": 1.0, + "status": "pass" + }, + { + "entry": "repeat_until_success", + "engine": "aer.statevector", + "quantity": "L1 distance from the exact distribution, \u03a3|count/shots \u2212 p| over every outcome (twice the total variation), against its bound", + "measured": 0.005489130879203905, + "tolerance": 0.01851742061709497, + "status": "pass" + }, + { + "entry": "surface_z_d3", + "engine": "stim.generate", + "quantity": "the pinned generator writes the committed circuit, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "surface_z_d3", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 24, + 1 + ], + "tolerance": [ + 24, + 1 + ], + "status": "pass" + }, + { + "entry": "surface_z_d3", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 1.2082349010178461e-15, + "tolerance": 4.778399897986674e-13, + "status": "pass", + "mechanisms": [ + 219, + 219 + ], + "seconds": [ + 0.000436667, + 0.0009318749653175473 + ] + }, + { + "entry": "surface_z_d3", + "engine": "wai.qec", + "quantity": "the engine's own generator writes the same text, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "surface_z_d5", + "engine": "stim.generate", + "quantity": "the pinned generator writes the committed circuit, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "surface_z_d5", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 120, + 1 + ], + "tolerance": [ + 120, + 1 + ], + "status": "pass" + }, + { + "entry": "surface_z_d5", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 1.536964999715451e-15, + "tolerance": 2.4140689447449404e-12, + "status": "pass", + "mechanisms": [ + 1677, + 1677 + ], + "seconds": [ + 0.00230675, + 0.0026747080264613032 + ] + }, + { + "entry": "surface_z_d5", + "engine": "wai.qec", + "quantity": "the engine's own generator writes the same text, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "surface_z_d7", + "engine": "stim.generate", + "quantity": "the pinned generator writes the committed circuit, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "surface_z_d7", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 336, + 1 + ], + "tolerance": [ + 336, + 1 + ], + "status": "pass" + }, + { + "entry": "surface_z_d7", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 1.536964999715451e-15, + "tolerance": 6.837197474851564e-12, + "status": "pass", + "mechanisms": [ + 5471, + 5471 + ], + "seconds": [ + 0.005879875, + 0.008549250080250204 + ] + }, + { + "entry": "surface_z_d7", + "engine": "wai.qec", + "quantity": "the engine's own generator writes the same text, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "surface_z_d9", + "engine": "stim.generate", + "quantity": "the pinned generator writes the committed circuit, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "surface_z_d9", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 720, + 1 + ], + "tolerance": [ + 720, + 1 + ], + "status": "pass" + }, + { + "entry": "surface_z_d9", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 1.536964999715451e-15, + "tolerance": 1.4770407119613083e-11, + "status": "pass", + "mechanisms": [ + 12705, + 12705 + ], + "seconds": [ + 0.013021375, + 0.02001350000500679 + ] + }, + { + "entry": "surface_z_d9", + "engine": "wai.qec", + "quantity": "the engine's own generator writes the same text, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "surface_z_d11", + "engine": "stim.generate", + "quantity": "the pinned generator writes the committed circuit, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "surface_z_d11", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 1320, + 1 + ], + "tolerance": [ + 1320, + 1 + ], + "status": "pass" + }, + { + "entry": "surface_z_d11", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 1.536964999715451e-15, + "tolerance": 2.723687941852404e-11, + "status": "pass", + "mechanisms": [ + 24483, + 24483 + ], + "seconds": [ + 0.023241833, + 0.038993375026620924 + ] + }, + { + "entry": "surface_z_d11", + "engine": "wai.qec", + "quantity": "the engine's own generator writes the same text, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "surface_z_d15", + "engine": "stim.generate", + "quantity": "the pinned generator writes the committed circuit, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "surface_z_d15", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 3360, + 1 + ], + "tolerance": [ + 3360, + 1 + ], + "status": "pass" + }, + { + "entry": "surface_z_d15", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 1.536964999715451e-15, + "tolerance": 6.986233813677245e-11, + "status": "pass", + "mechanisms": [ + 66087, + 66087 + ], + "seconds": [ + 0.067300125, + 0.11294433299917728 + ] + }, + { + "entry": "surface_z_d15", + "engine": "wai.qec", + "quantity": "the engine's own generator writes the same text, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "surface_x_d3", + "engine": "stim.generate", + "quantity": "the pinned generator writes the committed circuit, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "surface_x_d3", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 24, + 1 + ], + "tolerance": [ + 24, + 1 + ], + "status": "pass" + }, + { + "entry": "surface_x_d3", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 1.4857906571741353e-15, + "tolerance": 4.778399897986674e-13, + "status": "pass", + "mechanisms": [ + 221, + 221 + ], + "seconds": [ + 0.000444958, + 0.00047004094813019037 + ] + }, + { + "entry": "surface_x_d5", + "engine": "stim.generate", + "quantity": "the pinned generator writes the committed circuit, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "surface_x_d5", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 120, + 1 + ], + "tolerance": [ + 120, + 1 + ], + "status": "pass" + }, + { + "entry": "surface_x_d5", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 1.5404344466674047e-15, + "tolerance": 2.4140689447449404e-12, + "status": "pass", + "mechanisms": [ + 1679, + 1679 + ], + "seconds": [ + 0.002152417, + 0.0028290420304983854 + ] + }, + { + "entry": "surface_x_d7", + "engine": "stim.generate", + "quantity": "the pinned generator writes the committed circuit, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "surface_x_d7", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 336, + 1 + ], + "tolerance": [ + 336, + 1 + ], + "status": "pass" + }, + { + "entry": "surface_x_d7", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 1.5404344466674047e-15, + "tolerance": 6.837197474851564e-12, + "status": "pass", + "mechanisms": [ + 5473, + 5473 + ], + "seconds": [ + 0.006064625, + 0.008581499918363988 + ] + }, + { + "entry": "unrotated_z_d3", + "engine": "stim.generate", + "quantity": "the pinned generator writes the committed circuit, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "unrotated_z_d3", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 36, + 1 + ], + "tolerance": [ + 36, + 1 + ], + "status": "pass" + }, + { + "entry": "unrotated_z_d3", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 1.214306433183765e-17, + "tolerance": 7.549516567451064e-13, + "status": "pass", + "mechanisms": [ + 423, + 423 + ], + "seconds": [ + 0.000728875, + 0.0007535420591011643 + ] + }, + { + "entry": "unrotated_z_d5", + "engine": "stim.generate", + "quantity": "the pinned generator writes the committed circuit, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "unrotated_z_d5", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 200, + 1 + ], + "tolerance": [ + 200, + 1 + ], + "status": "pass" + }, + { + "entry": "unrotated_z_d5", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 1.214306433183765e-17, + "tolerance": 4.204636638860393e-12, + "status": "pass", + "mechanisms": [ + 3139, + 3139 + ], + "seconds": [ + 0.003993625, + 0.005208791932091117 + ] + }, + { + "entry": "repetition_d3", + "engine": "stim.generate", + "quantity": "the pinned generator writes the committed circuit, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "repetition_d3", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 8, + 1 + ], + "tolerance": [ + 8, + 1 + ], + "status": "pass" + }, + { + "entry": "repetition_d3", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 3.469446951953614e-18, + "tolerance": 9.414691248821327e-14, + "status": "pass", + "mechanisms": [ + 21, + 21 + ], + "seconds": [ + 7.0375e-05, + 7.412501145154238e-05 + ] + }, + { + "entry": "repetition_d9", + "engine": "stim.generate", + "quantity": "the pinned generator writes the committed circuit, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "repetition_d9", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 80, + 1 + ], + "tolerance": [ + 80, + 1 + ], + "status": "pass" + }, + { + "entry": "repetition_d9", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 3.469446951953614e-18, + "tolerance": 9.57456336436735e-13, + "status": "pass", + "mechanisms": [ + 225, + 225 + ], + "seconds": [ + 0.000607625, + 0.0006661249790340662 + ] + }, + { + "entry": "repetition_d25", + "engine": "stim.generate", + "quantity": "the pinned generator writes the committed circuit, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "repetition_d25", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 624, + 1 + ], + "tolerance": [ + 624, + 1 + ], + "status": "pass" + }, + { + "entry": "repetition_d25", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 3.469446951953614e-18, + "tolerance": 7.636558052581677e-12, + "status": "pass", + "mechanisms": [ + 1825, + 1825 + ], + "seconds": [ + 0.00395575, + 0.005750750075094402 + ] + }, + { + "entry": "surface_z_d5_noiseless", + "engine": "stim.generate", + "quantity": "the pinned generator writes the committed circuit, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "surface_z_d5_noiseless", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 120, + 1 + ], + "tolerance": [ + 120, + 1 + ], + "status": "pass" + }, + { + "entry": "surface_z_d5_noiseless", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 0.0, + "tolerance": 0.0, + "status": "pass", + "mechanisms": [ + 0, + 0 + ], + "seconds": [ + 6.2584e-05, + 8.725002408027649e-05 + ] + }, + { + "entry": "surface_z_d5_noiseless", + "engine": "wai.qec", + "quantity": "the engine's own generator writes the same text, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "color_d3", + "engine": "stim.generate", + "quantity": "the pinned generator writes the committed circuit, byte for byte", + "measured": true, + "tolerance": true, + "status": "pass" + }, + { + "entry": "color_d3", + "engine": "wai.qec", + "quantity": "refuses, as listed: the frame simulator does not implement C_XYZ", + "measured": "line 16: unsupported instruction 'C_XYZ'", + "tolerance": "unsupported instruction 'C_XYZ'", + "status": "refused" + }, + { + "entry": "qec_inverted_and_tagged", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 1, + 1 + ], + "tolerance": [ + 1, + 1 + ], + "status": "pass" + }, + { + "entry": "qec_inverted_and_tagged", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 0.0, + "tolerance": 1.7763568394002505e-15, + "status": "pass", + "mechanisms": [ + 1, + 1 + ], + "seconds": [ + 7.667e-06, + 4.3874955736100674e-05 + ] + }, + { + "entry": "qec_measure_flip_noise", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 2, + 0 + ], + "tolerance": [ + 2, + 0 + ], + "status": "pass" + }, + { + "entry": "qec_measure_flip_noise", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 0.0, + "tolerance": 3.552713678800501e-15, + "status": "pass", + "mechanisms": [ + 2, + 2 + ], + "seconds": [ + 1.05e-05, + 3.112491685897112e-05 + ] + }, + { + "entry": "qec_depolarize_merge", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 2, + 0 + ], + "tolerance": [ + 2, + 0 + ], + "status": "pass" + }, + { + "entry": "qec_depolarize_merge", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 6.938893903907228e-18, + "tolerance": 7.105427357601002e-15, + "status": "pass", + "mechanisms": [ + 3, + 3 + ], + "seconds": [ + 1.7042e-05, + 3.112491685897112e-05 + ] + }, + { + "entry": "qec_pauli_observable", + "engine": "wai.qec ~ stim.tableau", + "quantity": "detectors and observables", + "measured": [ + 0, + 1 + ], + "tolerance": [ + 0, + 1 + ], + "status": "pass" + }, + { + "entry": "qec_pauli_observable", + "engine": "wai.qec ~ stim.tableau", + "quantity": "mechanisms: same symptom sets, probabilities within the bound (largest difference)", + "measured": 0.0, + "tolerance": 1.7763568394002505e-15, + "status": "pass", + "mechanisms": [ + 1, + 1 + ], + "seconds": [ + 7.416e-06, + 2.6541994884610176e-05 + ] + }, + { + "entry": "qec_refused_correlated", + "engine": "wai.qec", + "quantity": "refuses, as listed: the frame simulator does not implement correlated errors", + "measured": "line 2: unsupported instruction 'E'", + "tolerance": "unsupported instruction 'E'", + "status": "refused" + }, + { + "entry": "qec_refused_pauli_channel", + "engine": "wai.qec", + "quantity": "refuses, as listed: the frame simulator does not implement general Pauli channels", + "measured": "line 2: unsupported instruction 'PAULI_CHANNEL_1'", + "tolerance": "unsupported instruction 'PAULI_CHANNEL_1'", + "status": "refused" + }, + { + "entry": "qec_refused_random_detector", + "engine": "wai.qec", + "quantity": "refuses, as listed: a detector that is random without noise is no detector", + "measured": "a detector or observable is not deterministic (it anticommutes with op 0)", + "tolerance": "is not deterministic", + "status": "refused" + }, + { + "entry": "qec_refused_random_detector", + "engine": "stim.tableau", + "quantity": "detector error model", + "measured": null, + "tolerance": null, + "status": "not run", + "note": "ValueError: The circuit contains non-deterministic detectors.\n\nTo make an SVG picture of the problem, you can use the python API like this:\n your_circuit.diagram('detslice-with-ops-svg', tick=range(0, 5), filter_coords=['D0', ])\nor the command line API like this:\n stim diagram --in your_circui" + }, + { + "entry": "surface_z_d3", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.23048646026773695, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.003734041 + }, + { + "entry": "surface_z_d3", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.26612373330384453, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.03879704198334366 + }, + { + "entry": "surface_z_d5", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.39879503356455986, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.086647916 + }, + { + "entry": "surface_z_d5", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.31446398721275803, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.3336852079955861 + }, + { + "entry": "surface_z_d7", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.39837199632438514, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.239939125 + }, + { + "entry": "surface_z_d7", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.36956988813575803, + "tolerance": 1.0, + "status": "pass", + "seconds": 2.058298666961491 + }, + { + "entry": "surface_z_d9", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.44562403085450897, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.514784583 + }, + { + "entry": "surface_z_d9", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.44168781651832756, + "tolerance": 1.0, + "status": "pass", + "seconds": 4.18332762492355 + }, + { + "entry": "surface_z_d11", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.47332548889429565, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.941161791 + }, + { + "entry": "surface_z_d11", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.49427681682544705, + "tolerance": 1.0, + "status": "pass", + "seconds": 7.662955500069074 + }, + { + "entry": "surface_z_d15", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.6058088014595989, + "tolerance": 1.0, + "status": "pass", + "seconds": 2.41100725 + }, + { + "entry": "surface_z_d15", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.5194184103428287, + "tolerance": 1.0, + "status": "pass", + "seconds": 20.547932541929185 + }, + { + "entry": "surface_x_d3", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.23097594113424208, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.018497625 + }, + { + "entry": "surface_x_d3", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.33468405650458116, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.08214824995957315 + }, + { + "entry": "surface_x_d5", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.39879503356455986, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.087732916 + }, + { + "entry": "surface_x_d5", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.31455707669741806, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.347199207986705 + }, + { + "entry": "surface_x_d7", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.39837199632438514, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.237921708 + }, + { + "entry": "surface_x_d7", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.36956988813575803, + "tolerance": 1.0, + "status": "pass", + "seconds": 2.103944959002547 + }, + { + "entry": "unrotated_z_d3", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.4432082368513014, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.039502959 + }, + { + "entry": "unrotated_z_d3", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.2922888946917172, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.12286358291748911 + }, + { + "entry": "unrotated_z_d5", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.36438632201668025, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.198374667 + }, + { + "entry": "unrotated_z_d5", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.39061111840894275, + "tolerance": 1.0, + "status": "pass", + "seconds": 1.5446243750629947 + }, + { + "entry": "repetition_d3", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.21697348529638835, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.007316083 + }, + { + "entry": "repetition_d3", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.22690086546146157, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.06142320903018117 + }, + { + "entry": "repetition_d9", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.37170291528054833, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.067992208 + }, + { + "entry": "repetition_d9", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.32866686808574597, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.28485950001049787 + }, + { + "entry": "repetition_d25", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.47631886714818006, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.544091541 + }, + { + "entry": "repetition_d25", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.4600921608288283, + "tolerance": 1.0, + "status": "pass", + "seconds": 4.391478750039823 + }, + { + "entry": "surface_z_d5_noiseless", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.0, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.002870209 + }, + { + "entry": "surface_z_d5_noiseless", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.0, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.0659354580566287 + }, + { + "entry": "qec_inverted_and_tagged", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.05174419279569804, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.000478584 + }, + { + "entry": "qec_inverted_and_tagged", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.07132307655620218, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.04086124990135431 + }, + { + "entry": "qec_measure_flip_noise", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.16886942380692735, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.000723792 + }, + { + "entry": "qec_measure_flip_noise", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.03989366382976254, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.044508084072731435 + }, + { + "entry": "qec_depolarize_merge", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.09894171264046614, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.001453792 + }, + { + "entry": "qec_depolarize_merge", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.20788876700905257, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.04242633399553597 + }, + { + "entry": "qec_pauli_observable", + "engine": "wai.qec", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.213969229668632, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.000418 + }, + { + "entry": "qec_pauli_observable", + "engine": "stim.tableau", + "quantity": "detection and flip rates against the model, largest deviation in units of its Bernstein bound", + "measured": 0.04615022600694987, + "tolerance": 1.0, + "status": "pass", + "seconds": 0.040060500032268465 + }, + { + "entry": "measure_twice", + "engine": "ddsim.statevector", + "quantity": "reproducer (corpus/reproducers/ddsim_repeated_measurement.py): h, then c[0] and c[1] measured from the qubit with nothing between: only 00 and 10 come", + "measured": [ + "00", + "10" + ], + "tolerance": [ + "00", + "10" + ], + "status": "known" + }, + { + "entry": "measure_twice", + "engine": "ddsim.statevector", + "quantity": "reproducer (corpus/reproducers/ddsim_repeated_measurement.py): x, then the same two measurements: 10 on every shot", + "measured": [ + "10" + ], + "tolerance": [ + "10" + ], + "status": "known" + }, + { + "entry": "measure_twice", + "engine": "ddsim.statevector", + "quantity": "reproducer (corpus/reproducers/ddsim_repeated_measurement.py): h, the two measurements with a barrier between: 00 and 11", + "measured": [ + "00", + "11" + ], + "tolerance": [ + "00", + "11" + ], + "status": "known" + }, + { + "entry": "measure_twice", + "engine": "ddsim.statevector", + "quantity": "reproducer (corpus/reproducers/ddsim_repeated_measurement.py): h, then c[1] measured first and c[0] second: an error naming changePermutation", + "measured": "ValueError: [changePermutation] Target must be an injective mapping using only keys and logical qubits from the source permutation.", + "tolerance": "ValueError: [changePermutation] ...", + "status": "known" + }, + { + "entry": "repeat_until_success", + "engine": "ddsim.statevector", + "quantity": "reproducer (corpus/reproducers/ddsim_feedback_rounds.py): repeat_until_success: an error naming changePermutation, and no counts", + "measured": "ValueError: [changePermutation] Target must be an injective mapping using only keys and logical qubits from the source permutation.", + "tolerance": "ValueError: [changePermutation] ...", + "status": "known" + }, + { + "entry": "repeat_until_success", + "engine": "ddsim.statevector", + "quantity": "reproducer (corpus/reproducers/ddsim_feedback_rounds.py): the same three rounds without the conditioned x: the same error", + "measured": "ValueError: [changePermutation] Target must be an injective mapping using only keys and logical qubits from the source permutation.", + "tolerance": "ValueError: [changePermutation] ...", + "status": "known" + }, + { + "entry": "repeat_until_success", + "engine": "ddsim.statevector", + "quantity": "reproducer (corpus/reproducers/ddsim_feedback_rounds.py): qubit 1 measured, h, measured again, then qubit 0 measured into a third bit: the same error", + "measured": "ValueError: [changePermutation] Target must be an injective mapping using only keys and logical qubits from the source permutation.", + "tolerance": "ValueError: [changePermutation] ...", + "status": "known" + }, + { + "entry": "repeat_until_success", + "engine": "ddsim.statevector", + "quantity": "reproducer (corpus/reproducers/ddsim_feedback_rounds.py): the same without qubit 0's measurement into a third bit: counts", + "measured": "counts over 4 outcomes", + "tolerance": "counts", + "status": "known" + }, + { + "entry": "corpus", + "engine": "corpus.py", + "quantity": "corpus/expected-refusals.json is the reader's rule and corpus.py's list", + "measured": true, + "tolerance": true, + "status": "pass" + } + ] +} diff --git a/wai/quantum-cross-simulator/results/performance-linux-x86_64.json b/wai/quantum-cross-simulator/results/performance-linux-x86_64.json new file mode 100644 index 000000000..2824080ca --- /dev/null +++ b/wai/quantum-cross-simulator/results/performance-linux-x86_64.json @@ -0,0 +1,2464 @@ +{ + "about": "Run time and peak memory per engine on one host: tools/perf.py. Times are each engine's own call (timers says where each starts and stops), the minimum and median of repeated runs; memory is the peak resident set of the process that ran the engine.", + "timers": { + "wai": "the engine's run, after the program is read and lowered (the driver's own clock)", + "aer": "the simulator's own time for the experiment, as its result states it (time_taken); the conversion of the circuit to its own form is outside it", + "qsim": "the simulate call, which converts the circuit to its own form inside it", + "ddsim": "the run call, which converts the circuit to its own form inside it", + "stim": "the tableau's or sampler's run, after the circuit text is parsed", + "quimb": "the building of the circuit object, which applies each gate as it is added, and the read-out" + }, + "host": { + "system": "Linux", + "machine": "x86_64", + "release": "7.0.0-38-generic", + "cpu": "AMD RYZEN AI MAX+ 395 w/ Radeon 8060S", + "memory_bytes": 131890810880, + "os": "Ubuntu 26.04.1 LTS", + "logical_cpus": 32, + "load_average": [ + 16.8349609375, + 28.13134765625, + 31.38525390625 + ] + }, + "versions": { + "cirq-core": "1.7.0", + "mqt.core": "3.11.0", + "mqt.ddsim": "2.7.0", + "numpy": "2.5.4", + "python": "3.12.16", + "qiskit": "2.6.2", + "qiskit-aer": "0.18.2", + "qsimcirq": "0.22.1", + "quimb": "1.15.0", + "scipy": "1.18.1", + "stim": "1.16.0" + }, + "engine_under_test": "wai/wai-quantum fb308edc04d9803b8549b17fbabbdd53aa453776, wai/wai-quantum-qpu c1031872aac2c4d2bcf134af80b9dc454954a2de, wai/wai-quantum-cli 24fea35fd3b93a064120613c39cae963e1a66762, wai/quantum-cross-simulator/tools 185753899b00ca765330a404b6617eb569cdd26b, wai/quantum-cross-simulator/corpus 464ca70c805b560a246962242c1db196435455f3; rustc 1.99.1 (58cf8f9c3 2026-10-13)", + "repeat": 5, + "rows": [ + { + "case": "qft_n20", + "what": "the QFT of a basis state, the whole state", + "engine": "wai.statevector", + "cpus": 32, + "threads": "all (32)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 16.6, + 11.4, + 10.4 + ], + "load_after": [ + 16.6, + 11.4, + 10.4 + ], + "seconds_min": 0.126790406, + "seconds_median": 0.204676895, + "wall_median": 0.270378930028528, + "peak_rss_mib": 26.0, + "baseline_rss_mib": 5.4, + "repeats": 5, + "ops": 230, + "settings": null + }, + { + "case": "qft_n20", + "what": "the QFT of a basis state, the whole state", + "engine": "aer.statevector", + "cpus": 32, + "threads": "32", + "timer": "the simulator's own time for the experiment, as its result states it (time_taken); the conversion of the circuit to its own form is outside it", + "load_before": [ + 16.6, + 11.4, + 10.4 + ], + "load_after": [ + 21.4, + 12.7, + 10.8 + ], + "seconds_min": 0.773765996, + "seconds_median": 0.961956262, + "wall_median": 1.3813589720521122, + "peak_rss_mib": 115.4, + "baseline_rss_mib": 99.7, + "repeats": 5, + "ops": 231, + "settings": { + "precision": "double", + "fusion_threshold": 14, + "fusion_max_qubit": 5 + }, + "call_seconds_median": 0.9671039849054068 + }, + { + "case": "qft_n20", + "what": "the QFT of a basis state, the whole state", + "engine": "qsim.statevector", + "cpus": 32, + "threads": "32", + "timer": "the simulate call, which converts the circuit to its own form inside it", + "load_before": [ + 21.4, + 12.7, + 10.8 + ], + "load_after": [ + 19.3, + 12.5, + 10.8 + ], + "seconds_min": 1.2148656060453504, + "seconds_median": 1.2469175739679486, + "wall_median": 2.5496665611863136, + "peak_rss_mib": 195.2, + "baseline_rss_mib": 187.6, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "single", + "fusion": 2 + } + }, + { + "case": "qft_n20", + "what": "the QFT of a basis state, the whole state", + "engine": "ddsim.statevector", + "cpus": 32, + "threads": "not set", + "timer": "the run call, which converts the circuit to its own form inside it", + "load_before": [ + 20.6, + 12.9, + 10.9 + ], + "load_after": [ + 20.6, + 12.9, + 10.9 + ], + "seconds_min": 0.3197172081563622, + "seconds_median": 0.335963323013857, + "wall_median": 0.6599756029900163, + "peak_rss_mib": 130.9, + "baseline_rss_mib": 97.9, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "decision diagram, double" + } + }, + { + "case": "qft_n20", + "what": "the QFT of a basis state, the whole state", + "engine": "wai.exact", + "cpus": 32, + "threads": "1 (no threads)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 20.6, + 12.9, + 10.9 + ], + "load_after": [ + 19.8, + 12.8, + 10.9 + ], + "seconds_min": 0.247347941, + "seconds_median": 0.250395566, + "wall_median": 0.28803856507875025, + "peak_rss_mib": 37.7, + "baseline_rss_mib": 5.2, + "repeats": 5, + "ops": 250, + "settings": null + }, + { + "case": "qft_n20", + "what": "the QFT of a basis state, the whole state", + "engine": "quimb.dense", + "cpus": 32, + "threads": "not set", + "timer": "the building of the circuit object, which applies each gate as it is added, and the read-out", + "load_before": [ + 19.8, + 12.8, + 10.9 + ], + "load_after": [ + 22.6, + 13.9, + 11.3 + ], + "seconds_min": 2.998393266927451, + "seconds_median": 3.6020363830029964, + "wall_median": 3.919689832953736, + "peak_rss_mib": 291.0, + "baseline_rss_mib": 195.4, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "double" + } + }, + { + "case": "qft_n20", + "what": "the QFT of a basis state, the whole state", + "engine": "wai.statevector", + "cpus": 1, + "threads": "1 (pinned)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 22.6, + 13.9, + 11.3 + ], + "load_after": [ + 22.6, + 13.9, + 11.3 + ], + "seconds_min": 0.231086717, + "seconds_median": 0.231913769, + "wall_median": 0.26434205705299973, + "peak_rss_mib": 22.3, + "baseline_rss_mib": 5.4, + "repeats": 5, + "ops": 230, + "settings": null + }, + { + "case": "qft_n20", + "what": "the QFT of a basis state, the whole state", + "engine": "aer.statevector", + "cpus": 1, + "threads": "1 (pinned)", + "timer": "the simulator's own time for the experiment, as its result states it (time_taken); the conversion of the circuit to its own form is outside it", + "load_before": [ + 22.6, + 13.9, + 11.3 + ], + "load_after": [ + 21.0, + 13.8, + 11.3 + ], + "seconds_min": 0.2454739, + "seconds_median": 0.250470949, + "wall_median": 0.518059769179672, + "peak_rss_mib": 115.5, + "baseline_rss_mib": 99.7, + "repeats": 5, + "ops": 231, + "settings": { + "precision": "double", + "fusion_threshold": 14, + "fusion_max_qubit": 5 + }, + "call_seconds_median": 0.25517437187954783 + }, + { + "case": "qft_n20", + "what": "the QFT of a basis state, the whole state", + "engine": "qsim.statevector", + "cpus": 1, + "threads": "1 (pinned)", + "timer": "the simulate call, which converts the circuit to its own form inside it", + "load_before": [ + 21.0, + 13.8, + 11.3 + ], + "load_after": [ + 20.4, + 13.8, + 11.3 + ], + "seconds_min": 0.0343360819388181, + "seconds_median": 0.03795795398764312, + "wall_median": 1.1732681391295046, + "peak_rss_mib": 195.0, + "baseline_rss_mib": 187.6, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "single", + "fusion": 2 + } + }, + { + "case": "qft_n20", + "what": "the QFT of a basis state, the whole state", + "engine": "ddsim.statevector", + "cpus": 1, + "threads": "1 (pinned)", + "timer": "the run call, which converts the circuit to its own form inside it", + "load_before": [ + 20.4, + 13.8, + 11.3 + ], + "load_after": [ + 19.8, + 13.7, + 11.3 + ], + "seconds_min": 0.3334665368311107, + "seconds_median": 0.36763518396764994, + "wall_median": 0.6854540570639074, + "peak_rss_mib": 132.1, + "baseline_rss_mib": 97.9, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "decision diagram, double" + } + }, + { + "case": "qft_n20", + "what": "the QFT of a basis state, the whole state", + "engine": "wai.exact", + "cpus": 1, + "threads": "1 (pinned)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 19.8, + 13.7, + 11.3 + ], + "load_after": [ + 19.8, + 13.7, + 11.3 + ], + "seconds_min": 0.271287326, + "seconds_median": 0.287256588, + "wall_median": 0.3319618150126189, + "peak_rss_mib": 37.8, + "baseline_rss_mib": 5.2, + "repeats": 5, + "ops": 250, + "settings": null + }, + { + "case": "qft_n20", + "what": "the QFT of a basis state, the whole state", + "engine": "quimb.dense", + "cpus": 1, + "threads": "1 (pinned)", + "timer": "the building of the circuit object, which applies each gate as it is added, and the read-out", + "load_before": [ + 19.8, + 13.7, + 11.3 + ], + "load_after": [ + 18.9, + 13.8, + 11.3 + ], + "seconds_min": 1.2699797940440476, + "seconds_median": 1.2830216959118843, + "wall_median": 1.5602648719213903, + "peak_rss_mib": 275.9, + "baseline_rss_mib": 195.4, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "double" + } + }, + { + "case": "qft_n24", + "what": "the QFT of a basis state, the whole state", + "engine": "wai.statevector", + "cpus": 32, + "threads": "all (32)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 18.9, + 13.8, + 11.3 + ], + "load_after": [ + 18.9, + 13.8, + 11.3 + ], + "seconds_min": 0.544708041, + "seconds_median": 0.551132385, + "wall_median": 0.616431089118123, + "peak_rss_mib": 278.5, + "baseline_rss_mib": 5.4, + "repeats": 5, + "ops": 324, + "settings": null + }, + { + "case": "qft_n24", + "what": "the QFT of a basis state, the whole state", + "engine": "aer.statevector", + "cpus": 32, + "threads": "32", + "timer": "the simulator's own time for the experiment, as its result states it (time_taken); the conversion of the circuit to its own form is outside it", + "load_before": [ + 18.9, + 13.8, + 11.3 + ], + "load_after": [ + 22.8, + 14.7, + 11.7 + ], + "seconds_min": 1.657947431, + "seconds_median": 1.740408749, + "wall_median": 2.1585248499177396, + "peak_rss_mib": 355.2, + "baseline_rss_mib": 99.7, + "repeats": 5, + "ops": 325, + "settings": { + "precision": "double", + "fusion_threshold": 14, + "fusion_max_qubit": 5 + }, + "call_seconds_median": 1.747596105094999 + }, + { + "case": "qft_n24", + "what": "the QFT of a basis state, the whole state", + "engine": "qsim.statevector", + "cpus": 32, + "threads": "32", + "timer": "the simulate call, which converts the circuit to its own form inside it", + "load_before": [ + 22.8, + 14.7, + 11.7 + ], + "load_after": [ + 31.0, + 17.4, + 12.7 + ], + "seconds_min": 2.090322642121464, + "seconds_median": 2.7044302618596703, + "wall_median": 4.166398274945095, + "peak_rss_mib": 315.5, + "baseline_rss_mib": 187.6, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "single", + "fusion": 2 + } + }, + { + "case": "qft_n24", + "what": "the QFT of a basis state, the whole state", + "engine": "ddsim.statevector", + "cpus": 32, + "threads": "not set", + "timer": "the run call, which converts the circuit to its own form inside it", + "load_before": [ + 31.0, + 17.4, + 12.7 + ], + "load_after": [ + 27.0, + 17.9, + 13.0 + ], + "seconds_min": 5.46073649614118, + "seconds_median": 6.150911981007084, + "wall_median": 6.502872127108276, + "peak_rss_mib": 612.0, + "baseline_rss_mib": 97.9, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "decision diagram, double" + } + }, + { + "case": "qft_n24", + "what": "the QFT of a basis state, the whole state", + "engine": "wai.exact", + "cpus": 32, + "threads": "1 (no threads)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 27.0, + 17.9, + 13.0 + ], + "load_after": [ + 21.2, + 17.4, + 13.0 + ], + "seconds_min": 6.926600177, + "seconds_median": 7.044440287, + "wall_median": 7.220856094034389, + "peak_rss_mib": 517.8, + "baseline_rss_mib": 5.2, + "repeats": 5, + "ops": 348, + "settings": null + }, + { + "case": "qft_n24", + "what": "the QFT of a basis state, the whole state", + "engine": "wai.statevector", + "cpus": 1, + "threads": "1 (pinned)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 21.2, + 17.4, + 13.0 + ], + "load_after": [ + 36.6, + 21.7, + 14.6 + ], + "seconds_min": 5.712434443, + "seconds_median": 6.251731023, + "wall_median": 6.365475238068029, + "peak_rss_mib": 262.4, + "baseline_rss_mib": 5.4, + "repeats": 5, + "ops": 324, + "settings": null + }, + { + "case": "qft_n24", + "what": "the QFT of a basis state, the whole state", + "engine": "aer.statevector", + "cpus": 1, + "threads": "1 (pinned)", + "timer": "the simulator's own time for the experiment, as its result states it (time_taken); the conversion of the circuit to its own form is outside it", + "load_before": [ + 36.6, + 21.7, + 14.6 + ], + "load_after": [ + 24.3, + 20.4, + 14.5 + ], + "seconds_min": 6.519570987, + "seconds_median": 8.170141334, + "wall_median": 8.628038871102035, + "peak_rss_mib": 355.8, + "baseline_rss_mib": 99.7, + "repeats": 5, + "ops": 325, + "settings": { + "precision": "double", + "fusion_threshold": 14, + "fusion_max_qubit": 5 + }, + "call_seconds_median": 8.180640274193138 + }, + { + "case": "qft_n24", + "what": "the QFT of a basis state, the whole state", + "engine": "qsim.statevector", + "cpus": 1, + "threads": "1 (pinned)", + "timer": "the simulate call, which converts the circuit to its own form inside it", + "load_before": [ + 24.3, + 20.4, + 14.5 + ], + "load_after": [ + 21.0, + 19.8, + 14.4 + ], + "seconds_min": 1.6871735609602183, + "seconds_median": 1.695395610993728, + "wall_median": 3.2720638341270387, + "peak_rss_mib": 315.2, + "baseline_rss_mib": 187.6, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "single", + "fusion": 2 + } + }, + { + "case": "qft_n24", + "what": "the QFT of a basis state, the whole state", + "engine": "ddsim.statevector", + "cpus": 1, + "threads": "1 (pinned)", + "timer": "the run call, which converts the circuit to its own form inside it", + "load_before": [ + 21.0, + 19.8, + 14.4 + ], + "load_after": [ + 14.3, + 18.2, + 14.1 + ], + "seconds_min": 7.718035132158548, + "seconds_median": 8.027198984054849, + "wall_median": 8.422714550048113, + "peak_rss_mib": 612.0, + "baseline_rss_mib": 97.9, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "decision diagram, double" + } + }, + { + "case": "qft_n24", + "what": "the QFT of a basis state, the whole state", + "engine": "wai.exact", + "cpus": 1, + "threads": "1 (pinned)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 14.3, + 18.2, + 14.1 + ], + "load_after": [ + 14.7, + 17.8, + 14.2 + ], + "seconds_min": 7.437172986, + "seconds_median": 7.637970972, + "wall_median": 7.818503838963807, + "peak_rss_mib": 518.1, + "baseline_rss_mib": 5.2, + "repeats": 5, + "ops": 348, + "settings": null + }, + { + "case": "qft_n26", + "what": "the QFT of a basis state, the whole state", + "engine": "wai.statevector", + "cpus": 32, + "threads": "all (32)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 14.7, + 17.8, + 14.2 + ], + "load_after": [ + 19.4, + 18.7, + 14.5 + ], + "seconds_min": 2.15386599, + "seconds_median": 2.245530295, + "wall_median": 2.3870437170844525, + "peak_rss_mib": 1046.5, + "baseline_rss_mib": 5.4, + "repeats": 5, + "ops": 377, + "settings": null + }, + { + "case": "qft_n26", + "what": "the QFT of a basis state, the whole state", + "engine": "aer.statevector", + "cpus": 32, + "threads": "32", + "timer": "the simulator's own time for the experiment, as its result states it (time_taken); the conversion of the circuit to its own form is outside it", + "load_before": [ + 19.4, + 18.7, + 14.5 + ], + "load_after": [ + 32.9, + 22.4, + 15.9 + ], + "seconds_min": 6.858712377, + "seconds_median": 7.910818969, + "wall_median": 8.398430712055415, + "peak_rss_mib": 1125.2, + "baseline_rss_mib": 99.7, + "repeats": 5, + "ops": 378, + "settings": { + "precision": "double", + "fusion_threshold": 14, + "fusion_max_qubit": 5 + }, + "call_seconds_median": 7.919335136888549 + }, + { + "case": "qft_n26", + "what": "the QFT of a basis state, the whole state", + "engine": "qsim.statevector", + "cpus": 32, + "threads": "32", + "timer": "the simulate call, which converts the circuit to its own form inside it", + "load_before": [ + 32.9, + 22.4, + 15.9 + ], + "load_after": [ + 36.7, + 24.6, + 16.9 + ], + "seconds_min": 4.36230419902131, + "seconds_median": 4.949526705080643, + "wall_median": 6.3227318320423365, + "peak_rss_mib": 698.6, + "baseline_rss_mib": 187.6, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "single", + "fusion": 2 + } + }, + { + "case": "qft_n28", + "what": "the QFT of a basis state, the whole state", + "engine": "wai.statevector", + "cpus": 32, + "threads": "all (32)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 36.7, + 24.6, + 16.9 + ], + "load_after": [ + 49.4, + 31.1, + 19.8 + ], + "seconds_min": 12.173496626, + "seconds_median": 13.476484787, + "wall_median": 13.920869947876781, + "peak_rss_mib": 4117.7, + "baseline_rss_mib": 5.4, + "repeats": 5, + "ops": 434, + "settings": null + }, + { + "case": "qft_n28", + "what": "the QFT of a basis state, the whole state", + "engine": "aer.statevector", + "cpus": 32, + "threads": "32", + "timer": "the simulator's own time for the experiment, as its result states it (time_taken); the conversion of the circuit to its own form is outside it", + "load_before": [ + 49.4, + 31.1, + 19.8 + ], + "load_after": [ + 43.1, + 33.8, + 21.7 + ], + "seconds_min": 15.419881843, + "seconds_median": 17.269287465, + "wall_median": 17.649451726814732, + "peak_rss_mib": 4198.3, + "baseline_rss_mib": 99.7, + "repeats": 5, + "ops": 435, + "settings": { + "precision": "double", + "fusion_threshold": 14, + "fusion_max_qubit": 5 + }, + "call_seconds_median": 17.278980991104618 + }, + { + "case": "qft_n28", + "what": "the QFT of a basis state, the whole state", + "engine": "qsim.statevector", + "cpus": 32, + "threads": "32", + "timer": "the simulate call, which converts the circuit to its own form inside it", + "load_before": [ + 43.1, + 33.8, + 21.7 + ], + "load_after": [ + 47.7, + 37.5, + 24.1 + ], + "seconds_min": 13.031116295140237, + "seconds_median": 16.52128918096423, + "wall_median": 18.199794396059588, + "peak_rss_mib": 2233.8, + "baseline_rss_mib": 187.6, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "single", + "fusion": 2 + } + }, + { + "case": "rotations_n20", + "what": "20 layers of arbitrary U gates on a brickwork of cx, the whole state", + "engine": "wai.statevector", + "cpus": 32, + "threads": "all (32)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 47.7, + 37.5, + 24.1 + ], + "load_after": [ + 47.7, + 37.5, + 24.1 + ], + "seconds_min": 0.114254635, + "seconds_median": 0.161489202, + "wall_median": 0.22394615109078586, + "peak_rss_mib": 27.0, + "baseline_rss_mib": 5.4, + "repeats": 5, + "ops": 590, + "settings": null + }, + { + "case": "rotations_n20", + "what": "20 layers of arbitrary U gates on a brickwork of cx, the whole state", + "engine": "aer.statevector", + "cpus": 32, + "threads": "32", + "timer": "the simulator's own time for the experiment, as its result states it (time_taken); the conversion of the circuit to its own form is outside it", + "load_before": [ + 47.7, + 37.5, + 24.1 + ], + "load_after": [ + 47.8, + 37.8, + 24.4 + ], + "seconds_min": 1.260810582, + "seconds_median": 1.28606635, + "wall_median": 1.746820081025362, + "peak_rss_mib": 120.5, + "baseline_rss_mib": 99.7, + "repeats": 5, + "ops": 591, + "settings": { + "precision": "double", + "fusion_threshold": 14, + "fusion_max_qubit": 5 + }, + "call_seconds_median": 1.2922187310177833 + }, + { + "case": "rotations_n20", + "what": "20 layers of arbitrary U gates on a brickwork of cx, the whole state", + "engine": "qsim.statevector", + "cpus": 32, + "threads": "32", + "timer": "the simulate call, which converts the circuit to its own form inside it", + "load_before": [ + 47.8, + 37.8, + 24.4 + ], + "load_after": [ + 47.0, + 38.2, + 24.8 + ], + "seconds_min": 1.7873675439041108, + "seconds_median": 1.9869299449492246, + "wall_median": 3.5179573681671172, + "peak_rss_mib": 196.3, + "baseline_rss_mib": 187.6, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "single", + "fusion": 2 + } + }, + { + "case": "rotations_n20", + "what": "20 layers of arbitrary U gates on a brickwork of cx, the whole state", + "engine": "quimb.dense", + "cpus": 32, + "threads": "not set", + "timer": "the building of the circuit object, which applies each gate as it is added, and the read-out", + "load_before": [ + 47.0, + 38.2, + 24.8 + ], + "load_after": [ + 57.5, + 46.2, + 29.8 + ], + "seconds_min": 11.296111741801724, + "seconds_median": 31.91614253516309, + "wall_median": 32.377913111122325, + "peak_rss_mib": 291.1, + "baseline_rss_mib": 195.4, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "double" + } + }, + { + "case": "rotations_n20", + "what": "20 layers of arbitrary U gates on a brickwork of cx, the whole state", + "engine": "wai.statevector", + "cpus": 1, + "threads": "1 (pinned)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 57.5, + 46.2, + 29.8 + ], + "load_after": [ + 57.5, + 46.2, + 29.8 + ], + "seconds_min": 0.481682057, + "seconds_median": 0.508074141, + "wall_median": 0.5569560369476676, + "peak_rss_mib": 22.7, + "baseline_rss_mib": 5.4, + "repeats": 5, + "ops": 590, + "settings": null + }, + { + "case": "rotations_n20", + "what": "20 layers of arbitrary U gates on a brickwork of cx, the whole state", + "engine": "aer.statevector", + "cpus": 1, + "threads": "1 (pinned)", + "timer": "the simulator's own time for the experiment, as its result states it (time_taken); the conversion of the circuit to its own form is outside it", + "load_before": [ + 57.5, + 46.2, + 29.8 + ], + "load_after": [ + 51.7, + 45.4, + 29.7 + ], + "seconds_min": 0.81398793, + "seconds_median": 0.82470815, + "wall_median": 1.1524609019979835, + "peak_rss_mib": 120.4, + "baseline_rss_mib": 99.7, + "repeats": 5, + "ops": 591, + "settings": { + "precision": "double", + "fusion_threshold": 14, + "fusion_max_qubit": 5 + }, + "call_seconds_median": 0.8334542310331017 + }, + { + "case": "rotations_n20", + "what": "20 layers of arbitrary U gates on a brickwork of cx, the whole state", + "engine": "qsim.statevector", + "cpus": 1, + "threads": "1 (pinned)", + "timer": "the simulate call, which converts the circuit to its own form inside it", + "load_before": [ + 51.7, + 45.4, + 29.7 + ], + "load_after": [ + 49.1, + 44.9, + 29.7 + ], + "seconds_min": 0.035372436977922916, + "seconds_median": 0.03663641517050564, + "wall_median": 1.2996104608755559, + "peak_rss_mib": 196.2, + "baseline_rss_mib": 187.6, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "single", + "fusion": 2 + } + }, + { + "case": "rotations_n20", + "what": "20 layers of arbitrary U gates on a brickwork of cx, the whole state", + "engine": "quimb.dense", + "cpus": 1, + "threads": "1 (pinned)", + "timer": "the building of the circuit object, which applies each gate as it is added, and the read-out", + "load_before": [ + 49.1, + 44.9, + 29.7 + ], + "load_after": [ + 45.6, + 44.3, + 29.7 + ], + "seconds_min": 2.2472665337845683, + "seconds_median": 3.0143530098721385, + "wall_median": 3.2916268778499216, + "peak_rss_mib": 276.1, + "baseline_rss_mib": 195.4, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "double" + } + }, + { + "case": "rotations_n24", + "what": "20 layers of arbitrary U gates on a brickwork of cx, the whole state", + "engine": "wai.statevector", + "cpus": 32, + "threads": "all (32)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 45.6, + 44.3, + 29.7 + ], + "load_after": [ + 46.5, + 44.5, + 29.9 + ], + "seconds_min": 1.069541199, + "seconds_median": 1.086656941, + "wall_median": 1.1623277098406106, + "peak_rss_mib": 281.3, + "baseline_rss_mib": 5.4, + "repeats": 5, + "ops": 710, + "settings": null + }, + { + "case": "rotations_n24", + "what": "20 layers of arbitrary U gates on a brickwork of cx, the whole state", + "engine": "aer.statevector", + "cpus": 32, + "threads": "32", + "timer": "the simulator's own time for the experiment, as its result states it (time_taken); the conversion of the circuit to its own form is outside it", + "load_before": [ + 46.5, + 44.5, + 29.9 + ], + "load_after": [ + 48.1, + 45.1, + 30.5 + ], + "seconds_min": 3.264627427, + "seconds_median": 4.347102158, + "wall_median": 4.735552303958684, + "peak_rss_mib": 356.2, + "baseline_rss_mib": 99.7, + "repeats": 5, + "ops": 711, + "settings": { + "precision": "double", + "fusion_threshold": 14, + "fusion_max_qubit": 5 + }, + "call_seconds_median": 4.356181729119271 + }, + { + "case": "rotations_n24", + "what": "20 layers of arbitrary U gates on a brickwork of cx, the whole state", + "engine": "qsim.statevector", + "cpus": 32, + "threads": "32", + "timer": "the simulate call, which converts the circuit to its own form inside it", + "load_before": [ + 48.1, + 45.1, + 30.5 + ], + "load_after": [ + 55.9, + 48.0, + 32.5 + ], + "seconds_min": 6.961845813086256, + "seconds_median": 11.647320319898427, + "wall_median": 13.200396288186312, + "peak_rss_mib": 316.0, + "baseline_rss_mib": 187.6, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "single", + "fusion": 2 + } + }, + { + "case": "rotations_n24", + "what": "20 layers of arbitrary U gates on a brickwork of cx, the whole state", + "engine": "wai.statevector", + "cpus": 1, + "threads": "1 (pinned)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 55.9, + 48.0, + 32.5 + ], + "load_after": [ + 63.0, + 51.1, + 34.7 + ], + "seconds_min": 13.136069277, + "seconds_median": 13.712699137, + "wall_median": 13.853025237098336, + "peak_rss_mib": 262.9, + "baseline_rss_mib": 5.4, + "repeats": 5, + "ops": 710, + "settings": null + }, + { + "case": "rotations_n24", + "what": "20 layers of arbitrary U gates on a brickwork of cx, the whole state", + "engine": "aer.statevector", + "cpus": 1, + "threads": "1 (pinned)", + "timer": "the simulator's own time for the experiment, as its result states it (time_taken); the conversion of the circuit to its own form is outside it", + "load_before": [ + 63.0, + 51.1, + 34.7 + ], + "load_after": [ + 27.5, + 42.3, + 33.1 + ], + "seconds_min": 14.568902199, + "seconds_median": 18.027122406, + "wall_median": 18.39097726205364, + "peak_rss_mib": 356.4, + "baseline_rss_mib": 99.7, + "repeats": 5, + "ops": 711, + "settings": { + "precision": "double", + "fusion_threshold": 14, + "fusion_max_qubit": 5 + }, + "call_seconds_median": 18.03705897508189 + }, + { + "case": "rotations_n24", + "what": "20 layers of arbitrary U gates on a brickwork of cx, the whole state", + "engine": "qsim.statevector", + "cpus": 1, + "threads": "1 (pinned)", + "timer": "the simulate call, which converts the circuit to its own form inside it", + "load_before": [ + 27.5, + 42.3, + 33.1 + ], + "load_after": [ + 29.7, + 42.0, + 33.2 + ], + "seconds_min": 1.2652224339544773, + "seconds_median": 1.2744397341739386, + "wall_median": 3.142332347109914, + "peak_rss_mib": 316.2, + "baseline_rss_mib": 187.6, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "single", + "fusion": 2 + } + }, + { + "case": "rotations_n26", + "what": "20 layers of arbitrary U gates on a brickwork of cx, the whole state", + "engine": "wai.statevector", + "cpus": 32, + "threads": "all (32)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 29.7, + 42.0, + 33.2 + ], + "load_after": [ + 40.7, + 43.2, + 34.0 + ], + "seconds_min": 5.280828439, + "seconds_median": 7.609306399, + "wall_median": 7.862022308865562, + "peak_rss_mib": 1049.9, + "baseline_rss_mib": 5.4, + "repeats": 5, + "ops": 770, + "settings": null + }, + { + "case": "rotations_n26", + "what": "20 layers of arbitrary U gates on a brickwork of cx, the whole state", + "engine": "aer.statevector", + "cpus": 32, + "threads": "32", + "timer": "the simulator's own time for the experiment, as its result states it (time_taken); the conversion of the circuit to its own form is outside it", + "load_before": [ + 40.7, + 43.2, + 34.0 + ], + "load_after": [ + 48.8, + 46.1, + 36.1 + ], + "seconds_min": 15.688876134, + "seconds_median": 20.295978162, + "wall_median": 20.848958919057623, + "peak_rss_mib": 1124.7, + "baseline_rss_mib": 99.7, + "repeats": 5, + "ops": 771, + "settings": { + "precision": "double", + "fusion_threshold": 14, + "fusion_max_qubit": 5 + }, + "call_seconds_median": 20.308425624854863 + }, + { + "case": "rotations_n26", + "what": "20 layers of arbitrary U gates on a brickwork of cx, the whole state", + "engine": "qsim.statevector", + "cpus": 32, + "threads": "32", + "timer": "the simulate call, which converts the circuit to its own form inside it", + "load_before": [ + 48.8, + 46.1, + 36.1 + ], + "load_after": [ + 41.6, + 44.7, + 36.0 + ], + "seconds_min": 3.533756823046133, + "seconds_median": 4.094789830036461, + "wall_median": 5.804383928887546, + "peak_rss_mib": 699.8, + "baseline_rss_mib": 187.6, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "single", + "fusion": 2 + } + }, + { + "case": "grover_n10", + "what": "two Grover iterations on 10 qubits: four Z gates under 9 controls, the whole state", + "engine": "wai.statevector", + "cpus": 32, + "threads": "all (32)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 41.6, + 44.7, + 36.0 + ], + "load_after": [ + 41.6, + 44.7, + 36.0 + ], + "seconds_min": 0.115535042, + "seconds_median": 0.130800319, + "wall_median": 0.17331962496973574, + "peak_rss_mib": 11.7, + "baseline_rss_mib": 5.4, + "repeats": 5, + "ops": 8290, + "settings": null + }, + { + "case": "grover_n10", + "what": "two Grover iterations on 10 qubits: four Z gates under 9 controls, the whole state", + "engine": "wai.exact", + "cpus": 32, + "threads": "1 (no threads)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 41.6, + 44.7, + 36.0 + ], + "load_after": [ + 41.6, + 44.7, + 36.0 + ], + "seconds_min": 0.035511747, + "seconds_median": 0.035779984, + "wall_median": 0.07071014097891748, + "peak_rss_mib": 16.9, + "baseline_rss_mib": 5.2, + "repeats": 5, + "ops": 26686, + "settings": null + }, + { + "case": "grover_n10", + "what": "two Grover iterations on 10 qubits: four Z gates under 9 controls, the whole state", + "engine": "aer.statevector", + "cpus": 32, + "threads": "32", + "timer": "the simulator's own time for the experiment, as its result states it (time_taken); the conversion of the circuit to its own form is outside it", + "load_before": [ + 41.6, + 44.7, + 36.0 + ], + "load_after": [ + 41.6, + 44.7, + 36.0 + ], + "seconds_min": 0.000299716, + "seconds_median": 0.000313703, + "wall_median": 0.35123781580477953, + "peak_rss_mib": 100.1, + "baseline_rss_mib": 99.7, + "repeats": 5, + "ops": 123, + "settings": { + "precision": "double", + "fusion_threshold": 14, + "fusion_max_qubit": 5 + }, + "call_seconds_median": 0.002065381035208702 + }, + { + "case": "grover_n10", + "what": "two Grover iterations on 10 qubits: four Z gates under 9 controls, the whole state", + "engine": "qsim.statevector", + "cpus": 32, + "threads": "32", + "timer": "the simulate call, which converts the circuit to its own form inside it", + "load_before": [ + 41.6, + 44.7, + 36.0 + ], + "load_after": [ + 41.9, + 44.8, + 36.0 + ], + "seconds_min": 0.0012741470709443092, + "seconds_median": 0.0012997749727219343, + "wall_median": 1.0691927920561284, + "peak_rss_mib": 188.1, + "baseline_rss_mib": 187.6, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "single", + "fusion": 2 + } + }, + { + "case": "grover_n10", + "what": "two Grover iterations on 10 qubits: four Z gates under 9 controls, the whole state", + "engine": "ddsim.statevector", + "cpus": 32, + "threads": "not set", + "timer": "the run call, which converts the circuit to its own form inside it", + "load_before": [ + 41.9, + 44.8, + 36.0 + ], + "load_after": [ + 39.6, + 44.2, + 35.9 + ], + "seconds_min": 0.0058220981154590845, + "seconds_median": 0.006255698157474399, + "wall_median": 0.2979149620514363, + "peak_rss_mib": 99.4, + "baseline_rss_mib": 97.9, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "decision diagram, double" + } + }, + { + "case": "grover_n10", + "what": "two Grover iterations on 10 qubits: four Z gates under 9 controls, the whole state", + "engine": "wai.statevector", + "cpus": 1, + "threads": "1 (pinned)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 39.6, + 44.2, + 35.9 + ], + "load_after": [ + 39.6, + 44.2, + 35.9 + ], + "seconds_min": 0.010031802, + "seconds_median": 0.010106673, + "wall_median": 0.043154525104910135, + "peak_rss_mib": 11.9, + "baseline_rss_mib": 5.4, + "repeats": 5, + "ops": 8290, + "settings": null + }, + { + "case": "grover_n10", + "what": "two Grover iterations on 10 qubits: four Z gates under 9 controls, the whole state", + "engine": "wai.exact", + "cpus": 1, + "threads": "1 (pinned)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 39.6, + 44.2, + 35.9 + ], + "load_after": [ + 39.6, + 44.2, + 35.9 + ], + "seconds_min": 0.051699768, + "seconds_median": 0.051883655, + "wall_median": 0.09327226388268173, + "peak_rss_mib": 17.0, + "baseline_rss_mib": 5.2, + "repeats": 5, + "ops": 26686, + "settings": null + }, + { + "case": "grover_n10", + "what": "two Grover iterations on 10 qubits: four Z gates under 9 controls, the whole state", + "engine": "aer.statevector", + "cpus": 1, + "threads": "1 (pinned)", + "timer": "the simulator's own time for the experiment, as its result states it (time_taken); the conversion of the circuit to its own form is outside it", + "load_before": [ + 39.6, + 44.2, + 35.9 + ], + "load_after": [ + 39.6, + 44.2, + 35.9 + ], + "seconds_min": 0.000439339, + "seconds_median": 0.000442236, + "wall_median": 0.3473645600024611, + "peak_rss_mib": 99.6, + "baseline_rss_mib": 99.7, + "repeats": 5, + "ops": 123, + "settings": { + "precision": "double", + "fusion_threshold": 14, + "fusion_max_qubit": 5 + }, + "call_seconds_median": 0.0024393380153924227 + }, + { + "case": "grover_n10", + "what": "two Grover iterations on 10 qubits: four Z gates under 9 controls, the whole state", + "engine": "qsim.statevector", + "cpus": 1, + "threads": "1 (pinned)", + "timer": "the simulate call, which converts the circuit to its own form inside it", + "load_before": [ + 39.6, + 44.2, + 35.9 + ], + "load_after": [ + 37.3, + 43.7, + 35.8 + ], + "seconds_min": 0.0012980119790881872, + "seconds_median": 0.0018068929202854633, + "wall_median": 1.2719668101053685, + "peak_rss_mib": 187.3, + "baseline_rss_mib": 187.6, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "single", + "fusion": 2 + } + }, + { + "case": "grover_n10", + "what": "two Grover iterations on 10 qubits: four Z gates under 9 controls, the whole state", + "engine": "ddsim.statevector", + "cpus": 1, + "threads": "1 (pinned)", + "timer": "the run call, which converts the circuit to its own form inside it", + "load_before": [ + 37.3, + 43.7, + 35.8 + ], + "load_after": [ + 35.2, + 43.1, + 35.7 + ], + "seconds_min": 0.0057162391021847725, + "seconds_median": 0.0073858629912137985, + "wall_median": 0.3337853760458529, + "peak_rss_mib": 99.9, + "baseline_rss_mib": 97.9, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "decision diagram, double" + } + }, + { + "case": "grover_n14", + "what": "two Grover iterations on 14 qubits: four Z gates under 13 controls, the whole state", + "engine": "wai.statevector", + "cpus": 32, + "threads": "all (32)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 35.2, + 43.1, + 35.7 + ], + "load_after": [ + 30.0, + 41.6, + 35.3 + ], + "seconds_min": 2.909702608, + "seconds_median": 3.175985954, + "wall_median": 3.2391181390266865, + "peak_rss_mib": 106.7, + "baseline_rss_mib": 5.4, + "repeats": 5, + "ops": 131214, + "settings": null + }, + { + "case": "grover_n14", + "what": "two Grover iterations on 14 qubits: four Z gates under 13 controls, the whole state", + "engine": "wai.exact", + "cpus": 32, + "threads": "1 (no threads)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 30.0, + 41.6, + 35.3 + ], + "load_after": [ + 26.7, + 37.7, + 34.4 + ], + "seconds_min": 11.717511559, + "seconds_median": 14.315394347, + "wall_median": 14.490081784781069, + "peak_rss_mib": 242.6, + "baseline_rss_mib": 5.2, + "repeats": 5, + "ops": 557146, + "settings": null + }, + { + "case": "grover_n14", + "what": "two Grover iterations on 14 qubits: four Z gates under 13 controls, the whole state", + "engine": "aer.statevector", + "cpus": 32, + "threads": "32", + "timer": "the simulator's own time for the experiment, as its result states it (time_taken); the conversion of the circuit to its own form is outside it", + "load_before": [ + 26.7, + 37.7, + 34.4 + ], + "load_after": [ + 26.7, + 37.7, + 34.4 + ], + "seconds_min": 0.002956375, + "seconds_median": 0.003084226, + "wall_median": 0.42343125911429524, + "peak_rss_mib": 100.5, + "baseline_rss_mib": 99.7, + "repeats": 5, + "ops": 167, + "settings": { + "precision": "double", + "fusion_threshold": 14, + "fusion_max_qubit": 5 + }, + "call_seconds_median": 0.0052787018939852715 + }, + { + "case": "grover_n14", + "what": "two Grover iterations on 14 qubits: four Z gates under 13 controls, the whole state", + "engine": "qsim.statevector", + "cpus": 32, + "threads": "32", + "timer": "the simulate call, which converts the circuit to its own form inside it", + "load_before": [ + 26.7, + 37.7, + 34.4 + ], + "load_after": [ + 29.8, + 38.0, + 34.5 + ], + "seconds_min": 0.1049166820012033, + "seconds_median": 0.23923456715419888, + "wall_median": 2.131517860107124, + "peak_rss_mib": 188.3, + "baseline_rss_mib": 187.6, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "single", + "fusion": 2 + } + }, + { + "case": "grover_n14", + "what": "two Grover iterations on 14 qubits: four Z gates under 13 controls, the whole state", + "engine": "ddsim.statevector", + "cpus": 32, + "threads": "not set", + "timer": "the run call, which converts the circuit to its own form inside it", + "load_before": [ + 29.8, + 38.0, + 34.5 + ], + "load_after": [ + 29.8, + 38.0, + 34.5 + ], + "seconds_min": 0.00696308515034616, + "seconds_median": 0.007397735025733709, + "wall_median": 0.365505991037935, + "peak_rss_mib": 100.4, + "baseline_rss_mib": 97.9, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "decision diagram, double" + } + }, + { + "case": "grover_n14", + "what": "two Grover iterations on 14 qubits: four Z gates under 13 controls, the whole state", + "engine": "wai.statevector", + "cpus": 1, + "threads": "1 (pinned)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 29.8, + 38.0, + 34.5 + ], + "load_after": [ + 31.8, + 38.0, + 34.5 + ], + "seconds_min": 2.356976903, + "seconds_median": 2.876801563, + "wall_median": 2.959877825109288, + "peak_rss_mib": 106.8, + "baseline_rss_mib": 5.4, + "repeats": 5, + "ops": 131214, + "settings": null + }, + { + "case": "grover_n14", + "what": "two Grover iterations on 14 qubits: four Z gates under 13 controls, the whole state", + "engine": "wai.exact", + "cpus": 1, + "threads": "1 (pinned)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 31.8, + 38.0, + 34.5 + ], + "load_after": [ + 25.2, + 34.9, + 33.8 + ], + "seconds_min": 12.462532486, + "seconds_median": 14.589480423, + "wall_median": 14.762902481015772, + "peak_rss_mib": 242.7, + "baseline_rss_mib": 5.2, + "repeats": 5, + "ops": 557146, + "settings": null + }, + { + "case": "grover_n14", + "what": "two Grover iterations on 14 qubits: four Z gates under 13 controls, the whole state", + "engine": "aer.statevector", + "cpus": 1, + "threads": "1 (pinned)", + "timer": "the simulator's own time for the experiment, as its result states it (time_taken); the conversion of the circuit to its own form is outside it", + "load_before": [ + 25.2, + 34.9, + 33.8 + ], + "load_after": [ + 24.2, + 34.6, + 33.7 + ], + "seconds_min": 0.005047075, + "seconds_median": 0.005168444, + "wall_median": 0.47326767700724304, + "peak_rss_mib": 100.1, + "baseline_rss_mib": 99.7, + "repeats": 5, + "ops": 167, + "settings": { + "precision": "double", + "fusion_threshold": 14, + "fusion_max_qubit": 5 + }, + "call_seconds_median": 0.0077667320147156715 + }, + { + "case": "grover_n14", + "what": "two Grover iterations on 14 qubits: four Z gates under 13 controls, the whole state", + "engine": "qsim.statevector", + "cpus": 1, + "threads": "1 (pinned)", + "timer": "the simulate call, which converts the circuit to its own form inside it", + "load_before": [ + 24.2, + 34.6, + 33.7 + ], + "load_after": [ + 22.9, + 34.1, + 33.5 + ], + "seconds_min": 0.002477389993146062, + "seconds_median": 0.002481658011674881, + "wall_median": 1.5683130281977355, + "peak_rss_mib": 187.3, + "baseline_rss_mib": 187.6, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "single", + "fusion": 2 + } + }, + { + "case": "grover_n14", + "what": "two Grover iterations on 14 qubits: four Z gates under 13 controls, the whole state", + "engine": "ddsim.statevector", + "cpus": 1, + "threads": "1 (pinned)", + "timer": "the run call, which converts the circuit to its own form inside it", + "load_before": [ + 22.9, + 34.1, + 33.5 + ], + "load_after": [ + 21.7, + 33.7, + 33.4 + ], + "seconds_min": 0.008590888930484653, + "seconds_median": 0.009029318112879992, + "wall_median": 0.3730970409233123, + "peak_rss_mib": 100.2, + "baseline_rss_mib": 97.9, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "decision diagram, double" + } + }, + { + "case": "clifford_n1000", + "what": "random Clifford layers: the tableau, and its stabilizer group read out", + "engine": "wai.stabilizer", + "cpus": 32, + "threads": "1 (no threads)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 21.7, + 33.7, + 33.4 + ], + "load_after": [ + 21.7, + 33.7, + 33.4 + ], + "seconds_min": 0.000892085, + "seconds_median": 0.000905972, + "wall_median": 0.1500203290488571, + "peak_rss_mib": 89.9, + "baseline_rss_mib": 5.2, + "repeats": 5, + "ops": 35082, + "settings": null + }, + { + "case": "clifford_n1000", + "what": "random Clifford layers: the tableau, and its stabilizer group read out", + "engine": "stim.tableau", + "cpus": 32, + "threads": "not set", + "timer": "the tableau's or sampler's run, after the circuit text is parsed", + "load_before": [ + 21.7, + 33.7, + 33.4 + ], + "load_after": [ + 21.7, + 33.7, + 33.4 + ], + "seconds_min": 0.0011483600828796625, + "seconds_median": 0.0011552521027624607, + "wall_median": 0.05684702191501856, + "peak_rss_mib": 40.3, + "baseline_rss_mib": 24.0, + "repeats": 5, + "ops": null, + "settings": null + }, + { + "case": "clifford_n1000", + "what": "random Clifford layers: the tableau, and its stabilizer group read out", + "engine": "aer.stabilizer", + "cpus": 32, + "threads": "32", + "timer": "the simulator's own time for the experiment, as its result states it (time_taken); the conversion of the circuit to its own form is outside it", + "load_before": [ + 21.7, + 33.7, + 33.4 + ], + "load_after": [ + 20.7, + 33.3, + 33.2 + ], + "seconds_min": 0.019324116, + "seconds_median": 0.021897938, + "wall_median": 0.9779662520159036, + "peak_rss_mib": 206.7, + "baseline_rss_mib": 121.4, + "repeats": 5, + "ops": 35083, + "settings": { + "precision": "double", + "fusion_threshold": 14, + "fusion_max_qubit": 5 + }, + "call_seconds_median": 0.26161425514146686 + }, + { + "case": "clifford_n5000", + "what": "random Clifford layers: the tableau, and its stabilizer group read out", + "engine": "wai.stabilizer", + "cpus": 32, + "threads": "1 (no threads)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 20.6, + 32.7, + 33.0 + ], + "load_after": [ + 19.7, + 32.3, + 32.9 + ], + "seconds_min": 0.006056652, + "seconds_median": 0.007665852, + "wall_median": 1.1821253569796681, + "peak_rss_mib": 142.2, + "baseline_rss_mib": 5.2, + "repeats": 5, + "ops": 58265, + "settings": null + }, + { + "case": "clifford_n5000", + "what": "random Clifford layers: the tableau, and its stabilizer group read out", + "engine": "stim.tableau", + "cpus": 32, + "threads": "not set", + "timer": "the tableau's or sampler's run, after the circuit text is parsed", + "load_before": [ + 19.7, + 32.3, + 32.9 + ], + "load_after": [ + 19.7, + 32.3, + 32.9 + ], + "seconds_min": 0.0080307109747082, + "seconds_median": 0.008543159114196897, + "wall_median": 0.07264759112149477, + "peak_rss_mib": 64.4, + "baseline_rss_mib": 24.0, + "repeats": 5, + "ops": null, + "settings": null + }, + { + "case": "surface_z_d5_sample", + "what": "the rotated surface-code memory experiment, d = rounds = 5, p = 0.001: 10^6 shots of every detector", + "engine": "wai.qec", + "cpus": 32, + "threads": "1 (no threads)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 19.7, + 32.3, + 32.9 + ], + "load_after": [ + 19.7, + 32.3, + 32.9 + ], + "seconds_min": 0.070722144, + "seconds_median": 0.073507285, + "wall_median": 0.10582015803083777, + "peak_rss_mib": 19.0, + "baseline_rss_mib": 4.4, + "repeats": 5, + "ops": null, + "settings": null + }, + { + "case": "surface_z_d5_sample", + "what": "the rotated surface-code memory experiment, d = rounds = 5, p = 0.001: 10^6 shots of every detector", + "engine": "stim.tableau", + "cpus": 32, + "threads": "not set", + "timer": "the tableau's or sampler's run, after the circuit text is parsed", + "load_before": [ + 19.7, + 32.3, + 32.9 + ], + "load_after": [ + 18.8, + 31.9, + 32.8 + ], + "seconds_min": 0.30042456299997866, + "seconds_median": 0.3147925459779799, + "wall_median": 0.3531825300306082, + "peak_rss_mib": 160.1, + "baseline_rss_mib": 37.9, + "repeats": 5, + "ops": null, + "settings": null + }, + { + "case": "surface_z_d5_sample", + "what": "the rotated surface-code memory experiment, d = rounds = 5, p = 0.001: 10^6 shots of every detector", + "engine": "wai.qec", + "cpus": 1, + "threads": "1 (pinned)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 18.8, + 31.9, + 32.8 + ], + "load_after": [ + 18.8, + 31.9, + 32.8 + ], + "seconds_min": 0.070779573, + "seconds_median": 0.072001641, + "wall_median": 0.1047160942107439, + "peak_rss_mib": 19.1, + "baseline_rss_mib": 4.4, + "repeats": 5, + "ops": null, + "settings": null + }, + { + "case": "surface_z_d5_sample", + "what": "the rotated surface-code memory experiment, d = rounds = 5, p = 0.001: 10^6 shots of every detector", + "engine": "stim.tableau", + "cpus": 1, + "threads": "1 (pinned)", + "timer": "the tableau's or sampler's run, after the circuit text is parsed", + "load_before": [ + 18.8, + 31.9, + 32.8 + ], + "load_after": [ + 18.8, + 31.9, + 32.8 + ], + "seconds_min": 0.2866167181637138, + "seconds_median": 0.42940864199772477, + "wall_median": 0.4823135561309755, + "peak_rss_mib": 160.3, + "baseline_rss_mib": 37.9, + "repeats": 5, + "ops": null, + "settings": null + }, + { + "case": "surface_z_d5_model", + "what": "the same circuit's detector error model", + "engine": "wai.qec", + "cpus": 32, + "threads": "1 (no threads)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 18.8, + 31.9, + 32.8 + ], + "load_after": [ + 18.8, + 31.9, + 32.8 + ], + "seconds_min": 0.001823756, + "seconds_median": 0.001877256, + "wall_median": 0.032053724164143205, + "peak_rss_mib": 6.7, + "baseline_rss_mib": 4.7, + "repeats": 5, + "ops": null, + "settings": null + }, + { + "case": "surface_z_d5_model", + "what": "the same circuit's detector error model", + "engine": "stim.tableau", + "cpus": 32, + "threads": "not set", + "timer": "the tableau's or sampler's run, after the circuit text is parsed", + "load_before": [ + 18.8, + 31.9, + 32.8 + ], + "load_after": [ + 18.8, + 31.9, + 32.8 + ], + "seconds_min": 0.0030630771070718765, + "seconds_median": 0.0032000048086047173, + "wall_median": 0.034763503121212125, + "peak_rss_mib": 25.9, + "baseline_rss_mib": 24.8, + "repeats": 5, + "ops": null, + "settings": null + }, + { + "case": "surface_z_d11_sample", + "what": "the rotated surface-code memory experiment, d = rounds = 11, p = 0.001: 10^6 shots of every detector", + "engine": "wai.qec", + "cpus": 32, + "threads": "1 (no threads)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 18.8, + 31.9, + 32.8 + ], + "load_after": [ + 18.4, + 31.6, + 32.7 + ], + "seconds_min": 0.789886394, + "seconds_median": 0.803000829, + "wall_median": 0.8601208159234375, + "peak_rss_mib": 162.6, + "baseline_rss_mib": 4.4, + "repeats": 5, + "ops": null, + "settings": null + }, + { + "case": "surface_z_d11_sample", + "what": "the rotated surface-code memory experiment, d = rounds = 11, p = 0.001: 10^6 shots of every detector", + "engine": "stim.tableau", + "cpus": 32, + "threads": "not set", + "timer": "the tableau's or sampler's run, after the circuit text is parsed", + "load_before": [ + 18.4, + 31.6, + 32.7 + ], + "load_after": [ + 17.2, + 30.7, + 32.4 + ], + "seconds_min": 2.850349572021514, + "seconds_median": 2.8780043651349843, + "wall_median": 2.918226520996541, + "peak_rss_mib": 852.6, + "baseline_rss_mib": 37.9, + "repeats": 5, + "ops": null, + "settings": null + }, + { + "case": "surface_z_d11_sample", + "what": "the rotated surface-code memory experiment, d = rounds = 11, p = 0.001: 10^6 shots of every detector", + "engine": "wai.qec", + "cpus": 1, + "threads": "1 (pinned)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 17.2, + 30.7, + 32.4 + ], + "load_after": [ + 17.5, + 30.5, + 32.3 + ], + "seconds_min": 0.810693151, + "seconds_median": 1.00332584, + "wall_median": 1.0760494149290025, + "peak_rss_mib": 163.0, + "baseline_rss_mib": 4.4, + "repeats": 5, + "ops": null, + "settings": null + }, + { + "case": "surface_z_d11_sample", + "what": "the rotated surface-code memory experiment, d = rounds = 11, p = 0.001: 10^6 shots of every detector", + "engine": "stim.tableau", + "cpus": 1, + "threads": "1 (pinned)", + "timer": "the tableau's or sampler's run, after the circuit text is parsed", + "load_before": [ + 17.5, + 30.5, + 32.3 + ], + "load_after": [ + 15.6, + 29.2, + 31.8 + ], + "seconds_min": 2.774279313860461, + "seconds_median": 3.443524450995028, + "wall_median": 3.4970239789690822, + "peak_rss_mib": 852.9, + "baseline_rss_mib": 37.9, + "repeats": 5, + "ops": null, + "settings": null + }, + { + "case": "surface_z_d11_model", + "what": "the same circuit's detector error model", + "engine": "wai.qec", + "cpus": 32, + "threads": "1 (no threads)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 15.6, + 29.2, + 31.8 + ], + "load_after": [ + 15.6, + 29.2, + 31.8 + ], + "seconds_min": 0.022596328, + "seconds_median": 0.024818446, + "wall_median": 0.14096863893792033, + "peak_rss_mib": 26.1, + "baseline_rss_mib": 4.7, + "repeats": 5, + "ops": null, + "settings": null + }, + { + "case": "surface_z_d11_model", + "what": "the same circuit's detector error model", + "engine": "stim.tableau", + "cpus": 32, + "threads": "not set", + "timer": "the tableau's or sampler's run, after the circuit text is parsed", + "load_before": [ + 15.6, + 29.2, + 31.8 + ], + "load_after": [ + 15.6, + 29.2, + 31.8 + ], + "seconds_min": 0.04519189381971955, + "seconds_median": 0.04744665278121829, + "wall_median": 0.18749690800905228, + "peak_rss_mib": 39.8, + "baseline_rss_mib": 24.8, + "repeats": 5, + "ops": null, + "settings": null + }, + { + "case": "qft_n40_amplitudes", + "what": "six amplitudes of the 40-qubit QFT of a basis state", + "engine": "wai.mps", + "cpus": 32, + "threads": "1 (no threads)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 15.6, + 29.2, + 31.8 + ], + "load_after": [ + 15.6, + 29.2, + 31.8 + ], + "seconds_min": 0.011109688, + "seconds_median": 0.011294427, + "wall_median": 0.04480910114943981, + "peak_rss_mib": 10.7, + "baseline_rss_mib": 6.6, + "repeats": 5, + "ops": null, + "settings": null + }, + { + "case": "qft_n40_amplitudes", + "what": "six amplitudes of the 40-qubit QFT of a basis state", + "engine": "aer.mps", + "cpus": 32, + "threads": "32", + "timer": "the simulator's own time for the experiment, as its result states it (time_taken); the conversion of the circuit to its own form is outside it", + "load_before": [ + 15.6, + 29.2, + 31.8 + ], + "load_after": [ + 15.0, + 28.9, + 31.7 + ], + "seconds_min": 0.003013132, + "seconds_median": 0.003037248, + "wall_median": 0.4303239108994603, + "peak_rss_mib": 104.7, + "baseline_rss_mib": 99.3, + "repeats": 5, + "ops": 861, + "settings": { + "precision": "double", + "fusion_threshold": 14, + "fusion_max_qubit": 5 + }, + "call_seconds_median": 0.02153247711248696 + }, + { + "case": "qft_n40_amplitudes", + "what": "six amplitudes of the 40-qubit QFT of a basis state", + "engine": "quimb.mps", + "cpus": 32, + "threads": "not set", + "timer": "the building of the circuit object, which applies each gate as it is added, and the read-out", + "load_before": [ + 15.0, + 28.9, + 31.7 + ], + "load_after": [ + 14.8, + 28.4, + 31.5 + ], + "seconds_min": 1.8550238551106304, + "seconds_median": 1.8762834470253438, + "wall_median": 2.2580910238903016, + "peak_rss_mib": 206.1, + "baseline_rss_mib": 199.5, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "double", + "cutoff": 1e-28, + "cutoff_mode": "sum2" + } + }, + { + "case": "qft_n40_amplitudes", + "what": "six amplitudes of the 40-qubit QFT of a basis state", + "engine": "wai.tensor_network", + "cpus": 32, + "threads": "all (32)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 14.7, + 28.1, + 31.4 + ], + "load_after": [ + 14.7, + 28.1, + 31.4 + ], + "seconds_min": 0.143370587, + "seconds_median": 0.151582921, + "wall_median": 0.1833861309569329, + "peak_rss_mib": 11.4, + "baseline_rss_mib": 7.0, + "repeats": 5, + "ops": null, + "settings": null + }, + { + "case": "qft_n40_amplitudes", + "what": "six amplitudes of the 40-qubit QFT of a basis state", + "engine": "quimb.tensor_network", + "cpus": 32, + "threads": "not set", + "timer": "the building of the circuit object, which applies each gate as it is added, and the read-out", + "load_before": [ + 14.7, + 28.1, + 31.4 + ], + "load_after": [ + 15.3, + 28.0, + 31.4 + ], + "seconds_min": 0.9424465710762888, + "seconds_median": 1.0641073449514806, + "wall_median": 1.4813706828281283, + "peak_rss_mib": 219.8, + "baseline_rss_mib": 204.8, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "double" + } + } + ] +} diff --git a/wai/quantum-cross-simulator/results/performance-macos-arm64.json b/wai/quantum-cross-simulator/results/performance-macos-arm64.json new file mode 100644 index 000000000..7b3a67309 --- /dev/null +++ b/wai/quantum-cross-simulator/results/performance-macos-arm64.json @@ -0,0 +1,1572 @@ +{ + "about": "Run time and peak memory per engine on one host: tools/perf.py. Times are each engine's own call (timers says where each starts and stops), the minimum and median of repeated runs; memory is the peak resident set of the process that ran the engine.", + "timers": { + "wai": "the engine's run, after the program is read and lowered (the driver's own clock)", + "aer": "the simulator's own time for the experiment, as its result states it (time_taken); the conversion of the circuit to its own form is outside it", + "qsim": "the simulate call, which converts the circuit to its own form inside it", + "ddsim": "the run call, which converts the circuit to its own form inside it", + "stim": "the tableau's or sampler's run, after the circuit text is parsed", + "quimb": "the building of the circuit object, which applies each gate as it is added, and the read-out" + }, + "host": { + "system": "Darwin", + "machine": "arm64", + "release": "27.2.0", + "cpu": "Apple M3 Ultra", + "memory_bytes": 274877906944, + "os": "macOS 27.2", + "logical_cpus": 32, + "load_average": [ + 32.5849609375, + 45.31396484375, + 53.96435546875 + ] + }, + "versions": { + "cirq-core": "1.7.0", + "mqt.core": "3.11.0", + "mqt.ddsim": "2.7.0", + "numpy": "2.5.4", + "python": "3.12.16", + "qiskit": "2.6.2", + "qiskit-aer": "0.18.2", + "qsimcirq": "0.22.1", + "quimb": "1.15.0", + "scipy": "1.18.1", + "stim": "1.16.0" + }, + "engine_under_test": "wai/wai-quantum fb308edc04d9803b8549b17fbabbdd53aa453776, wai/wai-quantum-qpu c1031872aac2c4d2bcf134af80b9dc454954a2de, wai/wai-quantum-cli 24fea35fd3b93a064120613c39cae963e1a66762, wai/quantum-cross-simulator/tools 185753899b00ca765330a404b6617eb569cdd26b, wai/quantum-cross-simulator/corpus 464ca70c805b560a246962242c1db196435455f3; rustc 1.99.1 (58cf8f9c3 2026-10-13)", + "repeat": 5, + "rows": [ + { + "case": "qft_n20", + "what": "the QFT of a basis state, the whole state", + "engine": "wai.statevector", + "cpus": 32, + "threads": "all (32)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 24.1, + 37.3, + 56.0 + ], + "load_after": [ + 24.1, + 37.3, + 56.0 + ], + "seconds_min": 0.022376542, + "seconds_median": 0.023887584, + "wall_median": 0.0851070829667151, + "peak_rss_mib": 28.5, + "baseline_rss_mib": 3.5, + "repeats": 5, + "ops": 230, + "settings": null + }, + { + "case": "qft_n20", + "what": "the QFT of a basis state, the whole state", + "engine": "aer.statevector", + "cpus": 32, + "threads": "32", + "timer": "the simulator's own time for the experiment, as its result states it (time_taken); the conversion of the circuit to its own form is outside it", + "load_before": [ + 24.1, + 37.3, + 56.0 + ], + "load_after": [ + 30.4, + 38.4, + 56.3 + ], + "seconds_min": 0.066593333, + "seconds_median": 0.073930667, + "wall_median": 0.40322499989997596, + "peak_rss_mib": 100.5, + "baseline_rss_mib": 82.6, + "repeats": 5, + "ops": 231, + "settings": { + "precision": "double", + "fusion_threshold": 14, + "fusion_max_qubit": 5 + }, + "call_seconds_median": 0.07934483303688467 + }, + { + "case": "qft_n20", + "what": "the QFT of a basis state, the whole state", + "engine": "qsim.statevector", + "cpus": 32, + "threads": "32", + "timer": "the simulate call, which converts the circuit to its own form inside it", + "load_before": [ + 30.4, + 38.4, + 56.3 + ], + "load_after": [ + 29.5, + 38.1, + 56.1 + ], + "seconds_min": 0.05414658400695771, + "seconds_median": 0.08176620793528855, + "wall_median": 1.2617932499852031, + "peak_rss_mib": 196.9, + "baseline_rss_mib": 187.1, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "single", + "fusion": 2 + } + }, + { + "case": "qft_n20", + "what": "the QFT of a basis state, the whole state", + "engine": "ddsim.statevector", + "cpus": 32, + "threads": "not set", + "timer": "the run call, which converts the circuit to its own form inside it", + "load_before": [ + 29.5, + 38.1, + 56.1 + ], + "load_after": [ + 29.5, + 38.1, + 56.1 + ], + "seconds_min": 0.13818625011481345, + "seconds_median": 0.1431359580019489, + "wall_median": 0.4273260000627488, + "peak_rss_mib": 119.1, + "baseline_rss_mib": 86.2, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "decision diagram, double" + } + }, + { + "case": "qft_n20", + "what": "the QFT of a basis state, the whole state", + "engine": "wai.exact", + "cpus": 32, + "threads": "1 (no threads)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 30.7, + 38.2, + 56.0 + ], + "load_after": [ + 30.7, + 38.2, + 56.0 + ], + "seconds_min": 0.214668375, + "seconds_median": 0.22098925, + "wall_median": 0.3042531249811873, + "peak_rss_mib": 36.8, + "baseline_rss_mib": 3.4, + "repeats": 5, + "ops": 250, + "settings": null + }, + { + "case": "qft_n20", + "what": "the QFT of a basis state, the whole state", + "engine": "quimb.dense", + "cpus": 32, + "threads": "not set", + "timer": "the building of the circuit object, which applies each gate as it is added, and the read-out", + "load_before": [ + 30.7, + 38.2, + 56.0 + ], + "load_after": [ + 31.3, + 38.2, + 55.9 + ], + "seconds_min": 1.392483124975115, + "seconds_median": 1.4134347080253065, + "wall_median": 1.5962023750180379, + "peak_rss_mib": 255.2, + "baseline_rss_mib": 159.2, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "double" + } + }, + { + "case": "qft_n24", + "what": "the QFT of a basis state, the whole state", + "engine": "wai.statevector", + "cpus": 32, + "threads": "all (32)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 31.8, + 38.2, + 55.8 + ], + "load_after": [ + 31.8, + 38.2, + 55.8 + ], + "seconds_min": 0.465841125, + "seconds_median": 0.4802235, + "wall_median": 0.5596143340226263, + "peak_rss_mib": 287.6, + "baseline_rss_mib": 3.5, + "repeats": 5, + "ops": 324, + "settings": null + }, + { + "case": "qft_n24", + "what": "the QFT of a basis state, the whole state", + "engine": "aer.statevector", + "cpus": 32, + "threads": "32", + "timer": "the simulator's own time for the experiment, as its result states it (time_taken); the conversion of the circuit to its own form is outside it", + "load_before": [ + 31.8, + 38.2, + 55.8 + ], + "load_after": [ + 35.0, + 38.7, + 55.9 + ], + "seconds_min": 0.562389208, + "seconds_median": 0.570406875, + "wall_median": 0.9247242079582065, + "peak_rss_mib": 340.9, + "baseline_rss_mib": 82.6, + "repeats": 5, + "ops": 325, + "settings": { + "precision": "double", + "fusion_threshold": 14, + "fusion_max_qubit": 5 + }, + "call_seconds_median": 0.5767783339833841 + }, + { + "case": "qft_n24", + "what": "the QFT of a basis state, the whole state", + "engine": "qsim.statevector", + "cpus": 32, + "threads": "32", + "timer": "the simulate call, which converts the circuit to its own form inside it", + "load_before": [ + 35.0, + 38.7, + 55.9 + ], + "load_after": [ + 40.6, + 39.8, + 56.1 + ], + "seconds_min": 0.5717218749923632, + "seconds_median": 0.5801536249928176, + "wall_median": 1.7520460839150473, + "peak_rss_mib": 318.2, + "baseline_rss_mib": 187.1, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "single", + "fusion": 2 + } + }, + { + "case": "qft_n24", + "what": "the QFT of a basis state, the whole state", + "engine": "ddsim.statevector", + "cpus": 32, + "threads": "not set", + "timer": "the run call, which converts the circuit to its own form inside it", + "load_before": [ + 40.6, + 39.8, + 56.1 + ], + "load_after": [ + 42.4, + 40.2, + 56.0 + ], + "seconds_min": 2.1213541670003906, + "seconds_median": 2.1347440839745104, + "wall_median": 2.42434799997136, + "peak_rss_mib": 598.9, + "baseline_rss_mib": 86.2, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "decision diagram, double" + } + }, + { + "case": "qft_n24", + "what": "the QFT of a basis state, the whole state", + "engine": "wai.exact", + "cpus": 32, + "threads": "1 (no threads)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 42.4, + 40.2, + 56.0 + ], + "load_after": [ + 48.1, + 41.8, + 56.0 + ], + "seconds_min": 5.1085386249999996, + "seconds_median": 5.157198416, + "wall_median": 5.384830708033405, + "peak_rss_mib": 517.5, + "baseline_rss_mib": 3.4, + "repeats": 5, + "ops": 348, + "settings": null + }, + { + "case": "qft_n26", + "what": "the QFT of a basis state, the whole state", + "engine": "wai.statevector", + "cpus": 32, + "threads": "all (32)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 48.1, + 41.8, + 56.0 + ], + "load_after": [ + 52.0, + 42.8, + 56.3 + ], + "seconds_min": 2.028569166, + "seconds_median": 2.135073541, + "wall_median": 2.219121375004761, + "peak_rss_mib": 1058.5, + "baseline_rss_mib": 3.5, + "repeats": 5, + "ops": 377, + "settings": null + }, + { + "case": "qft_n26", + "what": "the QFT of a basis state, the whole state", + "engine": "aer.statevector", + "cpus": 32, + "threads": "32", + "timer": "the simulator's own time for the experiment, as its result states it (time_taken); the conversion of the circuit to its own form is outside it", + "load_before": [ + 52.0, + 42.8, + 56.3 + ], + "load_after": [ + 58.4, + 44.5, + 56.7 + ], + "seconds_min": 1.752865917, + "seconds_median": 1.825643959, + "wall_median": 2.1764568749349564, + "peak_rss_mib": 1108.8, + "baseline_rss_mib": 82.6, + "repeats": 5, + "ops": 378, + "settings": { + "precision": "double", + "fusion_threshold": 14, + "fusion_max_qubit": 5 + }, + "call_seconds_median": 1.8332480839453638 + }, + { + "case": "qft_n26", + "what": "the QFT of a basis state, the whole state", + "engine": "qsim.statevector", + "cpus": 32, + "threads": "32", + "timer": "the simulate call, which converts the circuit to its own form inside it", + "load_before": [ + 58.4, + 44.5, + 56.7 + ], + "load_after": [ + 57.9, + 45.0, + 56.7 + ], + "seconds_min": 2.2092219999758527, + "seconds_median": 2.244106916943565, + "wall_median": 3.370220332988538, + "peak_rss_mib": 702.1, + "baseline_rss_mib": 187.1, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "single", + "fusion": 2 + } + }, + { + "case": "qft_n28", + "what": "the QFT of a basis state, the whole state", + "engine": "wai.statevector", + "cpus": 32, + "threads": "all (32)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 57.9, + 45.0, + 56.7 + ], + "load_after": [ + 67.9, + 49.9, + 57.8 + ], + "seconds_min": 9.685689459, + "seconds_median": 9.730596042, + "wall_median": 9.866795042064041, + "peak_rss_mib": 4134.7, + "baseline_rss_mib": 3.5, + "repeats": 5, + "ops": 434, + "settings": null + }, + { + "case": "qft_n28", + "what": "the QFT of a basis state, the whole state", + "engine": "aer.statevector", + "cpus": 32, + "threads": "32", + "timer": "the simulator's own time for the experiment, as its result states it (time_taken); the conversion of the circuit to its own form is outside it", + "load_before": [ + 67.9, + 49.9, + 57.8 + ], + "load_after": [ + 65.3, + 51.5, + 58.0 + ], + "seconds_min": 6.751223792, + "seconds_median": 6.793823583, + "wall_median": 7.116468667052686, + "peak_rss_mib": 4181.2, + "baseline_rss_mib": 82.6, + "repeats": 5, + "ops": 435, + "settings": { + "precision": "double", + "fusion_threshold": 14, + "fusion_max_qubit": 5 + }, + "call_seconds_median": 6.802199749974534 + }, + { + "case": "qft_n28", + "what": "the QFT of a basis state, the whole state", + "engine": "qsim.statevector", + "cpus": 32, + "threads": "32", + "timer": "the simulate call, which converts the circuit to its own form inside it", + "load_before": [ + 65.3, + 51.5, + 58.0 + ], + "load_after": [ + 64.1, + 53.4, + 58.3 + ], + "seconds_min": 8.941156500019133, + "seconds_median": 9.007571625057608, + "wall_median": 10.142083374899812, + "peak_rss_mib": 2237.9, + "baseline_rss_mib": 187.1, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "single", + "fusion": 2 + } + }, + { + "case": "rotations_n20", + "what": "20 layers of arbitrary U gates on a brickwork of cx, the whole state", + "engine": "wai.statevector", + "cpus": 32, + "threads": "all (32)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 64.1, + 53.4, + 58.3 + ], + "load_after": [ + 64.1, + 53.4, + 58.3 + ], + "seconds_min": 0.062498792, + "seconds_median": 0.063936833, + "wall_median": 0.14042762492317706, + "peak_rss_mib": 28.5, + "baseline_rss_mib": 3.5, + "repeats": 5, + "ops": 590, + "settings": null + }, + { + "case": "rotations_n20", + "what": "20 layers of arbitrary U gates on a brickwork of cx, the whole state", + "engine": "aer.statevector", + "cpus": 32, + "threads": "32", + "timer": "the simulator's own time for the experiment, as its result states it (time_taken); the conversion of the circuit to its own form is outside it", + "load_before": [ + 64.1, + 53.4, + 58.3 + ], + "load_after": [ + 64.1, + 53.4, + 58.3 + ], + "seconds_min": 0.128611583, + "seconds_median": 0.137960292, + "wall_median": 0.47167008300311863, + "peak_rss_mib": 101.8, + "baseline_rss_mib": 82.6, + "repeats": 5, + "ops": 591, + "settings": { + "precision": "double", + "fusion_threshold": 14, + "fusion_max_qubit": 5 + }, + "call_seconds_median": 0.14283425000030547 + }, + { + "case": "rotations_n20", + "what": "20 layers of arbitrary U gates on a brickwork of cx, the whole state", + "engine": "qsim.statevector", + "cpus": 32, + "threads": "32", + "timer": "the simulate call, which converts the circuit to its own form inside it", + "load_before": [ + 64.1, + 53.4, + 58.3 + ], + "load_after": [ + 58.2, + 52.5, + 58.0 + ], + "seconds_min": 0.060286334017291665, + "seconds_median": 0.06291224993765354, + "wall_median": 1.2268155419733375, + "peak_rss_mib": 198.2, + "baseline_rss_mib": 187.1, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "single", + "fusion": 2 + } + }, + { + "case": "rotations_n20", + "what": "20 layers of arbitrary U gates on a brickwork of cx, the whole state", + "engine": "quimb.dense", + "cpus": 32, + "threads": "not set", + "timer": "the building of the circuit object, which applies each gate as it is added, and the read-out", + "load_before": [ + 58.2, + 52.5, + 58.0 + ], + "load_after": [ + 51.5, + 51.3, + 57.5 + ], + "seconds_min": 2.6683836249867454, + "seconds_median": 2.707344291964546, + "wall_median": 2.8796384579036385, + "peak_rss_mib": 235.4, + "baseline_rss_mib": 159.2, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "double" + } + }, + { + "case": "rotations_n24", + "what": "20 layers of arbitrary U gates on a brickwork of cx, the whole state", + "engine": "wai.statevector", + "cpus": 32, + "threads": "all (32)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 51.5, + 51.3, + 57.5 + ], + "load_after": [ + 50.7, + 51.1, + 57.4 + ], + "seconds_min": 0.888200792, + "seconds_median": 0.898043292, + "wall_median": 0.9782013749936596, + "peak_rss_mib": 298.7, + "baseline_rss_mib": 3.5, + "repeats": 5, + "ops": 710, + "settings": null + }, + { + "case": "rotations_n24", + "what": "20 layers of arbitrary U gates on a brickwork of cx, the whole state", + "engine": "aer.statevector", + "cpus": 32, + "threads": "32", + "timer": "the simulator's own time for the experiment, as its result states it (time_taken); the conversion of the circuit to its own form is outside it", + "load_before": [ + 50.7, + 51.1, + 57.4 + ], + "load_after": [ + 54.9, + 52.0, + 57.6 + ], + "seconds_min": 1.0525505, + "seconds_median": 1.074889041, + "wall_median": 1.4172394579509273, + "peak_rss_mib": 341.8, + "baseline_rss_mib": 82.6, + "repeats": 5, + "ops": 711, + "settings": { + "precision": "double", + "fusion_threshold": 14, + "fusion_max_qubit": 5 + }, + "call_seconds_median": 1.080682749976404 + }, + { + "case": "rotations_n24", + "what": "20 layers of arbitrary U gates on a brickwork of cx, the whole state", + "engine": "qsim.statevector", + "cpus": 32, + "threads": "32", + "timer": "the simulate call, which converts the circuit to its own form inside it", + "load_before": [ + 54.9, + 52.0, + 57.6 + ], + "load_after": [ + 57.2, + 52.6, + 57.8 + ], + "seconds_min": 0.46556450007483363, + "seconds_median": 0.479686375008896, + "wall_median": 1.6638020829996094, + "peak_rss_mib": 318.9, + "baseline_rss_mib": 187.1, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "single", + "fusion": 2 + } + }, + { + "case": "rotations_n26", + "what": "20 layers of arbitrary U gates on a brickwork of cx, the whole state", + "engine": "wai.statevector", + "cpus": 32, + "threads": "all (32)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 57.2, + 52.6, + 57.8 + ], + "load_after": [ + 61.4, + 53.7, + 58.1 + ], + "seconds_min": 2.287039042, + "seconds_median": 2.371028042, + "wall_median": 2.4682184590492398, + "peak_rss_mib": 1073.3, + "baseline_rss_mib": 3.5, + "repeats": 5, + "ops": 770, + "settings": null + }, + { + "case": "rotations_n26", + "what": "20 layers of arbitrary U gates on a brickwork of cx, the whole state", + "engine": "aer.statevector", + "cpus": 32, + "threads": "32", + "timer": "the simulator's own time for the experiment, as its result states it (time_taken); the conversion of the circuit to its own form is outside it", + "load_before": [ + 61.4, + 53.7, + 58.1 + ], + "load_after": [ + 62.6, + 54.5, + 58.3 + ], + "seconds_min": 3.677338417, + "seconds_median": 3.700163833, + "wall_median": 4.049429374979809, + "peak_rss_mib": 1110.1, + "baseline_rss_mib": 82.6, + "repeats": 5, + "ops": 771, + "settings": { + "precision": "double", + "fusion_threshold": 14, + "fusion_max_qubit": 5 + }, + "call_seconds_median": 3.706280832993798 + }, + { + "case": "rotations_n26", + "what": "20 layers of arbitrary U gates on a brickwork of cx, the whole state", + "engine": "qsim.statevector", + "cpus": 32, + "threads": "32", + "timer": "the simulate call, which converts the circuit to its own form inside it", + "load_before": [ + 62.6, + 54.5, + 58.3 + ], + "load_after": [ + 62.2, + 54.9, + 58.4 + ], + "seconds_min": 1.697639083955437, + "seconds_median": 1.726462542079389, + "wall_median": 2.9495448750676587, + "peak_rss_mib": 702.3, + "baseline_rss_mib": 187.1, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "single", + "fusion": 2 + } + }, + { + "case": "grover_n10", + "what": "two Grover iterations on 10 qubits: four Z gates under 9 controls, the whole state", + "engine": "wai.statevector", + "cpus": 32, + "threads": "all (32)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 62.2, + 54.9, + 58.4 + ], + "load_after": [ + 62.2, + 54.9, + 58.4 + ], + "seconds_min": 0.015026125, + "seconds_median": 0.0152145, + "wall_median": 0.07853516598697752, + "peak_rss_mib": 11.4, + "baseline_rss_mib": 3.5, + "repeats": 5, + "ops": 8290, + "settings": null + }, + { + "case": "grover_n10", + "what": "two Grover iterations on 10 qubits: four Z gates under 9 controls, the whole state", + "engine": "wai.exact", + "cpus": 32, + "threads": "1 (no threads)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 62.2, + 54.9, + 58.4 + ], + "load_after": [ + 62.2, + 54.9, + 58.4 + ], + "seconds_min": 0.024700375, + "seconds_median": 0.024876042, + "wall_median": 0.08178191701881588, + "peak_rss_mib": 17.3, + "baseline_rss_mib": 3.4, + "repeats": 5, + "ops": 26686, + "settings": null + }, + { + "case": "grover_n10", + "what": "two Grover iterations on 10 qubits: four Z gates under 9 controls, the whole state", + "engine": "aer.statevector", + "cpus": 32, + "threads": "32", + "timer": "the simulator's own time for the experiment, as its result states it (time_taken); the conversion of the circuit to its own form is outside it", + "load_before": [ + 62.2, + 54.9, + 58.4 + ], + "load_after": [ + 58.0, + 54.2, + 58.1 + ], + "seconds_min": 0.000221416, + "seconds_median": 0.000224709, + "wall_median": 0.3297616250347346, + "peak_rss_mib": 83.2, + "baseline_rss_mib": 82.6, + "repeats": 5, + "ops": 123, + "settings": { + "precision": "double", + "fusion_threshold": 14, + "fusion_max_qubit": 5 + }, + "call_seconds_median": 0.001580999931320548 + }, + { + "case": "grover_n10", + "what": "two Grover iterations on 10 qubits: four Z gates under 9 controls, the whole state", + "engine": "qsim.statevector", + "cpus": 32, + "threads": "32", + "timer": "the simulate call, which converts the circuit to its own form inside it", + "load_before": [ + 58.0, + 54.2, + 58.1 + ], + "load_after": [ + 56.3, + 53.9, + 58.0 + ], + "seconds_min": 0.0029412079602479935, + "seconds_median": 0.003044207929633558, + "wall_median": 1.119528083014302, + "peak_rss_mib": 189.2, + "baseline_rss_mib": 187.1, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "single", + "fusion": 2 + } + }, + { + "case": "grover_n10", + "what": "two Grover iterations on 10 qubits: four Z gates under 9 controls, the whole state", + "engine": "ddsim.statevector", + "cpus": 32, + "threads": "not set", + "timer": "the run call, which converts the circuit to its own form inside it", + "load_before": [ + 56.3, + 53.9, + 58.0 + ], + "load_after": [ + 56.3, + 53.9, + 58.0 + ], + "seconds_min": 0.005004917038604617, + "seconds_median": 0.005226833978667855, + "wall_median": 0.28689862496685237, + "peak_rss_mib": 86.9, + "baseline_rss_mib": 86.2, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "decision diagram, double" + } + }, + { + "case": "grover_n14", + "what": "two Grover iterations on 14 qubits: four Z gates under 13 controls, the whole state", + "engine": "wai.statevector", + "cpus": 32, + "threads": "all (32)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 56.3, + 53.9, + 58.0 + ], + "load_after": [ + 49.0, + 52.4, + 57.4 + ], + "seconds_min": 2.952103042, + "seconds_median": 2.956496417, + "wall_median": 3.0320034170290455, + "peak_rss_mib": 104.0, + "baseline_rss_mib": 3.5, + "repeats": 5, + "ops": 131214, + "settings": null + }, + { + "case": "grover_n14", + "what": "two Grover iterations on 14 qubits: four Z gates under 13 controls, the whole state", + "engine": "wai.exact", + "cpus": 32, + "threads": "1 (no threads)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 49.0, + 52.4, + 57.4 + ], + "load_after": [ + 42.5, + 50.3, + 56.3 + ], + "seconds_min": 8.427093208, + "seconds_median": 8.443954208, + "wall_median": 8.56470674998127, + "peak_rss_mib": 260.8, + "baseline_rss_mib": 3.4, + "repeats": 5, + "ops": 557146, + "settings": null + }, + { + "case": "grover_n14", + "what": "two Grover iterations on 14 qubits: four Z gates under 13 controls, the whole state", + "engine": "aer.statevector", + "cpus": 32, + "threads": "32", + "timer": "the simulator's own time for the experiment, as its result states it (time_taken); the conversion of the circuit to its own form is outside it", + "load_before": [ + 42.5, + 50.3, + 56.3 + ], + "load_after": [ + 42.5, + 50.3, + 56.3 + ], + "seconds_min": 0.003132834, + "seconds_median": 0.003167, + "wall_median": 0.3281702499371022, + "peak_rss_mib": 83.8, + "baseline_rss_mib": 82.6, + "repeats": 5, + "ops": 167, + "settings": { + "precision": "double", + "fusion_threshold": 14, + "fusion_max_qubit": 5 + }, + "call_seconds_median": 0.004770957981236279 + }, + { + "case": "grover_n14", + "what": "two Grover iterations on 14 qubits: four Z gates under 13 controls, the whole state", + "engine": "qsim.statevector", + "cpus": 32, + "threads": "32", + "timer": "the simulate call, which converts the circuit to its own form inside it", + "load_before": [ + 42.5, + 50.3, + 56.3 + ], + "load_after": [ + 41.8, + 50.0, + 56.2 + ], + "seconds_min": 0.011089790961705148, + "seconds_median": 0.011591166956350207, + "wall_median": 1.119451167061925, + "peak_rss_mib": 189.8, + "baseline_rss_mib": 187.1, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "single", + "fusion": 2 + } + }, + { + "case": "grover_n14", + "what": "two Grover iterations on 14 qubits: four Z gates under 13 controls, the whole state", + "engine": "ddsim.statevector", + "cpus": 32, + "threads": "not set", + "timer": "the run call, which converts the circuit to its own form inside it", + "load_before": [ + 41.8, + 50.0, + 56.2 + ], + "load_after": [ + 41.8, + 50.0, + 56.2 + ], + "seconds_min": 0.005982334027066827, + "seconds_median": 0.006214958033524454, + "wall_median": 0.2907612919807434, + "peak_rss_mib": 87.8, + "baseline_rss_mib": 86.2, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "decision diagram, double" + } + }, + { + "case": "clifford_n1000", + "what": "random Clifford layers: the tableau, and its stabilizer group read out", + "engine": "wai.stabilizer", + "cpus": 32, + "threads": "1 (no threads)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 41.8, + 50.0, + 56.2 + ], + "load_after": [ + 39.4, + 49.3, + 55.9 + ], + "seconds_min": 0.000969459, + "seconds_median": 0.0010385, + "wall_median": 0.15897379198577255, + "peak_rss_mib": 95.3, + "baseline_rss_mib": 3.4, + "repeats": 5, + "ops": 35082, + "settings": null + }, + { + "case": "clifford_n1000", + "what": "random Clifford layers: the tableau, and its stabilizer group read out", + "engine": "stim.tableau", + "cpus": 32, + "threads": "not set", + "timer": "the tableau's or sampler's run, after the circuit text is parsed", + "load_before": [ + 39.4, + 49.3, + 55.9 + ], + "load_after": [ + 39.4, + 49.3, + 55.9 + ], + "seconds_min": 0.0016281669959425926, + "seconds_median": 0.0017257500439882278, + "wall_median": 0.07373195805121213, + "peak_rss_mib": 45.7, + "baseline_rss_mib": 27.1, + "repeats": 5, + "ops": null, + "settings": null + }, + { + "case": "clifford_n1000", + "what": "random Clifford layers: the tableau, and its stabilizer group read out", + "engine": "aer.stabilizer", + "cpus": 32, + "threads": "32", + "timer": "the simulator's own time for the experiment, as its result states it (time_taken); the conversion of the circuit to its own form is outside it", + "load_before": [ + 39.4, + 49.3, + 55.9 + ], + "load_after": [ + 36.8, + 48.6, + 55.7 + ], + "seconds_min": 0.007222791, + "seconds_median": 0.007583125, + "wall_median": 0.7832549168961123, + "peak_rss_mib": 192.4, + "baseline_rss_mib": 100.2, + "repeats": 5, + "ops": 35083, + "settings": { + "precision": "double", + "fusion_threshold": 14, + "fusion_max_qubit": 5 + }, + "call_seconds_median": 0.1666444579605013 + }, + { + "case": "clifford_n5000", + "what": "random Clifford layers: the tableau, and its stabilizer group read out", + "engine": "wai.stabilizer", + "cpus": 32, + "threads": "1 (no threads)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 36.9, + 48.5, + 55.5 + ], + "load_after": [ + 34.7, + 47.8, + 55.3 + ], + "seconds_min": 0.008336125, + "seconds_median": 0.009776375, + "wall_median": 0.8234486669534817, + "peak_rss_mib": 167.9, + "baseline_rss_mib": 3.4, + "repeats": 5, + "ops": 58265, + "settings": null + }, + { + "case": "clifford_n5000", + "what": "random Clifford layers: the tableau, and its stabilizer group read out", + "engine": "stim.tableau", + "cpus": 32, + "threads": "not set", + "timer": "the tableau's or sampler's run, after the circuit text is parsed", + "load_before": [ + 34.7, + 47.8, + 55.3 + ], + "load_after": [ + 32.7, + 47.2, + 55.0 + ], + "seconds_min": 0.025432916940189898, + "seconds_median": 0.03491645795293152, + "wall_median": 0.10771204205229878, + "peak_rss_mib": 72.9, + "baseline_rss_mib": 27.1, + "repeats": 5, + "ops": null, + "settings": null + }, + { + "case": "surface_z_d5_sample", + "what": "the rotated surface-code memory experiment, d = rounds = 5, p = 0.001: 10^6 shots of every detector", + "engine": "wai.qec", + "cpus": 32, + "threads": "1 (no threads)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 32.7, + 47.2, + 55.0 + ], + "load_after": [ + 32.7, + 47.2, + 55.0 + ], + "seconds_min": 0.086662417, + "seconds_median": 0.087192208, + "wall_median": 0.12925558304414153, + "peak_rss_mib": 18.0, + "baseline_rss_mib": 2.9, + "repeats": 5, + "ops": null, + "settings": null + }, + { + "case": "surface_z_d5_sample", + "what": "the rotated surface-code memory experiment, d = rounds = 5, p = 0.001: 10^6 shots of every detector", + "engine": "stim.tableau", + "cpus": 32, + "threads": "not set", + "timer": "the tableau's or sampler's run, after the circuit text is parsed", + "load_before": [ + 32.7, + 47.2, + 55.0 + ], + "load_after": [ + 32.7, + 47.2, + 55.0 + ], + "seconds_min": 0.21398833394050598, + "seconds_median": 0.21415512496605515, + "wall_median": 0.2565172089962289, + "peak_rss_mib": 123.2, + "baseline_rss_mib": 37.8, + "repeats": 5, + "ops": null, + "settings": null + }, + { + "case": "surface_z_d5_model", + "what": "the same circuit's detector error model", + "engine": "wai.qec", + "cpus": 32, + "threads": "1 (no threads)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 32.7, + 47.2, + 55.0 + ], + "load_after": [ + 32.7, + 47.2, + 55.0 + ], + "seconds_min": 0.002107708, + "seconds_median": 0.002139458, + "wall_median": 0.05082695803139359, + "peak_rss_mib": 5.9, + "baseline_rss_mib": 3.0, + "repeats": 5, + "ops": null, + "settings": null + }, + { + "case": "surface_z_d5_model", + "what": "the same circuit's detector error model", + "engine": "stim.tableau", + "cpus": 32, + "threads": "not set", + "timer": "the tableau's or sampler's run, after the circuit text is parsed", + "load_before": [ + 32.7, + 47.2, + 55.0 + ], + "load_after": [ + 32.7, + 47.2, + 55.0 + ], + "seconds_min": 0.0026930839521810412, + "seconds_median": 0.0028170000296086073, + "wall_median": 0.04999966698233038, + "peak_rss_mib": 28.8, + "baseline_rss_mib": 27.1, + "repeats": 5, + "ops": null, + "settings": null + }, + { + "case": "surface_z_d11_sample", + "what": "the rotated surface-code memory experiment, d = rounds = 11, p = 0.001: 10^6 shots of every detector", + "engine": "wai.qec", + "cpus": 32, + "threads": "1 (no threads)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 32.7, + 47.2, + 55.0 + ], + "load_after": [ + 30.8, + 46.5, + 54.7 + ], + "seconds_min": 0.93782225, + "seconds_median": 0.940042334, + "wall_median": 0.9890721670817584, + "peak_rss_mib": 162.9, + "baseline_rss_mib": 2.9, + "repeats": 5, + "ops": null, + "settings": null + }, + { + "case": "surface_z_d11_sample", + "what": "the rotated surface-code memory experiment, d = rounds = 11, p = 0.001: 10^6 shots of every detector", + "engine": "stim.tableau", + "cpus": 32, + "threads": "not set", + "timer": "the tableau's or sampler's run, after the circuit text is parsed", + "load_before": [ + 30.8, + 46.5, + 54.7 + ], + "load_after": [ + 31.5, + 46.2, + 54.5 + ], + "seconds_min": 2.0423085420625284, + "seconds_median": 2.049313374911435, + "wall_median": 2.1037211670773104, + "peak_rss_mib": 938.2, + "baseline_rss_mib": 37.8, + "repeats": 5, + "ops": null, + "settings": null + }, + { + "case": "surface_z_d11_model", + "what": "the same circuit's detector error model", + "engine": "wai.qec", + "cpus": 32, + "threads": "1 (no threads)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 31.5, + 46.2, + 54.5 + ], + "load_after": [ + 31.5, + 46.2, + 54.5 + ], + "seconds_min": 0.02313175, + "seconds_median": 0.023357833, + "wall_median": 0.18284566700458527, + "peak_rss_mib": 33.7, + "baseline_rss_mib": 3.0, + "repeats": 5, + "ops": null, + "settings": null + }, + { + "case": "surface_z_d11_model", + "what": "the same circuit's detector error model", + "engine": "stim.tableau", + "cpus": 32, + "threads": "not set", + "timer": "the tableau's or sampler's run, after the circuit text is parsed", + "load_before": [ + 31.5, + 46.2, + 54.5 + ], + "load_after": [ + 32.1, + 46.1, + 54.4 + ], + "seconds_min": 0.03979912505019456, + "seconds_median": 0.0404149170499295, + "wall_median": 0.23194666602648795, + "peak_rss_mib": 48.6, + "baseline_rss_mib": 27.1, + "repeats": 5, + "ops": null, + "settings": null + }, + { + "case": "qft_n40_amplitudes", + "what": "six amplitudes of the 40-qubit QFT of a basis state", + "engine": "wai.mps", + "cpus": 32, + "threads": "1 (no threads)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 32.1, + 46.1, + 54.4 + ], + "load_after": [ + 32.1, + 46.1, + 54.4 + ], + "seconds_min": 0.015773292, + "seconds_median": 0.016443833, + "wall_median": 0.09107995801605284, + "peak_rss_mib": 10.4, + "baseline_rss_mib": 4.7, + "repeats": 5, + "ops": null, + "settings": null + }, + { + "case": "qft_n40_amplitudes", + "what": "six amplitudes of the 40-qubit QFT of a basis state", + "engine": "aer.mps", + "cpus": 32, + "threads": "32", + "timer": "the simulator's own time for the experiment, as its result states it (time_taken); the conversion of the circuit to its own form is outside it", + "load_before": [ + 32.1, + 46.1, + 54.4 + ], + "load_after": [ + 32.1, + 46.1, + 54.4 + ], + "seconds_min": 0.005343834, + "seconds_median": 0.0053835, + "wall_median": 0.345725208055228, + "peak_rss_mib": 85.5, + "baseline_rss_mib": 83.0, + "repeats": 5, + "ops": 861, + "settings": { + "precision": "double", + "fusion_threshold": 14, + "fusion_max_qubit": 5 + }, + "call_seconds_median": 0.021278167027048767 + }, + { + "case": "qft_n40_amplitudes", + "what": "six amplitudes of the 40-qubit QFT of a basis state", + "engine": "quimb.mps", + "cpus": 32, + "threads": "not set", + "timer": "the building of the circuit object, which applies each gate as it is added, and the read-out", + "load_before": [ + 32.1, + 46.1, + 54.4 + ], + "load_after": [ + 34.9, + 46.2, + 54.4 + ], + "seconds_min": 1.8679650410776958, + "seconds_median": 1.8883266659686342, + "wall_median": 2.060357541893609, + "peak_rss_mib": 166.5, + "baseline_rss_mib": 160.9, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "double", + "cutoff": 1e-28, + "cutoff_mode": "sum2" + } + }, + { + "case": "qft_n40_amplitudes", + "what": "six amplitudes of the 40-qubit QFT of a basis state", + "engine": "wai.tensor_network", + "cpus": 32, + "threads": "all (32)", + "timer": "the engine's run, after the program is read and lowered (the driver's own clock)", + "load_before": [ + 34.9, + 46.2, + 54.4 + ], + "load_after": [ + 33.7, + 45.7, + 54.2 + ], + "seconds_min": 0.181124417, + "seconds_median": 0.181464209, + "wall_median": 0.25113204203080386, + "peak_rss_mib": 10.8, + "baseline_rss_mib": 5.0, + "repeats": 5, + "ops": null, + "settings": null + }, + { + "case": "qft_n40_amplitudes", + "what": "six amplitudes of the 40-qubit QFT of a basis state", + "engine": "quimb.tensor_network", + "cpus": 32, + "threads": "not set", + "timer": "the building of the circuit object, which applies each gate as it is added, and the read-out", + "load_before": [ + 33.7, + 45.7, + 54.2 + ], + "load_after": [ + 32.6, + 45.3, + 54.0 + ], + "seconds_min": 0.8449469999177381, + "seconds_median": 0.8578997920267284, + "wall_median": 1.029012875049375, + "peak_rss_mib": 179.7, + "baseline_rss_mib": 166.4, + "repeats": 5, + "ops": null, + "settings": { + "arithmetic": "double" + } + } + ] +} diff --git a/wai/quantum-cross-simulator/tools/compare.py b/wai/quantum-cross-simulator/tools/compare.py new file mode 100644 index 000000000..faaf2e23f --- /dev/null +++ b/wai/quantum-cross-simulator/tools/compare.py @@ -0,0 +1,1302 @@ +#!/usr/bin/env python3 +"""Run every engine on the corpus, hold each answer to its reference within its tolerance, and +say what passed, what failed and by how much. + + compare.py --tier ci|full [--out RESULTS.json] [--jobs N] [--inject FAULT] [--only ID,...] + +Exit status 0 when every check passes, 1 when one fails, 2 when the run itself could not be +made. `--inject` corrupts one engine's answers after it gives them, or makes the engine under +test refuse, crash, hang or accept what it must not, the way a wrong engine would, so that a run +can be seen to fail; FAULTS lists what it can do. + +Every tolerance is derived, never fitted, and tolerance.py says from what. A check another engine +cannot make (an engine without the gate, a method that does not take the circuit) is recorded as +`not run`, with the engine's own words, and is not a pass. The engine under test is held to more: +a crash, a time-out, or a refusal that corpus/expected-refusals.json does not list in those words +fails the run, and so does an answer to a circuit that file says it must refuse. +""" +import argparse +import hashlib +import itertools +import json +import math +import os +import platform +import shutil +import signal +import subprocess +import sys +import tempfile +import threading +import time +from concurrent.futures import ThreadPoolExecutor +from fractions import Fraction + +HERE = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, HERE) +import corpus # noqa: E402 +import exact # noqa: E402 +import tolerance as tol # noqa: E402 + +ROOT = os.path.dirname(HERE) +WAI = os.path.dirname(ROOT) + +STATE_ENGINES = ["wai.exact", "wai.statevector", "aer.statevector", "aer.qasm_import", "quimb.dense", "quimb.tensor_network", "ddsim.statevector", "qsim.statevector"] +COUNT_ENGINES = ["wai.auto", "wai.statevector", "aer.statevector", "ddsim.statevector", "qsim.statevector"] +CLIFFORD = {"id", "x", "y", "z", "h", "s", "sdg", "sx", "sxdg", "cx", "cy", "cz", "swap"} +# Every sampled test of a run (counts, error-correction rates, stabilizer outcomes) shares this: +# a correct engine fails a run on sampling with probability at most this, a third to each kind. +FAMILY_WISE_ALPHA = 1e-6 +# The closed-form checks of the integer reference, in units of 2^-256: far above its own rounding +# (a few units a gate), far below anything an engine is held to. +REFERENCE_UNITS = 2**40 +# mqt.ddsim's angle tolerance (its parameter_tolerance setting): an angle below it may be read as 0. +DDSIM_PARAMETER_TOLERANCE = 1e-13 + +FAULTS = { + "amplitude": "aer.statevector: one amplitude of every state moved by 1e-9", + "bit_order": "wai.statevector: every state read with its qubits in reverse order", + "counts": "stim.tableau: 5% of the shots of the most frequent outcome moved to the least frequent outcome that can occur", + "counts_spread": "aer.statevector: every outcome's count moved by a tenth of itself, up and down in turn, the total kept (an L1 distance of about 0.1)", + "dem": "wai.qec: the most likely mechanism's probability raised by one part in 10^6", + "qec_rate": "wai.qec: the sampler's most frequent detector count raised by a quarter", + "stabilizer": "stim.tableau: the sign of the last stabilizer flipped", + "fixed_point": "wai.exact: the lowest bit of one fixed-point amplitude flipped", + "drop_gate": "wai.exact: the op-log's last phase dropped, and the integers and hash made again from what is left", + "drop_phase": "wai.statevector: the state of the circuit with its small-angle gate left out", + "refuse": "wai.mps: the engine refuses every job", + "crash": "wai.auto: the engine exits with status 101 and no answer", + "hang": "wai.qec: the engine's sampler never answers", + "accept": "wai.exact: every angle moved to the nearest m/2^32 of a turn before the engine reads it", + "qec_words": "wai.qec: the engine refuses each model with a line number, in words no list holds", + "qec_crash": "wai.qec: the engine crashes on each model", + "exact_words": "wai.exact: the engine refuses each state, in words other than its list's", + "qec_short": "wai.qec: the sampler's answer lists no observable", + "exact_turn": "wai.exact: every state turned by a global phase of 0.5 rad", + "phase_flip": "wai.statevector: every state turned by a half turn, as a phase applied with the wrong sign, or not at all", + "mps_phase": "aer.mps: every amplitude turned by 0.5 rad", + "counts_collapse": "stim.tableau: every shot given to one outcome", +} +# The faults the engine's adapter carries out (engines.py), rather than this file. +DRIVER_FAULTS = {"refuse": "wai.mps", "crash": "wai.auto", "hang": "wai.qec", "accept": "wai.exact", "qec_words": "wai.qec", "qec_crash": "wai.qec", "exact_words": "wai.exact"} + + +def is_clifford(e): + for s in e["steps"]: + for x in s.get("then", [s]): + if "g" in x and x["g"] not in CLIFFORD: + return False + return True + + +def has_dynamic(e): + k = len(e["steps"]) + while k and "measure" in e["steps"][k - 1]: + k -= 1 + return any("g" not in s for s in e["steps"][:k]) or k < len(e["steps"]) and e["expect"] != "distribution" + + +class Runner: + def __init__(self, work, python, timeout, inject): + self.work = work + self.python = python + self.timeout = timeout + self.inject = inject + self.counter = itertools.count(1) + self.lock = threading.Lock() + + def run(self, engine, job): + """One engine on one job in a process group of its own: its answer and wall time. On a + time-out the whole group is killed, the engine's driver with its adapter.""" + with self.lock: + k = next(self.counter) + tag = "%s-%s-%d" % (job.get("id", "job"), engine, k) + jp = os.path.join(self.work, tag + ".job.json") + ap = os.path.join(self.work, tag + ".answer.json") + if job["kind"] == "state" and "state_out" not in job: + job = dict(job, state_out=os.path.join(self.work, tag + ".state")) + if self.inject in DRIVER_FAULTS and DRIVER_FAULTS[self.inject] == engine: + job = dict(job, inject=self.inject) + with open(jp, "w") as f: + json.dump(job, f) + t0 = time.perf_counter() + p = subprocess.Popen([self.python, "-I", os.path.join(HERE, "engines.py"), engine, jp, ap], stdout=subprocess.PIPE, stderr=subprocess.PIPE, start_new_session=True) + try: + _, err = p.communicate(timeout=self.timeout) + except subprocess.TimeoutExpired: + try: + os.killpg(p.pid, signal.SIGKILL) + except ProcessLookupError: + pass + p.communicate() + return {"ok": False, "timeout": self.timeout} + wall = time.perf_counter() - t0 + try: + ans = json.load(open(ap)) + except Exception: # noqa: BLE001 + return {"ok": False, "error": "no answer; exit %d: %s" % (p.returncode, err.decode(errors="replace")[-1500:])} + ans["wall_seconds"] = wall + ans["job"] = job + return self.corrupt(engine, ans) + + def corrupt(self, engine, ans): + """The injected fault, applied as the engine's own answer.""" + f = self.inject + if not f or not ans.get("ok"): + return ans + import numpy as np + + job = ans["job"] + if f == "amplitude" and engine == "aer.statevector" and job["kind"] == "state": + v = np.fromfile(job["state_out"], dtype=np.complex128) + v[len(v) // 2] += 1e-9 + v.tofile(job["state_out"]) + elif f == "bit_order" and engine == "wai.statevector" and job["kind"] == "state" and job["n"] > 1: + import engines + + v = np.fromfile(job["state_out"], dtype=np.complex128) + engines.reverse_qubits(v, job["n"]).tofile(job["state_out"]) + elif f == "counts" and engine == "stim.tableau" and job["kind"] == "counts": + c = ans["counts"] + possible = [k for k, p in exact.distribution(job["n"], job["bits"], job["steps"]).items() if p > 0] + top = max(c, key=c.get) + dest = min((k for k in possible if k != top), key=lambda k: c.get(k, 0), default=None) + if dest is not None: + moved = c[top] // 20 + c[top] -= moved + c[dest] = c.get(dest, 0) + moved + elif f == "counts_spread" and engine == "aer.statevector" and job["kind"] == "counts": + c = ans["counts"] + keys = sorted(c) + total = sum(c.values()) + for i, k in enumerate(keys): + c[k] += (c[k] // 10) * (1 if i % 2 == 0 else -1) + c[keys[0]] += total - sum(c.values()) + elif f == "dem" and engine == "wai.qec" and job["kind"] == "qec_model" and ans["mechanisms"]: + m = max(ans["mechanisms"], key=lambda x: x[0]) + m[0] *= 1 + 1e-6 + elif f == "qec_rate" and engine == "wai.qec" and job["kind"] == "qec_sample" and ans.get("detectors"): + d = ans["detectors"] + i = max(range(len(d)), key=lambda j: d[j]) + d[i] += d[i] // 4 + elif f == "stabilizer" and engine == "stim.tableau" and job["kind"] == "stabilizers": + last = ans["stabilizers"][-1] + ans["stabilizers"][-1] = ("-" if last[0] == "+" else "+") + last[1:] + elif f == "fixed_point" and engine == "wai.exact" and job["kind"] == "state": + fx = ans["settings"]["fixed"] + a = np.load(fx) + a[0, 0] ^= 1 + np.save(fx, a) + elif f == "drop_gate" and engine == "wai.exact" and job["kind"] == "state": + ops = ans["ops"] + last = max((i for i, op in enumerate(ops) if op[0] == 9), default=None) + if last is not None: + del ops[last] + ref = referee() + amps = ref.simulate(job["n"], [ref.gate(op, t, tuple(c), p) for op, c, t, p in ops], ref.derive_v2()[0]) + ints = np.array([[int(a), int(b)] for a, b in amps], dtype=np.int64) + np.save(ans["settings"]["fixed"], ints) + digest = ref.statevector_hash(job["n"], amps) + ans["state_hash"] = digest.hex() if isinstance(digest, (bytes, bytearray)) else digest + ((ints[:, 0] / float(1 << 30)) + 1j * (ints[:, 1] / float(1 << 30))).tofile(job["state_out"]) + elif f == "qec_short" and engine == "wai.qec" and job["kind"] == "qec_sample": + ans["observables"] = [] + elif f == "exact_turn" and engine == "wai.exact" and job["kind"] == "state": + fx = ans["settings"]["fixed"] + a = np.load(fx) + z = (a[:, 0] + 1j * a[:, 1]) * complex(math.cos(0.5), math.sin(0.5)) + a[:, 0], a[:, 1] = np.round(z.real).astype(np.int64), np.round(z.imag).astype(np.int64) + np.save(fx, a) + ((a[:, 0] / float(1 << 30)) + 1j * (a[:, 1] / float(1 << 30))).tofile(job["state_out"]) + elif f == "phase_flip" and engine == "wai.statevector" and job["kind"] == "state": + v = np.fromfile(job["state_out"], dtype=np.complex128) + (-v).tofile(job["state_out"]) + elif f == "mps_phase" and engine == "aer.mps" and job["kind"] == "amplitudes": + t = complex(math.cos(0.5), math.sin(0.5)) + ans["amplitudes"] = {b: [(complex(*a) * t).real, (complex(*a) * t).imag] for b, a in ans["amplitudes"].items()} + elif f == "counts_collapse" and engine == "stim.tableau" and job["kind"] == "counts": + c = ans["counts"] + ans["counts"] = {sorted(c)[0]: sum(c.values())} + elif f == "drop_phase" and engine == "wai.statevector" and job["kind"] == "state" and job.get("probe") is not None: + steps = [s for i, s in enumerate(job["steps"]) if i != job["probe"]] + w = exact.run_unitary(job["n"], steps) + np.array([complex(float(Fraction(r, exact.ONE)), float(Fraction(i, exact.ONE))) for r, i in zip(w.re, w.im)]).tofile(job["state_out"]) + return ans + + +_REFEREE = None + + +def referee(): + """The conformance corpus's independent integer reader of the bit-exact method (section 3.0).""" + global _REFEREE + if _REFEREE is None: + import importlib.util + + spec = importlib.util.spec_from_file_location("referee", os.path.join(WAI, "quantum-conformance", "tools", "referee.py")) + _REFEREE = importlib.util.module_from_spec(spec) + spec.loader.exec_module(_REFEREE) + return _REFEREE + + +class Report: + def __init__(self): + self.checks = [] + + def add(self, entry, engine, quantity, measured, tolerance, ok, note=None, status=None): + c = {"entry": entry, "engine": engine, "quantity": quantity, "measured": measured, "tolerance": tolerance, "status": status or ("pass" if ok else "fail")} + if note: + c["note"] = note + self.checks.append(c) + return c + + def not_run(self, entry, engine, quantity, why): + return self.add(entry, engine, quantity, None, None, True, note=why, status="not run") + + +# ------------------------------------------------------------------ the engine under test, held to its answers + + +class Expected: + """corpus/expected-refusals.json: the refusals by the engine under test a run accepts.""" + + def __init__(self): + self.rows = json.load(open(os.path.join(ROOT, "corpus", "expected-refusals.json")))["refusals"] + self.by = {(r["entry"], r["engine"]): r for r in self.rows} + self.answered = set() + + def get(self, entry, engine): + return self.by.get((entry, engine)) + + +EXPECTED = None + + +def under_test(engine): + return engine.startswith("wai.") + + +def words(ans): + return ans.get("refused") or ans.get("unsupported") or ans.get("error") or ("did not finish within %s s" % ans.get("timeout")) + + +def no_answer(rep, entry, eng, ans, quantity, fail_on_error=False): + """An engine gave no answer. From the engine under test, a refusal that expected-refusals.json + lists for this entry, in its listed words, is recorded as `refused`; anything else (a crash, a + time-out, a refusal not listed, or in other words) fails the run. From another engine it is + `not run`, with its words, or a failure where it crashed on a check it must make.""" + why = str(words(ans)) + if under_test(eng): + x = EXPECTED.get(entry, eng) + if x and ans.get("refused") and x["text"] in ans["refused"]: + return rep.add(entry, eng, "refuses, as listed: " + x["reason"], ans["refused"], x["text"], True, status="refused") + kind = "it crashed" if ans.get("error") else "it did not finish" if ans.get("timeout") else "a refusal no list holds" if not x else "a refusal in other words than its list's" + return rep.add(entry, eng, "%s: the engine under test gave no answer (%s)" % (quantity, kind), why[:1500], None, False) + if fail_on_error and ans.get("error"): + return rep.add(entry, eng, quantity, None, None, False, note=why) + return rep.not_run(entry, eng, quantity, why) + + +def answered(rep, entry, eng): + """The engine under test answered. Where it must refuse, that fails the run.""" + if under_test(eng): + x = EXPECTED.get(entry, eng) + if x: + EXPECTED.answered.add((entry, eng)) + if x["must"] == "refuse": + rep.add(entry, eng, "accepts a circuit it must refuse: " + x["reason"], True, False, False) + return False + return True + + +# ------------------------------------------------------------------ states + + +def load_state(path): + import numpy as np + + return np.fromfile(path, dtype=np.complex128) + + +def exact_distance(ref, vec): + """(strict, modulo a global phase, the phase) between the integer reference and a state.""" + re = exact.ints_from_floats([float(x) for x in vec.real]) + im = exact.ints_from_floats([float(x) for x in vec.imag]) + d, dm, phase, _, _ = exact.distance(ref.re, ref.im, re, im) + return d, dm, phase + + +def float_distance(a, b): + """(strict, modulo a global phase) between two double states, the sums taken exactly enough: + math.fsum over the squares.""" + import numpy as np + + def norm(v): + return math.sqrt(math.fsum((v.real**2).tolist()) + math.fsum((v.imag**2).tolist())) + + d = norm(a - b) + # Turn b by the phase that best aligns it with a, then measure the difference itself: + # sqrt(|a|^2 + |b|^2 - 2||) would lose half its digits to cancellation. + ip = np.vdot(b, a) + turn = ip / abs(ip) if abs(ip) > 0 else 1.0 + dm = norm(a - turn * b) + return d, dm + + +def ref_vector(ref): + import numpy as np + + return np.array([complex(float(Fraction(r, exact.ONE)), float(Fraction(i, exact.ONE))) for r, i in zip(ref.re, ref.im)]) + + +def state_tolerance(engine, ans, e): + gates = tol.gate_count(e["steps"]) + n = e["n"] + if engine == "wai.exact": + return tol.fixed_point_bound(n, ans["ops"]), "the extension's published bound (quantum-sim.md section 5), summed over the op-log the engine ran" + if engine in ("wai.statevector",): + return tol.double_state(gates, n, width=3), "double precision, fusion width 3" + if engine in ("aer.statevector", "aer.qasm_import"): + g = max(gates, ans.get("settings", {}).get("gates", gates)) + width = 5 if n >= 14 else 2 + return tol.double_state(g, n, width=width), "double precision, fusion up to %d qubits from 14 qubits" % 5 + if engine == "quimb.dense": + return tol.double_state(max(gates, ans.get("gates", gates)), n, width=3), "double precision, gate by gate" + if engine == "quimb.tensor_network": + w = ans.get("settings", {}).get("contraction_width") or n + return tol.contraction(ans.get("gates", gates) + n, min(float(w), 40.0)), "double precision, a contraction of width %.1f" % float(w) + if engine == "ddsim.statevector": + return tol.decision_diagram(gates, n), "decision-diagram edge weights merged within 2^-42" + if engine == "qsim.statevector": + return tol.single_state(gates, n, width=2), "single precision, fusion width 2" + raise KeyError(engine) + + +def run_oplog(n, ops): + """The bit-exact method's op-log run in double precision: its ideal state, to a double's + rounding. Base gates are quantum-sim.md's (section 3.0): I X Y Z H S S† T T† P = 0..9, P(k) + the phase e^(2πi/2^k); qubit 0 is the lowest bit of the index.""" + import numpy as np + + r = 1 / math.sqrt(2) + fixed = {0: ((1, 0), (0, 1)), 1: ((0, 1), (1, 0)), 2: ((0, -1j), (1j, 0)), 3: ((1, 0), (0, -1)), 4: ((r, r), (r, -r)), 5: ((1, 0), (0, 1j)), 6: ((1, 0), (0, -1j)), 7: ((1, 0), (0, complex(r, r))), 8: ((1, 0), (0, complex(r, -r)))} + v = np.zeros(1 << n, dtype=np.complex128) + v[0] = 1 + idx = np.arange(1 << n) + pairs = {} + for base, controls, target, param in ops: + m = ((1, 0), (0, np.exp(2j * math.pi / (1 << param)) if param > 2 else (-1 if param == 1 else 1j))) if base == 9 else fixed[base] + key = (tuple(controls), target) + if key not in pairs: + mask = 0 + for c in controls: + mask |= 1 << c + lo = idx[((idx & mask) == mask) & ((idx >> target) & 1 == 0)] + pairs[key] = (lo, lo | (1 << target)) + lo, hi = pairs[key] + a, b = v[lo], v[hi] + v[lo], v[hi] = m[0][0] * a + m[0][1] * b, m[1][0] * a + m[1][1] * b + return v + + +def oplog_check(rep, e, n, ops, want): + """The op-log the bit-exact method ran is the circuit: the op-log's ideal state against the + circuit's, modulo the global phase the lowering drops. Within the double rounding of that run, + the distance the reader's rule moves angles (corpus.reader_class: a phase moved by δ turns + changes a state by at most 2πδ), and 2^-50 for the reference's conversion to double. The + referee then ties the integers to the op-log, so this ties them to the circuit.""" + cls, moved = corpus.reader_class(e) + _, dm = float_distance(want, run_oplog(n, ops)) + bound = tol.double_state(len(ops), n, width=1) + 2 * math.pi * float(moved) + 2.0**-50 + note = "the reader moved its angles by %.3g of a turn in all, as its rule has it" % float(moved) if cls == "moved" else None + rep.add(e["id"], "wai.exact", "the op-log is the circuit: the op-log's ideal state against the circuit's, modulo a global phase", dm, bound, dm <= bound, note=note) + + +def referee_hash(n, ops, fixed, engine_hash): + """The referee's integer simulator run on the engine's op-log must give the integers the + engine wrote, and the referee's BLAKE3 of them the hash the engine reported.""" + ref = referee() + table = ref.derive_v2()[0] + oplist = [ref.gate(op, t, tuple(c), p) for op, c, t, p in ops] + amps = ref.simulate(n, oplist, table) + mine = [(int(a), int(b)) for a, b in fixed] + same = [tuple(x) for x in amps] == mine + digest = ref.statevector_hash(n, amps) + digest = digest.hex() if isinstance(digest, (bytes, bytearray)) else digest + if not same: + return {"match": False, "note": "the referee's state differs from the engine's"} + if digest != engine_hash: + return {"match": False, "note": "the referee's hash %s, the engine's %s" % (digest, engine_hash)} + return {"match": True} + + +def exact_answer(rep, e, n, ans, want, quantity="state"): + """The bit-exact method's checks beside its distance: the op-log is the circuit, and the + referee reruns the op-log to the engine's integers and hash (to 14 qubits).""" + import numpy as np + + fixed = np.load(ans["settings"]["fixed"]) + oplog_check(rep, e, n, ans["ops"], want) + if n <= 14: + h = referee_hash(n, ans["ops"], fixed, ans["state_hash"]) + rep.add(e["id"], "wai.exact", "state hash, recomputed by the referee from the op-log and from the integers written", h["match"], True, h["match"], note=h.get("note")) + return fixed + + +def reference_checks(e, ref, rep): + """A closed form, where there is one, holds the integer reference itself.""" + n = e["n"] + unit = "units of 2^-256" + if "qft_x" in e: + worst = max(abs(exact.qft_amplitude(n, e["qft_x"], y)[0] - ref.re[y]) + abs(exact.qft_amplitude(n, e["qft_x"], y)[1] - ref.im[y]) for y in range(1 << n)) + rep.add(e["id"], "exact", "integer reference against the closed form, " + unit, worst, REFERENCE_UNITS, worst <= REFERENCE_UNITS) + if e["family"] == "ghz": + r = exact.rsqrt2() + worst = max(abs(ref.re[i] - (r if i in (0, (1 << n) - 1) else 0)) + abs(ref.im[i]) for i in range(1 << n)) + rep.add(e["id"], "exact", "integer reference against the closed form, " + unit, worst, REFERENCE_UNITS, worst <= REFERENCE_UNITS) + if "grover" in e: + m, k = e["grover"] + p = ref.re[m] ** 2 + ref.im[m] ** 2 + err = abs(p - exact.grover_law(n, k)) >> exact.PREC + rep.add(e["id"], "exact", "integer reference: P(marked) against sin²((2k+1)θ), computed in integers, " + unit, err, REFERENCE_UNITS, err <= REFERENCE_UNITS) + if "qpe" in e: + m, bits = e["qpe"] + i = m | (1 << bits) + err = abs(ref.re[i] ** 2 + ref.im[i] ** 2 - (1 << (2 * exact.PREC))) >> exact.PREC + rep.add(e["id"], "exact", "integer reference: P(m) against 1, the closed form, " + unit, err, REFERENCE_UNITS, err <= REFERENCE_UNITS) + if "qpe_third" in e: + bits = e["qpe_third"] + worst = 0 + for y in range(1 << bits): + i = y | (1 << bits) + worst = max(worst, abs(ref.re[i] ** 2 + ref.im[i] ** 2 - exact.qpe_third_law(bits, y)) >> exact.PREC) + rep.add(e["id"], "exact", "integer reference: every outcome's probability against sin²(π2^tδ)/(2^2t sin²(πδ)), " + unit, worst, REFERENCE_UNITS, worst <= REFERENCE_UNITS) + + +def probe_states(e): + """The circuit with its probed gate left out, and that gate's angle in radians.""" + steps = [s for i, s in enumerate(e["steps"]) if i != e["probe"]] + return exact.run_unitary(e["n"], steps), abs(exact.float_radians(e["steps"][e["probe"]]["a"][0])) + + +def phase_held(rep, e, eng, ref, probe, re_ints, im_ints): + """Whether an engine holds the probed gate or drops it: its distance alone cannot tell them + apart once the gate's effect is below the engine's bound. Exactly, in integers, modulo a global + phase: it holds the gate when its answer is within half the gate's effect of the ideal state, and + drops it when within half of the state without the gate. When it is within half of neither, its + own rounding is larger than the gate's effect, and the answer says nothing either way: that is + recorded and not judged. The share of the step it took (exact.held_share) is recorded beside.""" + without, theta = probe + share = exact.held_share(ref, without, re_ints, im_ints) + step = exact.distance(ref.re, ref.im, without.re, without.im)[1] + to_ideal = exact.distance(ref.re, ref.im, re_ints, im_ints)[1] + to_without = exact.distance(without.re, without.im, re_ints, im_ints)[1] + verdict = "holds it" if to_ideal <= step / 2 else "drops it" if to_without <= step / 2 else None + q = "holds the phase of its small-angle gate: the share of the step from the state without that gate to the ideal (1 holds it, 0 drops it)" + if verdict is None: + c = rep.add(e["id"], eng, q, share, [0.5, 1.5], True, status="info", note="neither can be told: its distance from the ideal state, %.3g, is more than half the gate's effect, %.3g" % (to_ideal, step)) + elif eng == "ddsim.statevector" and theta < DDSIM_PARAMETER_TOLERANCE: + c = rep.add(e["id"], eng, q, share, [0.5, 1.5], True, status="info", note="%s: the angle, %.3g rad, is below its parameter tolerance of %g rad, where it may read an angle as 0" % (verdict, theta, DDSIM_PARAMETER_TOLERANCE)) + else: + c = rep.add(e["id"], eng, q, share, [0.5, 1.5], verdict == "holds it", note=verdict) + c["step"] = step + + +def extension_figure(rep, e, fixed): + """quantum-sim.md section 5: P2(19) applied 2^18 times to |1> ends at modulus 1.0000189 and + within 10^-5 rad of the half turn. The modulus is stated to seven decimals.""" + re, im = int(fixed[1][0]), int(fixed[1][1]) + modulus = math.hypot(re, im) / (1 << 30) + off = abs(math.remainder(math.atan2(im, re) - math.pi, 2 * math.pi)) + rep.add(e["id"], "wai.exact", "modulus of the half turn's amplitude against the extension's figure, 1.0000189 (section 5)", modulus, [1.00001885, 1.00001895], 1.00001885 <= modulus <= 1.00001895) + rep.add(e["id"], "wai.exact", "its angle from the half turn, in radians, which the extension states is within 1e-5", off, 1e-5, off <= 1e-5) + + +def check_state_entry(e, runner, rep, engines): + import numpy as np + + n = e["n"] + ref = exact.run_unitary(n, e["steps"]) + want = ref_vector(ref) + reference_checks(e, ref, rep) + strict = bool(e.get("phase_is_result")) + probe = probe_states(e) if "probe" in e else None + exact_ops = None + jobs = {} + for eng in engines: + if eng == "aer.qasm_import" and n > 14: + continue + if eng == "quimb.tensor_network" and n > 12: + continue + jobs[eng] = {"id": e["id"], "kind": "state", "n": n, "steps": e["steps"], "qasm": e["qasm"], "probe": e.get("probe")} + answers = run_all(runner, jobs) + quantity = "distance from the exact state" + (", with its phase" if strict else ", modulo a global phase") + for eng, ans in answers.items(): + if not ans.get("ok"): + no_answer(rep, e["id"], eng, ans, "state", fail_on_error=True) + continue + if not answered(rep, e["id"], eng): + continue + vec = load_state(ans["job"]["state_out"]) + if len(vec) != 1 << n: + rep.add(e["id"], eng, "state length", len(vec), 1 << n, False) + continue + if eng == "wai.exact": + fixed = np.load(ans["settings"]["fixed"]) + re = exact.ints_from_fixed([int(x) for x in fixed[:, 0]]) + im = exact.ints_from_fixed([int(x) for x in fixed[:, 1]]) + d, dm, phase, _, _ = exact.distance(ref.re, ref.im, re, im) + bound, why = state_tolerance(eng, ans, e) + measured = d if strict else dm + c = rep.add(e["id"], eng, quantity, measured, bound, measured <= bound, note=why) + c["strict"] = d + c["global_phase"] = phase + exact_ops = ans["ops"] + exact_answer(rep, e, n, ans, want) + if e.get("extension_figure"): + extension_figure(rep, e, fixed) + continue + bound, why = state_tolerance(eng, ans, e) + d, dm, phase = exact_distance(ref, vec) + measured = d if strict else dm + c = rep.add(e["id"], eng, quantity, measured, bound, measured <= bound, note=why) + c["strict"] = d + c["global_phase"] = phase + c["seconds"] = ans.get("seconds") + if ans.get("notes"): + c["adapter"] = ans["notes"] + if probe: + phase_held(rep, e, eng, ref, probe, exact.ints_from_floats([float(x) for x in vec.real]), exact.ints_from_floats([float(x) for x in vec.imag])) + if is_clifford(e) and e["expect"] == "exact_state": + check_stabilizer_entry(e, runner, rep) + # Through the engine's whole path, as a user asks: chosen amplitudes, method auto. + picks = sorted({0, (1 << n) - 1, 1 % (1 << n)} | {max(range(1 << n), key=lambda i: ref.re[i] ** 2 + ref.im[i] ** 2)}) + bits = [format(i, "0%db" % n) for i in picks] + ans = runner.run("wai.auto", {"id": e["id"], "kind": "amplitudes", "n": n, "steps": e["steps"], "bitstrings": bits}) + if not ans.get("ok"): + no_answer(rep, e["id"], "wai.auto", ans, "chosen amplitudes through the job path") + return + planned = ans.get("planned") + # The bit-exact method keeps no global phase (it lowers rz to a phase gate, and so on): its + # amplitudes are held up to one phase, the one that aligns the largest of them; where the + # phase is the result, they are held with it. + turn = 1 + if planned == "exact" and not strict: + top = max(picks, key=lambda i: ref.re[i] ** 2 + ref.im[i] ** 2) + got = complex(*ans["amplitudes"][format(top, "0%db" % n)]) + want_top = complex(ref.re[top] / 2.0**exact.PREC, ref.im[top] / 2.0**exact.PREC) + if abs(got) > 0: + turn = (want_top / got) / abs(want_top / got) + worst = 0.0 + for b in bits: + a = complex(*ans["amplitudes"][b]) * turn + worst = max(worst, exact.amplitude_error((ref.re[int(b, 2)], ref.im[int(b, 2)]), a.real, a.imag)) + if planned == "exact" and exact_ops is None: + # The bound is the op-log's; the bit-exact method gives it. + a2 = runner.run("wai.exact", {"id": e["id"], "kind": "state", "n": n, "steps": e["steps"]}) + exact_ops = a2.get("ops") if a2.get("ok") else None + if planned == "exact" and exact_ops is not None: + bound = tol.fixed_point_bound(n, exact_ops) + 4 * tol.U_DOUBLE + else: + bound = tol.double_state(tol.gate_count(e["steps"]), n, width=3) + rep.add(e["id"], "wai.auto", "chosen amplitudes through the job path, worst error" + (", modulo a global phase" if turn != 1 else ""), worst, bound, worst <= bound, note="planned %s" % planned) + + +# ------------------------------------------------------------------ stabilizers + + +def check_stabilizer_entry(e, runner, rep): + n = e["n"] + tb = exact.Tableau(n) + for s in e["steps"]: + if "g" in s: + tb.gate(s["g"], s["q"]) + rows, rank, x_rank = exact.reduced_group(tb.stabilizers(), n) + texts = [exact.pauli_text(r, n) for r in rows] + digest = hashlib.sha256("\n".join(texts).encode()).hexdigest() + rep.add(e["id"], "exact", "the integer tableau's group has full rank", rank, n, rank == n) + jobs = {"stim.tableau": {"id": e["id"], "kind": "stabilizers", "n": n, "steps": e["steps"]}, "wai.stabilizer": {"id": e["id"], "kind": "stabilizers", "n": n, "steps": e["steps"], "paulis": [t[1:] for t in texts]}} + if n <= 1000: + jobs["aer.stabilizer"] = {"id": e["id"], "kind": "stabilizers", "n": n, "steps": e["steps"]} + answers = run_all(runner, jobs) + for eng, ans in answers.items(): + if not ans.get("ok"): + no_answer(rep, e["id"], eng, ans, "stabilizer group", fail_on_error=True) + continue + if not answered(rep, e["id"], eng): + continue + if eng == "wai.stabilizer": + want = [-1 if t[0] == "-" else 1 for t in texts] + wrong = sum(1 for a, b in zip(ans["values"], want) if a != b) + c = rep.add(e["id"], eng, "generators of the reference group whose expectation is not their sign", wrong, 0, wrong == 0 and len(ans["values"]) == n) + c["seconds"] = ans.get("seconds") + rep.add(e["id"], eng, "outcome dimension against the rank of the group's X part", ans["outcome_dimension"], x_rank, ans["outcome_dimension"] == x_rank) + continue + theirs = [exact.row_from_text(s) for s in ans["stabilizers"]] + r2, rank2, _ = exact.reduced_group(theirs, n) + d2 = hashlib.sha256("\n".join(exact.pauli_text(r, n) for r in r2).encode()).hexdigest() + c = rep.add(e["id"], eng, "reduced stabilizer group equals the reference's", d2 == digest, True, d2 == digest and rank2 == n) + c["seconds"] = ans.get("seconds") + + +def fixed_bits(z_masks, n): + """The bits whose value the affine space fixes: bit i is fixed when e_i lies in the span of + the Z rows' masks (GF(2) elimination).""" + basis = {} + for m in z_masks: + while m: + top = m.bit_length() - 1 + if top not in basis: + basis[top] = m + break + m ^= basis[top] + out = set() + for i in range(n): + v = 1 << i + while v: + top = v.bit_length() - 1 + if top not in basis: + break + v ^= basis[top] + if v == 0: + out.add(i) + return out + + +def check_stabilizer_counts(e, runner, rep, alpha): + """Outcomes of a Clifford circuit measured in Z: uniform on an affine space of dimension x_rank. + Every shot must lie in it; no outcome may come up more often than its probability 2^-x_rank + allows (by Bernstein, over all 2^x_rank of them); and each bit the space leaves free must read + 1 half the time. A sampler confined to a smaller space that leaves every bit free is not seen at + this width; the README says so.""" + n = e["n"] + tb = exact.Tableau(n) + gates = [s for s in e["steps"] if "g" in s] + for s in gates: + tb.gate(s["g"], s["q"]) + rows, _, x_rank = exact.reduced_group(tb.stabilizers(), n) + z_rows = [r for r in rows if r[0] == 0] + free = [i for i in range(n) if i not in fixed_bits([r[1] for r in z_rows], n)] + shots = e["shots"] + p = 2.0**-x_rank + jobs = {eng: {"id": e["id"], "kind": "counts", "n": n, "bits": e["bits"], "steps": e["steps"], "shots": shots, "seed": 7} for eng in ("wai.stabilizer", "stim.tableau", "aer.stabilizer")} + for eng, ans in run_all(runner, jobs).items(): + if not ans.get("ok"): + no_answer(rep, e["id"], eng, ans, "outcomes inside the stabilizer's affine space") + continue + if not answered(rep, e["id"], eng): + continue + counts = ans["counts"] + got = sum(counts.values()) + rep.add(e["id"], eng, "shots returned", got, shots, got == shots) + outside = 0 + for k, v in counts.items(): + x = int(k, 2) + for zr in z_rows: + if ((zr[1] & x).bit_count() + zr[2]) % 2: + outside += v + break + rep.add(e["id"], eng, "shots outside the affine space the stabilizers fix (dimension %d)" % x_rank, outside, 0, outside == 0) + a = alpha / 3 / 2 + t = tol.bernstein(shots, p, a / 2.0**x_rank) + most = max(counts.values(), default=0) + rep.add(e["id"], eng, "the most frequent outcome's count above shots·2^-%d, in units of its Bernstein bound over all 2^%d outcomes" % (x_rank, x_rank), (most - shots * p) / t, 1.0, most - shots * p <= t) + worst = 0.0 + bad = [] + for i in free: + ones = sum(v for k, v in counts.items() if int(k, 2) >> i & 1) + tb_ = tol.bernstein(shots, 0.5, a / max(len(free), 1)) + worst = max(worst, abs(ones - shots / 2) / tb_) + if abs(ones - shots / 2) > tb_: + bad.append("bit %d: %d ones of %d" % (i, ones, shots)) + rep.add(e["id"], eng, "each of the %d bits the space leaves free against 1/2, largest deviation in units of its Bernstein bound" % len(free), worst, 1.0, not bad, note="; ".join(bad[:4]) if bad else None) + rep.add(e["id"], eng, "distinct outcomes, of %d shots over 2^%d" % (shots, x_rank), len(counts), None, True, status="info") + + +# ------------------------------------------------------------------ sampled distributions + + +def check_counts_entry(e, runner, rep, plan): + dist = exact.distribution(e["n"], e["bits"], e["steps"]) + engines = list(COUNT_ENGINES) + if is_clifford(e): + engines += ["wai.stabilizer", "stim.tableau"] + jobs = {eng: {"id": e["id"], "kind": "counts", "n": e["n"], "bits": e["bits"], "steps": e["steps"], "shots": e["shots"], "seed": 11} for eng in engines} + for eng, ans in run_all(runner, jobs).items(): + if not ans.get("ok"): + no_answer(rep, e["id"], eng, ans, "counts", fail_on_error=True) + continue + if not answered(rep, e["id"], eng): + continue + plan.append((e, eng, ans, dist)) + + +def judge_counts(plan, rep, alpha): + """Every outcome's count against its exact probability, by Bernstein's inequality, and the + whole distribution at once against the exact one, in L1 distance (tolerance.py); each test + at a share of `alpha`, so that a correct engine fails them with probability at most alpha.""" + tests = sum(len(set(d) | set(a["counts"])) + 1 for _, _, a, d in plan) + a = alpha / max(tests, 1) + for e, eng, ans, dist in plan: + shots = sum(ans["counts"].values()) + if shots != e["shots"]: + rep.add(e["id"], eng, "shots returned", shots, e["shots"], False) + continue + worst = 0.0 + bad = [] + for k in sorted(set(dist) | set(ans["counts"])): + p = float(dist.get(k, 0)) + x = ans["counts"].get(k, 0) + if p == 0: + if x: + bad.append("%s: %d shots, probability 0" % (k, x)) + continue + t = tol.bernstein(shots, p, a) + dev = abs(x - shots * p) + worst = max(worst, dev / t) + if dev > t: + bad.append("%s: %d shots, expected %.1f ± %.1f" % (k, x, shots * p, t)) + c = rep.add(e["id"], eng, "largest deviation of an outcome's count, in units of its Bernstein bound", worst, 1.0, not bad, note="; ".join(bad[:4]) if bad else None) + if ans.get("planned"): + c["planned"] = ans["planned"] + support = sum(1 for v in dist.values() if v > 0) + l1 = math.fsum(abs(ans["counts"].get(k, 0) / shots - float(dist.get(k, 0))) for k in set(dist) | set(ans["counts"])) + eps = tol.l1_distance(shots, support + 1, a) + rep.add(e["id"], eng, "L1 distance from the exact distribution, Σ|count/shots − p| over every outcome (twice the total variation), against its bound", l1, eps, l1 <= eps) + + +# ------------------------------------------------------------------ wider circuits + + +def check_mirror_entry(e, runner, rep): + import numpy as np + + n = e["n"] + engines = ["wai.exact", "wai.statevector", "aer.statevector", "quimb.dense", "ddsim.statevector", "qsim.statevector"] + jobs = {eng: {"id": e["id"], "kind": "state", "n": n, "steps": e["steps"]} for eng in engines} + for eng, ans in run_all(runner, jobs).items(): + if not ans.get("ok"): + no_answer(rep, e["id"], eng, ans, "distance from |0…0>") + continue + if not answered(rep, e["id"], eng): + continue + if eng == "wai.exact": + fixed = np.load(ans["settings"]["fixed"]) + v = fixed[:, 0].astype(np.float64) / (1 << 30) + 1j * fixed[:, 1].astype(np.float64) / (1 << 30) + else: + v = load_state(ans["job"]["state_out"]) + target = np.zeros_like(v) + target[0] = 1 + d, dm = float_distance(v, target) + bound, why = state_tolerance(eng, ans, e) + c = rep.add(e["id"], eng, "distance from |0…0>, modulo a global phase", dm, bound, dm <= bound, note=why) + c["strict"] = d + c["seconds"] = ans.get("seconds") + if eng == "wai.exact": + exact_answer(rep, e, n, ans, target) + + +def check_pairwise_entry(e, runner, rep): + import numpy as np + + n = e["n"] + engines = ["wai.statevector", "aer.statevector", "quimb.dense", "ddsim.statevector", "qsim.statevector"] + if corpus.reader_class(e)[0] == "exact": + engines.insert(0, "wai.exact") + jobs = {eng: {"id": e["id"], "kind": "state", "n": n, "steps": e["steps"]} for eng in engines} + got = {} + for eng, ans in run_all(runner, jobs).items(): + if not ans.get("ok"): + no_answer(rep, e["id"], eng, ans, "state, against the other engines") + continue + if not answered(rep, e["id"], eng): + continue + if eng == "wai.exact": + fixed = np.load(ans["settings"]["fixed"]) + v = fixed[:, 0].astype(np.float64) / (1 << 30) + 1j * fixed[:, 1].astype(np.float64) / (1 << 30) + else: + v = load_state(ans["job"]["state_out"]) + got[eng] = (v, state_tolerance(eng, ans, e)[0], ans) + names = sorted(got) + for i, a in enumerate(names): + for b in names[i + 1:]: + _, dm = float_distance(got[a][0], got[b][0]) + bound = got[a][1] + got[b][1] + rep.add(e["id"], "%s ~ %s" % (a, b), "distance between the two states, modulo a global phase", dm, bound, dm <= bound) + if "qft_x" in e: + r = corpus.Stream("pick/" + e["id"]) + ys = [r.below(1 << n) for _ in range(64)] + for eng in names: + v = got[eng][0] + worst = max(exact.amplitude_error(exact.qft_amplitude(n, e["qft_x"], y), float(v[y].real), float(v[y].imag)) for y in ys) + rep.add(e["id"], eng, "64 amplitudes against the closed form, worst error, modulo nothing", worst, got[eng][1], worst <= got[eng][1]) + + +def wide_amplitudes(e): + n = e["n"] + r = corpus.Stream("wide/" + e["id"]) + if e.get("wide_kind") == "ghz": + bits = ["0" * n, "1" * n, "".join(str(r.below(2)) for _ in range(n))] + ref = {bits[0]: (exact.rsqrt2(), 0), bits[1]: (exact.rsqrt2(), 0), bits[2]: (0, 0)} + return bits, ref + if e.get("wide_kind") == "qft": + ys = [r.below(1 << n) for _ in range(6)] + bits = [format(y, "0%db" % n) for y in ys] + return bits, {b: exact.qft_amplitude(n, e["qft_x"], int(b, 2)) for b in bits} + if e["expect"] == "wide_mirror": + b = "0" * n + return [b], {b: (exact.ONE, 0)} + bits = ["".join(str(r.below(2)) for _ in range(n)) for _ in range(8)] + return bits, None + + +def mps_bound(eng, ans, e): + """tolerance.mps for each engine's matrix product state, charged what that engine reports it + truncated: the engine under test its summed discarded weight over its truncations, the + simulator with a log its every truncation's weight and its two-site updates, and the library + with an absolute cutoff the most that cutoff drops at each update (engines.py).""" + steps = tol.svd_steps(e["steps"]) + acc = ans.get("accuracy") or {} + if eng == "wai.mps": + chi = acc.get("max_bond_used") or acc.get("max_bond") or 64 + trunc = tol.truncation_from(total=acc.get("discarded_weight", 0.0), count=acc.get("truncations", 0)) + why = "%d two-site updates at bond %d; truncation from its reported discarded weight" % (steps, chi) + elif eng == "aer.mps": + log = ans["settings"]["mps_log"] + steps, chi = log["updates"], log["max_bond"] + trunc = tol.truncation_from(weights=log["discarded"]) + why = "%d two-site updates at bond %d, and %d truncations, from its log" % (steps, chi, len(log["discarded"])) + else: + s = ans["settings"] + chi = s.get("max_bond_used") or 1 + trunc = 2 * steps * math.sqrt(s["cutoff"]) + why = "%d two-site updates at bond %d; its cutoff drops at most %g of weight at each" % (steps, chi, s["cutoff"]) + return tol.mps(steps, chi, trunc), why + + +def check_wide_entry(e, runner, rep): + n = e["n"] + bits, ref = wide_amplitudes(e) + engines = ["wai.mps", "wai.tensor_network", "aer.mps", "quimb.mps", "quimb.tensor_network"] + if n <= 26: + engines += ["wai.statevector", "aer.statevector"] + jobs = {eng: {"id": e["id"], "kind": "amplitudes", "n": n, "steps": e["steps"], "bitstrings": bits, "memory_gb": 24} for eng in engines} + got = {} + gates = tol.gate_count(e["steps"]) + smallest = min((math.hypot(*ref[b]) / exact.ONE for b in bits if ref and any(ref[b])), default=None) if ref else None + for eng, ans in run_all(runner, jobs).items(): + if not ans.get("ok"): + no_answer(rep, e["id"], eng, ans, "amplitudes") + continue + if not answered(rep, e["id"], eng): + continue + if eng in ("wai.mps", "aer.mps", "quimb.mps"): + bound, why = mps_bound(eng, ans, e) + elif eng in ("wai.tensor_network", "quimb.tensor_network"): + if "contraction_flops" in ans: + w = math.log2(max(ans["contraction_flops"], 2.0)) + else: + w = float(ans.get("settings", {}).get("contraction_width") or n) + bound = tol.contraction(gates + n, min(w, 40.0)) + why = "contraction of width %.1f" % w + else: + bound = tol.double_state(gates, n, width=5) + why = "double precision state vector" + got[eng] = (ans["amplitudes"], bound, ans) + if ref is not None: + worst = max(exact.amplitude_error(ref[b], *ans["amplitudes"][b]) for b in bits) + # A bound as large as half the smallest amplitude checked cannot see a wrong phase on it. + if smallest is not None and bound >= smallest / 2: + c = rep.add(e["id"], eng, "amplitudes against the closed form, worst error", worst, bound, True, status="info", note=why + "; this bound is not below half the amplitudes it checks (%.3g), so it cannot tell a wrong phase" % smallest) + else: + c = rep.add(e["id"], eng, "amplitudes against the closed form, worst error", worst, bound, worst <= bound, note=why) + c["seconds"] = ans.get("seconds") + if ans.get("accuracy"): + c["accuracy"] = ans["accuracy"] + if ref is None: + names = sorted(got) + for i, a in enumerate(names): + for b in names[i + 1:]: + worst = max(abs(complex(*got[a][0][x]) - complex(*got[b][0][x])) for x in bits) + bound = got[a][1] + got[b][1] + rep.add(e["id"], "%s ~ %s" % (a, b), "chosen amplitudes, worst difference", worst, bound, worst <= bound) + + +def check_expectation_entry(e, runner, rep): + kind, p, k = e["closed"] + p = Fraction(p) + if kind == "depol1": + ref = (-1) ** k * (1 - 4 * p / 3) ** k + else: + ref = (1 - 16 * p / 15) ** k + jobs = {eng: {"id": e["id"], "kind": "expectation", "n": e["n"], "steps": e["steps"], "noise": e["noise"], "observable": e["observable"]} for eng in ("wai.density_matrix", "aer.density_matrix")} + for eng, ans in run_all(runner, jobs).items(): + if not ans.get("ok"): + no_answer(rep, e["id"], eng, ans, "expectation under noise") + continue + if not answered(rep, e["id"], eng): + continue + d = abs(Fraction(ans["value"]) - ref) + bound = tol.density(k, e["n"]) + rep.add(e["id"], eng, "<%s> against the closed form" % e["observable"], float(d), bound, float(d) <= bound) + + +# ------------------------------------------------------------------ error correction + + +def qec_text(q, runner, rep): + """The committed circuit, which the pinned generator must still write byte for byte.""" + text = open(os.path.join(ROOT, "corpus", "qec", q["id"] + ".circuit")).read() + ans = runner.run("stim.generate", dict(q, kind="generate")) + same = ans.get("ok") and ans.get("text") == text + rep.add(q["id"], "stim.generate", "the pinned generator writes the committed circuit, byte for byte", bool(same), True, bool(same), note=None if same else (ans.get("error") or "the text differs")) + return text + + +def merged(mechs): + out = {} + for p, ds, ls in mechs: + key = (tuple(ds), tuple(ls)) + q = out.get(key, 0.0) + out[key] = q + p - 2 * q * p + return out + + +def check_qec_entry(q, text, runner, rep, qec_plan): + jobs = {eng: {"id": q["id"], "kind": "qec_model", "text": text} for eng in ("wai.qec", "stim.tableau")} + models = run_all(runner, jobs) + a, b = models["wai.qec"], models["stim.tableau"] + if not a.get("ok"): + no_answer(rep, q["id"], "wai.qec", a, "detector error model") + if not b.get("ok"): + rep.not_run(q["id"], "stim.tableau", "detector error model", str(words(b))[:300]) + return + if not answered(rep, q["id"], "wai.qec"): + return + if not b.get("ok"): + rep.add(q["id"], "stim.tableau", "detector error model", None, None, False, note="refused here, run by the engine under test: %s" % str(words(b))[:300]) + return + rep.add(q["id"], "wai.qec ~ stim.tableau", "detectors and observables", [a["detectors"], a["observables"]], [b["detectors"], b["observables"]], [a["detectors"], a["observables"]] == [b["detectors"], b["observables"]]) + ma, mb = merged(a["mechanisms"]), merged(b["mechanisms"]) + only_a = sorted(set(ma) - set(mb)) + only_b = sorted(set(mb) - set(ma)) + sites = text_noise_sites(text) + bound = tol.dem(sites) + worst = max([abs(ma[k] - mb[k]) for k in set(ma) & set(mb)] or [0.0]) + ok = not only_a and not only_b and worst <= bound + note = None + if only_a or only_b: + note = "symptom sets only in the engine under test: %d, only in the other: %d (first: %s / %s)" % (len(only_a), len(only_b), only_a[:1], only_b[:1]) + c = rep.add(q["id"], "wai.qec ~ stim.tableau", "mechanisms: same symptom sets, probabilities within the bound (largest difference)", worst, bound, ok, note=note) + c["mechanisms"] = [len(ma), len(mb)] + c["seconds"] = [a.get("seconds"), b.get("seconds")] + shots = 200000 if q["tier"] == "ci" else 1000000 + sj = {eng: {"id": q["id"], "kind": "qec_sample", "text": text, "shots": shots, "seed": 5} for eng in ("wai.qec", "stim.tableau")} + samples = run_all(runner, sj) + qec_plan.append((q, ma, a["detectors"], a["observables"], samples, shots)) + + +def text_noise_sites(text): + """How many noise channels a circuit applies, its blocks unrolled: an upper bound on how many + channels one mechanism can merge.""" + import re + + total = 0 + stack = [1] + for line in text.splitlines(): + s = line.strip() + if s.startswith("REPEAT"): + stack.append(stack[-1] * int(s.split()[1])) + continue + if s == "}": + stack.pop() + continue + m = re.match(r"([A-Z_0-9]+)(\[[^\]]*\])?\(([^)]*)\)\s*(.*)", s) + if m and (m.group(1).endswith("ERROR") or m.group(1).startswith("DEPOLARIZE") or m.group(1) in ("M", "MX", "MR", "MRX", "MY")): + total += stack[-1] * max(len(m.group(4).split()), 1) + return total + + +def judge_qec(qec_plan, rep, alpha): + """Each detector's and observable's firing count against the rate the model gives, + by Bernstein's inequality at a share of `alpha`.""" + tests = sum(d + o for _, _, d, o, _, _ in qec_plan) * 2 + a = alpha / max(tests, 1) + for q, model, nd, no, samples, shots in qec_plan: + # The rate at which a detector fires: an odd number of its mechanisms, each independent. + prod_d = [1.0] * nd + prod_o = [1.0] * no + for (ds, ls), p in model.items(): + for d in ds: + prod_d[d] *= 1 - 2 * p + for o in ls: + prod_o[o] *= 1 - 2 * p + rates = [(1 - x) / 2 for x in prod_d] + [(1 - x) / 2 for x in prod_o] + for eng, ans in samples.items(): + if not ans.get("ok"): + no_answer(rep, q["id"], eng, ans, "detection rates") + continue + shape = [len(ans.get("detectors") or []), len(ans.get("observables") or []), ans.get("shots")] + if shape != [nd, no, shots]: + rep.add(q["id"], eng, "detectors, observables and shots returned", shape, [nd, no, shots], False) + continue + counts = ans["detectors"] + ans["observables"] + worst = 0.0 + bad = [] + for i, (x, r) in enumerate(zip(counts, rates)): + if r == 0: + if x: + bad.append("%d fired %d times at rate 0" % (i, x)) + continue + t = tol.bernstein(shots, r, a) + dev = abs(x - shots * r) + worst = max(worst, dev / t) + if dev > t: + bad.append("%s %d: %d, expected %.1f ± %.1f" % ("D" if i < nd else "L", i if i < nd else i - nd, x, shots * r, t)) + c = rep.add(q["id"], eng, "detection and flip rates against the model, largest deviation in units of its Bernstein bound", worst, 1.0, not bad, note="; ".join(bad[:3]) if bad else None) + c["seconds"] = ans.get("seconds") + + +# ------------------------------------------------------------------ the run + + +def run_all(runner, jobs): + with ThreadPoolExecutor(max_workers=runner.jobs) as ex: + futs = {eng: ex.submit(runner.run, eng, job) for eng, job in jobs.items()} + return {eng: f.result() for eng, f in futs.items()} + + +def host(): + info = {"system": platform.system(), "machine": platform.machine(), "release": platform.release()} + try: + if platform.system() == "Darwin": + info["cpu"] = subprocess.run(["sysctl", "-n", "machdep.cpu.brand_string"], capture_output=True, text=True).stdout.strip() + info["memory_bytes"] = int(subprocess.run(["sysctl", "-n", "hw.memsize"], capture_output=True, text=True).stdout) + info["os"] = "macOS " + platform.mac_ver()[0] + else: + for line in open("/proc/cpuinfo"): + if line.startswith("model name"): + info["cpu"] = line.split(":", 1)[1].strip() + break + for line in open("/proc/meminfo"): + if line.startswith("MemTotal"): + info["memory_bytes"] = int(line.split()[1]) * 1024 + try: + for line in open("/etc/os-release"): + if line.startswith("PRETTY_NAME="): + info["os"] = line.split("=", 1)[1].strip().strip('"') + except OSError: + pass + info["logical_cpus"] = os.cpu_count() + info["load_average"] = list(os.getloadavg()) + except Exception: # noqa: BLE001 + pass + return info + + +def run_reproducer(path): + """A committed reproducer of another engine's disagreement: it prints one JSON object per + line, each a claim, what it saw, and whether the claim holds.""" + out = subprocess.run([sys.executable, "-I", os.path.join(ROOT, path)], capture_output=True, text=True, timeout=600) + claims = [] + for line in out.stdout.splitlines(): + line = line.strip() + if line.startswith("{"): + claims.append(json.loads(line)) + if out.returncode != 0 and not claims: + claims.append({"claim": "the reproducer runs", "observed": out.stderr[-500:], "holds": False}) + return claims + + +def apply_known(rep, entries_run): + """A disagreement of another engine with the exact reference, found and examined before, is + listed in corpus/known-disagreements.json with what was found and a reproducer committed beside + it. A failing check that matches one is reported as `known` rather than as a failure of this + run, and the reproducer's claims are rerun and recorded; one listed that no longer shows is + reported too. Only other engines may be listed: a failure of the engine under test is always a + failure.""" + known = json.load(open(os.path.join(ROOT, "corpus", "known-disagreements.json")))["disagreements"] + seen = set() + for i, k in enumerate(known): + if k["engine"].startswith("wai."): + rep.add(k["entry"], k["engine"], "a known disagreement listed for the engine under test", True, False, False, note="only other engines may be listed") + seen.add(i) + if not os.path.exists(os.path.join(ROOT, k.get("reproducer", ""))) or not k.get("reproducer"): + rep.add(k["entry"], k["engine"], "a known disagreement has a reproducer committed beside it", k.get("reproducer"), True, False) + seen.add(i) + for c in rep.checks: + if c["status"] != "fail": + continue + for i, k in enumerate(known): + quantities = k["quantity"] if isinstance(k["quantity"], list) else [k["quantity"]] + if i not in seen and c["entry"] == k["entry"] and c["engine"] == k["engine"] and any(x in c["quantity"] for x in quantities): + c["status"] = "known" + c["note"] = ((c.get("note") or "") + " | known: " + k["finding"]).strip(" |") + c["right"] = k["right"] + k["_matched"] = True + done = set() + for k in known: + if k["entry"] not in entries_run or k["engine"].startswith("wai."): + continue + if not k.get("_matched"): + rep.add(k["entry"], k["engine"], "a listed disagreement no longer shows", False, True, True, status="info", note=k["finding"]) + if k.get("reproducer") and k["reproducer"] not in done and os.path.exists(os.path.join(ROOT, k["reproducer"])): + done.add(k["reproducer"]) + for cl in run_reproducer(k["reproducer"]): + rep.add(k["entry"], k["engine"], "reproducer (%s): %s" % (k["reproducer"], cl["claim"]), cl["observed"], cl.get("expected"), True, status="known" if cl["holds"] else "info", note=None if cl["holds"] else "the claim no longer holds") + + +def check_expected(rep, entries_run): + """The expected-refusals file is what corpus.py's rule and list give, and a listed refusal that + no longer comes is reported (a `may` that the engine now answers).""" + want = corpus.expected_refusals() + rep.add("corpus", "corpus.py", "corpus/expected-refusals.json is the reader's rule and corpus.py's list", EXPECTED.rows == want, True, EXPECTED.rows == want) + for entry, eng in sorted(EXPECTED.answered): + x = EXPECTED.get(entry, eng) + if x["must"] == "may" and entry in entries_run: + rep.add(entry, eng, "a listed refusal no longer comes: the engine answered", True, False, True, status="info", note=x["reason"]) + + +def phase_table_check(rep): + """quantum-sim.md section 3.2's table: P(k) for k = 1..32, cos and sin of 2π/2^k rounded to the + nearest 2^-30. The integer reference must give the referee's table, entry for entry.""" + table = referee().derive_v2()[0] + half = 1 << (exact.PREC - 31) + wrong = [] + for k in range(1, 33): + c, s = exact.cos_sin("t:1/%d" % k) + mine = ((c + half) >> (exact.PREC - 30), (s + half) >> (exact.PREC - 30)) + if mine != tuple(table[k]): + wrong.append(k) + rep.add("corpus", "exact", "the extension's phase table P(1..32): the integer reference's cos and sin, rounded to the nearest 2^-30, against the referee's", wrong, [], not wrong) + + +def manifest_check(es, rep): + """The generator still gives the bytes the manifest pins.""" + m = json.load(open(os.path.join(ROOT, "corpus", "manifest.json"))) + pinned = {r["id"]: r.get("sha256") for r in m["circuits"]} + drift = [e["id"] for e in es if pinned.get(e["id"]) != hashlib.sha256(e["qasm"].encode()).hexdigest()] + for q in corpus.qec_entries(): + text = open(os.path.join(ROOT, "corpus", "qec", q["id"] + ".circuit")).read() + if pinned.get(q["id"]) != hashlib.sha256(text.encode()).hexdigest(): + drift.append(q["id"]) + rep.add("corpus", "corpus.py", "circuits whose text differs from the manifest", drift, [], not drift) + for e in es: + p = os.path.join(ROOT, "corpus", "qasm", e["id"] + ".qasm") + if os.path.exists(p) and open(p).read() != e["qasm"]: + rep.add(e["id"], "corpus.py", "the committed program equals the generator's", False, True, False) + + +CI_HAND = ("qec_inverted_and_tagged", "qec_refused_correlated", "qec_refused_random_detector") + + +def main(): + global EXPECTED + ap = argparse.ArgumentParser() + ap.add_argument("--tier", default="ci", choices=["ci", "full"]) + ap.add_argument("--out") + ap.add_argument("--jobs", type=int, default=2) + ap.add_argument("--timeout", type=float, default=900) + ap.add_argument("--inject", choices=sorted(FAULTS)) + ap.add_argument("--only") + ap.add_argument("--keep", action="store_true") + a = ap.parse_args() + if not os.environ.get("WAI_CROSS_SIMULATOR"): + print("compare.py: WAI_CROSS_SIMULATOR must name the engine's driver (reproduce.sh builds it)", file=sys.stderr) + sys.exit(2) + work = tempfile.mkdtemp(prefix="qcorpus-") + runner = Runner(work, sys.executable, a.timeout, a.inject) + runner.jobs = a.jobs + rep = Report() + EXPECTED = Expected() + started = time.time() + es = corpus.build() + manifest_check(es, rep) + phase_table_check(rep) + if a.tier == "ci": + es = [e for e in es if e["tier"] == "ci"] + only = set(a.only.split(",")) if a.only else None + if only: + es = [e for e in es if e["id"] in only] + count_plan = [] + stab_counts = sum(1 for e in es if e["expect"] == "stabilizer_counts") + for e in es: + print("·", e["id"], file=sys.stderr, flush=True) + x = e["expect"] + if x in ("exact_state", "known_state"): + check_state_entry(e, runner, rep, e.get("engines") or STATE_ENGINES) + elif x == "distribution": + check_counts_entry(e, runner, rep, count_plan) + elif x == "stabilizer": + check_stabilizer_entry(e, runner, rep) + elif x == "stabilizer_counts": + check_stabilizer_counts(e, runner, rep, FAMILY_WISE_ALPHA / 3 / max(stab_counts, 1)) + elif x == "mirror": + check_mirror_entry(e, runner, rep) + elif x == "pairwise": + check_pairwise_entry(e, runner, rep) + elif x in ("amplitudes", "wide_pairwise", "wide_mirror"): + check_wide_entry(e, runner, rep) + elif x == "expectation": + check_expectation_entry(e, runner, rep) + judge_counts(count_plan, rep, FAMILY_WISE_ALPHA / 3) + qplan = [] + qs = [q for q in corpus.qec_entries() if a.tier == "full" or q["tier"] == "ci"] + hand = json.load(open(os.path.join(ROOT, "corpus", "qec-hand-written.json"))) + if only: + qs = [q for q in qs if q["id"] in only] + hand = {k: v for k, v in hand.items() if k in only} + for q in qs: + print("·", q["id"], file=sys.stderr, flush=True) + text = qec_text(q, runner, rep) + check_qec_entry(q, text, runner, rep, qplan) + if q["code"] == "surface_code:rotated_memory_z" and os.environ.get("WAI_QUANTUM"): + mine = subprocess.run([os.environ["WAI_QUANTUM"], "lab", "qec", "--circuit", "-d", str(q["distance"]), "--rounds", str(q["rounds"]), "--p", repr(q["p"])], capture_output=True, text=True).stdout + rep.add(q["id"], "wai.qec", "the engine's own generator writes the same text, byte for byte", mine == text, True, mine == text) + for k, v in hand.items(): + if a.tier == "ci" and k not in CI_HAND: + continue + print("·", k, file=sys.stderr, flush=True) + check_qec_entry({"id": k, "tier": a.tier}, v["text"], runner, rep, qplan) + judge_qec(qplan, rep, FAMILY_WISE_ALPHA / 3) + entries_run = {e["id"] for e in es} | {q["id"] for q in qs} | {k for k in hand if a.tier == "full" or k in CI_HAND} + apply_known(rep, entries_run) + check_expected(rep, entries_run) + vers = json.loads(subprocess.run([sys.executable, "-I", os.path.join(HERE, "engines.py"), "--versions"], capture_output=True, text=True).stdout) + statuses = {} + for c in rep.checks: + statuses[c["status"]] = statuses.get(c["status"], 0) + 1 + out = { + "about": "One run of the cross-simulator corpus: every check, its measured value and its tolerance. tools/compare.py writes it.", + "tier": a.tier, + "inject": a.inject, + "host": host(), + "versions": vers, + "engine_under_test": {"driver": os.path.basename(os.environ["WAI_CROSS_SIMULATOR"]), "build": os.environ.get("WAI_BUILD_INFO", "")}, + "seconds": round(time.time() - started, 1), + "summary": statuses, + "checks": rep.checks, + } + if a.out: + with open(a.out, "w") as f: + json.dump(out, f, indent=1, sort_keys=False, default=str) + f.write("\n") + fails = [c for c in rep.checks if c["status"] == "fail"] + for c in rep.checks: + if c["status"] in ("fail", "refused", "not run", "known"): + print("%-8s %-34s %-34s %s | measured %s, tolerance %s%s" % (c["status"].upper(), c["entry"][:34], c["engine"][:34], c["quantity"][:110], fmt(c["measured"]), fmt(c["tolerance"]), (" — " + c["note"][:240]) if c.get("note") else "")) + print("summary: %s; %.0f s" % (", ".join("%s %d" % kv for kv in sorted(statuses.items())), time.time() - started)) + print("FAIL" if fails else "PASS") + if not a.keep: + shutil.rmtree(work, ignore_errors=True) + sys.exit(1 if fails else 0) + + +def fmt(x): + if isinstance(x, float): + return "%.3g" % x + return str(x)[:80] + + +if __name__ == "__main__": + main() diff --git a/wai/quantum-cross-simulator/tools/corpus.py b/wai/quantum-cross-simulator/tools/corpus.py new file mode 100644 index 000000000..863366d98 --- /dev/null +++ b/wai/quantum-cross-simulator/tools/corpus.py @@ -0,0 +1,623 @@ +#!/usr/bin/env python3 +"""The corpus: every circuit, its parameters, why it is here and what it must give. + +Standard library only. Every circuit comes out of this file the same on every machine: random +circuits draw from SHA-256 in counter mode, not from a library's generator, and angles are +written exactly (see `exact.parse_angle`). `corpus/manifest.json` pins each circuit's digest, so +a change to any circuit shows as a change to the manifest. + +A step is a gate {"g": name, "q": [qubits], "a": [angles]}, or {"measure": q, "bit": c}, +{"reset": q}, or {"if": [c, v], "then": [gates]}. Gate names are those of OpenQASM 3's standard +library, and `exact.prims` says what each means. + +An entry's `expect` says what it is held to: + + exact_state the integer state vector (exact.py) of the circuit + known_state a state stated in closed form, which exact.py also reproduces + distribution the exact distribution of its classical bits (exact.py walks every branch) + stabilizer the stabilizer group, from the integer tableau (exact.py) and every engine + amplitudes chosen amplitudes in closed form, for circuits too wide for any state vector + pairwise no exact reference at this width: the engines against each other + expectation an expectation value under noise, in closed form + qec a noisy Clifford circuit's detector error model and detection rates +""" +import functools +import hashlib +import json +import os +import sys +from fractions import Fraction + +sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) +import exact # noqa: E402 + + +class Stream: + """Integers from SHA-256 in counter mode: the same on every machine and every version.""" + + def __init__(self, label): + self.label = label.encode() + self.counter = 0 + self.pool = b"" + + def _more(self): + self.pool += hashlib.sha256(self.label + b"/" + str(self.counter).encode()).digest() + self.counter += 1 + + def below(self, n): + """Uniform in 0..n-1, by rejection.""" + bits = max(n - 1, 1).bit_length() + size = (bits + 7) // 8 + mask = (1 << bits) - 1 + while True: + while len(self.pool) < size: + self._more() + v = int.from_bytes(self.pool[:size], "big") & mask + self.pool = self.pool[size:] + if v < n: + return v + + def choice(self, xs): + return xs[self.below(len(xs))] + + +def g(name, *qubits, a=None): + s = {"g": name, "q": list(qubits)} + if a: + s["a"] = list(a) + return s + + +def t(m, k): + """m/2^k of a full turn.""" + return "t:%d/%d" % (m, k) + + +# ------------------------------------------------------------------ programs as text + + +def qasm_angle(a): + kind, v = exact.parse_angle(a) + if kind == "r": + return a[2:] + f = v * 2 + n, d = f.numerator, f.denominator + if n == 0: + return "0" + sign = "-" if n < 0 else "" + n = abs(n) + if n == 1 and d == 1: + return sign + "pi" + if d == 1: + return "%spi*%d" % (sign, n) + if n == 1: + return "%spi/%d" % (sign, d) + return "%spi*%d/%d" % (sign, n, d) + + +# The standard library's names, and the modifiers for the rest. +_PLAIN = {"id", "x", "y", "z", "h", "s", "sdg", "t", "tdg", "sx", "p", "rz", "rx", "ry", "cx", "cy", "cz", "ch", "cp", "crx", "cry", "crz", "cu", "swap", "cswap", "ccx"} +_DEFS = { + "rzz": "gate rzz(theta) a, b { cx a, b; rz(theta) b; cx a, b; }", + "rxx": "gate rxx(theta) a, b { h a; h b; cx a, b; rz(theta) b; cx a, b; h a; h b; }", + "ryy": "gate ryy(theta) a, b { rx(pi/2) a; rx(pi/2) b; cx a, b; rz(theta) b; cx a, b; rx(-pi/2) a; rx(-pi/2) b; }", +} + + +def _gate_text(s): + name, qs, args = s["g"], s["q"], s.get("a", []) + params = "(" + ", ".join(qasm_angle(x) for x in args) + ")" if args else "" + q = ", ".join("q[%d]" % x for x in qs) + if name in _PLAIN or name in _DEFS: + return "%s%s %s;" % (name, params, q) + if name == "u": + return "U%s %s;" % (params, q) + if name == "sxdg": + return "inv @ sx %s;" % q + if name == "gphase": + if qs: + return "ctrl(%d) @ gphase%s %s;" % (len(qs), params, q) + return "gphase%s;" % params + if name == "negcx": + return "negctrl @ x %s;" % q + form = exact.controlled_form(name) + if form: + base, k = form + return "ctrl(%d) @ %s%s %s;" % (k, base, params, q) + raise ValueError("no text for gate %s" % name) + + +def qasm_of(entry): + """The entry's program as OpenQASM 3: the text the engine reads and the text published.""" + out = ["OPENQASM 3.0;", 'include "stdgates.inc";'] + names = set() + for s in entry["steps"]: + for x in s.get("then", [s]): + if "g" in x: + names.add(x["g"]) + for name in sorted(names): + if name in _DEFS: + out.append(_DEFS[name]) + out.append("qubit[%d] q;" % entry["n"]) + if entry.get("bits"): + out.append("bit[%d] c;" % entry["bits"]) + for s in entry["steps"]: + if "g" in s: + out.append(_gate_text(s)) + elif "measure" in s: + out.append("c[%d] = measure q[%d];" % (s["bit"], s["measure"])) + elif "reset" in s: + out.append("reset q[%d];" % s["reset"]) + elif "if" in s: + body = " ".join(_gate_text(x) for x in s["then"]) + out.append("if (c[%d] == %d) { %s }" % (s["if"][0], s["if"][1], body)) + return "\n".join(out) + "\n" + + +# ------------------------------------------------------------------ circuit builders + + +def qft_steps(n): + """The QFT with qubit 0 the lowest bit of the index: |x> to 2^(-n/2) Σ e^{2πi xy/2^n} |y>.""" + steps = [] + for j in range(n - 1, -1, -1): + steps.append(g("h", j)) + for k in range(j - 1, -1, -1): + steps.append(g("cp", k, j, a=[t(1, j - k + 1)])) + for i in range(n // 2): + steps.append(g("swap", i, n - 1 - i)) + return steps + + +def inverse_steps(steps): + out = [] + dag = {"h": "h", "x": "x", "y": "y", "z": "z", "s": "sdg", "sdg": "s", "t": "tdg", "tdg": "t", "cx": "cx", "cy": "cy", "cz": "cz", "swap": "swap", "sx": "sxdg", "sxdg": "sx", "ccx": "ccx"} + for s in reversed(steps): + name = s["g"] + if name in dag: + out.append({"g": dag[name], "q": s["q"]}) + elif name in ("p", "rz", "rx", "ry", "cp", "crz", "crx", "cry", "rzz", "rxx", "ryy"): + out.append({"g": name, "q": s["q"], "a": [exact._neg(s["a"][0])]}) + else: + raise ValueError("no inverse for %s" % name) + return out + + +def basis_prep(n, x): + return [g("x", q) for q in range(n) if (x >> q) & 1] + + +def grover_steps(n, marked, iterations): + steps = [g("h", q) for q in range(n)] + all_q = list(range(n)) + cz = "c%dz" % (n - 1) if n > 3 else {2: "cz", 3: "ccz"}.get(n, "z") + for _ in range(iterations): + flip = [g("x", q) for q in range(n) if not (marked >> q) & 1] + steps += flip + [{"g": cz, "q": all_q}] + flip + steps += [g("h", q) for q in range(n)] + [g("x", q) for q in range(n)] + steps += [{"g": cz, "q": all_q}] + steps += [g("x", q) for q in range(n)] + [g("h", q) for q in range(n)] + return steps + + +def qpe_steps(bits, phase_turns): + """Phase estimation of the eigenvalue e^{2πi φ} of p(2πφ) on qubit `bits`, prepared in |1>. + Counting qubits 0..bits-1; the outcome y estimates φ = y/2^bits, read as an integer.""" + num, den = phase_turns + steps = [g("x", bits)] + [g("h", q) for q in range(bits)] + for j in range(bits): + # 2^j applications of the unitary, as one controlled phase. + m = (num * (1 << j)) % den + angle = "q:%d/%d" % (m, den) if den & (den - 1) else t(m, den.bit_length() - 1) + steps.append(g("cp", j, bits, a=[angle])) + steps += inverse_steps_qft(bits) + return steps + + +def inverse_steps_qft(n): + return inverse_steps(qft_steps(n)) + + +def random_clifford_t(n, depth, seed, gateset=("h", "s", "t", "sdg", "tdg", "x")): + r = Stream("clifford_t/%d/%d/%d" % (n, depth, seed)) + steps = [] + for _ in range(depth): + for q in range(n): + if r.below(3): + steps.append(g(r.choice(gateset), q)) + order = list(range(n)) + for i in range(n - 1, 0, -1): + j = r.below(i + 1) + order[i], order[j] = order[j], order[i] + for i in range(0, n - 1, 2): + steps.append(g(r.choice(("cx", "cz")), order[i], order[i + 1])) + return steps + + +def random_clifford(n, depth, seed): + return random_clifford_t(n, depth, seed, gateset=("h", "s", "sdg", "x", "y", "z", "sx")) + + +def random_dyadic(n, depth, seed, k): + r = Stream("dyadic/%d/%d/%d/%d" % (n, depth, seed, k)) + steps = [] + for layer in range(depth): + for q in range(n): + steps.append(g(r.choice(("rx", "ry", "rz")), q, a=[t(r.below(1 << k), k)])) + for q in range(layer % 2, n - 1, 2): + steps.append(g("cz", q, q + 1)) + return steps + + +def random_rotations(n, depth, seed): + """U gates whose angles are decimal radians, no dyadic among them, on a brickwork of cx.""" + r = Stream("rotations/%d/%d/%d" % (n, depth, seed)) + + def angle(): + return "r:%d.%017d" % (r.below(3), r.below(10**17)) + + steps = [] + for layer in range(depth): + for q in range(n): + steps.append(g("u", q, a=[angle(), angle(), angle()])) + for q in range(layer % 2, n - 1, 2): + steps.append(g("cx", q, q + 1)) + return steps + + +def ghz_steps(n): + return [g("h", 0)] + [g("cx", q, q + 1) for q in range(n - 1)] + + +def distinct_product(n): + """A product state whose every amplitude differs: any exchange of qubits shows.""" + steps = [] + for q in range(n): + steps.append(g("ry", q, a=[t(1, q + 4)])) + steps.append(g("rz", q, a=[t(3, q + 6)])) + return steps + + +def measure_all(n): + return [{"measure": q, "bit": q} for q in range(n)] + + +# ------------------------------------------------------------------ the entries + + +def entries(): + out = [] + + def add(id_, family, params, reason, n, steps, expect, tier="full", bits=0, engines=None, shots=0, **extra): + e = {"id": id_, "family": family, "params": params, "reason": reason, "n": n, "bits": bits, "steps": steps, "expect": expect, "tier": tier, "shots": shots} + if engines: + e["engines"] = engines + e.update(extra) + out.append(e) + + # Bit order. + add("bit_order_x_low", "bit_order", {"n": 5}, "An X on qubit 0 must read as index 1, the first thing that differs between engines' conventions.", 5, [g("x", 0)], "exact_state", tier="ci") + add("bit_order_x_high", "bit_order", {"n": 5}, "The other end of the same convention: an X on the highest qubit is index 16.", 5, [g("x", 4)], "exact_state") + add("bit_order_product", "bit_order", {"n": 6}, "Every amplitude differs, so any exchange of two qubits changes the state.", 6, distinct_product(6), "exact_state", tier="ci") + add("bit_order_control", "bit_order", {"n": 4}, "A cx from qubit 0 to qubit 3: the control and target must not swap roles.", 4, [g("x", 0), g("cx", 0, 3)], "exact_state") + add("bit_order_named_bits", "bit_order", {"n": 2}, "Classical bits named out of order: qubit 1 into bit 0. The counts must follow the bits, not the qubits.", 2, [g("x", 1), {"measure": 1, "bit": 0}, {"measure": 0, "bit": 1}], "distribution", bits=2, shots=4000, tier="ci") + add("empty_register", "bit_order", {"n": 3}, "A program of no gates: the state is |000>.", 3, [], "exact_state") + add("one_qubit", "bit_order", {"n": 1}, "The smallest register.", 1, [g("h", 0)], "exact_state") + add("top_index_n20", "bit_order", {"n": 20}, "An index at bit 19: index arithmetic past 16 bits, with no entanglement to hide it.", 20, [g("x", 19), g("h", 18)], "pairwise", tier="ci") + + # GHZ. + for n in (2, 3, 5, 8, 12): + add("ghz_n%d" % n, "ghz", {"n": n}, "Known answer: two amplitudes of 1/sqrt(2), every other zero. It exposes any leakage out of those two.", n, ghz_steps(n), "known_state", tier="ci" if n == 3 else "full") + add("ghz_counts_n8", "ghz", {"n": 8}, "Sampling: only the two outcomes may appear, equally often.", 8, ghz_steps(8) + measure_all(8), "distribution", bits=8, shots=100000) + + # QFT. + for n, x in ((3, 5), (5, 19), (8, 173), (12, 2741), (14, 10923)): + add("qft_n%d_x%d" % (n, x), "qft", {"n": n, "x": x}, "Closed form e^{2πi xy/2^n}/2^(n/2), and every controlled phase up to 2π/2^n: the rotations a fixed-point table holds least well.", n, basis_prep(n, x) + qft_steps(n), "known_state", tier="ci" if n == 5 else "full", qft_x=x) + add("qft_superposed_n10", "qft", {"n": 10, "seed": 11}, "A QFT over a random Clifford+T state: its phases act on every amplitude, where from a basis state most cancel.", 10, random_clifford_t(10, 4, 11) + qft_steps(10), "exact_state") + add("qft_counts_n8", "qft", {"n": 8, "x": 173}, "Sampling a uniform distribution of 256 outcomes.", 8, basis_prep(8, 173) + qft_steps(8) + measure_all(8), "distribution", bits=8, shots=200000) + add("qft_wide_n20", "qft", {"n": 20, "x": 699051}, "Past any integer reference here: engines against each other, and chosen amplitudes against the closed form.", 20, basis_prep(20, 699051) + qft_steps(20), "pairwise", qft_x=699051) + + # Grover. + for n, marked, it in ((3, 5, 2), (5, 19, 4), (8, 173, 12), (10, 683, 25)): + add("grover_n%d" % n, "grover", {"n": n, "marked": marked, "iterations": it}, "Closed form: the marked state's probability is sin²((2k+1)θ) with sin θ = 2^(-n/2). Multi-controlled gates, and interference that rounding drains.", n, grover_steps(n, marked, it), "exact_state", tier="ci" if n == 3 else "full", grover=[marked, it]) + add("grover_counts_n5", "grover", {"n": 5, "marked": 19, "iterations": 4}, "Sampling a peaked distribution.", 5, grover_steps(5, 19, 4) + measure_all(5), "distribution", bits=5, shots=100000) + + # Phase estimation. + for bits, m in ((4, 5), (8, 173), (12, 2741)): + add("qpe_t%d_m%d" % (bits, m), "qpe", {"bits": bits, "phase": "%d/2^%d" % (m, bits)}, "A phase of exactly m/2^t: the outcome is m with probability 1, so every other amplitude must cancel to zero.", bits + 1, qpe_steps(bits, (m, 1 << bits)), "exact_state", tier="ci" if bits == 4 else "full", qpe=[m, bits]) + for bits in (6, 10): + add("qpe_t%d_third" % bits, "qpe", {"bits": bits, "phase": "1/3"}, "A phase that is no dyadic: the outcome's law is the closed form sin²(π2^t δ)/(2^(2t) sin²(πδ)), and the bit-exact method must refuse it rather than round it.", bits + 1, qpe_steps(bits, (1, 3)), "exact_state", qpe_third=bits) + + # Random circuits. + for n, depth, seed in ((4, 20, 1), (8, 40, 2), (12, 40, 3)): + add("clifford_t_n%d_d%d" % (n, depth), "random_clifford_t", {"n": n, "depth": depth, "seed": seed}, "Universal, in the gates the bit-exact method holds as table constants.", n, random_clifford_t(n, depth, seed), "exact_state", tier="ci" if n == 4 else "full") + for n, depth, seed, k in ((6, 20, 4, 16), (10, 30, 5, 32)): + add("dyadic_n%d_k%d" % (n, depth), "random_dyadic", {"n": n, "depth": depth, "seed": seed, "k": k}, "Rotations by m/2^k of a turn: each is many table phases in fixed point, so its error is largest here.", n, random_dyadic(n, depth, seed, k), "exact_state", tier="ci" if n == 6 else "full") + for n, depth, seed in ((6, 20, 6), (10, 30, 7), (12, 40, 8)): + add("rotations_n%d" % n, "random_rotations", {"n": n, "depth": depth, "seed": seed}, "Arbitrary decimal angles: double-precision engines only, and the bit-exact method must refuse.", n, random_rotations(n, depth, seed), "exact_state", tier="ci" if n == 6 else "full") + add("rotations_counts_n6", "random_rotations", {"n": 6, "depth": 20, "seed": 6}, "Sampling a distribution with no structure.", 6, random_rotations(6, 20, 6) + measure_all(6), "distribution", bits=6, shots=200000) + add("rotations_wide_n20", "random_rotations", {"n": 20, "depth": 10, "seed": 9}, "No integer reference at this width: engines against each other, with fusion and threads in play.", 20, random_rotations(20, 10, 9), "pairwise") + + # Mirror circuits: known answer, any width. + for n, depth, seed in ((10, 40, 21), (16, 30, 22), (20, 20, 23)): + forward = random_dyadic(n, depth, seed, 16) + add("mirror_n%d" % n, "mirror", {"n": n, "depth": depth, "seed": seed}, "U then its inverse: the state is |0…0> exactly, at a width no integer reference reaches, and what remains is the engine's accumulated rounding.", n, forward + inverse_steps(forward), "mirror", tier="ci" if n == 10 else "full") + + # Small angles. + for k in (8, 16, 24, 26, 28, 30, 32): + add("small_angle_k%d" % k, "small_angle", {"k": k}, "h, p(2π/2^k), h: P(1) = sin²(π/2^k). Within the phase table, and at its resolution floor as k nears 32.", 1, [g("h", 0), g("p", 0, a=[t(1, k)]), g("h", 0)], "exact_state", tier="ci" if k == 32 else "full", probe=1) + for k in (33, 40, 47, 48, 52, 60): + add("below_grid_k%d" % k, "small_angle", {"k": k}, "An angle below the table's last entry: the bit-exact method refuses it, or reads it as nothing when it is within its reader's tolerance of 0. Whether each engine holds the phase or drops it is recorded beside its distance.", 1, [g("h", 0), g("p", 0, a=[t(1, k)]), g("h", 0)], "exact_state", tier="ci" if k == 47 else "full", probe=1) + add("tiny_radians", "small_angle", {"radians": "1e-12"}, "A small decimal angle, not on any dyadic grid.", 1, [g("h", 0), g("rz", 0, a=["r:1e-12"]), g("h", 0)], "exact_state", probe=1) + add("controlled_small_angle_k30", "small_angle", {"k": 30}, "The same phase under a control.", 2, [g("h", 0), g("h", 1), g("cp", 0, 1, a=[t(1, 30)])], "exact_state", probe=2) + # The phase is the result here, so these two are held to the state with its phase (`strict`), + # not modulo one: a phase dropped, doubled or misread as a whole turn shows. + add("repeated_phase_k19", "small_angle", {"k": 19, "count": 262144}, "p(2π/2^19) applied 2^18 times to |1> is a half turn, -|1>. The extension's section 5 states what fixed point leaves of it: modulus 1.0000189, within 1e-5 rad of the half turn.", 1, [g("x", 0)] + [g("p", 0, a=[t(1, 19)])] * 262144, "exact_state", phase_is_result=True, extension_figure=True, engines=["wai.exact", "wai.statevector", "aer.statevector", "ddsim.statevector", "qsim.statevector"]) + add("repeated_phase_k19_quarter", "small_angle", {"k": 19, "count": 131072}, "p(2π/2^19) applied 2^17 times to |1> is a quarter turn, i|1>: the half turn is its own negative, and this one is not, so a phase applied with the wrong sign shows.", 1, [g("x", 0)] + [g("p", 0, a=[t(1, 19)])] * 131072, "exact_state", phase_is_result=True, engines=["wai.exact", "wai.statevector", "aer.statevector", "ddsim.statevector", "qsim.statevector"]) + add("h_squared_chain", "small_angle", {"count": 4096}, "2048 pairs of H on a superposition: the identity, where fixed point's rounding of 1/sqrt(2) adds up.", 1, [g("h", 0)] * 4096, "exact_state", engines=["wai.exact", "wai.statevector", "aer.statevector", "ddsim.statevector", "qsim.statevector", "quimb.dense"]) + + # Gate conventions: every gate of the library on a state that shows what it does. + gate_cases = [ + ("id", 1, []), ("x", 1, []), ("y", 1, []), ("z", 1, []), ("h", 1, []), ("s", 1, []), ("sdg", 1, []), ("t", 1, []), ("tdg", 1, []), ("sx", 1, []), ("sxdg", 1, []), + ("p", 1, [t(3, 7)]), ("rz", 1, [t(3, 7)]), ("rx", 1, [t(3, 7)]), ("ry", 1, [t(3, 7)]), ("u", 1, [t(3, 7), t(5, 8), t(7, 9)]), + ("cx", 2, []), ("cy", 2, []), ("cz", 2, []), ("ch", 2, []), ("csx", 2, []), ("swap", 2, []), + ("cp", 2, [t(3, 7)]), ("crx", 2, [t(3, 7)]), ("cry", 2, [t(3, 7)]), ("crz", 2, [t(3, 7)]), ("cu", 2, [t(3, 7), t(5, 8), t(7, 9), t(1, 5)]), + ("rzz", 2, [t(3, 7)]), ("rxx", 2, [t(3, 7)]), ("ryy", 2, [t(3, 7)]), ("negcx", 2, []), + ("ccx", 3, []), ("ccz", 3, []), ("cswap", 3, []), ("c2p", 3, [t(3, 7)]), ("c2rz", 3, [t(3, 7)]), ("c2ry", 3, [t(3, 7)]), ("c3x", 4, []), ("c3z", 4, []), + ] + for name, arity, args in gate_cases: + qs = list(range(arity)) + add("gate_%s" % name, "gate_conventions", {"gate": name}, "What this gate means, from OpenQASM 3's standard library, applied to a state with no symmetry; engines that define it otherwise show here.", arity, distinct_product(arity) + [{"g": name, "q": qs, **({"a": args} if args else {})}], "exact_state", tier="ci" if name in ("sx", "rz", "cu", "c2rz", "negcx") else "full") + for name, args in (("rz", [t(1, 0)]), ("rx", [t(1, 0)]), ("ry", [t(1, 0)]), ("p", [t(1, 0)]), ("rz", [t(2, 0)]), ("u", [t(1, 0), t(0, 0), t(0, 0)])): + add("full_turn_%s_%s" % (name, args[0].replace(":", "").replace("/", "_")), "gate_conventions", {"gate": name, "angle": args[0]}, "A rotation by whole turns: the identity up to a sign, and the sign is the convention. Engines that lower it through a phase gate lose the sign; a global phase changes no outcome, and under a control it would.", 1, distinct_product(1) + [{"g": name, "q": [0], "a": args}], "exact_state") + add("gate_gphase_controlled", "gate_conventions", {"gate": "ctrl @ gphase"}, "A global phase under a control is a relative phase, so no engine may drop it.", 2, distinct_product(2) + [g("gphase", 0, a=[t(3, 7)])], "exact_state") + add("controlled_rz_full_turn", "gate_conventions", {"gate": "crz", "angle": "1 turn"}, "crz by a full turn is diag(1, 1, -1, -1): the sign rz loses globally is here relative.", 2, [g("h", 0), g("h", 1), g("crz", 0, 1, a=[t(1, 0)])], "exact_state", tier="ci") + + # Measurement in the middle, reset and feedback. + alpha = t(1, 5) + add("teleport", "dynamic", {"angle": alpha}, "Teleportation: Bell measurement, then corrections on classical bits. Qubit 2 must end as qubit 0 began, whatever the outcomes.", 3, [g("ry", 0, a=[alpha]), g("h", 1), g("cx", 1, 2), g("cx", 0, 1), g("h", 0), {"measure": 0, "bit": 0}, {"measure": 1, "bit": 1}, {"if": [1, 1], "then": [g("x", 2)]}, {"if": [0, 1], "then": [g("z", 2)]}, {"measure": 2, "bit": 2}], "distribution", bits=3, shots=200000, tier="ci") + add("reset_after_superposition", "dynamic", {}, "A reset of a qubit in superposition leaves |0> whatever it read, and leaves its Bell partner mixed.", 2, [g("h", 0), g("cx", 0, 1), {"reset": 0}, {"measure": 0, "bit": 0}, {"measure": 1, "bit": 1}], "distribution", bits=2, shots=100000, tier="ci") + add("measure_twice", "dynamic", {}, "A second measurement in the same basis repeats the first: 00 and 11 only.", 1, [g("h", 0), {"measure": 0, "bit": 0}, {"measure": 0, "bit": 1}], "distribution", bits=2, shots=100000) + add("feedback_flip", "dynamic", {}, "Flip a measured 1 back: the second reading is always 0.", 1, [g("h", 0), {"measure": 0, "bit": 0}, {"if": [0, 1], "then": [g("x", 0)]}, {"measure": 0, "bit": 1}], "distribution", bits=2, shots=100000) + add("ghz_by_fusion", "dynamic", {}, "A GHZ state made from two Bell pairs by a parity measurement and a correction: Clifford, with feedback, so a stabilizer engine must also get it.", 4, [g("h", 0), g("cx", 0, 1), g("h", 2), g("cx", 2, 3), g("cx", 1, 2), {"measure": 2, "bit": 0}, {"if": [0, 1], "then": [g("x", 3)]}, {"measure": 0, "bit": 1}, {"measure": 1, "bit": 2}, {"measure": 3, "bit": 3}], "distribution", bits=4, shots=100000) + add("repeat_until_success", "dynamic", {"rounds": 3}, "Three rounds of a non-Clifford trial on a second qubit, which is measured and then flipped back to |0> by an x conditioned on what was read (no reset instruction): the branches weigh differently, and the law is exact.", 2, _rus_steps(3), "distribution", bits=4, shots=200000) + + # Stabilizer circuits at width. + for n in (100, 1000, 5000): + add("clifford_ghz_n%d" % n, "clifford_large", {"n": n}, "A GHZ state across the whole register: sparse generators, past any state vector.", n, ghz_steps(n), "stabilizer", tier="ci" if n == 100 else "full") + for n in (65, 1000, 5000): + add("clifford_cluster_n%d" % n, "clifford_large", {"n": n}, "A line cluster state: every generator X Z neighbours, with its signs flipped by a layer of Z.", n, [g("h", q) for q in range(n)] + [g("cz", q, q + 1) for q in range(n - 1)] + [g("z", q) for q in range(0, n, 3)], "stabilizer") + for n, depth, seed in ((63, 12, 31), (64, 12, 32), (65, 12, 33), (127, 12, 34), (128, 12, 35), (129, 12, 36), (1000, 30, 37), (2000, 20, 38)): + add("clifford_random_n%d" % n, "clifford_large", {"n": n, "depth": depth, "seed": seed}, "Random Clifford layers, with widths on and either side of a machine word: packing bugs live at those edges.", n, random_clifford(n, depth, seed), "stabilizer", tier="ci" if n == 65 else "full") + add("clifford_random_n10_as_state", "clifford_large", {"n": 10, "depth": 30, "seed": 39}, "A Clifford circuit small enough for a state vector: the two formalisms must describe one state.", 10, random_clifford(10, 30, 39), "exact_state") + add("clifford_counts_n40", "clifford_large", {"n": 40, "depth": 8, "seed": 40}, "Sampling past the provider receipt's 22-qubit comparison: outcomes must lie in the affine space the stabilizers fix.", 40, random_clifford(40, 8, 40) + measure_all(40), "stabilizer_counts", bits=40, shots=20000, tier="ci") + + # Noise, in closed form. + for p, k in (("0.01", 20), ("0.1", 7)): + add("noise_depol1_x_chain_p%s_k%d" % (p.replace(".", "_"), k), "noise", {"channel": "depolarizing_1q", "p": p, "gates": k}, "k X gates, each followed by a depolarizing channel: = (-1)^k (1 - 4p/3)^k exactly.", 1, [g("x", 0)] * k, "expectation", noise={"depolarizing_1q": float(p)}, observable="Z0", closed=["depol1", p, k], tier="ci" if k == 7 else "full") + add("noise_depol2_cx_chain", "noise", {"channel": "depolarizing_2q", "p": "0.02", "gates": 9}, "k cx gates, each followed by a two-qubit depolarizing channel: = (1 - 16p/15)^k exactly.", 2, [g("cx", 0, 1)] * 9, "expectation", noise={"depolarizing_2q": 0.02}, observable="Z0 Z1", closed=["depol2", "0.02", 9]) + + # Wide circuits, by methods that reach past a state vector. + for n in (30, 50, 100): + add("mps_ghz_n%d" % n, "wide_mps", {"n": n}, "Bond dimension 2 at any width: the amplitudes of the two outcomes, in closed form.", n, ghz_steps(n), "amplitudes", wide_kind="ghz", tier="ci" if n == 30 else "full") + for n, x in ((30, 715827883), (40, 366503875925)): + add("mps_qft_n%d" % n, "wide_mps", {"n": n, "x": x}, "The QFT of a basis state is a product state, reached through modest entanglement. Chosen amplitudes in closed form.", n, basis_prep(n, x) + qft_steps(n), "amplitudes", wide_kind="qft", qft_x=x) + add("tn_shallow_n26", "wide_tn", {"n": 26, "depth": 5, "seed": 41}, "A shallow rotation brickwork: amplitudes by contraction, against matrix product states and a state vector.", 26, random_rotations(26, 5, 41), "wide_pairwise") + add("tn_mirror_n40", "wide_tn", {"n": 40, "depth": 3, "seed": 42}, "A shallow mirror circuit, too wide for a state vector here: the amplitude of |0…0> is exactly 1.", 40, random_dyadic(40, 3, 42, 16) + inverse_steps(random_dyadic(40, 3, 42, 16)), "wide_mirror", tier="ci") + + return out + + +def _rus_steps(rounds): + steps = [] + for r in range(rounds): + steps += [g("h", 1), g("t", 1), g("cx", 0, 1), g("h", 1), g("t", 1), {"measure": 1, "bit": r}, {"if": [r, 1], "then": [g("x", 1)]}, g("h", 0), g("t", 0)] + steps.append({"measure": 0, "bit": rounds}) + return steps + + +# ------------------------------------------------------------------ what the bit-exact method must do + +# The bit-exact method's reader (wai-quantum/src/qasm.rs, `dyadic`) takes an angle as 2πm/2^k for +# the smallest k ≤ 32 within 10^-14 of a turn, and refuses one it cannot (`[Q500]`). This is that +# rule applied to the corpus's angles as written, exactly: each angle is "exact" (m/2^k, k ≤ 32), +# "moved" (within the tolerance of such an angle, not on it) or "refused". A gate whose lowering +# halves an angle (crz, crx, cry, cu) or takes it under modifiers is given angles of k ≤ 30 here, +# which the corpus checks, so that the rule on the written angle is the rule on every angle the +# lowering reaches. +READER_TOLERANCE = Fraction(1, 10**14) +GRID = 32 +HALVING = {"crz", "crx", "cry", "cu", "c2p", "c2rz", "c2ry", "gphase"} + + +def _turns(a): + kind, v = exact.parse_angle(a) + if kind == "t": + return v + return v / (2 * Fraction(exact._PI, 1 << (exact.PREC + exact.GUARD))) + + +@functools.lru_cache(maxsize=None) +def reader_angle(a): + """("exact" | "moved" | "refused", how far the reader moves it, in turns).""" + t = _turns(a) % 1 + for k in range(GRID + 1): + x = t * (1 << k) + m = round(x) + if abs(x - m) <= READER_TOLERANCE * (1 << k): + return ("exact" if x == m else "moved", abs(x - m) / (1 << k)) + return ("refused", None) + + +def reader_class(e): + """What the bit-exact method must do with an entry: ("exact", 0), ("moved", the sum of how + far its angles move, in turns) or ("refused", 0).""" + moved = Fraction(0) + worst = "exact" + for s in e["steps"]: + for x in s.get("then", [s]): + for a in x.get("a", []): + kind, by = reader_angle(a) + if kind == "refused": + return ("refused", 0) + if kind == "moved": + worst = "moved" + moved += by + if x["g"] in HALVING and kind == "exact" and exact.parse_angle(a)[0] == "t" and int(a[2:].partition("/")[2]) > GRID - 2: + raise ValueError("%s: %s at %s halves past the grid; the rule above would not hold" % (e["id"], x["g"], a)) + return (worst, moved) + + +# Refusals by the engine under test that a run accepts, each with the words it must give. Any +# other refusal, crash or time-out of the engine under test fails the run. "must": the engine +# must refuse (accepting fails the run); "may": a refusal with these words is recorded as one, +# and an answer is checked like any other. +QEC_REFUSALS = [ + {"entry": "color_d3", "engine": "wai.qec", "must": "may", "text": "unsupported instruction 'C_XYZ'", "reason": "the frame simulator does not implement C_XYZ"}, + {"entry": "qec_refused_correlated", "engine": "wai.qec", "must": "may", "text": "unsupported instruction 'E'", "reason": "the frame simulator does not implement correlated errors"}, + {"entry": "qec_refused_pauli_channel", "engine": "wai.qec", "must": "may", "text": "unsupported instruction 'PAULI_CHANNEL_1'", "reason": "the frame simulator does not implement general Pauli channels"}, + {"entry": "qec_refused_random_detector", "engine": "wai.qec", "must": "refuse", "text": "is not deterministic", "reason": "a detector that is random without noise is no detector"}, +] + + +def expected_refusals(): + """QEC_REFUSALS, and every entry the bit-exact method must refuse by the reader's rule.""" + out = [] + for e in entries(): + runs_exact = e["expect"] in ("exact_state", "known_state", "mirror") and "wai.exact" in e.get("engines", ["wai.exact"]) + if runs_exact and reader_class(e)[0] == "refused": + out.append({"entry": e["id"], "engine": "wai.exact", "must": "refuse", "text": "[Q500]", "reason": "an angle no grid of 2^32 holds within 10^-14 of a turn"}) + return out + QEC_REFUSALS + + +# ------------------------------------------------------------------ the error-correction circuits + + +def qec_entries(): + """The noisy Clifford circuits: id, family, what generates it, why it is here, its tier.""" + out = [] + + def add(id_, code, d, r, p, reason, tier="full"): + out.append({"id": id_, "family": "qec", "code": code, "distance": d, "rounds": r, "p": p, "reason": reason, "tier": tier, "expect": "qec"}) + + for d in (3, 5, 7, 9, 11, 15): + add("surface_z_d%d" % d, "surface_code:rotated_memory_z", d, d, 0.001, "The rotated surface-code memory experiment in Z: the circuit decoders are measured on. The model must match mechanism by mechanism, and every detector's rate must follow it.", tier="ci" if d == 3 else "full") + for d in (3, 5, 7): + add("surface_x_d%d" % d, "surface_code:rotated_memory_x", d, d, 0.001, "The same in the X basis: resets and measurements in X.") + for d in (3, 5): + add("unrotated_z_d%d" % d, "surface_code:unrotated_memory_z", d, d, 0.002, "The unrotated layout: another gate order, and detectors with other coordinates.") + for d in (3, 9, 25): + add("repetition_d%d" % d, "repetition_code:memory", d, d, 0.005, "A line of data qubits: the simplest model, with long detector chains at d = 25.") + add("surface_z_d5_noiseless", "surface_code:rotated_memory_z", 5, 5, 0.0, "No noise at all: every detector and the observable are silent on every shot, and the model is empty.", tier="ci") + add("color_d3", "color_code:memory_xyz", 3, 3, 0.002, "A colour code with C_XYZ gates: an instruction the frame simulator does not implement must be refused with its line, never skipped.") + return out + + +HAND_WRITTEN_QEC = { + "qec_inverted_and_tagged": ("A measurement target inverted, which flips its value and no detection event, and a tag on noise.", """\ +R 0 1 +X_ERROR[leak](0.01) 0 +CX 0 1 +M !0 1 +DETECTOR rec[-1] rec[-2] +OBSERVABLE_INCLUDE(0) rec[-1] +"""), + "qec_measure_flip_noise": ("Measurement flip noise in both bases, and a reset in X.", """\ +R 0 +RX 1 +M(0.02) 0 +MX(0.03) 1 +DETECTOR rec[-2] +DETECTOR rec[-1] +"""), + "qec_depolarize_merge": ("Two channels whose mechanisms have the same symptoms merge by the XOR rule, p1 + p2 - 2 p1 p2.", """\ +R 0 1 +DEPOLARIZE1(0.01) 0 +X_ERROR(0.02) 0 +DEPOLARIZE2(0.03) 0 1 +M 0 1 +DETECTOR rec[-2] +DETECTOR rec[-1] +"""), + "qec_pauli_observable": ("An observable on Pauli targets rather than measurement records.", """\ +R 0 1 2 +H 0 +CX 0 1 1 2 +Z_ERROR(0.01) 1 +OBSERVABLE_INCLUDE(0) X0 X1 X2 +"""), + "qec_refused_correlated": ("A correlated error, which the frame simulator does not implement: it must be refused with its line.", """\ +R 0 1 +E(0.01) X0 X1 +M 0 1 +DETECTOR rec[-1] +"""), + "qec_refused_pauli_channel": ("A general Pauli channel, which it does not implement either.", """\ +R 0 +PAULI_CHANNEL_1(0.01, 0.02, 0.03) 0 +M 0 +DETECTOR rec[-1] +"""), + "qec_refused_random_detector": ("A detector that is random without noise is no detector: it must be refused.", """\ +RX 0 +M 0 +DETECTOR rec[-1] +"""), +} + + +def manifest_entry(e, text): + return { + "id": e["id"], + "family": e["family"], + "params": e.get("params", {"distance": e.get("distance"), "rounds": e.get("rounds"), "p": e.get("p"), "code": e.get("code")}), + "reason": e["reason"], + "expect": e["expect"], + "tier": e["tier"], + "qubits": e.get("n"), + "gates": sum(1 for s in e.get("steps", []) if "g" in s) if "steps" in e else None, + "sha256": hashlib.sha256(text.encode()).hexdigest(), + } + + +def build(tier=None): + """Every circuit entry in the tier (or all), with its text.""" + es = entries() + if tier == "ci": + es = [e for e in es if e["tier"] == "ci"] + for e in es: + e["qasm"] = qasm_of(e) + return es + + +COMMIT_LIMIT = 16 * 1024 # a program up to this many bytes is committed as a file + + +def main(): + root = os.path.join(os.path.dirname(os.path.abspath(__file__)), "..", "corpus") + os.makedirs(os.path.join(root, "qasm"), exist_ok=True) + rows = [] + for e in build(): + rows.append(manifest_entry(e, e["qasm"])) + if len(e["qasm"]) <= COMMIT_LIMIT: + with open(os.path.join(root, "qasm", e["id"] + ".qasm"), "w") as f: + f.write(e["qasm"]) + with open(os.path.join(root, "qec-hand-written.json"), "w") as f: + json.dump({k: {"reason": v[0], "text": v[1]} for k, v in HAND_WRITTEN_QEC.items()}, f, indent=1) + f.write("\n") + # The error-correction circuits are the pinned reference generator's, committed as text + # (corpus/qec/); a run checks that the generator still writes them. + for e in qec_entries(): + text = open(os.path.join(root, "qec", e["id"] + ".circuit")).read() + rows.append({"id": e["id"], "family": "qec", "params": {"code": e["code"], "distance": e["distance"], "rounds": e["rounds"], "p": e["p"]}, "reason": e["reason"], "expect": "qec", "tier": e["tier"], "sha256": hashlib.sha256(text.encode()).hexdigest()}) + with open(os.path.join(root, "expected-refusals.json"), "w") as f: + json.dump({"about": "Refusals by the engine under test that a run accepts, each with the words it must give; tools/corpus.py writes this file from the reader's rule and its list, and a run checks it against them. Any other refusal, crash or time-out of the engine under test fails the run. must: refuse (accepting fails the run) or may (a refusal with these words is recorded as one).", "refusals": expected_refusals()}, f, indent=1, ensure_ascii=False) + f.write("\n") + with open(os.path.join(root, "manifest.json"), "w") as f: + json.dump({"about": "Every circuit of the corpus: parameters, reason, what it is held to, and the SHA-256 of its OpenQASM text. tools/corpus.py writes this file; the run fails if the generator no longer gives these bytes.", "circuits": rows}, f, indent=1, ensure_ascii=False) + f.write("\n") + print("%d circuits" % len(rows)) + + +if __name__ == "__main__": + main() diff --git a/wai/quantum-cross-simulator/tools/engines.py b/wai/quantum-cross-simulator/tools/engines.py new file mode 100644 index 000000000..5e445303c --- /dev/null +++ b/wai/quantum-cross-simulator/tools/engines.py @@ -0,0 +1,815 @@ +#!/usr/bin/env python3 +"""One engine, one job: the adapters that put a corpus circuit to each engine under test. + + python3 -I engines.py ENGINE JOB.json ANSWER.json + +ENGINE is one of ADAPTERS below, named `.`. Each runs in a process of its own, +so its peak memory is its own. A job carries the circuit's steps (corpus.py), its width and what +is asked: + + state the whole state, written to job["state_out"] as complex128 pairs, qubit 0 the + lowest bit of the index + counts job["shots"] samples of the classical bits at job["seed"]: {bits, bit 0 last: n} + amplitudes the amplitudes of job["bitstrings"] (qubit 0 last, as OpenQASM writes them) + stabilizers the stabilizer group, as signed strings of XYZ_ with qubit 0 first + expectation job["observable"] under job["noise"] + qec_model a circuit text's detector error model: [[p, [detectors], [observables]]] + qec_sample how often each detector and observable fired over job["shots"] + +The third-party engines take each gate by their own name for it, where they have one, so a +gate an engine defines differently shows as a difference. Where an engine has no such gate, the +adapter says so in `notes` and gives it the gate's matrix from exact.py instead. An answer also +names what the engine was set to (precision, fusion, threads), the seconds its own call took +(`seconds`; for Aer the simulator's own time for the experiment, its whole `run` call beside it as +`call_seconds`), and the peak resident memory of the process that ran the engine, as the +operating system counts it for that process alone (`engine_peak_rss_bytes`: on Linux VmHWM, +which a child does not inherit from its parent the way ru_maxrss does). A job an engine cannot run +is answered {"ok": false, "unsupported": why}. + +A job may carry `inject`, one of compare.py's faults for the engine under test: the adapter then +refuses, crashes, hangs or moves the angles before the engine reads them, as compare.py asks. +""" +import json +import os +import struct +import subprocess +import sys +import time + +sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) +import exact # noqa: E402 + + +class Unsupported(Exception): + pass + + +def threads(job): + return int(job.get("threads") or 1) + + +def steps_of(job): + return job["steps"] + + +def gates_only(job): + for s in job["steps"]: + if "g" not in s: + raise Unsupported("this adapter runs programs with no measurement in the middle") + return job["steps"] + + +def matrix_np(name, args): + import numpy as np + + m = exact.one_qubit_matrix(name, args) + s = float(exact.ONE) + return np.array([[complex(m[0][0] / s, m[0][1] / s), complex(m[1][0] / s, m[1][1] / s)], [complex(m[2][0] / s, m[2][1] / s), complex(m[3][0] / s, m[3][1] / s)]]) + + +def write_state(path, amps_le): + """complex128 pairs, little-endian, qubit 0 the lowest index bit.""" + import numpy as np + + np.ascontiguousarray(amps_le, dtype=np.complex128).tofile(path) + + +def reverse_qubits(vec, n): + """A state with qubit 0 as the highest index bit, reordered to qubit 0 lowest.""" + import numpy as np + + return np.ascontiguousarray(np.asarray(vec).reshape([2] * n).transpose(list(range(n - 1, -1, -1))).reshape(-1)) if n > 1 else np.asarray(vec) + + +# ------------------------------------------------------------------ the engine under test + + +def own_peak_rss(): + """This process's peak resident set, in bytes: VmHWM on Linux (its own address space only), + ru_maxrss on macOS (bytes there).""" + if sys.platform.startswith("linux"): + for line in open("/proc/self/status"): + if line.startswith("VmHWM:"): + return int(line.split()[1]) * 1024 + import resource + + r = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss + return r if sys.platform == "darwin" else r * 1024 + + +def wai_driver(job_kind, payload, inject=None): + exe = os.environ.get("WAI_CROSS_SIMULATOR") + if not exe: + raise Unsupported("WAI_CROSS_SIMULATOR names no driver") + import tempfile + + if inject == "refuse": + return {"ok": False, "refused": "an injected refusal"} + if inject == "crash": + raise RuntimeError("the driver exited 101: an injected crash") + if inject == "hang" and job_kind == "qec_sample": + time.sleep(10**6) + if inject == "qec_words" and job_kind == "qec_model": + return {"ok": False, "refused": "line 3: an injected refusal"} + if inject == "qec_crash" and job_kind == "qec_model": + raise RuntimeError("the driver exited 101: an injected crash") + if inject == "exact_words" and job_kind == "state": + return {"ok": False, "refused": "an injected refusal, in other words"} + payload = dict(payload, kind=job_kind) + with tempfile.NamedTemporaryFile("w", suffix=".json", delete=False) as f: + json.dump(payload, f) + path = f.name + with tempfile.TemporaryFile() as so, tempfile.TemporaryFile() as se: + try: + p = subprocess.Popen([exe, path], stdout=so, stderr=se) + # wait4 gives the driver's own peak on macOS; on Linux the driver reports VmHWM itself. + _, status, ru = os.wait4(p.pid, 0) + finally: + os.unlink(path) + so.seek(0) + se.seek(0) + stdout, stderr = so.read().decode(errors="replace"), se.read().decode(errors="replace") + code = os.waitstatus_to_exitcode(status) + if code != 0: + raise RuntimeError("the driver exited %d: %s" % (code, stderr[-2000:])) + v = json.loads(stdout) + peak = v.get("peak_rss_bytes") or (ru.ru_maxrss if sys.platform == "darwin" else None) + if not v["ok"]: + return {"ok": False, "refused": v["refused"]} + return {"ok": True, **v["answer"], "engine_peak_rss_bytes": peak} + + +def rounded_angles(steps): + """Every angle moved to the nearest m/2^32 of a turn: what a reader that rounds would read.""" + from fractions import Fraction + + out = [] + for s in steps: + if "a" in s: + new = [] + for a in s["a"]: + kind, v = exact.parse_angle(a) + turns = v if kind == "t" else v / (2 * Fraction(exact._PI, 1 << (exact.PREC + exact.GUARD))) + new.append("t:%d/32" % round(turns * (1 << 32))) + s = dict(s, a=new) + out.append(s) + return out + + +def wai_state(job, method): + from corpus import qasm_of + + steps = gates_only(job) + if job.get("inject") == "accept": + steps = rounded_angles(steps) + q = qasm_of({"n": job["n"], "bits": 0, "steps": steps}) + if job.get("perf"): + # Timed: the state is made and not written. + return wai_driver("state", {"qasm": q, "method": method, "fusion": job.get("fusion", 3), "ops": False}, job.get("inject")) + raw = job["state_out"] + ".raw" + a = wai_driver("state", {"qasm": q, "method": method, "state_out": raw, "fusion": job.get("fusion", 3), "ops": method == "exact"}, job.get("inject")) + if not a["ok"]: + return a + import numpy as np + + if method == "exact": + ints = np.fromfile(raw, dtype="