wai-quantum: a cross-simulator conformance corpus, reproducible with one command, and the surface-code generator's text at p = 0 #662
173 changed files with 64132 additions and 16 deletions
27
.github/workflows/wai-quantum-cli.yml
vendored
27
.github/workflows/wai-quantum-cli.yml
vendored
|
|
@ -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
|
||||
|
|
|
|||
2
.github/workflows/wai-quantum-dsp.yml
vendored
2
.github/workflows/wai-quantum-dsp.yml
vendored
|
|
@ -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.
|
||||
|
|
|
|||
4
.github/workflows/wai-quantum-processors.yml
vendored
4
.github/workflows/wai-quantum-processors.yml
vendored
|
|
@ -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)"
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
9
wai/changes/2026-11-05-noiseless-surface-code-text.md
Normal file
9
wai/changes/2026-11-05-noiseless-surface-code-text.md
Normal 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`).
|
||||
40
wai/changes/2026-11-05-quantum-cross-simulator-corpus.md
Normal file
40
wai/changes/2026-11-05-quantum-cross-simulator-corpus.md
Normal 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.
|
||||
670
wai/quantum-cross-simulator/README.md
Normal file
670
wai/quantum-cross-simulator/README.md
Normal 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 |
|
||||
89
wai/quantum-cross-simulator/corpus/expected-refusals.json
Normal file
89
wai/quantum-cross-simulator/corpus/expected-refusals.json
Normal 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"
|
||||
}
|
||||
]
|
||||
}
|
||||
21
wai/quantum-cross-simulator/corpus/known-disagreements.json
Normal file
21
wai/quantum-cross-simulator/corpus/known-disagreements.json
Normal 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"
|
||||
}
|
||||
]
|
||||
}
|
||||
2159
wai/quantum-cross-simulator/corpus/manifest.json
Normal file
2159
wai/quantum-cross-simulator/corpus/manifest.json
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -0,0 +1,6 @@
|
|||
OPENQASM 3.0;
|
||||
include "stdgates.inc";
|
||||
qubit[1] q;
|
||||
h q[0];
|
||||
p(pi/4294967296) q[0];
|
||||
h q[0];
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
OPENQASM 3.0;
|
||||
include "stdgates.inc";
|
||||
qubit[1] q;
|
||||
h q[0];
|
||||
p(pi/549755813888) q[0];
|
||||
h q[0];
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
OPENQASM 3.0;
|
||||
include "stdgates.inc";
|
||||
qubit[1] q;
|
||||
h q[0];
|
||||
p(pi/70368744177664) q[0];
|
||||
h q[0];
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
OPENQASM 3.0;
|
||||
include "stdgates.inc";
|
||||
qubit[1] q;
|
||||
h q[0];
|
||||
p(pi/140737488355328) q[0];
|
||||
h q[0];
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
OPENQASM 3.0;
|
||||
include "stdgates.inc";
|
||||
qubit[1] q;
|
||||
h q[0];
|
||||
p(pi/2251799813685248) q[0];
|
||||
h q[0];
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
OPENQASM 3.0;
|
||||
include "stdgates.inc";
|
||||
qubit[1] q;
|
||||
h q[0];
|
||||
p(pi/576460752303423488) q[0];
|
||||
h q[0];
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
OPENQASM 3.0;
|
||||
include "stdgates.inc";
|
||||
qubit[4] q;
|
||||
x q[0];
|
||||
cx q[0], q[3];
|
||||
|
|
@ -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];
|
||||
|
|
@ -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];
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
OPENQASM 3.0;
|
||||
include "stdgates.inc";
|
||||
qubit[5] q;
|
||||
x q[4];
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
OPENQASM 3.0;
|
||||
include "stdgates.inc";
|
||||
qubit[5] q;
|
||||
x q[0];
|
||||
|
|
@ -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];
|
||||
430
wai/quantum-cross-simulator/corpus/qasm/clifford_counts_n40.qasm
Normal file
430
wai/quantum-cross-simulator/corpus/qasm/clifford_counts_n40.qasm
Normal 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];
|
||||
103
wai/quantum-cross-simulator/corpus/qasm/clifford_ghz_n100.qasm
Normal file
103
wai/quantum-cross-simulator/corpus/qasm/clifford_ghz_n100.qasm
Normal 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];
|
||||
|
|
@ -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];
|
||||
895
wai/quantum-cross-simulator/corpus/qasm/clifford_random_n63.qasm
Normal file
895
wai/quantum-cross-simulator/corpus/qasm/clifford_random_n63.qasm
Normal 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];
|
||||
896
wai/quantum-cross-simulator/corpus/qasm/clifford_random_n64.qasm
Normal file
896
wai/quantum-cross-simulator/corpus/qasm/clifford_random_n64.qasm
Normal 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];
|
||||
899
wai/quantum-cross-simulator/corpus/qasm/clifford_random_n65.qasm
Normal file
899
wai/quantum-cross-simulator/corpus/qasm/clifford_random_n65.qasm
Normal 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];
|
||||
550
wai/quantum-cross-simulator/corpus/qasm/clifford_t_n12_d40.qasm
Normal file
550
wai/quantum-cross-simulator/corpus/qasm/clifford_t_n12_d40.qasm
Normal 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];
|
||||
100
wai/quantum-cross-simulator/corpus/qasm/clifford_t_n4_d20.qasm
Normal file
100
wai/quantum-cross-simulator/corpus/qasm/clifford_t_n4_d20.qasm
Normal 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];
|
||||
377
wai/quantum-cross-simulator/corpus/qasm/clifford_t_n8_d40.qasm
Normal file
377
wai/quantum-cross-simulator/corpus/qasm/clifford_t_n8_d40.qasm
Normal 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];
|
||||
|
|
@ -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];
|
||||
|
|
@ -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];
|
||||
438
wai/quantum-cross-simulator/corpus/qasm/dyadic_n10_k30.qasm
Normal file
438
wai/quantum-cross-simulator/corpus/qasm/dyadic_n10_k30.qasm
Normal 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];
|
||||
173
wai/quantum-cross-simulator/corpus/qasm/dyadic_n6_k20.qasm
Normal file
173
wai/quantum-cross-simulator/corpus/qasm/dyadic_n6_k20.qasm
Normal 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];
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
OPENQASM 3.0;
|
||||
include "stdgates.inc";
|
||||
qubit[3] q;
|
||||
|
|
@ -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];
|
||||
|
|
@ -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];
|
||||
|
|
@ -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];
|
||||
|
|
@ -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];
|
||||
|
|
@ -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];
|
||||
|
|
@ -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];
|
||||
|
|
@ -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];
|
||||
10
wai/quantum-cross-simulator/corpus/qasm/gate_c2p.qasm
Normal file
10
wai/quantum-cross-simulator/corpus/qasm/gate_c2p.qasm
Normal 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];
|
||||
10
wai/quantum-cross-simulator/corpus/qasm/gate_c2ry.qasm
Normal file
10
wai/quantum-cross-simulator/corpus/qasm/gate_c2ry.qasm
Normal 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];
|
||||
10
wai/quantum-cross-simulator/corpus/qasm/gate_c2rz.qasm
Normal file
10
wai/quantum-cross-simulator/corpus/qasm/gate_c2rz.qasm
Normal 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];
|
||||
12
wai/quantum-cross-simulator/corpus/qasm/gate_c3x.qasm
Normal file
12
wai/quantum-cross-simulator/corpus/qasm/gate_c3x.qasm
Normal 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];
|
||||
12
wai/quantum-cross-simulator/corpus/qasm/gate_c3z.qasm
Normal file
12
wai/quantum-cross-simulator/corpus/qasm/gate_c3z.qasm
Normal 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];
|
||||
10
wai/quantum-cross-simulator/corpus/qasm/gate_ccx.qasm
Normal file
10
wai/quantum-cross-simulator/corpus/qasm/gate_ccx.qasm
Normal 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];
|
||||
10
wai/quantum-cross-simulator/corpus/qasm/gate_ccz.qasm
Normal file
10
wai/quantum-cross-simulator/corpus/qasm/gate_ccz.qasm
Normal 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];
|
||||
8
wai/quantum-cross-simulator/corpus/qasm/gate_ch.qasm
Normal file
8
wai/quantum-cross-simulator/corpus/qasm/gate_ch.qasm
Normal 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];
|
||||
8
wai/quantum-cross-simulator/corpus/qasm/gate_cp.qasm
Normal file
8
wai/quantum-cross-simulator/corpus/qasm/gate_cp.qasm
Normal 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];
|
||||
8
wai/quantum-cross-simulator/corpus/qasm/gate_crx.qasm
Normal file
8
wai/quantum-cross-simulator/corpus/qasm/gate_crx.qasm
Normal 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];
|
||||
8
wai/quantum-cross-simulator/corpus/qasm/gate_cry.qasm
Normal file
8
wai/quantum-cross-simulator/corpus/qasm/gate_cry.qasm
Normal 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];
|
||||
8
wai/quantum-cross-simulator/corpus/qasm/gate_crz.qasm
Normal file
8
wai/quantum-cross-simulator/corpus/qasm/gate_crz.qasm
Normal 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];
|
||||
10
wai/quantum-cross-simulator/corpus/qasm/gate_cswap.qasm
Normal file
10
wai/quantum-cross-simulator/corpus/qasm/gate_cswap.qasm
Normal 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];
|
||||
8
wai/quantum-cross-simulator/corpus/qasm/gate_csx.qasm
Normal file
8
wai/quantum-cross-simulator/corpus/qasm/gate_csx.qasm
Normal 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];
|
||||
8
wai/quantum-cross-simulator/corpus/qasm/gate_cu.qasm
Normal file
8
wai/quantum-cross-simulator/corpus/qasm/gate_cu.qasm
Normal 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];
|
||||
8
wai/quantum-cross-simulator/corpus/qasm/gate_cx.qasm
Normal file
8
wai/quantum-cross-simulator/corpus/qasm/gate_cx.qasm
Normal 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];
|
||||
8
wai/quantum-cross-simulator/corpus/qasm/gate_cy.qasm
Normal file
8
wai/quantum-cross-simulator/corpus/qasm/gate_cy.qasm
Normal 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];
|
||||
8
wai/quantum-cross-simulator/corpus/qasm/gate_cz.qasm
Normal file
8
wai/quantum-cross-simulator/corpus/qasm/gate_cz.qasm
Normal 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];
|
||||
|
|
@ -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];
|
||||
6
wai/quantum-cross-simulator/corpus/qasm/gate_h.qasm
Normal file
6
wai/quantum-cross-simulator/corpus/qasm/gate_h.qasm
Normal 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];
|
||||
6
wai/quantum-cross-simulator/corpus/qasm/gate_id.qasm
Normal file
6
wai/quantum-cross-simulator/corpus/qasm/gate_id.qasm
Normal 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];
|
||||
8
wai/quantum-cross-simulator/corpus/qasm/gate_negcx.qasm
Normal file
8
wai/quantum-cross-simulator/corpus/qasm/gate_negcx.qasm
Normal 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];
|
||||
6
wai/quantum-cross-simulator/corpus/qasm/gate_p.qasm
Normal file
6
wai/quantum-cross-simulator/corpus/qasm/gate_p.qasm
Normal 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];
|
||||
6
wai/quantum-cross-simulator/corpus/qasm/gate_rx.qasm
Normal file
6
wai/quantum-cross-simulator/corpus/qasm/gate_rx.qasm
Normal 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];
|
||||
9
wai/quantum-cross-simulator/corpus/qasm/gate_rxx.qasm
Normal file
9
wai/quantum-cross-simulator/corpus/qasm/gate_rxx.qasm
Normal 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];
|
||||
6
wai/quantum-cross-simulator/corpus/qasm/gate_ry.qasm
Normal file
6
wai/quantum-cross-simulator/corpus/qasm/gate_ry.qasm
Normal 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];
|
||||
9
wai/quantum-cross-simulator/corpus/qasm/gate_ryy.qasm
Normal file
9
wai/quantum-cross-simulator/corpus/qasm/gate_ryy.qasm
Normal 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];
|
||||
6
wai/quantum-cross-simulator/corpus/qasm/gate_rz.qasm
Normal file
6
wai/quantum-cross-simulator/corpus/qasm/gate_rz.qasm
Normal 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];
|
||||
9
wai/quantum-cross-simulator/corpus/qasm/gate_rzz.qasm
Normal file
9
wai/quantum-cross-simulator/corpus/qasm/gate_rzz.qasm
Normal 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];
|
||||
6
wai/quantum-cross-simulator/corpus/qasm/gate_s.qasm
Normal file
6
wai/quantum-cross-simulator/corpus/qasm/gate_s.qasm
Normal 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];
|
||||
6
wai/quantum-cross-simulator/corpus/qasm/gate_sdg.qasm
Normal file
6
wai/quantum-cross-simulator/corpus/qasm/gate_sdg.qasm
Normal 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];
|
||||
8
wai/quantum-cross-simulator/corpus/qasm/gate_swap.qasm
Normal file
8
wai/quantum-cross-simulator/corpus/qasm/gate_swap.qasm
Normal 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];
|
||||
6
wai/quantum-cross-simulator/corpus/qasm/gate_sx.qasm
Normal file
6
wai/quantum-cross-simulator/corpus/qasm/gate_sx.qasm
Normal 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];
|
||||
6
wai/quantum-cross-simulator/corpus/qasm/gate_sxdg.qasm
Normal file
6
wai/quantum-cross-simulator/corpus/qasm/gate_sxdg.qasm
Normal 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];
|
||||
6
wai/quantum-cross-simulator/corpus/qasm/gate_t.qasm
Normal file
6
wai/quantum-cross-simulator/corpus/qasm/gate_t.qasm
Normal 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];
|
||||
6
wai/quantum-cross-simulator/corpus/qasm/gate_tdg.qasm
Normal file
6
wai/quantum-cross-simulator/corpus/qasm/gate_tdg.qasm
Normal 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];
|
||||
6
wai/quantum-cross-simulator/corpus/qasm/gate_u.qasm
Normal file
6
wai/quantum-cross-simulator/corpus/qasm/gate_u.qasm
Normal 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];
|
||||
6
wai/quantum-cross-simulator/corpus/qasm/gate_x.qasm
Normal file
6
wai/quantum-cross-simulator/corpus/qasm/gate_x.qasm
Normal 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];
|
||||
6
wai/quantum-cross-simulator/corpus/qasm/gate_y.qasm
Normal file
6
wai/quantum-cross-simulator/corpus/qasm/gate_y.qasm
Normal 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];
|
||||
6
wai/quantum-cross-simulator/corpus/qasm/gate_z.qasm
Normal file
6
wai/quantum-cross-simulator/corpus/qasm/gate_z.qasm
Normal 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];
|
||||
14
wai/quantum-cross-simulator/corpus/qasm/ghz_by_fusion.qasm
Normal file
14
wai/quantum-cross-simulator/corpus/qasm/ghz_by_fusion.qasm
Normal 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];
|
||||
20
wai/quantum-cross-simulator/corpus/qasm/ghz_counts_n8.qasm
Normal file
20
wai/quantum-cross-simulator/corpus/qasm/ghz_counts_n8.qasm
Normal 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];
|
||||
15
wai/quantum-cross-simulator/corpus/qasm/ghz_n12.qasm
Normal file
15
wai/quantum-cross-simulator/corpus/qasm/ghz_n12.qasm
Normal 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];
|
||||
5
wai/quantum-cross-simulator/corpus/qasm/ghz_n2.qasm
Normal file
5
wai/quantum-cross-simulator/corpus/qasm/ghz_n2.qasm
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
OPENQASM 3.0;
|
||||
include "stdgates.inc";
|
||||
qubit[2] q;
|
||||
h q[0];
|
||||
cx q[0], q[1];
|
||||
6
wai/quantum-cross-simulator/corpus/qasm/ghz_n3.qasm
Normal file
6
wai/quantum-cross-simulator/corpus/qasm/ghz_n3.qasm
Normal 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];
|
||||
8
wai/quantum-cross-simulator/corpus/qasm/ghz_n5.qasm
Normal file
8
wai/quantum-cross-simulator/corpus/qasm/ghz_n5.qasm
Normal 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];
|
||||
11
wai/quantum-cross-simulator/corpus/qasm/ghz_n8.qasm
Normal file
11
wai/quantum-cross-simulator/corpus/qasm/ghz_n8.qasm
Normal 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];
|
||||
118
wai/quantum-cross-simulator/corpus/qasm/grover_counts_n5.qasm
Normal file
118
wai/quantum-cross-simulator/corpus/qasm/grover_counts_n5.qasm
Normal 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];
|
||||
1263
wai/quantum-cross-simulator/corpus/qasm/grover_n10.qasm
Normal file
1263
wai/quantum-cross-simulator/corpus/qasm/grover_n10.qasm
Normal file
File diff suppressed because it is too large
Load diff
38
wai/quantum-cross-simulator/corpus/qasm/grover_n3.qasm
Normal file
38
wai/quantum-cross-simulator/corpus/qasm/grover_n3.qasm
Normal 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];
|
||||
112
wai/quantum-cross-simulator/corpus/qasm/grover_n5.qasm
Normal file
112
wai/quantum-cross-simulator/corpus/qasm/grover_n5.qasm
Normal 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];
|
||||
491
wai/quantum-cross-simulator/corpus/qasm/grover_n8.qasm
Normal file
491
wai/quantum-cross-simulator/corpus/qasm/grover_n8.qasm
Normal 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];
|
||||
|
|
@ -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];
|
||||
103
wai/quantum-cross-simulator/corpus/qasm/mps_ghz_n100.qasm
Normal file
103
wai/quantum-cross-simulator/corpus/qasm/mps_ghz_n100.qasm
Normal 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];
|
||||
33
wai/quantum-cross-simulator/corpus/qasm/mps_ghz_n30.qasm
Normal file
33
wai/quantum-cross-simulator/corpus/qasm/mps_ghz_n30.qasm
Normal 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];
|
||||
53
wai/quantum-cross-simulator/corpus/qasm/mps_ghz_n50.qasm
Normal file
53
wai/quantum-cross-simulator/corpus/qasm/mps_ghz_n50.qasm
Normal 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];
|
||||
499
wai/quantum-cross-simulator/corpus/qasm/mps_qft_n30.qasm
Normal file
499
wai/quantum-cross-simulator/corpus/qasm/mps_qft_n30.qasm
Normal 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
Loading…
Reference in a new issue