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).
Bit-identical to the shared crate::jet_algebra Faà di Bruno walker:
it enumerates the set-partitions of each output mask’s slots in the exact
same recursion order, multiplies derivs[order] by the same per-block
inner coefficients in the same order, and sums them in the same order —
but the partition enumeration is hoisted out of the per-mask loop into a
thread-local table built once per slot count. The scalar n_dirs == 0
case keeps the shared 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.