[][src]Trait basic_dsp::DiffSumOps

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_startoperation.

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[..]);
Loading content...

Implementors

impl<S, T, N, D> DiffSumOps for DspVec<S, T, N, D> where
    D: Domain,
    N: NumberSpace,
    S: ToSliceMut<T>,
    T: RealNumber
[src]

impl<S, V, T> DiffSumOps for Matrix2xN<V, S, T> where
    S: ToSlice<T>,
    T: RealNumber,
    V: Vector<T> + DiffSumOps
[src]

impl<S, V, T> DiffSumOps for Matrix3xN<V, S, T> where
    S: ToSlice<T>,
    T: RealNumber,
    V: Vector<T> + DiffSumOps
[src]

impl<S, V, T> DiffSumOps for Matrix4xN<V, S, T> where
    S: ToSlice<T>,
    T: RealNumber,
    V: Vector<T> + DiffSumOps
[src]

impl<S, V, T> DiffSumOps for MatrixMxN<V, S, T> where
    S: ToSlice<T>,
    T: RealNumber,
    V: Vector<T> + DiffSumOps
[src]

Loading content...