Struct WeightedMoments
pub struct WeightedMoments { /* private fields */ }Description
Bounded exact sufficient statistics for one ordered scalar moment.
Storage is independent of occurrence count. Every binary64 input is exact; only requested results and first derivatives are rounded to binary64. The shared rational bound applies to every intermediate operation. No sample identity, independence, population or unbiasedness claim follows from this arithmetic owner; the caller must bind those meanings separately.
Implementations§
§impl WeightedMoments
impl WeightedMoments
pub fn new(
moment: ProbabilityMoment,
types: &[ValueType],
) -> Result<WeightedMoments, Diagnostic>
pub fn new( moment: ProbabilityMoment, types: &[ValueType], ) -> Result<WeightedMoments, Diagnostic>
Establish the ordered integrand types before consuming occurrences.
§Errors
Rejects types or arity outside the moment’s admitted scalar profile.
pub fn push(
&mut self,
row: &[ValueLiteral],
weight: f64,
) -> Result<(), Diagnostic>
pub fn push( &mut self, row: &[ValueLiteral], weight: f64, ) -> Result<(), Diagnostic>
Consume one occurrence, including duplicate values and zero weights.
§Errors
Rejects wrong types, nonfinite/negative weights, count overflow or an exhausted arithmetic bound. Failure leaves the accumulator unchanged.
pub fn value(&self, correction: usize) -> Result<ValueLiteral, Diagnostic>
pub fn value(&self, correction: usize) -> Result<ValueLiteral, Diagnostic>
Exact normalized moment, with an explicit finite-count correction.
Zero correction uses the total weight. A positive correction requires equal positive weights and divides centered moments by n-correction, instead of n. This defines arithmetic only, never an IID claim.
§Errors
Rejects empty/zero mass, invalid correction, or unrepresentable output.
pub fn sum(&self) -> Result<ValueLiteral, Diagnostic>
pub fn sum(&self) -> Result<ValueLiteral, Diagnostic>
Unnormalized weighted sum of a single quantity, with its original units.
§Errors
Rejects empty/zero mass, paired/centered moments or unrepresentable output.
pub fn mean_standard_error(&self) -> Result<ValueLiteral, Diagnostic>
pub fn mean_standard_error(&self) -> Result<ValueLiteral, Diagnostic>
Estimated standard error of an equal-weight mean, in the original units.
Computes sqrt(sum((x-mean)^2)/(n*(n-1))) with an exact radicand and one correctly rounded square root. The caller must establish IID sampling and assume a finite population second moment; this is arithmetic only.
§Errors
Rejects other moments, unequal/nonpositive weights, n < 2 and range errors.
pub fn derivative(
&self,
row: &[ValueLiteral],
weight: f64,
correction: usize,
) -> Result<Vec<f64>, Diagnostic>
pub fn derivative( &self, row: &[ValueLiteral], weight: f64, correction: usize, ) -> Result<Vec<f64>, Diagnostic>
Derivative of this normalized finite statistic with respect to one row.
Weights are fixed. Results are coherent-SI coordinate coefficients in ordered integrand order; coefficient j has statistic-unit/input-unit-j. The caller owns membership and must supply an actual accepted occurrence.
§Errors
Rejects invalid rows, weights, normalization or unrepresentable coefficients.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for WeightedMoments
impl RefUnwindSafe for WeightedMoments
impl Send for WeightedMoments
impl Sync for WeightedMoments
impl Unpin for WeightedMoments
impl UnsafeUnpin for WeightedMoments
impl UnwindSafe for WeightedMoments
Blanket Implementations§
Source§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<Src, Scheme> ApproxFrom<Src, Scheme> for Srcwhere
Scheme: ApproxScheme,
impl<Src, Scheme> ApproxFrom<Src, Scheme> for Srcwhere
Scheme: ApproxScheme,
§fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>
fn approx_from(src: Src) -> Result<Src, <Src as ApproxFrom<Src, Scheme>>::Err>
§impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Srcwhere
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
impl<Dst, Src, Scheme> ApproxInto<Dst, Scheme> for Srcwhere
Dst: ApproxFrom<Src, Scheme>,
Scheme: ApproxScheme,
§type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
type Err = <Dst as ApproxFrom<Src, Scheme>>::Err
§fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
fn approx_into(self) -> Result<Dst, <Src as ApproxInto<Dst, Scheme>>::Err>
Source§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T, Dst> ConvAsUtil<Dst> for T
impl<T, Dst> ConvAsUtil<Dst> for T
§fn approx(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
fn approx(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
§impl<T> ConvUtil for T
impl<T> ConvUtil for T
§fn approx_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
fn approx_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst>,
§fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst, Scheme>,
Scheme: ApproxScheme,
fn approx_as_by<Dst, Scheme>(self) -> Result<Dst, Self::Err>where
Self: Sized + ApproxInto<Dst, Scheme>,
Scheme: ApproxScheme,
§fn into_as<Dst>(self) -> Dstwhere
Self: Sized + Into<Dst>,
fn into_as<Dst>(self) -> Dstwhere
Self: Sized + Into<Dst>,
§fn try_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + TryInto<Dst>,
fn try_as<Dst>(self) -> Result<Dst, Self::Err>where
Self: Sized + TryInto<Dst>,
§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
fn rand<T>(&self, rng: &mut (impl Rng + ?Sized)) -> Twhere
Self: Distribution<T>,
Source§impl<T> From<T> for T
impl<T> From<T> for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T, U> Into<U> for Twhere
U: From<T>,
impl<T, U> Into<U> for Twhere
U: From<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>where
F: FnOnce(&Self) -> bool,
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>where
F: FnOnce(&Self) -> bool,
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
Source§impl<T> Same for T
impl<T> Same 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.