[][src]Trait basic_dsp::ComplexToRealTransformsOps

pub trait ComplexToRealTransformsOps<T>: ToRealResult where
    T: RealNumber
{ fn magnitude(self) -> Self::RealResult;
fn magnitude_squared(self) -> Self::RealResult;
fn to_real(self) -> Self::RealResult;
fn to_imag(self) -> Self::RealResult;
fn phase(self) -> Self::RealResult; }

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

fn magnitude(self) -> Self::RealResult

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 result = vector.magnitude();
assert_eq!([5.0, 5.0], result[0..]);

fn magnitude_squared(self) -> Self::RealResult

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 result = vector.magnitude_squared();
assert_eq!([25.0, 25.0], result[0..]);

fn to_real(self) -> Self::RealResult

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 result = vector.to_real();
assert_eq!([1.0, 3.0], result[0..]);

fn to_imag(self) -> Self::RealResult

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 result = vector.to_imag();
assert_eq!([2.0, 4.0], result[0..]);

fn phase(self) -> Self::RealResult

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 result = vector.phase();
assert_eq!([0.0, 1.5707964, 3.1415927, -1.5707964, 0.7853982], result[0..]);
Loading content...

Implementors

impl<S, T, N, D> ComplexToRealTransformsOps<T> for DspVec<S, T, N, D> where
    D: Domain,
    N: ComplexNumberSpace,
    S: ToSliceMut<T>,
    T: RealNumber,
    DspVec<S, T, N, D>: ToRealResult,
    <DspVec<S, T, N, D> as ToRealResult>::RealResult: RededicateForceOps<DspVec<S, T, N, D>>, 
[src]

impl<V, S, T> ComplexToRealTransformsOps<T> for Matrix2xN<V, S, T> where
    S: ToSlice<T>,
    T: RealNumber,
    V: Vector<T> + ComplexToRealTransformsOps<T>,
    <V as ToRealResult>::RealResult: Vector<T>, 
[src]

impl<V, S, T> ComplexToRealTransformsOps<T> for Matrix3xN<V, S, T> where
    S: ToSlice<T>,
    T: RealNumber,
    V: Vector<T> + ComplexToRealTransformsOps<T>,
    <V as ToRealResult>::RealResult: Vector<T>, 
[src]

impl<V, S, T> ComplexToRealTransformsOps<T> for Matrix4xN<V, S, T> where
    S: ToSlice<T>,
    T: RealNumber,
    V: Vector<T> + ComplexToRealTransformsOps<T>,
    <V as ToRealResult>::RealResult: Vector<T>, 
[src]

impl<V, S, T> ComplexToRealTransformsOps<T> for MatrixMxN<V, S, T> where
    S: ToSlice<T>,
    T: RealNumber,
    V: Vector<T> + ComplexToRealTransformsOps<T>,
    <V as ToRealResult>::RealResult: Vector<T>, 
[src]

Loading content...