struct SmallSplitMonitor<'a, const N: usize> {
kambe: Option<SmallSplitKambe>,
largest: Cell<Rounding<N>>,
early: bool,
running: Cell<Rounding<N>>,
automatic_sum: OnceCell<Option<Jet<N>>>,
automatic_split: AutomaticSplit<'a>,
checked: &'a Checked<N>,
}Expand description
The real-space terms below every automatic split: the Kambe integrals that keep their
rounding below that of the largest term so far, and the early failure of complete
sums (EARLY_FAILURE_LOSS).
Fields§
§kambe: Option<SmallSplitKambe>The Kambe integrals of the real-space terms below every automatic split, except for the split derivative.
largest: Cell<Rounding<N>>The largest moduli of the value and derivatives of a real-space term so far, whose rounding the closed forms of the later terms may reach.
early: boolWhether the sum fails early once the rounding its real-space terms predict is
hopeless.
running: Cell<Rounding<N>>The rounding the real-space terms predict so far.
automatic_sum: OnceCell<Option<Jet<N>>>The sum at the automatic split, on whose scales the sum fails early, evaluated
once; None where it fails.
automatic_split: AutomaticSplit<'a>§checked: &'a Checked<N>Implementations§
Source§impl<'a, const N: usize> SmallSplitMonitor<'a, N>
impl<'a, const N: usize> SmallSplitMonitor<'a, N>
fn new( kambe: Option<SmallSplitKambe>, early: bool, automatic_split: AutomaticSplit<'a>, checked: &'a Checked<N>, ) -> Self
Sourcefn add_to_running(&self, term: &Jet<N>, bound: Rounding<N>) -> Result<()>
fn add_to_running(&self, term: &Jet<N>, bound: Rounding<N>) -> Result<()>
With Self::early, adds the rounding of the real-space term term and its bound
bound to the running rounding and checks whether it is hopeless.
Auto Trait Implementations§
impl<'a, const N: usize> !Freeze for SmallSplitMonitor<'a, N>
impl<'a, const N: usize> !RefUnwindSafe for SmallSplitMonitor<'a, N>
impl<'a, const N: usize> Send for SmallSplitMonitor<'a, N>
impl<'a, const N: usize> !Sync for SmallSplitMonitor<'a, N>
impl<'a, const N: usize> Unpin for SmallSplitMonitor<'a, N>
impl<'a, const N: usize> UnwindSafe for SmallSplitMonitor<'a, N>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.