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
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 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
impl<T: Float + FromPrimitive + AddAssign, V: DerefCopy<Output = T>> FromIterator<V> for SummStats<T>
impl<T: Float + FromPrimitive + AddAssign, V: DerefCopy<Output = T>> FromIterator<V> for SummStats<T>
Creates a value from an iterator. Read more