A research monorepo: one small provider-agnostic quantum library (qcore) and 57 independent, publishable
experiments, each probing one concrete application of quantum or quantum-inspired computing against honest
classical baselines. Everything runs on a laptop; experiments 16, 34, 36, 37, 38 and 39–49 also ran on IBM hardware.
Each experiment is its own uv environment with a paper-shaped README, a reproducible run.py, tests and a
committed results/.
docs/ surveys (applications, libraries, idea catalog), cross-experiment findings, hardware runs, the contract
qcore/ provider-agnostic circuit IR + backend registry (the only shared code)
experiments/ NN-slug/ — independent units, each publishable on its own
scripts/ run_all_tests.sh, seed_spread.py, QPU submit / collect helpers
| Document | What it answers |
|---|---|
| docs/01-quantum-applications-survey.md | What quantum computing is good for, by industry and algorithm family, rated Proven / Contested / Promising / Hype |
| docs/02-simulator-libraries-survey.md | Which simulator libraries are alive on Python 3.12–3.14 / Apple Silicon, and what each experiment used |
| docs/03-novel-ideas-catalog.md | The idea catalog behind the experiments, with a status table and one-line outcomes |
| docs/04-cross-experiment-findings.md | The scoreboard, the artefacts that would have looked like quantum wins, and the 10-point checklist every experiment follows |
| docs/05-hardware-runs.md | Where to get QPU time, how to point any experiment at it, and what the ibm_fez runs showed |
| docs/EXPERIMENT_CONTRACT.md | The rules every experiment folder follows |
One tiny IR, many backends; swap simulators or real hardware with one string.
from qcore import Circuit, Hamiltonian, get_backend
c = Circuit(3).h(0).cx(0, 1).rzz(0.4, 1, 2).measure_all()
be = get_backend() # best installed: aer > cirq > pennylane > qulacs > numpy
be.run(c, shots=1000).counts
be.expval(c, Hamiltonian([(1.0, "ZZI"), (0.5, "IXX")]))Backends: numpy, aer, cirq, pennylane, qulacs, stim (Clifford / QEC), quimb (tensor network),
density (noise, reset, mid-circuit measurement), ibm (hardware via qcore.hwjob). Also Hamiltonian, QUBO,
NoiseModel, optimisers and bootstrap statistics. Conventions and a backend benchmark: qcore/README.md.
cd qcore && uv sync --extra all --group dev && uv run pytest -q
cd experiments/<folder> && uv sync && uv run pytest -q && uv run python run.py # --quick for a < 2 min run
One line per experiment, taken from its abstract; the full tables, confidence intervals and limitations are in each README.
| # | Experiment | Verdict (honest) |
|---|---|---|
| 01 | QAOA MaxCut scaling (angle transfer, warm starts) | Angle transfer works (Δ ≤ 0.02); P(optimal) decays ≈ 0.87ⁿ; GW/greedy/SA are exact at n ≤ 20 and WS-QAOA inherits its score from the warm start |
| 02 | Flakiness-aware test selection (QUBO, QAOA, SA) | The squared coverage penalty makes the QUBO optimum infeasible on 19/20 suites; after repair, greedy set cover (≤ 1 ms) beats every QUBO method |
| 03 | Join ordering as a QUBO | The encoding decides everything: the adjacency QUBO is 25–50 % off at its own optimum (ρ ≈ 0.4), the prefix-log QUBO reaches ρ ≈ 0.9–0.97; DP is exact in 0.2 ms |
| 04 | CI/CD DAG scheduling on heterogeneous runners | HEFT is optimal on 94 % of pipelines in 0.2 ms and the exact MILP takes ≤ 4 s; FIFO-by-label is 35–41 % above optimal; the QUBO's time discretisation alone costs 6–22 % |
| 05 | Grover on dependency-resolution SAT | Oracle exact to 1e-15; Grover needs 1.5–3.3× more clause evaluations than a 60-line DPLL at n = 6–12; a 200-variable instance needs 739 logical qubits and 3e34 T gates |
| 06 | VQE on H₂ and LiH | UCCSD reaches chemical accuracy at every geometry; hardware-efficient ansätze fail on LiH (HEA-L1 ≡ Hartree–Fock) unless trained with L-BFGS on exact gradients |
| 07 | Projected quantum kernels for anomaly detection | The qubit budget is the bottleneck: kNN on raw bigrams reaches AUC 1.00, nothing inside the budget exceeds 0.84, and a median-bandwidth RBF scores below chance |
| 08 | Quantum reservoir computing for DevOps telemetry | QRC ties an equal-feature-count classical random-feature map and loses on NARMA-10 / Mackey–Glass; AR(10) is the best 1-step forecaster |
| 09 | IQAE for VaR and CVaR | Query slopes −0.50 (MC) vs −0.98 (IQAE) confirmed; the small-amplitude bias (up to 15×) is 84 % removed by a Jeffreys correction; at equal queries MC is still 2–5× more accurate |
| 10 | Grover second-preimage on a toy hash | Success matches sin²((2k+1)θ) to 1e-15 at 14–26 qubits; a 128-bit target needs 2⁸⁰ T gates and 510 logical qubits, only 2³² cheaper than classical under NIST's depth cap |
| 11 | QEC decoding as a tabular ML benchmark | Generic classifiers reach 1.1–2.5× MWPM's logical error rate at d = 3 but get worse at d = 5; a hybrid given the MWPM bit just copies it |
| 12 | Tensor-network #SAT for product lines | Exact counts on 42 feature models (treewidth 3–10, 0.8–4.6 ms per contraction), yet a 200-line DPLL is faster |
| 13 | MPO compression of neural-network weights | Un-healed MPO is the worst structured method at equal parameters; healed, it beats SVD at tight budgets but not magnitude pruning; int4 is free |
| 14 | Simulated bifurcation for community detection | aSB/bSB/dSB reach the brute-force bipartition optimum and beat spectral/SA; none beats Louvain once k > 2; implicit-coupling dSB scales as n^0.98 to 10⁵ nodes |
| 15 | Szegedy quantum PageRank at scale | "Hub suppression" is false at α = 0.85; the real effect is degeneracy lifting (76–89 % of classical ties); quantum ranks are less stable and 62× slower |
| 16 | Clifford QCA as texture / terrain generator | Stabilizer automata on 64×64 tori in ms with marginals quantised to {0, ½, 1}: a mask generator, not a noise field; on ibm_fez (129 qubits) deterministic cells stay 94 → 67 % correct over 8 steps |
| 17 | Born machines for rhythm generation | The 16-qubit QCBM's held-out MMD² win over a Markov chain survives 3 seeds (0.012 vs 0.033); its NLL win does not |
| 18 | Quantum-inspired SimHash | A worse-conditioned SimHash: flatter collision curve, lower recall per candidate, 1 400–11 200× slower to encode |
| 19 | HP lattice protein folding: penalty vs penalty-free QAOA | The turn encoding's feasible fraction falls to 8 % at N = 10; the literature penalty λ = 2 has a wrong minimiser on half the N ≥ 9 sequences, penalty-free is right; QAOA P(opt) ≤ 1.5 % |
| 20 | Quantum-walk kernels for code-clone detection | Label-aware classical kernels (WL, shortest-path) reach AUC 1.000; the best quantum-walk kernel 0.970 at 10–500× the cost |
| 21 | Quantum Betti numbers for dependency cycles | QPE accuracy is set by the spectral gap, not samples, and sizing it needs the classical diagonalisation it replaces; a Chebyshev filter is more accurate at 6× fewer operations |
| 22 | VQLS inside a CFD pressure-Poisson loop | No error accumulates over 50 projection steps, but they cost ≈ 9×10⁷ Hadamard tests vs 167 CG matvecs, and the ansatz fails on a random right-hand side |
| 23 | MPS anomaly detection on log features | χ = 1 → 2 is the whole gain (+0.08 AUC), χ = 2…16 is flat; a BIC-selected Gaussian mixture beats every MPS (0.894 vs 0.826 AUC) at 12× cheaper scoring |
| 24 | Gradient-inversion attacks on quantum federated learning | "Inherent privacy" is the readout light cone (min(d, 2L − 1) identifiable features) plus non-convexity; at full rank a single example is inverted exactly, like the MLP |
| 25 | Quantum shift-search for barcode demultiplexing | Oracles verified to 1e-15 on statevectors and to shot noise on decision diagrams at 79 qubits in ≤ 32 ms; the classical-data oracle is a lookup table and N ≤ 16 makes √N irrelevant |
| 26 | Register allocation as graph colouring | All 45 real interference graphs are chordal; exact B&B ≤ 0.5 ms; Chaitin–Briggs and mean-field reach 97–99 % of optimal, SA-QUBO 89–99 % at 100–600× the time |
| 27 | Fuzzing seed-corpus minimisation as set cover | Set-cover reductions solve half of 18 corpora and force 74 % of every minimum; the ILP takes 0.12 s (16–26 s at 10⁵ seeds); afl-cmin is 1.3× the minimum count |
| 28 | LLVM phase ordering as a permutation QUBO | Over 720 orders of 6 passes only 1.20× separates worst from best and 15 % are optimal, so random search with 20 evaluations reaches 0.991; the surrogate argmin is optimal 12/12 regardless |
| 29 | OCC commit ordering as a QUBO | Minimum aborts = minimum feedback vertex set; FIFO aborts 2–5 more per batch, greedy FVS is within 0.4 in µs; the FVS QUBO is exact, the linear-ordering proxy is not |
| 30 | Wi-Fi bonded-channel assignment | The spectrum-assignment QUBO is exact, but SA on it reaches 0.52–0.80 of optimal while SA over assignments reaches 0.97–1.02; the ILP is exact to 20 APs |
| 31 | Cold-start seed-item selection as a QUBO | Greedy is optimal on 12/12 (ILP ≤ 0.13 s); the QUBO is a truncated inclusion–exclusion whose argmax covers 0.81–0.89 of optimal at ≥ 40 items |
| 32 | Platformer level generation with a quantum reservoir | An order-2 Markov table beats the best 8-qubit reservoir (NLL 1.263 vs 1.296) 30 000× faster; reservoir "novelty" is mostly illegal transitions |
| 33 | DisCoCat readers on commit messages | TF-IDF + LR reaches 0.749; only the cups reader generalises (0.664, level with a 3-d linear embedding of equal size); spider/stairs overfit below the majority rate |
| 34 | Noise budget for warm-started QAOA | WS-QAOA's edge over its own warm start vanishes after ≈ 1 expected depolarising event per circuit; mitigation moves the crossing 1.6–2.2×; on ibm_fez 9–36 % of the edge survives |
| 35 | Simulated quantum annealing on penalty QUBOs | PIMC-SQA equals SA after repair (+0.018 [−0.040, +0.073]) and loses to its own temperature-annealed control and to random-restart local search at equal wall-clock |
| 36 | Random-circuit sampling and XEB at laptop scale | 1 000 TN amplitudes undercut one statevector in FLOPs by up to 10⁴, but the statevector wins in wall-clock up to n = 24; shallow circuits are far from Porter–Thomas; ibm_fez f = 0.963 per cycle |
| 37 | QEC decoder benchmark (MWPM, BP, BP+OSD, exact) | Correlated MWPM ties BP+OSD-CS on the surface code at 690–2 900× lower cost; BP alone has no threshold; the exact ILP wins only at low p; ibm_fez repetition code Λ = 4.0 [3.1, 5.3] |
| 38 | Hamiltonian simulation: Trotter, entanglement, the utility circuit | First-order Trotter's observable error is O(dt²) and 2× below second order at equal RZZ count; at 21 qubits sparse Pauli dynamics beats a p₂ = 10⁻² device 4×; on ibm_fez magnetisation decays at the calibrated CZ error rate |
| 39 | Kicked Ising on the full 151-qubit heavy-hex chip | On ibm_fez the exactly checkable k = 5 cells agree within 1.6 SE; in the utility cell (θ_h = 0.8, k = 20) the device sits between sparse Pauli dynamics and MPS χ = 128 with no referee, so no win is claimed |
| 40 | Long-range GHZ with dynamic circuits | Constant depth is not constant time: the CX ladder beats the feed-forward circuit wherever entanglement is certifiable; on ibm_fez only the n = 8 ladder certified (F = 0.71); feed-forward latency 1.0 µs |
| 41 | Multi-round repetition-code memory with dynamic circuits | Below threshold on ibm_fez with Λ = 2.4 [2.1, 2.8] vs 6.7 predicted from calibration ( |
| 42 | Holographic qubit-reuse sampling of 200-site MPS | Z-memory error per reuse (2.3 %) matches T1/T2, X memory loses 9.5 % per reuse through a coherent ≈ 0.4 rad kick from the neighbour's measure + reset; a ξ = 5 state keeps TVD ≈ 0.08 to L = 200 |
| 43 | Daily whole-chip noise census and drift | Day-1 census on ibm_fez: readout matches calibration, gates do not (RB 1.7×, CZ layer 1.3×), spectator error is 16× the twin's; the stale fake twin matches only by cancellation |
| 44 | Sample-based quantum diagonalisation of N₂ (LUCJ, 20–32 qubits) | The heavy-hex-local LUCJ state is 99.5 % Hartree–Fock: device samples beat uniform by 7–14 mHa, but a 3-parameter classical bit-flip sampler ties them and selected CI is 3–5× more accurate |
| 45 | Sample-based Krylov diagonalisation of spin chains (12–48 qubits) | At n = 48 device samples give relative energy error 0.29 (XXZ) / 0.11 (TFIM), within 0.03 of noiseless, while classical CIPSI wins every case by 1.3–4.7× with 25× fewer configurations |
| 46 | Verifiable random-circuit sampling at 20–151 qubits | Error per CZ 6.6–7.4×10⁻³ at 24–44 qubits (≥ 8.4×10⁻³ at 99); patch XEB is biased high 1.15–2×; one amplitude of the 151-qubit depth-8 circuit contracts in 8 ms, so nothing is classically hard |
| 47 | QAOA on the native heavy-hex graph: fractional RZZ vs CZ | Exact QAOA reaches r ≤ 0.76 at p = 3 while SA and local search hit r = 1 in ms; on ibm_fez fractional RZZ halves the 2q count but cuts the energy error by only 14 % (η = 0.86 [0.82, 0.91]) |
| 48 | Error-mitigation showdown on the kicked-Ising circuit | Raw and TREX miss the 0.02 target on all 20 certified points; ZNE reaches it only at 21 qubits (123–198 QPU s per point), nowhere at 50–100; IBM's ZNE error bars are ≈ 20× too small; PEA did not run |
| 49 | Clifford measurement dynamics as a stabilizer-exact error ruler | Deterministic bits lose 3.0–3.2 % per layer on ibm_fez (1.3–1.5× calibration); the excess is measurement-associated dephasing (Z part 25× calibration), not gate error; no transition claim |
| 50 | Shor's algorithm end to end at N ≤ 35 and the resource gap to RSA-2048 | Textbook success holds exactly at 16–23 qubits (P(order) 0.41–0.50 per run, 13–30× a random-outcome null), yet random outcomes plus gcd luck factor N = 21 / 33 as often as Shor; 52n³ Toffolis extrapolate to 4.5×10¹¹ at 2 048 bits, 170× Gidney–Ekerå, and error correction dominates the gap |
| 51 | Integer factoring as a QUBO: the annealing-factoring claims audited | The encoding is exact but its energy carries no partial credit (Spearman −0.01): SA per read equals a uniform guess of the free p, q bits at 10^2.8× the evaluations, cost 2^1.12n vs trial division's 2^0.51n; the "22-bit RSA" integer falls to Fermat in one step |
| 52 | Qubit mapping and routing as a QUBO vs SABRE vs exact | SABRE (2 ms) beats every QUBO layout: the best of 100 SA reads costs +4.95 [3.13, 7.10] SWAPs; the layout-cost proxy tracks SWAPs weakly (ρ 0.44 near optimum), its certified optimum routes worse than SABRE 10/10, and the λ SA needs makes the QUBO optimum infeasible |
| 53 | Data re-uploading QNNs as truncated Fourier series: equal-spectrum control | The QNN never beats the best classical arm on 10 regression pairs: ridge on its own frequencies matches it when the target is reachable and wins 27–37× when not; its one win (labels from a QNN teacher) ties a QNN-prior logistic model |
| 54 | Gate cutting at laptop scale: measured overhead vs the quasi-probability bound | The cut estimator is exact and unbiased with per-shot variance at the γ^{2k} bound; 10⁶ shots at SE 0.02 buy 2 CZ cuts (5 at θ = π/8, 4 QAOA separator edges) where the un-cut circuit needs ≤ 2 247 shots and the exact simulation ≤ 8 s |
| 55 | Gaussian boson sampling for densest-k-subgraph (n ≤ 16) | One exact GBS sample reaches 0.69 of the optimal density vs 0.47 uniform, but first-moment-matched classical samplers explain 60–79 % of that, greedy + local search are never behind at any budget, and 97 % of shots are unusable |
| 56 | Dequantised recommendation: Tang's ℓ²-sampling algorithm vs truncated and randomised SVD | Randomised SVD wins: Tang's sampled top-10 precision is 0.04–0.44 below it at r = 1 000; the sampling trees make Tang flat in the number of users, so one user's list is faster beyond 10⁴–10⁵ users, but each served user costs 570–2 300× rSVD's amortised cost |
| 57 | Quantum counting for cardinality estimation vs HyperLogLog and sampling | Median query slopes −1 vs −½ confirmed and MLAE needs 1.6–12.5× fewer queries than sampling for 10 % error (N = 16 384), but only for black-box predicates below Q = N; single-readout QPE RMS decays as Q^−½ and an estimate costs 10⁴–10⁶ CX gates against a 1 ms scan |
| Theme | Experiments |
|---|---|
| Software-engineering pipelines (compilers, CI, testing, fuzzing, dependencies, code analysis) | 02, 04, 05, 20, 21, 26, 27, 28, 33, 52 |
| Databases and systems (join ordering, transactions, scheduling, networking, cardinality) | 03, 04, 29, 30, 57 |
| Security and privacy (hashes, factoring, anomaly detection, federated learning, QEC data) | 07, 10, 11, 18, 23, 24, 37, 50, 51 |
| Optimisation encodings under audit (QUBO / Ising / permutation / assignment) | 01, 02, 03, 04, 19, 26, 27, 28, 29, 30, 31, 35, 51, 52 |
| Quantum-inspired classical methods that scale (tensor networks, bifurcation, MPS, dequantisation) | 12, 13, 14, 23, 36, 56 |
| Machine learning and generative models (kernels, reservoirs, Born machines, QNLP, re-uploading) | 07, 08, 17, 24, 31, 32, 33, 53, 56 |
| Games, media, science and bio (procedural content, PageRank, TDA, CFD, chemistry, alignment, folding, photonics) | 06, 09, 15, 16, 19, 21, 22, 25, 55 |
| Noise, mitigation and quantum-native benchmarks (noisy QAOA, annealing, RCS / XEB, decoders, Hamiltonian simulation, cutting) | 34, 35, 36, 37, 38, 54 |
| Hardware-first: questions only a QPU answers (dynamic circuits, fractional gates, 100+ qubits, drift) | 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49 |
- Every experiment reports at least one strong classical baseline and, where it exists, the exact optimum.
- Findings are reported as measured. At laptop scale the classical method usually wins; that is the point. Advantage claims need scaling evidence, not a small instance.
- Artefacts that would have looked like quantum wins (degenerate warm starts, infeasible QUBO encodings, mis-specified baselines, lossy pre-processing) are catalogued in docs/04 §2 and audited by the checklist in §5.
scripts/run_all_tests.sh # qcore + every experiment: uv sync + pytest -q + run.py --quick
Full runs take 20 s – 22 min each on an Apple Silicon laptop (median ≈ 4 min); the wall-clock is in each README §4.
Experiment 28 needs Homebrew LLVM's opt only for new pass sets (its evaluation cache is committed).
Python 3.13 (3.12–3.14 supported), uv, no GPU; tested on macOS arm64.
Optional: an IBM Quantum account for the ibm backend (see docs/05).
Code: Apache License 2.0. Write-ups, docs and figures: CC BY 4.0 (see NOTICE). Please cite the repository if you build on it (CITATION.cff). Research code; each experiment README states its own limitations.