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
Qubitization walk simulation
From a block-encoding pair with , build a walk operator that splits the Hilbert space into invariant two-dimensional subspaces, one per eigenvalue of , with eigenvalues . Quantum signal processing phases applied to then produce .
Open the full recordFills the slot: Simulate Hamiltonian evolutionExpand it here — a map of just this
Applies to Hermitian , and consumes a block-encoding-like access model rather than raw data, so it does not solve the data-input problem by itself. The subnormalization is inherited from whatever built the encoding and downstream cost is linear in it. The arccos spectral relation means eigenvalues near the edges of the spectrum are resolved differently from those near zero. On provenance: Low and Chuang build on Childs' extension of Szegedy's quantum walk rather than introducing the walk themselves.
An access model for — a sum of efficiently exponentiable terms, sparse-access oracles, or a block-encoding — plus an evolution time and a target error .
Hamiltonian you can query → Block-encodingBlock-encode a matrix
What this step must hand over is Low and Chuang's standard-form (Definition 1): a unitary on together with a state-preparation unitary satisfying , with the encoded Hermitian and normalized so that . assumption: query access to the inverses and to the controlled versions of both and is assumed as part of the encoding, not built afterwards. That controlled access is load-bearing before any repetition enters: when no reflection acting on the ancilla alone makes qubitizable, so Lemma 10 instead supplies a circuit on one further qubit that queries controlled- and controlled- once each and encodes the same . The encoding is then spent repeatedly rather than once: Theorem 1 charges the whole simulation queries to controlled-, controlled- and their inverses.
assumption
Block-encoding → Circuit for e^{-iHt}walk the encoding, then phase the walk
The block-encoding is turned into a walk. Low and Chuang take — a reflection about the ancilla state times a unitary — and their Lemma 8 gives the conditions on under which the result is a qubitization; where , drops out and exactly. What then does is block-diagonal: for each eigenvalue of it acts on the two-dimensional invariant subspace as a rotation with . A sequence of phased iterates then builds the wanted function of inside each of those subspaces, which is how is reached without any spectral decomposition being computed. approximation: is the truncation, and it is stated exactly rather than asymptotically: , with failure probability and at most two additional ancilla qubits. The is the qubitization convention, in which the subnormalization is already folded into . The earlier quantum-walk literature states the same correspondence as an under a different normalization, which is why the two look like they disagree and do not.
approximation
A circuit approximating to within , with a stated query or gate count, an ancilla count, and the norm parameter — sparsity times , or the LCU 1-norm — that the cost is measured against.
- QSP phase factors
Given an admissible polynomial, compute the phase sequence that makes the quantum-signal-processing product reproduce it to accuracy in classical finite-precision arithmetic.
This method asks the slot for one classical computation, done before the circuit runs: given a target pair approximating , return the phase vector that drives the phased walk iterates. The coefficients handed over are those of the Jacobi-Anger expansion, printed at their Eq. (32) as , truncated at order and rescaled. That right-hand side is the expansion of , not of the left: it is what collapsing the very form the paper quotes one line above, , gives — and for the odd sum carries , since at odd while the even terms are real and unchanged. Nothing downstream turns on it, because and are fitted to whichever target is wanted; the identity as printed is simply the conjugate of the one it claims. Existence and efficient computability of are not this method's own result: they are Theorem 1 of Low and Chuang's earlier QSP letter, restated by number here as Lemma 13 — for even , and are achievable by some iff and for all , and then is computable in classical time. approximation: the truncated pair is only -close to admissible rather than exactly admissible; a stability lemma perturbs it into an admissible pair within .
approximation
given a block-encoding pair (U, |G>) with H = (<G| x I) U (|G> x I),
H Hermitian, and the subnormalisation alpha inherited from whatever
built that encoding
build the walk operator W from (U, |G>)
# W splits the space into invariant two-dimensional SU(2) subspaces, one
# per eigenvalue of H, with eigenvalues exp(+- i arccos(H/alpha))
apply the quantum signal processing phases to W
return exp(-iHt)
# consumes a block-encoding-like access model rather than raw data, so it
# does not solve the data-input problem by itself
# downstream cost is linear in alpha
# the arccos relation means eigenvalues near the edges of the spectrum are
# resolved differently from those near zeroLow and Chuang state a query complexity to both oracles "that is optimal with respect to all parameters in both the asymptotic and non-asymptotic regime", using at most two additional ancilla qubits. The approach subsumes prior sparse-Hamiltonian and linear-combination-of-unitaries approaches with significant improvements in space and gate complexity, such as a quadratic speed-up for precision simulations.
None found yet.
None found yet.
Qualtran's `QubitizationWalkOperator` and `HamiltonianSimulationByGQSP` bloqs
- Expressing and Analyzing Quantum Algorithms with Qualtran
Matthew P. Harrigan, Tanuj Khattar, Charles Yuan, Anurudh Peduri, Noureldin Yosri, Fionn D. Malone, Ryan Babbush, Nicholas C. Rubin · 2024
- Generalized Quantum Signal Processing
Danial Motlagh, Nathan Wiebe · 2023
About
Qualtran is Google Quantum AI's Python library, described in its own repository metadata as "a Python library for expressing and analyzing Fault Tolerant Quantum algorithms". It carries this method as two separate bloqs rather than one, and the split matches this record's own hop — walk the encoding, then phase the walk. `qualtran/bloqs/qubitization/qubitization_walk_operator.py` builds the walk from a block-encoding it is handed rather than one it builds, so it begins where the block-encoding step ends; `qualtran/bloqs/hamiltonian_simulation/hamiltonian_simulation_by_gqsp.py` phases that walk to reach . The first module's header states the purpose in the same order this record does: "The spectrum of a quantum Hamiltonian can be encoded in the spectrum of a quantum 'walk' operator", and "We first document the SelectOracle and PrepareOracle abstract base bloqs, and then show how they can be combined in `QubitizationWalkOperator`." One qualifier belongs at the top, because the artefact does not phase the walk the way this method's own source does: the simulation bloq's References field names Motlagh and Wiebe's Generalized QSP, "Theorem 7, Corollary 8", not Low and Chuang's phased iterate . The walk-operator docstring likewise credits its construction to "Babbush et al. (2018). Figure 1", not to Low and Chuang.
Methods
`QubitizationWalkOperator` is an `attrs.frozen` `GateWithRegisters` holding a single field, `block_encoding: Union[SelectBlockEncoding, LCUBlockEncoding]`. Its docstring states the LCU precondition before anything else — "For a Hamiltonian (where coefficients and are unitaries)" — and then gives the construction as , "a product of two reflections: and ", with the PREPARE output, "". It states the qubitization property in this method's own terms: "The action of partitions the Hilbert space into a direct sum of two-dimensional irreducible vector spaces giving it the name 'qubitization'"; for an eigenstate of with eigenvalue that space is spanned by and an orthogonal state , and the rotation claim is confined to it — "In this space, implements a Pauli-Y rotation by an angle of where ." The header's strict positivity is not what the code carries: `sum_of_lcu_coefficients` is documented as the "value of , i.e. sum of absolute values of coefficients " and returns `self.block_encoding.alpha`. In code the reflection is not written out either; `reflect` returns `ReflectionUsingPrepare(self.block_encoding.signal_state, global_phase=-1)`, `build_composite_bloq` adds the block encoding and then that reflection, and `build_call_graph` charges exactly `{self.block_encoding: 1, self.reflect: 1}`. `HamiltonianSimulationByGQSP` is a `@frozen` `Bloq` over `(walk_operator, t, precision)`. It approximates by the Jacobi-Anger expansion , truncated to ; the truncation degree comes from `degree_jacobi_anger_approximation(self.t * self.alpha, precision=self.precision / 2)` in `qualtran/linalg/polynomial/jacobi_anger_approximations.py`. Because "the eigenphases of the walk operator above are , we can use the GQSP polynomial with to obtain ", and the resulting operator is sandwiched: . `build_call_graph` charges, for degree : one `Always(prepare)`, one `Always(prepare.adjoint())`, copies of the walk operator controlled on `CtrlSpec(cvs=0)`, copies of `walk_operator.adjoint().controlled()`, and arbitrary `SU2RotationGate`s. The `precision` argument is documented as "Split into two: half to approximate to a polynomial, and half to synthesize the underlying GQSP rotations."
Data
No physical dataset — the inputs are Hamiltonians constructed in code. The registered `bloq_example`s for the walk operator are three: a 1D Ising model, `get_walk_operator_for_1d_ising_model(4, 2e-1)`; a tensor-hypercontraction chemistry Hamiltonian on `num_spinorb = 152`, `num_bits_state_prep = 10`, `num_bits_rot = 20`, `thc_dim = 450`, with random integrals from `build_random_test_integrals(thc_dim, num_spinorb // 2, seed=7)` and a source comment reading "Li et al parameters from openfermion.resource_estimates.thc.compute_cost_thc_test"; and a sparse chemistry Hamiltonian on `num_spin_orb = 8`, `num_bits_rot_aa = 8`, `num_bits_state_prep = 12`. The simulation bloq's own example is a Fermi-Hubbard lattice, `get_walk_operator_for_hubbard_model(2, 2, 1, 1)` — the signature is `(x_dim, y_dim, t, u)` — wrapped as `HamiltonianSimulationByGQSP(walk_op, t=5, precision=1e-7)`, plus a fully symbolic twin over `sympy` symbols , , . The tests add randomly generated Hamiltonians: `random_qubitization_walk_operator` builds a "Szegedy Walk operator for a randomly generated Hamiltonian of -qubit Paulis" with summing to 1, drawn from a `np.random.RandomState(42)` seeded in the test.
Code
https://github.com/quantumlib/Qualtran, Python, Apache-2.0. The two modules are `qualtran/bloqs/qubitization/qubitization_walk_operator.py` (class `QubitizationWalkOperator`, plus `_walk_op`, `_thc_walk_op`, `_walk_op_chem_sparse`) and `qualtran/bloqs/hamiltonian_simulation/hamiltonian_simulation_by_gqsp.py` (class `HamiltonianSimulationByGQSP`, plus `_hubbard_time_evolution_by_gqsp` and `_symbolic_hamsim_by_gqsp`). Each ships a Jupyter notebook beside it — `qubitization_walk_operator.ipynb` and `hamiltonian_simulation_by_gqsp.ipynb` — and the walk-operator test suite executes its notebook as a test. Supporting modules read for this entry: `qualtran/linalg/polynomial/jacobi_anger_approximations.py`, `qualtran/bloqs/chemistry/hubbard_model/qubitization/walk_operator.py`, and `qualtran/bloqs/for_testing/random_select_and_prepare.py`. Files read from the repository's default branch `main` on 2026-08-26.
Results
Two numerical checks by classical simulation of the circuits, and one symbolic cost assertion; no hardware anywhere. First, the walk relation itself: `test_qubitization_walk_operator` — carrying `@pytest.mark.slow`, so it is excluded from the default suite — runs the 1D Ising model at `(num_sites, eps)` of `(3, 0.5)` and `(4, 0.5)`, prepares for each eigenvector of the Hamiltonian, applies the walk circuit, and asserts the overlap against — the source comment reads "Overlap: <L|k|W|k|L> = E_{k} / lambda" — with `assert_allclose_up_to_global_phase(..., atol=1e-6)`; the same test also asserts `qubitization_lambda` equals `sum(ham_coeff)` and that the circuit uses fewer than 23 qubits. Second, the simulation itself: `verify_hamiltonian_simulation_by_gqsp` densifies the bloq and asserts its top-left block against `scipy.linalg.expm(-1j * H * t)` with `atol=1e-4`, run over `select_bitsize` 1, `target_bitsize` 1 and 2, and `precision` , five random Hamiltonians each. Third, and not a simulation at all: `test_symbolic_t_cost` takes the symbolic example's `QECGatesCost` total T count and compares its `sympy.O` against `big_O(tau * t + sympy.log(2 * inv_eps) / sympy.log(sympy.log(2 * inv_eps)))`, i.e. — a T count including rotation synthesis, not the query count recorded as this method's cost. All three are read off the source as assertions; none was executed for this entry.
- Expressing and Analyzing Quantum Algorithms with Qualtran
Low and Chuang's own Appendix B — phase tables and queries per unit simulation time
- Hamiltonian Simulation by Qubitization
Guang Hao Low, Isaac L. Chuang · 2016
About
The paper that this method is recorded from computes something itself, in one appendix, and it is worth recording separately from the theorems because it is the only place in the paper where a number is produced rather than bounded. Appendix B is titled "Practical Details for Implementing Hamiltonian Simulation" and says what it is for: "This appendix illustrates a specific application of the quantum signal processing approach to a signal unitary that encodes the Hamiltonian as a signal operator. In particular, a comparison of performance with the BCCKS approach is made. The details will be useful to readers interested in implementing our procedure on a quantum computer." The body points at it by name: "The exact the tradeoff between , , in Eq. (33) is studied numerically in Appendix B, together with example phases implementing for the polynomials in Eq. (34)." One convention note, because it is the same normalization split this record's own hop already warns about: the appendix works with the target , i.e. the normalization, while Eq. (32) in the body expands in with .
Methods
Two computed objects. (i) The truncation error of the Fourier approximation, plotted against the analytic bound the body derives: Eq. (33) reads , whence "". Figure 1 (Left) plots "Approximation error " where " are real Fourier series in , ", against three curves: "the upper bound (blue), truncation (black), and best possible [51] (red)", at . (ii) A table of actual phase vectors, produced not by a construction of this paper but by an algorithm it cites to earlier work of two of the same authors: "a table of select phases computed using the algorithm in [37] can be found in Table 3". The paper's Discussion is candid about that algorithm: it "was originally claimed to be polynomial time [37], but only when counting arbitrary-precision arithmetical operations, and appeared to be ill-conditioned in case studies [49]", with a later analysis proving "a runtime of with finite-precision arithmetic, provided that some subtleties were carefully managed to control this ill-conditioned behavior".
Data
No dataset and no Hamiltonian instance. Everything computed is a function of one real variable: the scalar target and its Fourier approximants. The parameter grid is small and stated exactly — Figure 1 (Left) sweeps queries to the controlled iterate , its horizontal axis being simulation time per query, labelled "Simulation time (t) / Queries to (N)" and running 0.01 to 0.50; Table 3 sweeps crossed with ; Figure 1 (Right) sweeps target error over simulation times running from 1 to 500 on its horizontal axis. Axis labels, tick values and table headers here are read off the rendered pages rather than off a text extraction, which drops the glyph systematically.
Code
No repository, no software name, no availability statement. The phases are attributed only to "the algorithm in [37]", which the paper's reference list gives as "G. H. Low, T. J. Yoder, and I. L. Chuang, 'Methodology of Resonant Equiangular Composite Quantum Gates,' Physical Review X 6, 041067 (2016)" — a prior paper of two of the same authors, and not the earlier quantum-signal-processing letter, which is reference [7] and is the paper this record already cites for the achievability of . Read from the Quantum-accepted version ("Accepted in Quantum 2019-07-08"), obtained as https://arxiv.org/pdf/1610.06546 and converted with `pdftotext -layout`, with Figure 1 and Table 3 confirmed against the same pages rendered to image at 200 dpi.
Results
Table 3 gives, under printed column headers , , and , a simulation time and a phase vector that implements to within that error. The paper calls these "select phases" and nowhere claims the tabulated is the largest reachable at a given . At : carries with ; carries ; , ; , ; , . At the same carry , , , and . The caption fixes what the error means: "Errors quoted refer to ." Figure 1 (Right) is the comparison, and the appendix states the handicaps it applies, the asymptote it reaches, and the direction of its own residual bias: " is not assumed to be qubitized, thus incurring a factor 2 additional cost from querying and each over the asymptotic limit of 2 queries per unit of simulation time", while "the BCCKS algorithm [22] incurs a factor 3 additional cost from querying twice and in their use of oblivious amplitude amplification", and "An analysis of the procedure [22] shows that the error of its simulated evolution is a factor larger than . Thus Fig. 1 slightly overestimates BCCKS performance as we take directly to be the error." The conclusion drawn from the plot is stated as a scaling, not as a measured ratio: "the queries per unit time of BCCKS scales like , whereas our approach approaches 4 in the limit ", and the regime is named — "As BCCKS is known to be optimal in the regime , the improvement of our approach is most dramatic outside of it."
- Hamiltonian Simulation by Qubitization
PennyLane's `qml.Qubitization` operator
About
Xanadu's PennyLane ships the walk operator as a built-in operation, and only the walk operator: it builds from a Hamiltonian and stops, applying no phases. The v0.36.0 release note introduces it as "Performing qubitization is now easily accessible with the new `qml.Qubitization` operator" and states the intended use in the next sentence — "`qml.Qubitization` encodes a Hamiltonian into a suitable unitary operator. When applied in conjunction with quantum phase estimation (QPE), it allows for computing the eigenvalue of an eigenvector of the given Hamiltonian." That is the qualifier this entry turns on. No quantum signal processing phases are applied anywhere in the module, nothing in it produces , and the documented consumer is `qml.iterative_qpe`, not a phased iterate. It is recorded here because the object it builds is this method's , though not written the way this record writes it: the reflection is about rather than about , and it stands to the right of the block-encoding rather than to the left, so what is printed is a conjugate of carrying the same spectrum, not the same expression. A provenance note: the word "Qubitization" in the class docstring is hyperlinked to https://arxiv.org/abs/2204.11890, whose arXiv abs page gives the title "Simulating key properties of lithium-ion batteries with a fault-tolerant quantum computer" — not to Low and Chuang.
Methods
The class docstring writes the operator as and describes it as "implemented with a quantum walk operator that takes a Hamiltonian as input". The implementation is two lines of composition rather than a circuit: `compute_decomposition` appends `Reflection(identity)`, where `identity = prod(*[I(wire) for wire in control])`, then `PrepSelPrep(hamiltonian, control=control)`, and returns that list. The docstring's own worked call confirms the order the decomposition emits: `qp.Qubitization.compute_decomposition(hamiltonian=0.1 * qp.Z(0), control=Wires(1))` prints `[Reflection(3.141592653589793, wires=[1]), PrepSelPrep(lcu=0.1 * Z(0), control=[1])]` — the reflection first, the prepare-select-prepare second, which is the reverse of the left-to-right reading of the formula above. `__init__` takes `(hamiltonian, control)` and sets `wires = Wires(control) + hamiltonian.wires`, so the walk carries no ancilla beyond the control register the LCU index needs. The accepted input type is stated as "Union[.Hamiltonian, .Sum, .Prod, .SProd, .LinearCombination]", i.e. "The Hamiltonian written as a linear combination of unitaries", so the subnormalization is the coefficient 1-norm and the module never computes it — the docstring's own example computes it in post-processing with `lamb = sum([abs(c) for c in H.terms()[0]])`. A second, symbolic decomposition `_qubitization_decomposition` is decorated `@register_resources(_qubitization_resources)` and attached by `add_decomps(Qubitization, _qubitization_decomposition)`; `_qubitization_resources` charges exactly one `Reflection` and one `PrepSelPrep`.
Data
No dataset and no chemistry instance: one three-term qubit Hamiltonian in the docstring, `H = qp.dot([0.1, 0.3, -0.3], [qp.Z(0), qp.Z(1), qp.Z(0) @ qp.Z(2)])`, on `qp.device("default.qubit")` — PennyLane's state-vector simulator, so no hardware. The eigenvector is prepared by a single `qp.PauliX(2)`, the walk is controlled on wires `[3,4]`, and it is consumed by `qp.iterative_qpe(..., aux_wire = 5, iters = 3)`. The `Qubitization` operator itself spans five wires — the control pair and the Hamiltonian's 0, 1 and 2 — while the circuit touches six, the sixth being the QPE auxiliary. Three iterations.
Code
https://github.com/PennyLaneAI/pennylane, Python, Apache-2.0. The file is `pennylane/templates/subroutines/qubitization.py`, class `Qubitization(Operation)`, with `compute_decomposition`, `_qubitization_resources` and `_qubitization_decomposition`; it imports `PrepSelPrep` and `Reflection` from sibling modules in the same package. Shipped in PennyLane v0.36.0 (PyPI upload 2024-05-06), added by pull request 5500. Source read on 2026-08-26 from the repository's default branch, which `gh api` reports as `main`; the legacy `master` alias serves a byte-identical file. The release-note example differs slightly from today's docstring, which renames the QPE keyword `ancilla` to `aux_wire`.
Results
One number, and it is a docstring output rather than a benchmark. After `output = circuit()` and `lamb = sum([abs(c) for c in H.terms()[0]])`, the docstring shows `print("eigenvalue: ", lamb * np.cos(2 * np.pi * (np.argmax(output)) / 8))` returning `eigenvalue: 0.7`. That is an eigenvalue recovered through the inversion of the walk's eigenphase — the same correspondence this method rests on — read off a 3-bit iterative phase estimate, hence the divisor 8. Nothing else numerical is reported anywhere in the module: no error figure, no timing, no T count and no qubit count. Its only cost statement is the symbolic resource declaration described above, one `Reflection` plus one `PrepSelPrep`.
Quantum signal processing · Qiskit
From the repository — run, not written up from a paper · native
About
A single-qubit rotation sequence that transforms an encoded signal into a polynomial response.
Methods
None found yet.
Data
None found yet.
Code
Qiskit
Results
Single-qubit phase-sequence skeleton checked for degree and phase-order invariants · Hamiltonian-simulation literature cited
- Quantum signal processing
A single-qubit rotation sequence that transforms an encoded signal into a polynomial response.
References
- Hamiltonian Simulation by Qubitization
Guang Hao Low, Isaac L. Chuang · 2016
- Optimal Hamiltonian Simulation by Quantum Signal Processing
Guang Hao Low, Isaac L. Chuang · 2016
- On the relationship between continuous- and discrete-time quantum walk
Andrew M. Childs · 2008
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
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