Trait basic_dsp_vector::ComplexToRealTransformsOpsBuffered [] [src]

pub trait ComplexToRealTransformsOpsBuffered<S, T>: ToRealResult where S: ToSliceMut<T>, T: RealNumber {
    fn magnitude_b<B>(self, buffer: &mut B) -> Self::RealResult where B: Buffer<S, T>;
    fn magnitude_squared_b<B>(self, buffer: &mut B) -> Self::RealResult where B: Buffer<S, T>;
    fn to_real_b<B>(self, buffer: &mut B) -> Self::RealResult where B: Buffer<S, T>;
    fn to_imag_b<B>(self, buffer: &mut B) -> Self::RealResult where B: Buffer<S, T>;
    fn phase_b<B>(self, buffer: &mut B) -> Self::RealResult where B: Buffer<S, T>;
}

Defines transformations from complex to real number space.

Failures

All operations in this trait set self.len() to 0 if the type isn't in the complex number space.

Required Methods

Gets the absolute value, magnitude or norm of all vector elements.

Example

use basic_dsp_vector::*;
let vector = vec!(3.0, -4.0, -3.0, 4.0).to_complex_time_vec();
let mut buffer = SingleBuffer::new();
let result = vector.magnitude_b(&mut buffer);
assert_eq!([5.0, 5.0], result[0..]);

Gets the square root of the absolute value of all vector elements.

Example

use basic_dsp_vector::*;
let vector = vec!(3.0, -4.0, -3.0, 4.0).to_complex_time_vec();
let mut buffer = SingleBuffer::new();
let result = vector.magnitude_squared_b(&mut buffer);
assert_eq!([25.0, 25.0], result[0..]);

Gets all real elements.

Example

use basic_dsp_vector::*;
let vector = vec!(1.0, 2.0, 3.0, 4.0).to_complex_time_vec();
let mut buffer = SingleBuffer::new();
let result = vector.to_real_b(&mut buffer);
assert_eq!([1.0, 3.0], result[0..]);

Gets all imag elements.

Example

use basic_dsp_vector::*;
let vector = vec!(1.0, 2.0, 3.0, 4.0).to_complex_time_vec();
let mut buffer = SingleBuffer::new();
let result = vector.to_imag_b(&mut buffer);
assert_eq!([2.0, 4.0], result[0..]);

Gets the phase of all elements in [rad].

Example

use basic_dsp_vector::*;
let data: Vec<f32> = vec!(1.0, 0.0, 0.0, 4.0, -2.0, 0.0, 0.0, -3.0, 1.0, 1.0);
let vector = data.to_complex_time_vec();
let mut buffer = SingleBuffer::new();
let result = vector.phase_b(&mut buffer);
assert_eq!([0.0, 1.5707964, 3.1415927, -1.5707964, 0.7853982], result[0..]);

Implementors