{ "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" }, { "entry": "dyadic_n20_k16", "engine": "qsim.statevector", "quantity": ["distance from the exact state"], "right": "the integer reference: every double-precision engine and the bit-exact method met it within their bounds on this circuit (the results files), and the same construction on 16 qubits meets the single-precision bound.", "finding": "On macOS on arm64, qsim 0.22.1 (single precision, gates fused to two qubits, one thread), on 148 rotations by m/2^16 of a turn and cz gates on 20 qubits, gives a state 2.3e-4 from the exact one, past the single-precision bound of 1.9e-4 that 148 gates allow (tools/tolerance.py), and almost all of it is the norm: 1.00023. Its run of the first 60 gates has a norm larger than its run of 59 by 6e-5, where the 60th gate applied by hand in single precision to the 59 gates' state moves the norm by under 10^-6. Cirq 1.7.0's own complex64 simulator gives the same distance. On 16 qubits the same construction stays within its bound. On Linux on x86_64, with the same pinned versions, neither shows it: qsim's distance is 5.5e-7 and the norm moves by 1e-8. Each is a case of the reproducer, which builds the circuit with the corpus's own adapter.", "reproducer": "corpus/reproducers/qsim_single_precision_norm.py" } ] }