wai-quantum: a cross-simulator conformance corpus, reproducible with one command, and the surface-code generator's text at p = 0 #662

Merged
dcharlot merged 9 commits from wai/quantum-cross-simulator-corpus into main 2026-11-07 01:27:16 -05:00
173 changed files with 64132 additions and 16 deletions

View file

@ -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

View file

@ -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.

View file

@ -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)"

View file

@ -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: <reason>`) and `scripts/check-comparative-prose.sh` (opt-out
`allow-phrase: <reason>`, for an identifier or a quotation) run on every change.

View file

@ -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`).

View file

@ -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.

View file

@ -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 <!-- allow-name: an open-source simulator compared, named as data --> | 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 <!-- allow-name: an open-source simulator compared, named as data --> | 1.16.0 | tableau, sampler, detector error models, the reference generator of the error-correction circuits |
| quimb <!-- allow-name: an open-source library compared, named as data --> | 1.15.0 | dense state, tensor network contracted, matrix product state |
| MQT DDSIM <!-- allow-name: an open-source simulator compared, named as data --> | 2.7.0, with mqt.core 3.11.0 | decision-diagram state vector and sampler |
| qsim <!-- allow-name: an open-source simulator compared, named as data --> | 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
<commit>: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.
<!-- results: written by tools/report.py from results/*.json; do not edit by hand -->
### `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
<details><summary>Refusals by the engine under test, each listed in <code>corpus/expected-refusals.json</code> with its words (12)</summary>
- `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)
</details>
<details><summary>Checks other engines did not make, and why (12)</summary>
- `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
</details>
<details><summary>Recorded and not judged (9)</summary>
- `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
</details>
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
<details><summary>Refusals by the engine under test, each listed in <code>corpus/expected-refusals.json</code> with its words (12)</summary>
- `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)
</details>
<details><summary>Checks other engines did not make, and why (11)</summary>
- `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
</details>
<details><summary>Recorded and not judged (9)</summary>
- `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
</details>
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 |
<!-- end of results -->
## 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 |

View file

@ -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"
}
]
}

View file

@ -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"
}
]
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,6 @@
OPENQASM 3.0;
include "stdgates.inc";
qubit[1] q;
h q[0];
p(pi/4294967296) q[0];
h q[0];

View file

@ -0,0 +1,6 @@
OPENQASM 3.0;
include "stdgates.inc";
qubit[1] q;
h q[0];
p(pi/549755813888) q[0];
h q[0];

View file

@ -0,0 +1,6 @@
OPENQASM 3.0;
include "stdgates.inc";
qubit[1] q;
h q[0];
p(pi/70368744177664) q[0];
h q[0];

View file

@ -0,0 +1,6 @@
OPENQASM 3.0;
include "stdgates.inc";
qubit[1] q;
h q[0];
p(pi/140737488355328) q[0];
h q[0];

View file

@ -0,0 +1,6 @@
OPENQASM 3.0;
include "stdgates.inc";
qubit[1] q;
h q[0];
p(pi/2251799813685248) q[0];
h q[0];

View file

@ -0,0 +1,6 @@
OPENQASM 3.0;
include "stdgates.inc";
qubit[1] q;
h q[0];
p(pi/576460752303423488) q[0];
h q[0];

View file

@ -0,0 +1,5 @@
OPENQASM 3.0;
include "stdgates.inc";
qubit[4] q;
x q[0];
cx q[0], q[3];

View file

@ -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];

View file

@ -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];

View file

@ -0,0 +1,4 @@
OPENQASM 3.0;
include "stdgates.inc";
qubit[5] q;
x q[4];

View file

@ -0,0 +1,4 @@
OPENQASM 3.0;
include "stdgates.inc";
qubit[5] q;
x q[0];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -0,0 +1,3 @@
OPENQASM 3.0;
include "stdgates.inc";
qubit[3] q;

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -0,0 +1,5 @@
OPENQASM 3.0;
include "stdgates.inc";
qubit[2] q;
h q[0];
cx q[0], q[1];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

File diff suppressed because it is too large Load diff

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

View file

@ -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];

Some files were not shown because too many files have changed in this diff Show more