pub struct AxisBound {
pub degrees: [u32; 3],
pub epsilon_in_u: String,
pub kappa_exact: [String; 3],
/* private fields */
}Expand description
The exact per-axis error bound of the f64 evaluation of a
multihomogeneous difference form.
For a call, with D_k = delta_k + E_k on each axis (see the
documentation of this module, in the source, for the definitions and the
proof), the f64 value of the form differs from the exact value at the
exact points by at most
epsilon * D^G + sum over k of kappa_k * E_k * D^(G - e_k), where G is
AxisBound::degrees, while on every axis of positive degree the size
computed in f64, d_k = delta_k + E_k, is in the range of
AxisBound::constants.
Fields§
§degrees: [u32; 3]The degree G_k of the form in the differences of each axis.
epsilon_in_u: Stringepsilon / u, with u = 2^-53, as an exact fraction.
kappa_exact: [String; 3]kappa_k of each axis as an exact fraction; zero on an axis of
degree zero.
Implementations§
Source§impl AxisBound
impl AxisBound
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.
Sourcepub fn kappa_is(&self, axis: usize, n: u64) -> bool
pub fn kappa_is(&self, axis: usize, n: u64) -> bool
Whether n <= kappa_k < n (1 + 2^-40) on the axis axis, exactly;
false for an axis above 2.
Sourcepub fn certain_zero(&self) -> bool
pub fn certain_zero(&self) -> bool
Whether every term has degree at least 1 in every axis, so that the form is exactly zero when every leaf of one axis is exactly zero: a sum of nodes of positive degree in that axis is zero when both are, and a product has a factor of positive degree in it.
Sourcepub fn constants(&self) -> AxisConstants
pub fn constants(&self) -> AxisConstants
The constants of the filter.
epsilon and each kappa are the exact values times 1 + 2^-30,
rounded up. d_min and d_max are the powers of two of the range of
validity, derived in the documentation of this module (in the source):
those of the global form of the same graph.