unitaria.LinearAmplification¶
- class unitaria.LinearAmplification(A: Node, amplification: float, delta: float, accuracy: float, guaranteed: bool = False)[source]¶
Bases:
ProxyNodeA node that uniformly amplifies a node using the QSVT to improve the normalization of a block-encoding without changing anything else (up to approximation errors). Also known as singular value amplification.
Implements Theorem 30 from https://arxiv.org/abs/1806.01838.
- Parameters:
A – The node that should be amplified
amplification – The factor by which the singular values should be multiplied.
delta – The distance of the largest singular value after amplification from 1, i.e. the caller guarantees that, if x is the largest singular value of A, then x * amplification < 1 - delta, where delta must be positive.
accuracy – The maximum absolute error of this amplification
guaranteed – Determines if the accuracy should be guaranteed using analytical bounds (ignoring numerical errors). If this is set to false, this function will use a heuristic which will result in polynomials of lower degrees while usually still providing the requested precision.