Trait basic_dsp_vector::DiffSumOps
[−]
[src]
pub trait DiffSumOps { fn diff(&mut self); fn diff_with_start(&mut self); fn cum_sum(&mut self); }
A trait to calculate the diff (1st derivative in a discrete number space) or cumulative sum (integral in a discrete number space).
Required Methods
fn diff(&mut self)
Calculates the delta of each elements to its previous element. This will decrease the vector length by one point.
Example
Example
use basic_dsp_vector::*; let mut vector = vec!(2.0, 3.0, 2.0, 6.0).to_real_time_vec(); vector.diff(); assert_eq!([1.0, -1.0, 4.0], vector[..]); let mut vector = vec!(2.0, 2.0, 3.0, 3.0, 5.0, 5.0).to_complex_time_vec(); vector.diff(); assert_eq!([1.0, 1.0, 2.0, 2.0], vector[..]);
fn diff_with_start(&mut self)
Calculates the delta of each elements to its previous element. The first element will remain unchanged.
Example
use basic_dsp_vector::*; let mut vector = vec!(2.0, 3.0, 2.0, 6.0).to_real_time_vec(); vector.diff_with_start(); assert_eq!([2.0, 1.0, -1.0, 4.0], vector[..]); let mut vector = vec!(2.0, 2.0, 3.0, 3.0, 5.0, 5.0).to_complex_time_vec(); vector.diff_with_start(); assert_eq!([2.0, 2.0, 1.0, 1.0, 2.0, 2.0], vector[..]);
fn cum_sum(&mut self)
Calculates the cumulative sum of all elements. This operation undoes the
diff_with_start
operation.
Example
use basic_dsp_vector::*; let mut vector = vec!(2.0, 1.0, -1.0, 4.0).to_real_time_vec(); vector.cum_sum(); assert_eq!([2.0, 3.0, 2.0, 6.0], vector[..]);
Implementors
impl<S, T, N, D> DiffSumOps for DspVec<S, T, N, D> where
S: ToSliceMut<T>,
T: RealNumber,
N: NumberSpace,
D: Domain,