unitaria.LinearAmplification

class unitaria.LinearAmplification(A: Node, amplification: float, delta: float, accuracy: float, guaranteed: bool = False)[source]

Bases: ProxyNode

A 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.