Trait basic_dsp::RededicateVector
[−]
[src]
pub trait RededicateVector<T>: DataVector<T> where T: RealNumber { fn rededicate_as_complex_time_vector(self, delta: T) -> ComplexTimeVector<T>; fn rededicate_as_complex_freq_vector(self, delta: T) -> ComplexFreqVector<T>; fn rededicate_as_real_time_vector(self, delta: T) -> RealTimeVector<T>; fn rededicate_as_real_freq_vector(self, delta: T) -> RealFreqVector<T>; fn rededicate_as_generic_vector(self, is_complex: bool, domain: DataVectorDomain, delta: T) -> GenericDataVector<T>; }
This trait allows to change a vector type. The operations will
convert a vector to a different type and set self.len()
to zero.
However self.allocated_len()
will remain unchanged. The use case for this
is to allow to reuse the memory of a vector for different operations.
Required Methods
fn rededicate_as_complex_time_vector(self, delta: T) -> ComplexTimeVector<T>
Make self
a complex time vector
Example
use basic_dsp::{ComplexFreqVector32, ComplexVectorOperations, RededicateVector, DataVector, DataVectorDomain}; let complex = ComplexFreqVector32::from_interleaved(&[1.0, 2.0, 3.0, 4.0]); let real = complex.phase().expect("Ignoring error handling in examples"); let complex = real.rededicate_as_complex_time_vector(2.0); assert_eq!(true, complex.is_complex()); assert_eq!(DataVectorDomain::Time, complex.domain()); assert_eq!(0, complex.len()); assert_eq!(2, complex.allocated_len());
fn rededicate_as_complex_freq_vector(self, delta: T) -> ComplexFreqVector<T>
Make self
a complex frequency vector
fn rededicate_as_real_time_vector(self, delta: T) -> RealTimeVector<T>
Make self
a real time vector
fn rededicate_as_real_freq_vector(self, delta: T) -> RealFreqVector<T>
Make self
a real freq vector
fn rededicate_as_generic_vector(self, is_complex: bool, domain: DataVectorDomain, delta: T) -> GenericDataVector<T>
Make self
a generic vector
Implementors
impl<T> RededicateVector<T> for GenericDataVector<T> where T: RealNumber
impl<T> RededicateVector<T> for RealTimeVector<T> where T: RealNumber
impl<T> RededicateVector<T> for RealFreqVector<T> where T: RealNumber
impl<T> RededicateVector<T> for ComplexTimeVector<T> where T: RealNumber
impl<T> RededicateVector<T> for ComplexFreqVector<T> where T: RealNumber