pub struct MinMaxNormF64 { /* private fields */ }Expand description
Windowed min-max normalizer.
Scales values to [0, 1] using the windowed minimum and maximum
over a sliding timestamp window: (sample - min) / (max - min).
When the range is zero (all values equal), returns 0.5.
§Examples
use nexus_stats_core::normalization::MinMaxNormF64;
let mut mm = MinMaxNormF64::builder().window(100).build().unwrap();
let _ = mm.update(0, 10.0 as f64);
let _ = mm.update(1, 20.0 as f64);
let v = mm.update(2, 15.0 as f64).unwrap();
assert!(v.is_some());Implementations§
Source§impl MinMaxNormF64
impl MinMaxNormF64
Sourcepub fn builder() -> MinMaxNormF64Builder
pub fn builder() -> MinMaxNormF64Builder
Creates a builder.
Sourcepub fn update(
&mut self,
timestamp: u64,
sample: f64,
) -> Result<Option<f64>, DataError>
pub fn update( &mut self, timestamp: u64, sample: f64, ) -> Result<Option<f64>, DataError>
Feeds a sample at the given timestamp. Returns normalized value in [0, 1] once at least one sample has been observed.
§Errors
Returns DataError::NotANumber if the sample is NaN, or
DataError::Infinite if the sample is infinite.
Trait Implementations§
Source§impl Clone for MinMaxNormF64
impl Clone for MinMaxNormF64
Source§fn clone(&self) -> MinMaxNormF64
fn clone(&self) -> MinMaxNormF64
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for MinMaxNormF64
impl RefUnwindSafe for MinMaxNormF64
impl Send for MinMaxNormF64
impl Sync for MinMaxNormF64
impl Unpin for MinMaxNormF64
impl UnsafeUnpin for MinMaxNormF64
impl UnwindSafe for MinMaxNormF64
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