Trait basic_dsp::PreciseStatisticsSplitOps

source ·
pub trait PreciseStatisticsSplitOps<T> {
    type Result;

    // Required method
    fn statistics_split_prec(
        &self,
        len: usize
    ) -> Result<Self::Result, ErrorReason>;
}
Expand description

Offers the same functionality as the StatisticsOps trait but the statistics are calculated in a more precise (and slower) way.

Required Associated Types§

Required Methods§

source

fn statistics_split_prec(&self, len: usize) -> Result<Self::Result, ErrorReason>

Calculates the statistics of the data contained in the vector as if the vector would have been split into len pieces using a more precise but slower algorithm. self.len should be dividable by len without a remainder, but this isn’t enforced by the implementation. For implementation reasons len <= 16 must be true.

§Example
use basic_dsp_vector::*;
let vector: Vec<Complex<f32>> = vec!(Complex::new(1.0, 2.0), Complex::new(3.0, 4.0), Complex::new(5.0, 6.0));
let vector = vector.to_complex_time_vec();
let result = vector.statistics_split_prec(2).expect("Ignoring error handling in examples");
assert_eq!(result[0].sum, Complex64::new(6.0, 8.0));
assert_eq!(result[1].sum, Complex64::new(3.0, 4.0));
}

Implementors§

source§

impl<S, N, D> PreciseStatisticsSplitOps<f64> for DspVec<S, f32, N, D>
where S: ToSlice<f32>, N: RealNumberSpace, D: Domain,

§

type Result = ArrayVec<Statistics<f64>, basic_dsp_vector::::vector_types::general::statistics::StatsVec::{constant#0}>

source§

impl<S, N, D> PreciseStatisticsSplitOps<f64> for DspVec<S, f64, N, D>
where S: ToSlice<f64>, N: RealNumberSpace, D: Domain,

§

type Result = ArrayVec<Statistics<f64>, basic_dsp_vector::::vector_types::general::statistics::StatsVec::{constant#0}>

source§

impl<S, N, D> PreciseStatisticsSplitOps<Complex<f64>> for DspVec<S, f32, N, D>

§

type Result = ArrayVec<Statistics<Complex<f64>>, basic_dsp_vector::::vector_types::general::statistics::StatsVec::{constant#0}>

source§

impl<S, N, D> PreciseStatisticsSplitOps<Complex<f64>> for DspVec<S, f64, N, D>

§

type Result = ArrayVec<Statistics<Complex<f64>>, basic_dsp_vector::::vector_types::general::statistics::StatsVec::{constant#0}>

source§

impl<S, V, T> PreciseStatisticsSplitOps<T> for Matrix2xN<V, S, T>
where S: ToSlice<T>, V: Vector<T> + PreciseStatisticsSplitOps<Statistics<T>, Result = ArrayVec<Statistics<T>, basic_dsp_vector::::vector_types::general::statistics::StatsVec::{constant#0}>>, T: RealNumber,

§

type Result = [ArrayVec<Statistics<T>, basic_dsp_vector::::vector_types::general::statistics::StatsVec::{constant#0}>; 2]

source§

impl<S, V, T> PreciseStatisticsSplitOps<T> for Matrix3xN<V, S, T>
where S: ToSlice<T>, V: Vector<T> + PreciseStatisticsSplitOps<Statistics<T>, Result = ArrayVec<Statistics<T>, basic_dsp_vector::::vector_types::general::statistics::StatsVec::{constant#0}>>, T: RealNumber,

§

type Result = [ArrayVec<Statistics<T>, basic_dsp_vector::::vector_types::general::statistics::StatsVec::{constant#0}>; 3]

source§

impl<S, V, T> PreciseStatisticsSplitOps<T> for Matrix4xN<V, S, T>
where S: ToSlice<T>, V: Vector<T> + PreciseStatisticsSplitOps<Statistics<T>, Result = ArrayVec<Statistics<T>, basic_dsp_vector::::vector_types::general::statistics::StatsVec::{constant#0}>>, T: RealNumber,

§

type Result = [ArrayVec<Statistics<T>, basic_dsp_vector::::vector_types::general::statistics::StatsVec::{constant#0}>; 4]

source§

impl<S, V, T> PreciseStatisticsSplitOps<T> for MatrixMxN<V, S, T>
where S: ToSlice<T>, V: Vector<T> + PreciseStatisticsSplitOps<Statistics<T>, Result = ArrayVec<Statistics<T>, basic_dsp_vector::::vector_types::general::statistics::StatsVec::{constant#0}>>, T: RealNumber,

§

type Result = Vec<ArrayVec<Statistics<T>, basic_dsp_vector::::vector_types::general::statistics::StatsVec::{constant#0}>>