unitaria.QSVT¶
- class unitaria.QSVT(A: Node, polynomial: ndarray | Chebyshev | Polynomial)[source]¶
Bases:
NodeQuantum Singular Value Transformation
The polynomial transformation can be either specified through phase angles in R convention or a polynomial. If angles are given, the resulting block encoding will have normalization 1, and the phase angles of the circuit will exactly correspond to those angles. If a polynomial P is given, the resulting block encoding will encode P(A). The normalization of the block encoding will be roughly the sup-norm $$ max_{x in [-gamma_A, gamma_A]} |P(x)| $$ though it may be slightly larger.
If a polynomial is given, it should best be specified using the
np.polynomial.Chebyshevclass, and thedomainattribute should correspond to[-\gamma_A, \gamma_A]for reasons of numerical stability.- Parameters:
A – The matrix to be transformed
polynomial – Either a
np.ndarray, indicating phase angles, or an instance of a class innp.polynomial, preferrablynp.polynomial.Chebyshev.