fiqci.ems.mitigators.zne#

Extrapolation methods for Zero-Noise Extrapolation.

Functions

exponential_extrapolation(...)

Perform exponential extrapolation to estimate the zero-noise value.

polynomial_extrapolation(expectation_values, ...)

Polynomial least-squares extrapolation to estimate the zero-noise value.

richardson_extrapolation(expectation_values, ...)

Richardson extrapolation to estimate the zero-noise value.

exponential_extrapolation(expectation_values: list[list[float]], scale_factors: list[int]) list[float]#

Perform exponential extrapolation to estimate the zero-noise value.

Parameters:

expectation_values – A list of expectation values corresponding to different noise levels.

Returns:

The extrapolated zero-noise expectation value.

richardson_extrapolation(expectation_values: list[list[float]], scales: list[int]) list[float]#

Richardson extrapolation to estimate the zero-noise value.

Computes exact Lagrange interpolation coefficients evaluated at x=0: cᵢ = ∏_{j≠i} λⱼ / (λⱼ - λᵢ) and returns E(0) = Σᵢ cᵢ · E(λᵢ).

Parameters:
  • expectation_values – Array-like of shape (n_scales, n_obs) or (n_scales,)

  • scales – Noise scale factors used (e.g., [1, 3, 5])

Returns:

Zero-noise estimate(s) per observable.

polynomial_extrapolation(expectation_values: list[list[float]], scales: list[int], degree: int | None = None) list[float]#

Polynomial least-squares extrapolation to estimate the zero-noise value.

Fits a polynomial of the given degree to the (scale, expectation_value) data and evaluates it at x=0.

Parameters:
  • expectation_values – Array-like of shape (n_scales, n_obs) or (n_scales,)

  • scales – Noise scale factors used (e.g., [1, 3, 5])

  • degree – Polynomial degree. Defaults to min(n_scales - 1, 2).

Returns:

Zero-noise estimate(s) per observable.