fiqci.ems.mitigators.zne#
Extrapolation methods for Zero-Noise Extrapolation.
Functions
|
Perform exponential extrapolation to estimate the zero-noise value. |
|
Polynomial least-squares extrapolation to estimate the zero-noise value. |
|
Richardson extrapolation to estimate the zero-noise value. |
- exponential_extrapolation(expectation_values: list[list[float]], scale_factors: list[int], eps: float = 1e-09) list[float]#
Perform exponential extrapolation to estimate the zero-noise value.
Fits y = sign * exp(b) * exp(a * x) in log-space per observable. Magnitudes are floored relative to each column’s largest value before taking the log, so values that are ~0 (or whose sign flips due to noise) can’t produce log(0) = -inf or dominate the linear fit.
- Parameters:
expectation_values – Expectation values of shape (n_scales, n_obs) or (n_scales,).
scale_factors – Noise scale factors corresponding to different noise levels.
eps – Magnitude floor as a fraction of each column’s maximum magnitude.
- Returns:
The extrapolated zero-noise expectation value(s).
- 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.