Struct inc_stats::SummStats

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

Summary statistics struct

This struct aggregates data to compute summary statistics using constant space overhead. It implements the FromIterator trait so it can be collected from an iterator of floats.

Examples

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

Implementations

Create a new SummStats struct with no data

Add a number

Get the number of values added

Get the minimum non nan value

Constant time. If no non nan values have been added, this is None.

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

Get the maximum non nan value

Constant time. If no non nan values have been added, this is None.

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

Get the mean

Constant time.

Examples
let nums = [2.0, 4.0];
let stats: inc_stats::SummStats = nums.iter().cloned().collect();
assert!((3.0 - stats.mean().unwrap()).abs() < 1.0e-6);
let stats = inc_stats::SummStats::new();
assert!(stats.mean().is_none());

Get the sum

Constant time.

Examples
let nums = [2.0, 4.0];
let stats: inc_stats::SummStats = nums.iter().cloned().collect();
assert!((6.0 - stats.sum()).abs() < 1.0e-6);

Get the sample standard deviation

Constant time.

Examples
let nums = [2.0, 4.0];
let stats: inc_stats::SummStats = nums.iter().cloned().collect();
assert!((1.4142136 - stats.standard_deviation().unwrap()).abs() < 1.0e-6);

Get the sample variance

Constant time.

Examples
let nums = [2.0, 4.0];
let stats: inc_stats::SummStats = nums.iter().cloned().collect();
assert!((2.0 - stats.variance().unwrap()).abs() < 1.0e-6);
let mut stats = inc_stats::SummStats::new();
stats.add(0.0);
assert!(stats.variance().is_none());

Get the standard error

Constant time.

Examples
let nums = [2.0, 4.0];
let stats: inc_stats::SummStats = nums.iter().cloned().collect();
assert!((1.0 - stats.standard_error().unwrap()).abs() < 1.0e-6);

Trait Implementations

Formats the value using the given formatter. Read more
Returns the “default value” for a type. 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.