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

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

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

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

Implementors