pub trait Statistics {
    type Array;
    type Value;
    // Required methods
    fn mean(&self) -> Self::Value;
    fn var(&self) -> Self::Value;
    fn sd(&self) -> Self::Value;
    fn cov(&self) -> Self::Array;
    fn cor(&self) -> Self::Array;
}Expand description
Statistics Trait
It contains mean, var, sd, cov
Required Associated Types§
Required Methods§
fn mean(&self) -> Self::Value
fn var(&self) -> Self::Value
fn sd(&self) -> Self::Value
fn cov(&self) -> Self::Array
fn cor(&self) -> Self::Array
Implementations on Foreign Types§
Source§impl Statistics for Vec<f32>
 
impl Statistics for Vec<f32>
Source§fn mean(&self) -> f32
 
fn mean(&self) -> f32
Mean
Uses welfords online algorithm for numerically stable computation.
§Examples
#[macro_use]
extern crate peroxide;
use peroxide::fuga::*;
fn main() {
    let a = c!(1,2,3,4,5);
    assert_eq!(a.mean(), 3.0);
}Source§fn var(&self) -> f32
 
fn var(&self) -> f32
Variance
Uses welfords online algorithm for numerically stable computation.
§Examples
#[macro_use]
extern crate peroxide;
use peroxide::fuga::*;
fn main() {
    let a = c!(1,2,3,4,5);
    assert_eq!(a.var(), 2.5);
}Source§fn sd(&self) -> f32
 
fn sd(&self) -> f32
Standard Deviation
§Examples
#[macro_use]
extern crate peroxide;
use peroxide::fuga::*;
fn main() {
    let a = c!(1,2,3);
    assert!(nearly_eq(a.sd(), 1f64)); // Floating Number Error
}type Array = Vec<f32>
type Value = f32
fn cov(&self) -> Vec<f32>
fn cor(&self) -> Vec<f32>
Source§impl Statistics for Vec<f64>
 
impl Statistics for Vec<f64>
Source§fn mean(&self) -> f64
 
fn mean(&self) -> f64
Mean
Uses welfords online algorithm for numerically stable computation.
§Examples
#[macro_use]
extern crate peroxide;
use peroxide::fuga::*;
fn main() {
    let a = c!(1,2,3,4,5);
    assert_eq!(a.mean(), 3.0);
}Source§fn var(&self) -> f64
 
fn var(&self) -> f64
Variance
Uses welfords online algorithm for numerically stable computation.
§Examples
#[macro_use]
extern crate peroxide;
use peroxide::fuga::*;
fn main() {
    let a = c!(1,2,3,4,5);
    assert_eq!(a.var(), 2.5);
}Source§fn sd(&self) -> f64
 
fn sd(&self) -> f64
Standard Deviation
§Examples
#[macro_use]
extern crate peroxide;
use peroxide::fuga::*;
fn main() {
    let a = c!(1,2,3);
    assert!(nearly_eq(a.sd(), 1f64)); // Floating Number Error
}