State
Block-encoding
A unitary whose top-left block is the matrix you care about, divided by a subnormalisation α. Because the unitary has norm one, α is not a free parameter — it bounds the matrix, and it multiplies straight into every cost downstream.
A state is an object you can be holding, named once so that two routes reaching the same thing are drawn as reaching the same thing. It says nothing about how you got here or where you can go next — that is entirely in the processes below.
This is a kind of
Anything that asks for one of these will accept this, because it is narrower. The reverse does not hold.
- Matrix you can query
Some way of asking about a matrix without writing it down — sparse row and column oracles, a Pauli or LCU decomposition, a purification, or an explicit arithmetic rule. Which one you have decides which routes are open.
Narrower kinds of this
- Block-encoding of f(A)
The same shape of object as the one you started with, holding a function of the original matrix instead of the matrix. That it is still a block-encoding is what makes these transformations compose.
Records that are this object
Nothing in the catalogue has been joined to this state. That is a gap in the join rather than a claim that no such object exists; the shelf on /repository lists what is joined and what is not, with the reason.
Work that arrives here
- Block-encode a matrix
Wrap an operator inside a larger unitary so that sits in 's top-left block, giving every routine above it one uniform way to touch the matrix. The subnormalization and the ancilla count are outputs of this layer, not free parameters.
Work that starts here
- Matrix function
Given a block-encoding of and a target function bounded on , produce a circuit whose designated block is an -approximation of applied to the singular values (or eigenvalues) of .
Also accepted where something broader is wanted
These ask for an object this one is a kind of. Narrowing composes in that direction and only that direction: handing on something broader than a process asks for would be a skipped conversion.
- Block-encode a matrix
Wrap an operator inside a larger unitary so that sits in 's top-left block, giving every routine above it one uniform way to touch the matrix. The subnormalization and the ancilla count are outputs of this layer, not free parameters.