Introduces the QSVT framework for polynomial transformations of block-encoded singular values.
arxiv.org/abs/1806.01838 ↗Quantum singular value transformation
A framework for applying bounded polynomial transformations to singular values of a block-encoded matrix.
Atlas stars stay in the public catalog. Saving this entry to your workspace starts an unstarred private copy.
QSVT turns a block-encoding and a carefully synthesized phase sequence into a programmable matrix-function primitive. It unifies Hamiltonian simulation, linear-system methods, amplitude amplification, and several quantum machine-learning constructions.
Circuit & simulation
What this takes and returns
TakesNothingWhat joins here
No input port at this edge: the record publishes no gate sequence and no register, so there is nothing here to read one off — and unlike a declared hole, nothing has been recorded about what belongs here.
Nothing in the Atlas meets this end.
ReturnsNothingWhat joins here
No output port at this edge: the record publishes no gate sequence and no register, so there is nothing here to read one off — and unlike a declared hole, nothing has been recorded about what belongs here.
Nothing in the Atlas meets this end.
This record publishes no gate sequence and no register, so there is nothing here to read an interface off. Absent rather than empty. See all 152 →
Where this sits
This record is named by the layer graph at:
- Quantum singular value transformation Method
Takes A block-encoding of together with its subnormalisation ; a target function on ; an error budget . Returns A circuit implementing a block-encoding of to error , together with the query count in and .
How it works
QSVT uses a block-encoding U_A and a phase sequence to realize a polynomial transformation P(A). A typical sequence has alternating U_A and U_A† calls, with one ancilla phase rotation per degree. The result is powerful but only after the polynomial approximation and phase-synthesis constraints are proved.
Implementation
from qiskit import QuantumCircuit
def qsvt_skeleton(phases, block_encoding):
qc = QuantumCircuit(block_encoding.num_qubits)
for index, phase in enumerate(phases):
qc.rz(2 * phase, 0)
if index < len(phases) - 1:
oracle = block_encoding if index % 2 == 0 else block_encoding.inverse()
qc.compose(oracle, inplace=True)
return qc
# A concrete instance, so the published record is a circuit and not a
# skeleton: a 1-qubit block-encoding of X with three QSP phases.
block_encoding = QuantumCircuit(1)
block_encoding.x(0)
FINAL_CIRCUIT = qsvt_skeleton([0.3, -0.7, 0.4], block_encoding)Quantum vs classical
Classical baseline
Classical matrix-function methods access matrix entries or factorizations directly, with cost governed by matrix dimension, sparsity, and conditioning.
Quantum claim
QSVT can query a block-encoding to apply a polynomial matrix function with query cost tied to approximation degree, but state preparation, postselection, precision, and readout are part of the practical cost.
How to compare
Compare the polynomial approximation error and query count with a classical approximation of the same matrix function under the same conditioning promise.
Declared gaps
Nobody has reviewed this record for gaps yet.