Trait basic_dsp_vector::PreciseSumOps

source ·
pub trait PreciseSumOps<T>: Sized
where T: Sized,
{ // Required methods fn sum_prec(&self) -> T; fn sum_sq_prec(&self) -> T; }
Expand description

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

Required Methods§

source

fn sum_prec(&self) -> T

Calculates the sum of the data contained in the vector using a more precise but slower algorithm.

§Example
use basic_dsp_vector::*;
let vector = vec!(Complex::new(1.0, 2.0), Complex::new(3.0, 4.0), Complex::new(5.0, 6.0)).to_complex_time_vec();
let result = vector.sum_prec();
assert_eq!(result, Complex64::new(9.0, 12.0));
}
source

fn sum_sq_prec(&self) -> T

Calculates the sum of the squared data contained in the vector using a more precise but slower algorithm.

§Example
use basic_dsp_vector::*;
let vector = vec!(Complex::new(1.0, 2.0), Complex::new(3.0, 4.0), Complex::new(5.0, 6.0)).to_complex_time_vec();
let result = vector.sum_sq_prec();
assert_eq!(result, Complex64::new(-21.0, 88.0));
}

Object Safety§

This trait is not object safe.

Implementors§

source§

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

source§

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

source§

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

source§

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