Struct inc_stats::Mode

source ·
pub struct Mode { /* private fields */ }
Expand description

Mode computation struct

This struct stores data to allow efficient computation of the mode. This struct takes linear space. It implements FromIterator to allow collection.

Examples

let nums = [2.0, 4.0, 8.0];
let mut mode = inc_stats::Mode::new();
for num in nums.iter() {
    mode.add(num.clone());
}
assert_eq!(3, mode.count());
let nums = [2.0, 4.0, 8.0];
let mode: inc_stats::Mode = nums.iter().cloned().collect();
assert_eq!(3, mode.count());

Implementations

Create a new Mode object with no data

Add a data point

Get the number of data points

Return an iterator of all of the modes

This iterator has read only reference to the mode data structure that must be dropped to continue modifying the mode. Constant time.

Examples
let mut mode = inc_stats::Mode::new();
{
    let mut it = mode.modes();
    assert!(it.next().is_none());
}

mode.add(5.0);
{
    let mut it = mode.modes();
    assert_eq!(Some(5.0), it.next());
    assert!(it.next().is_none());
}

mode.add(3.0);
{
    let mut it = mode.modes();
    assert_eq!(Some(5.0), it.next());
    assert_eq!(Some(3.0), it.next());
    assert!(it.next().is_none());
}

mode.add(3.0);
{
    let mut it = mode.modes();
    assert_eq!(Some(3.0), it.next());
    assert!(it.next().is_none());
}

Return the current mode

If multiple modes exist, this returns the first element that reached the largest count. NaNs are ignored when computing the mode. Constant time.

Examples
let nums = [2.0, 4.0, std::f64::NAN, 4.0];
let mode: inc_stats::Mode = nums.iter().cloned().collect();
assert!((4.0 - mode.mode().unwrap()).abs() < 1.0e-6);
let mode = inc_stats::Mode::new();
assert!(mode.mode().is_none());

Return the number of times the mode occurred

Constant time.

Examples
let nums = [2.0, 4.0, std::f64::NAN, 4.0];
let mode: inc_stats::Mode = nums.iter().cloned().collect();
assert_eq!(2, mode.mode_count());

Trait Implementations

Formats the value using the given formatter. Read more
Creates a value from an iterator. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.