unitaria.FixedPointAmplification

class unitaria.FixedPointAmplification(A: Node, min_norm: float, accuracy: float, guaranteed: bool = False)[source]

Bases: ProxyNode

A node that applies fixed point amplification to a vector node, i.e. it can amplify the norm of that vector node close to 1 without knowing the exact value, given only a lower bound. This is achieved by using the QSVT and while it is more expensive than Grover-style amplification, there is no risk of “overshooting” and getting a lower norm.

Implements Theorem 27 from https://arxiv.org/abs/1806.01838.

Parameters:
  • A – The vector that should be amplified

  • min_norm – A lower bound for the norm of this vector.

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