pub struct MultiDirJet {
pub coeffs: Vec<f64>,
}Fields§
§coeffs: Vec<f64>Implementations§
Source§impl MultiDirJet
impl MultiDirJet
pub fn zero(n_dirs: usize) -> Self
pub fn constant(n_dirs: usize, value: f64) -> Self
pub fn linear(n_dirs: usize, base: f64, first: &[f64]) -> Self
pub fn with_coeffs(n_dirs: usize, coeffs: &[(usize, f64)]) -> Self
pub fn coeff(&self, mask: usize) -> f64
pub fn add(&self, other: &Self) -> Self
pub fn scale(&self, scalar: f64) -> Self
Sourcepub fn mul(&self, other: &Self) -> Self
pub fn mul(&self, other: &Self) -> Self
Subset-convolution product out[mask] = Σ_{sub ⊆ mask} a[sub]·b[mask^sub].
Bit-identical to the shared [crate::jet_algebra::leibniz_product] walker
(the submasks are enumerated in the same ascending order — the walker’s
compacted subset index is a monotone bit-deposit of the submask) while
dropping its per-subset SlotBuf/closure/mask_of overhead. The scalar
n_dirs == 0 case keeps the shared walker live as its reference.
Sourcepub fn compose_unary(&self, derivs: [f64; 5]) -> Self
pub fn compose_unary(&self, derivs: [f64; 5]) -> Self
Exact (order-4 truncated) unary composition f(self) from the Taylor
stack [f, f', f'', f''', f''''] at self.coeff(0).
Computed by the truncated-Taylor reassociation (see the module note):
f(self) = Σ_{k=0}^{4} (f^{(k)}/k!)·v^{⊛k} with v the non-constant
part of self. The three subset-convolution powers v², v³, v⁴
are compensated (Dot2) and the per-mask combine is Neumaier-compensated
and vectorised, so the result is more accurate vs. the true
real-arithmetic value than the prior naive partition sum (proven against
a double-double oracle in tests). The scalar n_dirs == 0 case keeps
the shared Faà di Bruno walker live as its reference.
Trait Implementations§
Source§impl Clone for MultiDirJet
impl Clone for MultiDirJet
Source§fn clone(&self) -> MultiDirJet
fn clone(&self) -> MultiDirJet
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for MultiDirJet
impl RefUnwindSafe for MultiDirJet
impl Send for MultiDirJet
impl Sync for MultiDirJet
impl Unpin for MultiDirJet
impl UnsafeUnpin for MultiDirJet
impl UnwindSafe for MultiDirJet
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§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).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.