Skip to main content

Cusum

Struct Cusum 

Source
pub struct Cusum { /* private fields */ }
Expand description

One-sided upper Page CUSUM detector with Welford running statistics.

ref_shift_k is the reference shift in units of the running standard deviation (the smallest sustained mean shift worth flagging), alarm_h is the alarm threshold in the same units, and startup is the number of initial observations during which alarms are suppressed while the running statistics settle.

Implementations§

Source§

impl Cusum

Source

pub fn new(ref_shift_k: f64, alarm_h: f64, startup: usize) -> Result<Self>

Build a detector; fails when ref_shift_k is negative or non-finite, alarm_h is non-positive or non-finite.

Source

pub fn count(&self) -> usize

Number of observations consumed (non-finite inputs do not count).

Source

pub fn mean(&self) -> f64

Running mean of the observations seen so far (0 with no data).

Source

pub fn variance(&self) -> f64

Running sample variance (M2 / (n - 1); 0 with fewer than 2 points).

Source

pub fn std(&self) -> f64

Running sample standard deviation.

Source

pub fn statistic(&self) -> f64

Current CUSUM statistic S >= 0.

Source

pub fn status(&self) -> bool

Whether the detector is currently alarmed.

Live (not latched): re-evaluated on every Cusum::update as count > startup && statistic > h * std.

Source

pub fn update(&mut self, x: f64) -> bool

Feed one observation; returns the resulting alarm Cusum::status.

Non-finite inputs are ignored (no state change) so a corrupt sample cannot poison the running statistics.

Source

pub fn reset(&mut self)

Drop all observations; tuning parameters are kept.

Trait Implementations§

Source§

impl Clone for Cusum

Source§

fn clone(&self) -> Cusum

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Cusum

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Cusum

Source§

fn default() -> Self

Canonical safeguards tuning: k = 0.5, h = 4.0, startup = 10.

Source§

impl PartialEq for Cusum

Source§

fn eq(&self, other: &Cusum) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Cusum

Auto Trait Implementations§

§

impl Freeze for Cusum

§

impl RefUnwindSafe for Cusum

§

impl Send for Cusum

§

impl Sync for Cusum

§

impl Unpin for Cusum

§

impl UnsafeUnpin for Cusum

§

impl UnwindSafe for Cusum

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.