Trait basic_dsp_vector::StatisticsOps [] [src]

pub trait StatisticsOps<T>: Sized where T: Sized {
    fn statistics(&self) -> T;
    fn statistics_split(&self, len: usize) -> Vec<T>;
    fn statistics_splitted(&self, len: usize) -> Vec<T>;
}

This trait offers operations to calculate statistics about the data in a type.

Required Methods

Calculates the statistics of the data.

Example

use basic_dsp_vector::*;
let vector = vec!(1.0, 2.0, 3.0, 4.0, 5.0, 6.0).to_complex_time_vec();
let result = vector.statistics();
assert_eq!(result.sum, Complex32::new(9.0, 12.0));
assert_eq!(result.count, 3);
assert_eq!(result.average, Complex32::new(3.0, 4.0));
assert!((result.rms - Complex32::new(3.4027193, 4.3102784)).norm() < 1e-4);
assert_eq!(result.min, Complex32::new(1.0, 2.0));
assert_eq!(result.min_index, 0);
assert_eq!(result.max, Complex32::new(5.0, 6.0));
assert_eq!(result.max_index, 2);
}

Calculates the statistics of the data contained in the vector as if the vector would have been split into len pieces. self.len should be dividable by len without a remainder, but this isn't enforced by the implementation.

Example

use basic_dsp_vector::*;
let vector = vec!(1.0, 2.0, 3.0, 4.0, 5.0, 6.0).to_complex_time_vec();
let result = vector.statistics_split(2);
assert_eq!(result[0].sum, Complex32::new(6.0, 8.0));
assert_eq!(result[1].sum, Complex32::new(3.0, 4.0));
}

Deprecated since 0.4.1

: Use statistics_split which is the same method but comes with correct spelling

Implementors