Struct inc_stats::SummStats[][src]

pub struct SummStats<T: Float + FromPrimitive + AddAssign> { /* fields omitted */ }
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 mut stats = inc_stats::SummStats::new();
for &num in &[2.0, 4.0, 8.0] {
    stats.add(num);
}
assert_eq!(3, stats.count());
let stats: inc_stats::SummStats<f64> = [2.0, 4.0, 8.0].iter().collect();
assert_eq!(3, stats.count());

Implementations

Create a new SummStats struct with no data

Add a number

Examples
let mut stats = inc_stats::SummStats::new();
stats.add(0.0);
stats.add(&1.2);
assert_eq!(2, stats.count());
Panics

when the internal count can’t be converted into the float data type.

Add a number

Check for conversion errors, will only happen when the internal count can’t be converted into the float data type.

Examples
let mut stats = inc_stats::SummStats::new();
stats.checked_add(0.0).unwrap();
assert_eq!(1, stats.count());

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 stats: inc_stats::SummStats<_> = [2.0, 4.0, std::f64::NAN].iter().collect();
assert_eq!(2.0, stats.min().unwrap());
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 stats: inc_stats::SummStats<_> = [2.0, 4.0, std::f64::NAN].iter().collect();
assert_eq!(4.0, stats.max().unwrap());

Get the mean

Constant time.

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

Get the sum

Constant time.

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

Get the sample standard deviation

Constant time.

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

Get the sample variance

Constant time.

Examples
let stats: inc_stats::SummStats<f64> = [2.0, 4.0].iter().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 stats: inc_stats::SummStats<f64> = [2.0, 4.0].iter().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

Performs the conversion.

Performs the conversion.

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.