About this map
Sections
What this is
Quantum algorithms are not written from scratch. They are assembled from a small number of reusable steps, and almost every published method is a different route through the same handful of them.
This is a map of those routes. Circles are the things an algorithm can be holding. Lines are the steps that carry you from one to the next. A method is a path across.
Nothing here is generated. Every line was read out of a paper and checked against it.
How to read it
- Something you can hold — a state, a matrix, a circuit, an answer.
- The same, in the middle of a step you have opened.
- A step. Someone has published a way through it.
- A step whose way through has not been pinned to one method.
- A step nothing published fills yet.
- A step you have opened. What is drawn inside it is how it was done.
- There is a record in the repository for this one.
How to move around
- Two fingers move the map. Pinch to zoom, or hold ctrl and scroll.
- Click a step to open it in place — everything else stays where it is.
- Click a name to read the full record without leaving the map.
- Arrow keys move, plus and minus zoom, zero puts it back.
What a line is claiming
A solid line means a paper puts those two steps together and we have the citation. A long-dashed line means the route is recorded but no single method has been named for that step. A short-dashed line means nothing published fills it — the step is real, the way through is not written yet.
A count after a step's name — ×T/h, ×O(κ) — means the route walks that step that many times rather than once. It is the source's own symbol, and the card says what it stands for and what one turn costs. A step with no count is a step no source we read said is repeated, which is not the same as one taken once.
A line drawn nested under another, on the soft shaded band behind it, is a narrower version of the line above it: the same construction, re-analysed or re-tuned, filling the same step. It is why two lines can draw the identical interior and still be two entries. Lines outside the band are alternatives to their neighbours, not versions of them.
The map does not hide the gaps. An empty step is drawn as an empty step.
What is not here yet
The map covers the algorithm literature. The repository covers circuits and primitives. They overlap less than you would expect, and where a method has no record we say so on its page rather than leaving the space blank.
Where something named here does have a record, its name links straight to it.
Method
Discrete adiabatic inversion
Encode the solution as the null eigenstate of a Hamiltonian path built from and , follow that path with a sequence of qubitization walk operators to fixed precision, then finish with an eigenstate filter implemented as a linear combination of walk operators rather than by quantum signal processing. Costa and co-authors prove an adiabatic theorem for intrinsically discrete-time evolutions, which removes the residual that continuous adiabatic treatments carried.
Open the full recordFills the slot: Quantum linear solveExpand it here — a map of just this
Needs the walk-operator (qubitization) form of access to the path Hamiltonians and a lower bound on the spectral gap along the path, which amounts to a known upper bound on . The authors' stated advantages are that the algorithm is simpler and easier to implement than the sub-optimal alternatives, and that the constant factors are determined, so gate counts can be worked out for a specific application.
An access model for — sparse row/column entry oracles, or a block-encoding; a unitary preparing ; a known upper bound on the condition number; the normalisation ; and a target state error .
Linear system Ax = b → Block-encodingBlock-encode a matrix
The slot must encode not alone but the path Hamiltonian , assembled from a block encoding with , the oracle inside , four ancilla qubits, and a one-qubit rotation — the only operation through which the step index enters. A reflection on the control qubits then turns that encoding into the walk operator . assumption: the block encoding must be symmetric and its operator sequence self-inverse, which is what qubitisation requires, and must be applicable in a selected way — either , , or the identity. approximation: using at the start and a Hadamard rather than at the end block-encodes in place of ; that prefactor lies between and , and reduces the gap.
approximationassumption
Block-encoding → Block-encoding of f(A)Matrix function
What this slot supplies here is not an approximation of but a filter on the walk's eigenphases, applied as a linear combination of walk steps with weights prepared symmetrically before and after, giving . approximation: the ideal filter is replaced by the Dolph–Chebyshev window with , which minimises the largest leakage, and the error of the filtered state is bounded by over the eigenphases outside the spectrum of interest. Setting the width of the peak equal to the gap gives , so the cost is calls to the block-encoded matrix rather than the of the singular-value-processing filter, at the price of one extra ancilla qubit. assumption: the initial probability of the state on the spectrum of interest is at least — which is what running the preceding walk to a fixed precision is for.
approximationassumption
Block-encoding of f(A) → Solution as a statewalk the eigenpath to the solution
The eigenpath is , whose eigenvalue-zero eigenstate is carried from to , and it is walked with qubitisation steps, , rather than simulated as a continuous evolution. The schedule satisfies , slowing the walk where the gap is small. approximation: stands in for the exact gap — it is a lower bound, written as an equality — and for a general the relation is what lets the same schedule function be kept. The discrete adiabatic theorem then bounds the departure from the ideal path as for positive-definite Hermitian and for general , so a fixed error is reached in steps. assumption: with , and steps of the walk under the schedule.
approximationassumption
A flagged state -close in to . It does not return , any entry of , or any classical functional of — those cost extra and are decided a layer above.
- Prepare an input state
Map to a state whose amplitudes are proportional to a specified vector , to within . The cost is set by which description of you hold, not by the algorithm that consumes it.
This route uses the oracle , with , in two places: to prepare the initial state , which is the eigenvalue-zero eigenstate of that the walk is to carry to , and to build the projector from and , which sits inside every step's block encoding of . assumption: access to the oracles includes forward, reverse and controlled uses; only the reflection inside has to be made controlled, not itself.
assumption
The run is a classical numerical simulation, and it covers the adiabatic half of the algorithm only: the walk is simulated and its output state compared against the ideal solution, while the filter of Section 4 is costed by formula and never executed, so every error quoted here is the adiabatic error and not the final . For each condition number , Costa, An, Babbush and Berry drew 100 independent random non-Hermitian matrices, used the schedule function of the 2021 paper at , and measured complexity as the number of calls to the block encoding, which is the number of walk steps. Holding the step count fixed across all 100 instances at each , chosen so the root-mean-square error over those instances comes as close to as it can without exceeding it, gives 36 steps at for , then 76 at , 120 at , 176 at , and 232 steps at for (Table 1). Reading that last row through is where the practical constant comes from, about 1,250 times smaller than the that this paper takes from page 16 of the published version of the 2021 work; the abstract rounds that ratio to about 1,200. The constant is not one number but a function of the target error: the same instances need 288 steps for and 344 for , giving and (Table 3). Two application matrices from the SuiteSparse collection, both and non-Hermitian, were run the same way: a directed graph (ID 168) with reached in walk steps, and a circuit simulation problem (ID 1199) with reached in steps (Table 2). Against the randomised solver on the same instances the walk is between 7.42 and 8.03 times cheaper on the random matrices, though the comparison sets walk steps against the randomised method's total evolution time, which the authors argue lower bounds its true cost rather than equalling it. For the two SuiteSparse matrices Table 2's own ratio column gives 9.58 and 457, while the running text of Section 3.2 says 9.2 and 4.0 for those same two cases; this record transcribes both and reconciles neither.
Classical simulation · Tables 1-3 and Section 3.2 of arXiv:2312.07690
given the walk-operator (qubitization) form of access to the path
Hamiltonians and a lower bound on the spectral gap along the
path, which amounts to a known upper bound on kappa
encode the solution as the null eigenstate of a Hamiltonian path built
from A and |b>
follow that path with a sequence of qubitization walk operators to fixed
precision
# the record does not state how many walk operators that sequence
# contains, only the complexity below
finish with an eigenstate filter implemented as a linear combination of
walk operators
# rather than by quantum signal processing
# the authors' framing is that the adiabatic route reaches near-linear
# kappa without a complicated variable-time amplitude amplification
# procedure
# O(kappa log(1/epsilon)) -- strictly linear in kappa, matching a known
# lower bound on the complexity, and also optimal in the combined
# scaling in kappa and the precision epsilon. The adiabatic theorem
# proved here is for intrinsically discrete-time evolutions, which is
# what removes the residual log(kappa) that continuous adiabatic
# treatments carried.
# the authors' stated advantages: the algorithm is simpler and easier to
# implement than the sub-optimal alternatives, and the constant factors
# are determined, so gate counts can be worked out for a specific
# application
# and yet constant factors in this family are unsettled. Numerical
# testing on random matrices reports this solver's constant factor about
# 1,200 times smaller than the published upper bound, and about an order
# of magnitude better than the randomized adiabatic approach of
# arXiv:2305.11352 -- but against the 2023 version of that work, whose
# published 2025 version postdates it. The ranking rests on a 2023
# comparison.Costa, An, Sanders, Su, Babbush and Berry state a complexity of — strictly linear in , matching a known lower bound on the complexity, and also optimal in the combined scaling in and the precision . Their framing is that the adiabatic route reaches near-linear without a complicated variable-time amplitude amplification procedure.
None found yet.
Constant factors in this family are unsettled. Costa, An, Babbush and Berry (arXiv December 2023; Quantum 9, 1887 (2025)) report numerical testing on random matrices showing the discrete adiabatic solver's constant factor is in practice about 1,200 times smaller than the published upper bound, and about an order of magnitude better than the randomized adiabatic approach of arXiv:2305.11352 — but that comparison was made against the 2023 version of that work, whose published 2025 version postdates it. The ranking therefore rests on a 2023 comparison; the published Quantum version of the discrete-adiabatic benchmark still cites the 2023 preprint of the randomized solver.
Discrete-adiabatic QLSP solver, classical simulation in MATLAB
- The discrete adiabatic quantum linear system solver has lower constant factors than the randomized adiabatic solver
Pedro C. S. Costa, Dong An, Ryan Babbush, Dominic Berry · 2023
About
Built to settle a costing question rather than a correctness one. The upper bound proved from the discrete adiabatic theorem combines several separate approximations, and the constant it yields for is loose enough that the authors say it serves only for a rough estimate of the walk steps a given error needs. A competing randomised solver had been given a tighter bound and argued on that basis to be faster in practice, so both were run on the same matrices to find out what each actually costs.
Methods
The interpolating Hamiltonian is block encoded by selecting between block encodings of and under a one-qubit rotation , and a reflection turns that into the qubitised walk operator. The non-Hermitian case doubles the dimension by embedding in a Hermitian matrix carrying and off the diagonal, and uses four further ancillas beyond the one the block encoding of needs: one selecting between the blocks of , one preparing the combination of and , one implementing , and one selecting between the blocks of , of which the first and last count as part of the system the Hamiltonian acts on. The schedule is the family of the 2021 paper, taken at . Two protocols are run: for the figures the step count is raised gradually until the norm distance between the actual and the ideal state falls below the target , and for the tables a single step count is applied to all 100 instances at a given and chosen to bring the root-mean-square error as close under as it will go. The filtering stage is not simulated at all; Section 4 costs it analytically from together with the repetition factor , where .
Data
For the random tests, 100 independently generated matrices per condition number at , in dimensions , and , in a Hermitian positive-definite family and a general non-Hermitian family; the paper reports that dimension does not significantly alter the complexity, as theory expects. How those matrices are generated is not stated in the text and lives only in the source code. For the application cases, two non-Hermitian matrices from the SuiteSparse Matrix Collection of Davis and Hu, a directed graph with ID 168 and a circuit simulation problem with ID 1199, the collection recorded as accessed on 2024-10-23.
Code
Reference 15 of the paper is a public GitHub repository, PcostaQuantum/QLSP-via-discrete-adiabatic-method, holding MATLAB scripts; the citation points at the file Walk_error_Herm.m inside it and records access on 2025-01-24. The randomised solver used as the comparison arm has a separate repository of its own, cited as reference 17, which is code for that other method and not for this one.
Results
Nothing was run on quantum hardware and no quantum simulator backend is named: the reported complexity is a count of block-encoding calls read off a classical computation of the state. For non-Hermitian matrices the practical constant is at and a target error of , which the paper places about 1,200 times below the published upper bound's constant. The positive-definite case is far cheaper again, 4 to 24 walk steps across the same range of , which Section 4 reads as . The walk beats the randomised method by factors of 7.42 to 8.03 on the random non-Hermitian instances, and the scatter plots record that across every instance tested there was no case where the randomised method surpassed the walk, the maximum cost of the walk staying below the minimum cost of the randomised method at fixed condition number and matrix type. Because the walk's advantage is measured as steps against evolution time, the authors state it would grow further once the cost of implementing that time evolution is included.
- The discrete adiabatic quantum linear system solver has lower constant factors than the randomized adiabatic solver
Original construction with determined constant factors
- Optimal scaling quantum linear systems solver via discrete adiabatic theorem
Pedro C. S. Costa, Dong An, Yuval R. Sanders, Yuan Su, Ryan Babbush, Dominic W. Berry · 2021
About
The paper that defines the method, and it is written to be implementable rather than only asymptotic. Costa, An, Sanders, Su, Babbush and Berry prove an adiabatic theorem for intrinsically discrete time evolutions and build the linear-systems algorithm directly on the walk operator, which is what removes the Dyson-series overhead the continuous adiabatic treatments carried. Beyond the scaling, its stated aim is to determine the constant factors in the algorithm so that complexity can be worked out in terms of gate counts for a specific application.
Methods
Block encodings of and are combined into one of , and a reflection on the ancillas turns it into the walk operator . The schedule obeys with , and the theorems are proved at . Filtering is by a linear combination of walk steps rather than by singular value processing: the window is the Chebyshev polynomial with , and matching its width to the gap gives calls to the block-encoded matrix, against for the singular-value-processing filter. The price is one extra ancilla, two rather than one, and the advantage claimed for it is that the gate sequence is much simpler to determine than the rotation angles quantum signal processing needs.
Data
A Hermitian positive matrix, with the error bound evaluated as a function of the condition number and of the schedule exponent at a fixed number of walk steps. No instance ensemble and no matrix collection enter it: the quantity computed is an operator-norm bound, not a solution error measured over samples.
Code
The arXiv v1 read here publishes no source artefact and names no repository. The only published code for this solver is the MATLAB repository recorded on the other implementation.
Results
Its numerics measure a bound rather than a run, and this record says so plainly instead of dressing it up. Rather than taking the upper bounds on the first and second differences of the walk operator, the authors compute and exactly to fix the coefficients and in their error theorem, and evaluate the resulting bound at a fixed walk steps. The bound comes out approximately linear in , which is what makes the overall complexity linear in ; at it is smallest at , below the the theorems use. At the fitted bound is , about nine times smaller than the constant the corresponding theorem proves. The paper reads as needing roughly walk steps to keep the probability on the spectrum of interest at least , against a filter factor of only about 20 at an of one part in a billion, and concludes that there is over an order of magnitude between its numerics and its analytically proven scaling constants.
- Optimal scaling quantum linear systems solver via discrete adiabatic theorem
None found yet.
References
- Optimal scaling quantum linear systems solver via discrete adiabatic theorem
Pedro C. S. Costa, Dong An, Yuval R. Sanders, Yuan Su, Ryan Babbush, Dominic W. Berry · 2021
- The discrete adiabatic quantum linear system solver has lower constant factors than the randomized adiabatic solver
Pedro C. S. Costa, Dong An, Ryan Babbush, Dominic Berry · 2023
Where the routes meet
11 problems nothing else needs — the places a reader arrives. Open a line to see what is recorded inside it, or click its name to go there.
13 lines have something recorded inside that you have not opened.
Of the routes that have been taken apart, 15 are built entirely from named slots, 15 hand off part of the work and finish the rest themselves, and 20 are one undivided act. None of the three is a defect; they are different things to reuse.
Every line on this figure, in words
The lines on this figure
Solve a nonlinear ODE dy/dt = F(y)
- Embed a nonlinear system into a linear one — opens into 6 · a way across — click it to open it here
- Solve a linear ODE du/dt = A(t)u + b(t) — opens into 9 · a way across — click it to open it here
- Choose a time discretization or propagator approximation → Quantum linear solve — open
- Choose a time discretization or propagator approximation — opens into 6 · a way across — click it to open it here
- Quantum linear solve — opens into 5 · a way across — click it to open it here
- Simulate Hamiltonian evolution → Estimate an observable — open
- Simulate Hamiltonian evolution — opens into 3 · a way across — click it to open it here
- Estimate an observable — opens into 4 · a way across — click it to open it here
Compile a circuit to a specific device
- NISQ transpilation (retargetable pass pipeline) — open · opened: what was inside is drawn in its place
- Satisfy the hardware connectivity constraint — opens into 3 · a way across — click it to open it here
- Fault-tolerant compilation (Clifford+T pipeline) — opens into 2 · a way across — click it to open it here
Estimate an excited-state energy
- Variational quantum deflation — opens into 3 · a way across — click it to open it here
- Subspace-search variational eigensolver — opens into 3 · a way across — click it to open it here
- Quantum subspace expansion
- Quantum equation of motion
- Folded-spectrum variational eigensolver — opens into 3 · a way across — click it to open it here
- Penalty-constrained variational eigensolver — opens into 3 · a way across — click it to open it here
- Multistate contracted variational eigensolver — opens into 3 · a way across — click it to open it here
Every step you can open
1 of these have an object recorded in the middle; the rest open into the methods that fill them.
- Solve a nonlinear ODE dy/dt = F(y)
- Replace a spatial domain with a finite grid
- Discretize a PDE into one linear system
- Embed a nonlinear system into a linear one
- Solve a linear ODE du/dt = A(t)u + b(t)
- Recast a non-Hermitian generator as Hamiltonian evolution
- Choose a time discretization or propagator approximation
- Quantum linear solve
- Matrix function
- QSP phase factors
- Polynomial approximation
- Block-encode a matrix
- Prepare an input state
- Amplify a success branch
- Simulate Hamiltonian evolution
- Estimate an observable
- Compile a circuit to a specific device
- Satisfy the hardware connectivity constraint
- Approximate a continuous rotation in a discrete gate set
- Recover a noiseless expectation value by post-processing
- Build logical qubits at a target logical error rate
- Estimate a Hamiltonian's ground-state energy
- Choose a parameterised trial state
- Minimise the objective over the parameters
- Estimate an excited-state energy
- Measure what the machine can actually do
- Recover the period of a periodic function
- Estimate the eigenphase of a unitary
- Find the item a check accepts
- Walk a graph to the vertex you want
- Search a cost Hamiltonian for the assignment it minimises
What is on this map, counted
What is here, counted
147 nodes — 31 slots and 116 methods.
76 of the 147 link to a record in the Atlas, between them naming 89 records. The rest name papers and nothing else: this graph describes work the catalogue has not got yet, and the nodes with no record are the list of what a corpus pass has to go and read.
0 slots have no method recorded, and 32 methods have not been taken apart. Both are shown as what they are rather than left blank.
Every claim here rests on a source. This graph cites 140 papers; they and the 172 the Atlas cites alone are registered in one place, with what each reports and everywhere it is cited from. Papers