pub struct FilterBound {
pub degree: u32,
pub epsilon_in_u: String,
pub kappa_exact: String,
pub products: u32,
/* private fields */
}Expand description
The exact error bound of the f64 evaluation of a difference form.
For a call, let delta be the largest magnitude of the computed leaves
(the differences of the coordinates of the approximations of the points),
E the sum of the two largest errors of the approximations, and
D = delta + E. The f64 value of the form differs from the exact value
at the exact points by at most (epsilon * D + kappa * E) * D^(k - 1),
where k is the degree, as long as no product underflows; see
FilterBound::constants for the range in which underflow and overflow
are accounted for.
Fields§
§degree: u32The degree k of the form in the differences.
epsilon_in_u: Stringepsilon / u, with u = 2^-53, as an exact fraction.
kappa_exact: Stringkappa as an exact fraction.
products: u32The number of products N in the form; a product used several times
is counted once.
Implementations§
Source§impl FilterBound
impl FilterBound
Sourcepub fn epsilon_is_u_times(&self, n: u64) -> bool
pub fn epsilon_is_u_times(&self, n: u64) -> bool
Whether n u <= epsilon < n u (1 + 2^-40), exactly.
The exact epsilon is slightly above an integer multiple of u,
because of the terms in u^2 and beyond.
Sourcepub fn constants(&self) -> FilterConstants
pub fn constants(&self) -> FilterConstants
The constants of the filter.
epsilon and kappa are the exact values times 1 + 2^-30, rounded
up; the inflation covers the rounding of the evaluation of the bound
itself and an allowance for products that underflow. d_min is the
smallest power of two below 1 for which that allowance covers
underflow and the bound stays a normal number, and d_max the
largest above 1 for which no computed node exceeds 2^1022; both
exist, or filter_bound would have returned an error.