pub struct StreamingStats { /* private fields */ }Expand description
Accumulateur de moyenne en ligne, O(1) mémoire.
Implémente la mise à jour incrémentale de Welford :
mean_n = mean_{n-1} + (x_n − mean_{n-1}) / nStable numériquement même pour des millions de points. Rejette les valeurs non-finies sans corrompre l’état interne.
§Exemples
use embedded_stats_f32::{StreamingStats, StatsError};
let mut s = StreamingStats::new();
for x in [1.0_f32, 2.0, 3.0, 4.0, 5.0] { s.update(x).unwrap(); }
assert!((s.mean().unwrap() - 3.0).abs() < 1e-6);
assert_eq!(s.count(), 5);
// NaN rejeté, état interne préservé
assert_eq!(s.update(f32::NAN), Err(StatsError::NonFiniteValue));
assert_eq!(s.count(), 5);Implementations§
Source§impl StreamingStats
impl StreamingStats
Sourcepub fn update(&mut self, x: f32) -> Result<(), StatsError>
pub fn update(&mut self, x: f32) -> Result<(), StatsError>
Intègre une nouvelle observation.
Retourne StatsError::NonFiniteValue si x est NaN ou ±inf.
En cas d’erreur, l’état interne est inchangé.
Sourcepub fn mean(&self) -> Result<f32, StatsError>
pub fn mean(&self) -> Result<f32, StatsError>
Retourne la moyenne courante.
§Erreurs
StatsError::EmptySlice: aucune observation intégréeStatsError::NonFiniteValue: état interne corrompu (théoriquement impossible viaupdate, garde de sécurité défensive)
Sourcepub fn running_variance(&self) -> Result<f32, StatsError>
pub fn running_variance(&self) -> Result<f32, StatsError>
Variance de population (diviseur N) en streaming.
Sourcepub fn running_std_dev(&self) -> Result<f32, StatsError>
pub fn running_std_dev(&self) -> Result<f32, StatsError>
Écart type en streaming (= √variance).
Trait Implementations§
Source§impl Clone for StreamingStats
impl Clone for StreamingStats
Source§fn clone(&self) -> StreamingStats
fn clone(&self) -> StreamingStats
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for StreamingStats
impl Debug for StreamingStats
Source§impl Default for StreamingStats
impl Default for StreamingStats
impl Copy for StreamingStats
Auto Trait Implementations§
impl Freeze for StreamingStats
impl RefUnwindSafe for StreamingStats
impl Send for StreamingStats
impl Sync for StreamingStats
impl Unpin for StreamingStats
impl UnsafeUnpin for StreamingStats
impl UnwindSafe for StreamingStats
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
Mutably borrows from an owned value. Read more