Enum ProbabilityMoment
pub enum ProbabilityMoment {
Expectation,
Variance,
Covariance,
}Description
A moment under an exact declared probability law, not a finite-sample estimate.
Variants§
Expectation
Integral of a random quantity against the normalized law.
Variance
Centered second moment of one real scalar random quantity.
Covariance
Centered paired moment of two real scalar random quantities under the same law.
Implementations§
§impl ProbabilityMoment
impl ProbabilityMoment
pub fn validate_weights(
weights: impl IntoIterator<Item = f64>,
) -> Result<(), Diagnostic>
pub fn validate_weights( weights: impl IntoIterator<Item = f64>, ) -> Result<(), Diagnostic>
Admit proportional weights with finite nonnegative entries and positive total mass. This checks normalization, not probability-law or sample provenance. It does not sum in floating point, so a finite ratio need not have a representable sum.
§Errors
Rejects empty/all-zero weights, negative values, NaN and infinity.
pub fn evaluate(
self,
rows: &[Vec<ValueLiteral>],
weights: &[f64],
) -> Result<ValueLiteral, Diagnostic>
pub fn evaluate( self, rows: &[Vec<ValueLiteral>], weights: &[f64], ) -> Result<ValueLiteral, Diagnostic>
Evaluate a finite weighted moment, normalizing the nonnegative weights explicitly.
Each row contains this moment’s ordered quantities. This arithmetic operation alone does not establish that rows exhaust a distribution, form an ensemble, are independent, or yield an unbiased estimator. Those claims require the caller’s admitted law or sample-design context.
Binary64 inputs are accumulated exactly within the shared rational work bound and rounded once on output. Overflow or exhausted arithmetic work rejects; no cancellation tolerance, clipping, or order-dependent floating sum is used.
§impl ProbabilityMoment
impl ProbabilityMoment
pub const fn arity(self) -> usize
pub const fn arity(self) -> usize
Number of ordered random-variable expressions consumed by this moment.
pub fn output_type(self, values: &[&ValueType]) -> Result<ValueType, Diagnostic>
pub fn output_type(self, values: &[&ValueType]) -> Result<ValueType, Diagnostic>
Derive the moment’s units from its integrands, independently of evaluated values.
The initial moment profile admits real invariant scalar quantities. Complex covariance conventions, tensor contractions and sampled estimators are separate meanings and cannot be inferred from component storage.
Trait Implementations§
§impl Clone for ProbabilityMoment
impl Clone for ProbabilityMoment
§impl Debug for ProbabilityMoment
impl Debug for ProbabilityMoment
§impl From<WireMoment> for ProbabilityMoment
impl From<WireMoment> for ProbabilityMoment
§fn from(value: WireMoment) -> ProbabilityMoment
fn from(value: WireMoment) -> ProbabilityMoment
§impl PartialEq for ProbabilityMoment
impl PartialEq for ProbabilityMoment
§fn eq(&self, other: &ProbabilityMoment) -> bool
fn eq(&self, other: &ProbabilityMoment) -> bool
self and other values to be equal, and is used by ==.impl Copy for ProbabilityMoment
impl Eq for ProbabilityMoment
impl StructuralPartialEq for ProbabilityMoment
Auto Trait Implementations§
impl Freeze for ProbabilityMoment
impl RefUnwindSafe for ProbabilityMoment
impl Send for ProbabilityMoment
impl Sync for ProbabilityMoment
impl Unpin for ProbabilityMoment
impl UnsafeUnpin for ProbabilityMoment
impl UnwindSafe for ProbabilityMoment
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>,
§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
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.