[−][src]Struct basic_dsp::DspVec
A 1xN (one times N elements) or Nx1 data vector as used for most digital signal processing (DSP) operations.
Vectors come in different flavors:
- Time or Frequency domain
- Real or Complex numbers
- 32bit or 64bit floating point numbers
The first two flavors define meta information about the vector and provide compile time
information what operations are available with the given vector and how this will transform
the vector. This makes sure that some invalid operations are already discovered at compile
time. In case that this isn't desired or the information about the vector isn't known at
compile time there are the generic DataVec32 and
DataVec64 vectors available.
32bit and 64bit flavors trade performance and memory consumption against accuracy. 32bit vectors are roughly two times faster than 64bit vectors for most operations. But remember that you should benchmark first before you give away accuracy for performance unless however you are sure that 32bit accuracy is certainly good enough.
Fields
data: SThe underlying storage. self.len() should be called to find out how many
elements in data contain valid data.
Methods
impl<S, T, N, D> DspVec<S, T, N, D> where
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
pub fn convolve_mat(
matrix: &[&DspVec<S, T, N, D>],
impulse_response: &[&DspVec<S, T, N, D>],
target: &mut [T]
) -> Result<(), ErrorReason>[src]
matrix: &[&DspVec<S, T, N, D>],
impulse_response: &[&DspVec<S, T, N, D>],
target: &mut [T]
) -> Result<(), ErrorReason>
Convolves a vector of vectors (in this lib also considered a matrix) with a vector
of impulse responses and stores the result in target.
impl<S, T> DspVec<S, T, RealOrComplex, TimeOrFreq> where
S: ToSliceMut<T>,
T: RealNumber, [src]
S: ToSliceMut<T>,
T: RealNumber,
pub fn is_erroneous(&self) -> bool[src]
Indicates whether or not the operations on this vector have been successful. Consider using the statically typed vector versions so that this check doesn't need to be performed.
Trait Implementations
impl<T, S> ToComplexTimeMatrix<DspVec<S, T, Complex, Time>, T> for [S; 4] where
S: ToComplexVector<S, T> + ToSlice<T>,
T: RealNumber, [src]
S: ToComplexVector<S, T> + ToSlice<T>,
T: RealNumber,
type Output = Matrix4xN<DspVec<S, T, Complex, Time>, S, T>
fn to_complex_time_mat(
self
) -> <[S; 4] as ToComplexTimeMatrix<DspVec<S, T, Complex, Time>, T>>::Output[src]
self
) -> <[S; 4] as ToComplexTimeMatrix<DspVec<S, T, Complex, Time>, T>>::Output
impl<T, S> ToComplexTimeMatrix<DspVec<S, T, Complex, Time>, T> for [S; 3] where
S: ToComplexVector<S, T> + ToSlice<T>,
T: RealNumber, [src]
S: ToComplexVector<S, T> + ToSlice<T>,
T: RealNumber,
type Output = Matrix3xN<DspVec<S, T, Complex, Time>, S, T>
fn to_complex_time_mat(
self
) -> <[S; 3] as ToComplexTimeMatrix<DspVec<S, T, Complex, Time>, T>>::Output[src]
self
) -> <[S; 3] as ToComplexTimeMatrix<DspVec<S, T, Complex, Time>, T>>::Output
impl<T, S> ToComplexTimeMatrix<DspVec<S, T, Complex, Time>, T> for Vec<S> where
S: ToComplexVector<S, T> + ToSlice<T>,
T: RealNumber, [src]
S: ToComplexVector<S, T> + ToSlice<T>,
T: RealNumber,
type Output = MatrixMxN<DspVec<S, T, Complex, Time>, S, T>
fn to_complex_time_mat(
self
) -> <Vec<S> as ToComplexTimeMatrix<DspVec<S, T, Complex, Time>, T>>::Output[src]
self
) -> <Vec<S> as ToComplexTimeMatrix<DspVec<S, T, Complex, Time>, T>>::Output
impl<T, S> ToComplexTimeMatrix<DspVec<S, T, Complex, Time>, T> for [S; 2] where
S: ToComplexVector<S, T> + ToSlice<T>,
T: RealNumber, [src]
S: ToComplexVector<S, T> + ToSlice<T>,
T: RealNumber,
type Output = Matrix2xN<DspVec<S, T, Complex, Time>, S, T>
fn to_complex_time_mat(
self
) -> <[S; 2] as ToComplexTimeMatrix<DspVec<S, T, Complex, Time>, T>>::Output[src]
self
) -> <[S; 2] as ToComplexTimeMatrix<DspVec<S, T, Complex, Time>, T>>::Output
impl<T, S> ToRealFreqMatrix<DspVec<S, T, Real, Freq>, T> for Vec<S> where
S: ToRealVector<T> + ToSlice<T>,
T: RealNumber, [src]
S: ToRealVector<T> + ToSlice<T>,
T: RealNumber,
type Output = MatrixMxN<DspVec<S, T, Real, Freq>, S, T>
fn to_real_freq_mat(
self
) -> <Vec<S> as ToRealFreqMatrix<DspVec<S, T, Real, Freq>, T>>::Output[src]
self
) -> <Vec<S> as ToRealFreqMatrix<DspVec<S, T, Real, Freq>, T>>::Output
impl<T, S> ToRealFreqMatrix<DspVec<S, T, Real, Freq>, T> for [S; 4] where
S: ToRealVector<T> + ToSlice<T>,
T: RealNumber, [src]
S: ToRealVector<T> + ToSlice<T>,
T: RealNumber,
type Output = Matrix4xN<DspVec<S, T, Real, Freq>, S, T>
fn to_real_freq_mat(
self
) -> <[S; 4] as ToRealFreqMatrix<DspVec<S, T, Real, Freq>, T>>::Output[src]
self
) -> <[S; 4] as ToRealFreqMatrix<DspVec<S, T, Real, Freq>, T>>::Output
impl<T, S> ToRealFreqMatrix<DspVec<S, T, Real, Freq>, T> for [S; 2] where
S: ToRealVector<T> + ToSlice<T>,
T: RealNumber, [src]
S: ToRealVector<T> + ToSlice<T>,
T: RealNumber,
type Output = Matrix2xN<DspVec<S, T, Real, Freq>, S, T>
fn to_real_freq_mat(
self
) -> <[S; 2] as ToRealFreqMatrix<DspVec<S, T, Real, Freq>, T>>::Output[src]
self
) -> <[S; 2] as ToRealFreqMatrix<DspVec<S, T, Real, Freq>, T>>::Output
impl<T, S> ToRealFreqMatrix<DspVec<S, T, Real, Freq>, T> for [S; 3] where
S: ToRealVector<T> + ToSlice<T>,
T: RealNumber, [src]
S: ToRealVector<T> + ToSlice<T>,
T: RealNumber,
type Output = Matrix3xN<DspVec<S, T, Real, Freq>, S, T>
fn to_real_freq_mat(
self
) -> <[S; 3] as ToRealFreqMatrix<DspVec<S, T, Real, Freq>, T>>::Output[src]
self
) -> <[S; 3] as ToRealFreqMatrix<DspVec<S, T, Real, Freq>, T>>::Output
impl<T, S> ToRealTimeMatrix<DspVec<S, T, Real, Time>, T> for [S; 3] where
S: ToRealVector<T> + ToSlice<T>,
T: RealNumber, [src]
S: ToRealVector<T> + ToSlice<T>,
T: RealNumber,
type Output = Matrix3xN<DspVec<S, T, Real, Time>, S, T>
fn to_real_time_mat(
self
) -> <[S; 3] as ToRealTimeMatrix<DspVec<S, T, Real, Time>, T>>::Output[src]
self
) -> <[S; 3] as ToRealTimeMatrix<DspVec<S, T, Real, Time>, T>>::Output
impl<T, S> ToRealTimeMatrix<DspVec<S, T, Real, Time>, T> for [S; 2] where
S: ToRealVector<T> + ToSlice<T>,
T: RealNumber, [src]
S: ToRealVector<T> + ToSlice<T>,
T: RealNumber,
type Output = Matrix2xN<DspVec<S, T, Real, Time>, S, T>
fn to_real_time_mat(
self
) -> <[S; 2] as ToRealTimeMatrix<DspVec<S, T, Real, Time>, T>>::Output[src]
self
) -> <[S; 2] as ToRealTimeMatrix<DspVec<S, T, Real, Time>, T>>::Output
impl<T, S> ToRealTimeMatrix<DspVec<S, T, Real, Time>, T> for Vec<S> where
S: ToRealVector<T> + ToSlice<T>,
T: RealNumber, [src]
S: ToRealVector<T> + ToSlice<T>,
T: RealNumber,
type Output = MatrixMxN<DspVec<S, T, Real, Time>, S, T>
fn to_real_time_mat(
self
) -> <Vec<S> as ToRealTimeMatrix<DspVec<S, T, Real, Time>, T>>::Output[src]
self
) -> <Vec<S> as ToRealTimeMatrix<DspVec<S, T, Real, Time>, T>>::Output
impl<T, S> ToRealTimeMatrix<DspVec<S, T, Real, Time>, T> for [S; 4] where
S: ToRealVector<T> + ToSlice<T>,
T: RealNumber, [src]
S: ToRealVector<T> + ToSlice<T>,
T: RealNumber,
type Output = Matrix4xN<DspVec<S, T, Real, Time>, S, T>
fn to_real_time_mat(
self
) -> <[S; 4] as ToRealTimeMatrix<DspVec<S, T, Real, Time>, T>>::Output[src]
self
) -> <[S; 4] as ToRealTimeMatrix<DspVec<S, T, Real, Time>, T>>::Output
impl<T, S> ToDspMatrix<DspVec<S, T, RealOrComplex, TimeOrFreq>, T> for [S; 2] where
S: ToDspVector<T> + ToSlice<T>,
T: RealNumber, [src]
S: ToDspVector<T> + ToSlice<T>,
T: RealNumber,
type Output = Matrix2xN<DspVec<S, T, RealOrComplex, TimeOrFreq>, S, T>
fn to_gen_dsp_mat(
self,
is_complex: bool,
domain: DataDomain
) -> <[S; 2] as ToDspMatrix<DspVec<S, T, RealOrComplex, TimeOrFreq>, T>>::Output[src]
self,
is_complex: bool,
domain: DataDomain
) -> <[S; 2] as ToDspMatrix<DspVec<S, T, RealOrComplex, TimeOrFreq>, T>>::Output
impl<T, S> ToDspMatrix<DspVec<S, T, RealOrComplex, TimeOrFreq>, T> for [S; 3] where
S: ToDspVector<T> + ToSlice<T>,
T: RealNumber, [src]
S: ToDspVector<T> + ToSlice<T>,
T: RealNumber,
type Output = Matrix3xN<DspVec<S, T, RealOrComplex, TimeOrFreq>, S, T>
fn to_gen_dsp_mat(
self,
is_complex: bool,
domain: DataDomain
) -> <[S; 3] as ToDspMatrix<DspVec<S, T, RealOrComplex, TimeOrFreq>, T>>::Output[src]
self,
is_complex: bool,
domain: DataDomain
) -> <[S; 3] as ToDspMatrix<DspVec<S, T, RealOrComplex, TimeOrFreq>, T>>::Output
impl<T, S> ToDspMatrix<DspVec<S, T, RealOrComplex, TimeOrFreq>, T> for [S; 4] where
S: ToDspVector<T> + ToSlice<T>,
T: RealNumber, [src]
S: ToDspVector<T> + ToSlice<T>,
T: RealNumber,
type Output = Matrix4xN<DspVec<S, T, RealOrComplex, TimeOrFreq>, S, T>
fn to_gen_dsp_mat(
self,
is_complex: bool,
domain: DataDomain
) -> <[S; 4] as ToDspMatrix<DspVec<S, T, RealOrComplex, TimeOrFreq>, T>>::Output[src]
self,
is_complex: bool,
domain: DataDomain
) -> <[S; 4] as ToDspMatrix<DspVec<S, T, RealOrComplex, TimeOrFreq>, T>>::Output
impl<T, S> ToDspMatrix<DspVec<S, T, RealOrComplex, TimeOrFreq>, T> for Vec<S> where
S: ToDspVector<T> + ToSlice<T>,
T: RealNumber, [src]
S: ToDspVector<T> + ToSlice<T>,
T: RealNumber,
type Output = MatrixMxN<DspVec<S, T, RealOrComplex, TimeOrFreq>, S, T>
fn to_gen_dsp_mat(
self,
is_complex: bool,
domain: DataDomain
) -> <Vec<S> as ToDspMatrix<DspVec<S, T, RealOrComplex, TimeOrFreq>, T>>::Output[src]
self,
is_complex: bool,
domain: DataDomain
) -> <Vec<S> as ToDspMatrix<DspVec<S, T, RealOrComplex, TimeOrFreq>, T>>::Output
impl<S, T, N, D> ToMatrix<DspVec<S, T, N, D>, T> for Vec<DspVec<S, T, N, D>> where
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber,
type Output = MatrixMxN<DspVec<S, T, N, D>, S, T>
fn to_mat(
self
) -> <Vec<DspVec<S, T, N, D>> as ToMatrix<DspVec<S, T, N, D>, T>>::Output[src]
self
) -> <Vec<DspVec<S, T, N, D>> as ToMatrix<DspVec<S, T, N, D>, T>>::Output
impl<S, T, N, D> ToMatrix<DspVec<S, T, N, D>, T> for [DspVec<S, T, N, D>; 3] where
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber,
type Output = Matrix3xN<DspVec<S, T, N, D>, S, T>
fn to_mat(
self
) -> <[DspVec<S, T, N, D>; 3] as ToMatrix<DspVec<S, T, N, D>, T>>::Output[src]
self
) -> <[DspVec<S, T, N, D>; 3] as ToMatrix<DspVec<S, T, N, D>, T>>::Output
impl<S, T, N, D> ToMatrix<DspVec<S, T, N, D>, T> for [DspVec<S, T, N, D>; 4] where
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber,
type Output = Matrix4xN<DspVec<S, T, N, D>, S, T>
fn to_mat(
self
) -> <[DspVec<S, T, N, D>; 4] as ToMatrix<DspVec<S, T, N, D>, T>>::Output[src]
self
) -> <[DspVec<S, T, N, D>; 4] as ToMatrix<DspVec<S, T, N, D>, T>>::Output
impl<S, T, N, D> ToMatrix<DspVec<S, T, N, D>, T> for [DspVec<S, T, N, D>; 2] where
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber,
type Output = Matrix2xN<DspVec<S, T, N, D>, S, T>
fn to_mat(
self
) -> <[DspVec<S, T, N, D>; 2] as ToMatrix<DspVec<S, T, N, D>, T>>::Output[src]
self
) -> <[DspVec<S, T, N, D>; 2] as ToMatrix<DspVec<S, T, N, D>, T>>::Output
impl<S, T, N, D> ConvolutionOps<DspVec<S, T, N, D>, S, T, N, D> for Matrix2xN<DspVec<S, T, N, D>, S, T> where
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
DspVec<S, T, N, D>: ConvolutionOps<DspVec<S, T, N, D>, S, T, N, D>, [src]
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
DspVec<S, T, N, D>: ConvolutionOps<DspVec<S, T, N, D>, S, T, N, D>,
fn convolve_signal<B>(
&mut self,
buffer: &mut B,
impulse_response: &DspVec<S, T, N, D>
) -> Result<(), ErrorReason> where
B: Buffer<'b, S, T>, [src]
&mut self,
buffer: &mut B,
impulse_response: &DspVec<S, T, N, D>
) -> Result<(), ErrorReason> where
B: Buffer<'b, S, T>,
impl<S, T, N, D> ConvolutionOps<DspVec<S, T, N, D>, S, T, N, D> for MatrixMxN<DspVec<S, T, N, D>, S, T> where
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
DspVec<S, T, N, D>: ConvolutionOps<DspVec<S, T, N, D>, S, T, N, D>, [src]
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
DspVec<S, T, N, D>: ConvolutionOps<DspVec<S, T, N, D>, S, T, N, D>,
fn convolve_signal<B>(
&mut self,
buffer: &mut B,
impulse_response: &DspVec<S, T, N, D>
) -> Result<(), ErrorReason> where
B: Buffer<'b, S, T>, [src]
&mut self,
buffer: &mut B,
impulse_response: &DspVec<S, T, N, D>
) -> Result<(), ErrorReason> where
B: Buffer<'b, S, T>,
impl<S, T, N, D> ConvolutionOps<DspVec<S, T, N, D>, S, T, N, D> for Matrix3xN<DspVec<S, T, N, D>, S, T> where
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
DspVec<S, T, N, D>: ConvolutionOps<DspVec<S, T, N, D>, S, T, N, D>, [src]
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
DspVec<S, T, N, D>: ConvolutionOps<DspVec<S, T, N, D>, S, T, N, D>,
fn convolve_signal<B>(
&mut self,
buffer: &mut B,
impulse_response: &DspVec<S, T, N, D>
) -> Result<(), ErrorReason> where
B: Buffer<'b, S, T>, [src]
&mut self,
buffer: &mut B,
impulse_response: &DspVec<S, T, N, D>
) -> Result<(), ErrorReason> where
B: Buffer<'b, S, T>,
impl<S, T, N, D> ConvolutionOps<DspVec<S, T, N, D>, S, T, N, D> for Matrix4xN<DspVec<S, T, N, D>, S, T> where
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
DspVec<S, T, N, D>: ConvolutionOps<DspVec<S, T, N, D>, S, T, N, D>, [src]
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
DspVec<S, T, N, D>: ConvolutionOps<DspVec<S, T, N, D>, S, T, N, D>,
fn convolve_signal<B>(
&mut self,
buffer: &mut B,
impulse_response: &DspVec<S, T, N, D>
) -> Result<(), ErrorReason> where
B: Buffer<'b, S, T>, [src]
&mut self,
buffer: &mut B,
impulse_response: &DspVec<S, T, N, D>
) -> Result<(), ErrorReason> where
B: Buffer<'b, S, T>,
impl<S, T, N, D> FromVector<T> for DspVec<S, T, N, D> where
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber,
type Output = S
Type of the underlying storage of a vector.
fn get(self) -> (<DspVec<S, T, N, D> as FromVector<T>>::Output, usize)[src]
fn to_slice(&self) -> &[T][src]
impl<S, T, N, D> RealOps for DspVec<S, T, N, D> where
D: Domain,
N: RealNumberSpace,
S: ToSliceMut<T>,
T: RealNumber, [src]
D: Domain,
N: RealNumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
impl<S, T, N, D> SumOps<T> for DspVec<S, T, N, D> where
D: Domain,
N: RealNumberSpace,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
N: RealNumberSpace,
S: ToSlice<T>,
T: RealNumber,
impl<S, T, N, D> SumOps<Complex<T>> for DspVec<S, T, N, D> where
D: Domain,
N: ComplexNumberSpace,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
N: ComplexNumberSpace,
S: ToSlice<T>,
T: RealNumber,
impl<S, T, N, D, O, NO, DO> ElementaryWrapAroundOps<O, T, NO, DO> for DspVec<S, T, N, D> where
D: Domain,
DO: PosEq<D> + Domain,
N: NumberSpace,
NO: PosEq<N> + NumberSpace,
O: Vector<T> + Index<RangeFull, Output = [T]> + GetMetaData<T, NO, DO>,
S: ToSliceMut<T>,
T: RealNumber, [src]
D: Domain,
DO: PosEq<D> + Domain,
N: NumberSpace,
NO: PosEq<N> + NumberSpace,
O: Vector<T> + Index<RangeFull, Output = [T]> + GetMetaData<T, NO, DO>,
S: ToSliceMut<T>,
T: RealNumber,
fn add_smaller(&mut self, summand: &O) -> Result<(), ErrorReason>[src]
fn sub_smaller(&mut self, subtrahend: &O) -> Result<(), ErrorReason>[src]
fn mul_smaller(&mut self, factor: &O) -> Result<(), ErrorReason>[src]
fn div_smaller(&mut self, divisor: &O) -> Result<(), ErrorReason>[src]
impl<S, T, N, D> StatisticsSplitOps<T> for DspVec<S, T, N, D> where
D: Domain,
N: RealNumberSpace,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
N: RealNumberSpace,
S: ToSlice<T>,
T: RealNumber,
type Result = ArrayVec<[Statistics<T>; 16]>
fn statistics_split(
&self,
len: usize
) -> Result<ArrayVec<[Statistics<T>; 16]>, ErrorReason>[src]
&self,
len: usize
) -> Result<ArrayVec<[Statistics<T>; 16]>, ErrorReason>
impl<S, T, N, D> StatisticsSplitOps<Complex<T>> for DspVec<S, T, N, D> where
D: Domain,
N: ComplexNumberSpace,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
N: ComplexNumberSpace,
S: ToSlice<T>,
T: RealNumber,
type Result = ArrayVec<[Statistics<Complex<T>>; 16]>
fn statistics_split(
&self,
len: usize
) -> Result<ArrayVec<[Statistics<Complex<T>>; 16]>, ErrorReason>[src]
&self,
len: usize
) -> Result<ArrayVec<[Statistics<Complex<T>>; 16]>, ErrorReason>
impl<S, T, N, D> StatisticsOps<Complex<T>> for DspVec<S, T, N, D> where
D: Domain,
N: ComplexNumberSpace,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
N: ComplexNumberSpace,
S: ToSlice<T>,
T: RealNumber,
type Result = Statistics<Complex<T>>
fn statistics(&self) -> Statistics<Complex<T>>[src]
impl<S, T, N, D> StatisticsOps<T> for DspVec<S, T, N, D> where
D: Domain,
N: RealNumberSpace,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
N: RealNumberSpace,
S: ToSlice<T>,
T: RealNumber,
type Result = Statistics<T>
fn statistics(&self) -> Statistics<T>[src]
impl<S, T, N, D> SplitOps for DspVec<S, T, N, D> where
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
fn split_into(
&self,
targets: &mut [&mut DspVec<S, T, N, D>]
) -> Result<(), ErrorReason>[src]
&self,
targets: &mut [&mut DspVec<S, T, N, D>]
) -> Result<(), ErrorReason>
impl<S, T, D, N> ScaleOps<T> for DspVec<S, T, N, D> where
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
impl<S, T, D, N> ScaleOps<Complex<T>> for DspVec<S, T, N, D> where
D: Domain,
N: ComplexNumberSpace,
S: ToSliceMut<T>,
T: RealNumber, [src]
D: Domain,
N: ComplexNumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
impl<S, T, N, D> RealToComplexTransformsOpsBuffered<S, T> for DspVec<S, T, N, D> where
D: Domain,
N: RealNumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
DspVec<S, T, N, D>: ToComplexResult,
DspVec<S, T, N, D>: InsertZerosOpsBuffered<S, T>,
<DspVec<S, T, N, D> as ToComplexResult>::ComplexResult: RededicateForceOps<DspVec<S, T, N, D>>, [src]
D: Domain,
N: RealNumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
DspVec<S, T, N, D>: ToComplexResult,
DspVec<S, T, N, D>: InsertZerosOpsBuffered<S, T>,
<DspVec<S, T, N, D> as ToComplexResult>::ComplexResult: RededicateForceOps<DspVec<S, T, N, D>>,
fn to_complex_b<B>(
self,
buffer: &mut B
) -> <DspVec<S, T, N, D> as ToComplexResult>::ComplexResult where
B: Buffer<'a, S, T>, [src]
self,
buffer: &mut B
) -> <DspVec<S, T, N, D> as ToComplexResult>::ComplexResult where
B: Buffer<'a, S, T>,
impl<S, T, N, D> PowerOps<T> for DspVec<S, T, N, D> where
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
fn sqrt(&mut self)[src]
fn square(&mut self)[src]
fn root(&mut self, degree: T)[src]
fn powf(&mut self, exponent: T)[src]
fn ln(&mut self)[src]
fn exp(&mut self)[src]
fn log(&mut self, base: T)[src]
fn expf(&mut self, base: T)[src]
impl<S, T, N, D> InsertZerosOpsBuffered<S, T> for DspVec<S, T, N, D> where
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
fn zero_pad_b<B>(
&mut self,
buffer: &mut B,
points: usize,
option: PaddingOption
) -> Result<(), ErrorReason> where
B: Buffer<'a, S, T>, [src]
&mut self,
buffer: &mut B,
points: usize,
option: PaddingOption
) -> Result<(), ErrorReason> where
B: Buffer<'a, S, T>,
fn zero_interleave_b<B>(&mut self, buffer: &mut B, factor: u32) where
B: Buffer<'a, S, T>, [src]
B: Buffer<'a, S, T>,
impl<'a, S, T, N, D> FrequencyMultiplication<'a, S, T, &'a (dyn ComplexFrequencyResponse<T> + 'a)> for DspVec<S, T, N, D> where
D: FrequencyDomain,
N: ComplexNumberSpace,
S: ToSliceMut<T>,
T: RealNumber, [src]
D: FrequencyDomain,
N: ComplexNumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
fn multiply_frequency_response(
&mut self,
frequency_response: &dyn ComplexFrequencyResponse<T>,
ratio: T
)[src]
&mut self,
frequency_response: &dyn ComplexFrequencyResponse<T>,
ratio: T
)
impl<'a, S, T, N, D> FrequencyMultiplication<'a, S, T, &'a (dyn RealFrequencyResponse<T> + 'a)> for DspVec<S, T, N, D> where
D: FrequencyDomain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber, [src]
D: FrequencyDomain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
fn multiply_frequency_response(
&mut self,
frequency_response: &dyn RealFrequencyResponse<T>,
ratio: T
)[src]
&mut self,
frequency_response: &dyn RealFrequencyResponse<T>,
ratio: T
)
impl<S, T, N, D> InsertZerosOps<T> for DspVec<S, T, N, D> where
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
fn zero_pad(
&mut self,
points: usize,
option: PaddingOption
) -> Result<(), ErrorReason>[src]
&mut self,
points: usize,
option: PaddingOption
) -> Result<(), ErrorReason>
fn zero_interleave(&mut self, factor: u32) -> Result<(), ErrorReason>[src]
impl<S, T, N, D> ReorganizeDataOps<T> for DspVec<S, T, N, D> where
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
fn reverse(&mut self)[src]
fn swap_halves(&mut self)[src]
impl<S, T> ToFreqResult for DspVec<S, T, RealOrComplex, TimeOrFreq> where
S: ToSlice<T>,
T: RealNumber, [src]
S: ToSlice<T>,
T: RealNumber,
type FreqResult = DspVec<S, T, RealOrComplex, TimeOrFreq>
impl<S, T> ToFreqResult for DspVec<S, T, Real, Time> where
S: ToSlice<T>,
T: RealNumber, [src]
S: ToSlice<T>,
T: RealNumber,
type FreqResult = DspVec<S, T, Complex, Freq>
impl<S, T> ToFreqResult for DspVec<S, T, Complex, Time> where
S: ToSlice<T>,
T: RealNumber, [src]
S: ToSlice<T>,
T: RealNumber,
type FreqResult = DspVec<S, T, Complex, Freq>
impl<S, T, N, D> ResizeOps for DspVec<S, T, N, D> where
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber,
impl<S, T> ToRealResult for DspVec<S, T, Complex, Freq> where
S: ToSlice<T>,
T: RealNumber, [src]
S: ToSlice<T>,
T: RealNumber,
type RealResult = DspVec<S, T, Real, Freq>
impl<S, T> ToRealResult for DspVec<S, T, Complex, Time> where
S: ToSlice<T>,
T: RealNumber, [src]
S: ToSlice<T>,
T: RealNumber,
type RealResult = DspVec<S, T, Real, Time>
impl<S, T> ToRealResult for DspVec<S, T, RealOrComplex, TimeOrFreq> where
S: ToSlice<T>,
T: RealNumber, [src]
S: ToSlice<T>,
T: RealNumber,
type RealResult = DspVec<S, T, RealOrComplex, TimeOrFreq>
impl<S, T, N, D> MetaData for DspVec<S, T, N, D> where
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber,
fn domain(&self) -> DataDomain[src]
fn is_complex(&self) -> bool[src]
impl<S, T, N, D> TimeToFrequencyDomainOperations<S, T> for DspVec<S, T, N, D> where
D: TimeDomain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
DspVec<S, T, N, D>: ToFreqResult,
<DspVec<S, T, N, D> as ToFreqResult>::FreqResult: RededicateForceOps<DspVec<S, T, N, D>>,
<DspVec<S, T, N, D> as ToFreqResult>::FreqResult: FrequencyDomainOperations<S, T>, [src]
D: TimeDomain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
DspVec<S, T, N, D>: ToFreqResult,
<DspVec<S, T, N, D> as ToFreqResult>::FreqResult: RededicateForceOps<DspVec<S, T, N, D>>,
<DspVec<S, T, N, D> as ToFreqResult>::FreqResult: FrequencyDomainOperations<S, T>,
fn plain_fft<B>(
self,
buffer: &mut B
) -> <DspVec<S, T, N, D> as ToFreqResult>::FreqResult where
B: Buffer<'a, S, T>, [src]
self,
buffer: &mut B
) -> <DspVec<S, T, N, D> as ToFreqResult>::FreqResult where
B: Buffer<'a, S, T>,
fn fft<B>(
self,
buffer: &mut B
) -> <DspVec<S, T, N, D> as ToFreqResult>::FreqResult where
B: Buffer<'a, S, T>, [src]
self,
buffer: &mut B
) -> <DspVec<S, T, N, D> as ToFreqResult>::FreqResult where
B: Buffer<'a, S, T>,
fn windowed_fft<B>(
self,
buffer: &mut B,
window: &dyn WindowFunction<T>
) -> <DspVec<S, T, N, D> as ToFreqResult>::FreqResult where
B: Buffer<'a, S, T>, [src]
self,
buffer: &mut B,
window: &dyn WindowFunction<T>
) -> <DspVec<S, T, N, D> as ToFreqResult>::FreqResult where
B: Buffer<'a, S, T>,
impl<S, T, N, D> Index<RangeFrom<usize>> for DspVec<S, T, N, D> where
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber,
type Output = [T]
The returned type after indexing.
fn index(&self, index: RangeFrom<usize>) -> &[T][src]
impl<S, T, N, D> Index<RangeTo<usize>> for DspVec<S, T, N, D> where
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber,
type Output = [T]
The returned type after indexing.
fn index(&self, index: RangeTo<usize>) -> &[T][src]
impl<S, T, N, D> Index<RangeFull> for DspVec<S, T, N, D> where
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber,
impl<S, T, N, D> Index<usize> for DspVec<S, T, N, D> where
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber,
impl<S, T, N, D> Index<Range<usize>> for DspVec<S, T, N, D> where
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber,
type Output = [T]
The returned type after indexing.
fn index(&self, index: Range<usize>) -> &[T][src]
impl<S, T, N, D> ComplexOps<T> for DspVec<S, T, N, D> where
D: Domain,
N: ComplexNumberSpace,
S: ToSliceMut<T>,
T: RealNumber, [src]
D: Domain,
N: ComplexNumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
fn multiply_complex_exponential(&mut self, a: T, b: T)[src]
fn conj(&mut self)[src]
impl<S, T> From<S> for DspVec<S, T, Complex, Freq> where
S: ToSlice<T>,
T: RealNumber, [src]
S: ToSlice<T>,
T: RealNumber,
impl<S, T> From<S> for DspVec<S, T, Complex, Time> where
S: ToSlice<T>,
T: RealNumber, [src]
S: ToSlice<T>,
T: RealNumber,
impl<S, T> From<S> for DspVec<S, T, Real, Time> where
S: ToSlice<T>,
T: RealNumber, [src]
S: ToSlice<T>,
T: RealNumber,
impl<S, T> From<S> for DspVec<S, T, Real, Freq> where
S: ToSlice<T>,
T: RealNumber, [src]
S: ToSlice<T>,
T: RealNumber,
impl<S, T, N, D> RealInterpolationOps<S, T> for DspVec<S, T, N, D> where
D: Domain,
N: RealNumberSpace,
S: ToSliceMut<T>,
T: RealNumber, [src]
D: Domain,
N: RealNumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
fn interpolate_lin<B>(
&mut self,
buffer: &mut B,
interpolation_factor: T,
delay: T
) where
B: Buffer<'a, S, T>, [src]
&mut self,
buffer: &mut B,
interpolation_factor: T,
delay: T
) where
B: Buffer<'a, S, T>,
fn interpolate_hermite<B>(
&mut self,
buffer: &mut B,
interpolation_factor: T,
delay: T
) where
B: Buffer<'a, S, T>, [src]
&mut self,
buffer: &mut B,
interpolation_factor: T,
delay: T
) where
B: Buffer<'a, S, T>,
impl<S, T, N, D, DF, O, NO> CrossCorrelationOps<O, S, T, NO, DF> for DspVec<S, T, N, D> where
D: TimeDomain,
DF: FrequencyDomain,
N: ComplexNumberSpace,
NO: PosEq<N> + NumberSpace,
O: Vector<T> + GetMetaData<T, NO, DF> + Index<RangeFull, Output = [T]>,
S: ToSliceMut<T>,
T: RealNumber,
DspVec<S, T, N, D>: ScaleOps<T>, [src]
D: TimeDomain,
DF: FrequencyDomain,
N: ComplexNumberSpace,
NO: PosEq<N> + NumberSpace,
O: Vector<T> + GetMetaData<T, NO, DF> + Index<RangeFull, Output = [T]>,
S: ToSliceMut<T>,
T: RealNumber,
DspVec<S, T, N, D>: ScaleOps<T>,
fn correlate<B>(&mut self, buffer: &mut B, other: &O) -> Result<(), ErrorReason> where
B: Buffer<'a, S, T>, [src]
B: Buffer<'a, S, T>,
impl<S, T, N, D> CrossCorrelationArgumentOps<S, T> for DspVec<S, T, N, D> where
D: TimeDomain,
N: ComplexNumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
DspVec<S, T, N, D>: ToFreqResult,
DspVec<S, T, N, D>: TimeToFrequencyDomainOperations<S, T>,
<DspVec<S, T, N, D> as ToFreqResult>::FreqResult: FrequencyDomainOperations<S, T>,
<DspVec<S, T, N, D> as ToFreqResult>::FreqResult: ComplexOps<T>, [src]
D: TimeDomain,
N: ComplexNumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
DspVec<S, T, N, D>: ToFreqResult,
DspVec<S, T, N, D>: TimeToFrequencyDomainOperations<S, T>,
<DspVec<S, T, N, D> as ToFreqResult>::FreqResult: FrequencyDomainOperations<S, T>,
<DspVec<S, T, N, D> as ToFreqResult>::FreqResult: ComplexOps<T>,
fn prepare_argument<B>(
self,
buffer: &mut B
) -> <DspVec<S, T, N, D> as ToFreqResult>::FreqResult where
B: Buffer<'a, S, T>, [src]
self,
buffer: &mut B
) -> <DspVec<S, T, N, D> as ToFreqResult>::FreqResult where
B: Buffer<'a, S, T>,
fn prepare_argument_padded<B>(
self,
buffer: &mut B
) -> <DspVec<S, T, N, D> as ToFreqResult>::FreqResult where
B: Buffer<'a, S, T>, [src]
self,
buffer: &mut B
) -> <DspVec<S, T, N, D> as ToFreqResult>::FreqResult where
B: Buffer<'a, S, T>,
impl<S, T, N, D, O, NO, DO> ElementaryOps<O, T, NO, DO> for DspVec<S, T, N, D> where
D: Domain,
DO: PosEq<D> + Domain,
N: NumberSpace,
NO: PosEq<N> + NumberSpace,
O: Vector<T> + Index<RangeFull, Output = [T]> + GetMetaData<T, NO, DO>,
S: ToSliceMut<T>,
T: RealNumber, [src]
D: Domain,
DO: PosEq<D> + Domain,
N: NumberSpace,
NO: PosEq<N> + NumberSpace,
O: Vector<T> + Index<RangeFull, Output = [T]> + GetMetaData<T, NO, DO>,
S: ToSliceMut<T>,
T: RealNumber,
fn add(&mut self, summand: &O) -> Result<(), ErrorReason>[src]
fn sub(&mut self, subtrahend: &O) -> Result<(), ErrorReason>[src]
fn mul(&mut self, factor: &O) -> Result<(), ErrorReason>[src]
fn div(&mut self, divisor: &O) -> Result<(), ErrorReason>[src]
impl<S, T, N, D> GetMetaData<T, N, D> for DspVec<S, T, N, D> where
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber,
fn get_meta_data(&self) -> TypeMetaData<T, N, D>[src]
impl<S, T, N, D> InterpolationOps<S, T> for DspVec<S, T, N, D> where
D: Domain,
N: NumberSpace,
S: ToSliceMut<T> + ToComplexVector<S, T> + ToDspVector<T>,
T: RealNumber,
DspVec<S, T, N, D>: InsertZerosOpsBuffered<S, T>,
DspVec<S, T, N, D>: ScaleOps<T>,
DspVec<S, T, N, D>: ResizeBufferedOps<S, T>, [src]
D: Domain,
N: NumberSpace,
S: ToSliceMut<T> + ToComplexVector<S, T> + ToDspVector<T>,
T: RealNumber,
DspVec<S, T, N, D>: InsertZerosOpsBuffered<S, T>,
DspVec<S, T, N, D>: ScaleOps<T>,
DspVec<S, T, N, D>: ResizeBufferedOps<S, T>,
fn interpolatef<B>(
&mut self,
buffer: &mut B,
function: &dyn RealImpulseResponse<T>,
interpolation_factor: T,
delay: T,
conv_len: usize
) where
B: Buffer<'a, S, T>, [src]
&mut self,
buffer: &mut B,
function: &dyn RealImpulseResponse<T>,
interpolation_factor: T,
delay: T,
conv_len: usize
) where
B: Buffer<'a, S, T>,
fn interpolatei<B>(
&mut self,
buffer: &mut B,
function: &dyn RealFrequencyResponse<T>,
interpolation_factor: u32
) -> Result<(), ErrorReason> where
B: Buffer<'a, S, T>, [src]
&mut self,
buffer: &mut B,
function: &dyn RealFrequencyResponse<T>,
interpolation_factor: u32
) -> Result<(), ErrorReason> where
B: Buffer<'a, S, T>,
fn interpft<B>(&mut self, buffer: &mut B, dest_points: usize) where
B: Buffer<'a, S, T>, [src]
B: Buffer<'a, S, T>,
fn interpolate<B>(
&mut self,
buffer: &mut B,
function: Option<&dyn RealFrequencyResponse<T>>,
dest_points: usize,
delay: T
) -> Result<(), ErrorReason> where
B: Buffer<'a, S, T>, [src]
&mut self,
buffer: &mut B,
function: Option<&dyn RealFrequencyResponse<T>>,
dest_points: usize,
delay: T
) -> Result<(), ErrorReason> where
B: Buffer<'a, S, T>,
fn decimatei(&mut self, decimation_factor: u32, delay: u32)[src]
impl<S, O, T, N, D, NO, DO> PreciseDotProductOps<O, T, T, NO, DO> for DspVec<S, T, N, D> where
D: Domain,
DO: PosEq<D> + Domain,
N: RealNumberSpace,
NO: PosEq<N> + NumberSpace,
O: Vector<T> + GetMetaData<T, NO, DO> + Index<RangeFull, Output = [T]>,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
DO: PosEq<D> + Domain,
N: RealNumberSpace,
NO: PosEq<N> + NumberSpace,
O: Vector<T> + GetMetaData<T, NO, DO> + Index<RangeFull, Output = [T]>,
S: ToSlice<T>,
T: RealNumber,
type Output = Result<T, ErrorReason>
fn dot_product_prec(&self, factor: &O) -> Result<T, ErrorReason>[src]
impl<S, O, T, N, D, NO, DO> PreciseDotProductOps<O, Complex<T>, T, NO, DO> for DspVec<S, T, N, D> where
D: Domain,
DO: PosEq<D> + Domain,
N: ComplexNumberSpace,
NO: PosEq<N> + NumberSpace,
O: Vector<T> + GetMetaData<T, NO, DO> + Index<RangeFull, Output = [T]>,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
DO: PosEq<D> + Domain,
N: ComplexNumberSpace,
NO: PosEq<N> + NumberSpace,
O: Vector<T> + GetMetaData<T, NO, DO> + Index<RangeFull, Output = [T]>,
S: ToSlice<T>,
T: RealNumber,
type Output = Result<Complex<T>, ErrorReason>
fn dot_product_prec(&self, factor: &O) -> Result<Complex<T>, ErrorReason>[src]
impl<S, T, N, D> RealToComplexTransformsOps<T> for DspVec<S, T, N, D> where
D: Domain,
N: RealNumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
DspVec<S, T, N, D>: ToComplexResult,
DspVec<S, T, N, D>: InsertZerosOps<T>,
<DspVec<S, T, N, D> as ToComplexResult>::ComplexResult: RededicateForceOps<DspVec<S, T, N, D>>, [src]
D: Domain,
N: RealNumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
DspVec<S, T, N, D>: ToComplexResult,
DspVec<S, T, N, D>: InsertZerosOps<T>,
<DspVec<S, T, N, D> as ToComplexResult>::ComplexResult: RededicateForceOps<DspVec<S, T, N, D>>,
fn to_complex(
self
) -> Result<<DspVec<S, T, N, D> as ToComplexResult>::ComplexResult, (ErrorReason, <DspVec<S, T, N, D> as ToComplexResult>::ComplexResult)>[src]
self
) -> Result<<DspVec<S, T, N, D> as ToComplexResult>::ComplexResult, (ErrorReason, <DspVec<S, T, N, D> as ToComplexResult>::ComplexResult)>
impl<S, O, T, N, D, NO, DO> DotProductOps<O, Complex<T>, T, NO, DO> for DspVec<S, T, N, D> where
D: Domain,
DO: PosEq<D> + Domain,
N: ComplexNumberSpace,
NO: PosEq<N> + NumberSpace,
O: Vector<T> + GetMetaData<T, NO, DO> + Index<RangeFull, Output = [T]>,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
DO: PosEq<D> + Domain,
N: ComplexNumberSpace,
NO: PosEq<N> + NumberSpace,
O: Vector<T> + GetMetaData<T, NO, DO> + Index<RangeFull, Output = [T]>,
S: ToSlice<T>,
T: RealNumber,
type Output = Result<Complex<T>, ErrorReason>
fn dot_product(&self, factor: &O) -> Result<Complex<T>, ErrorReason>[src]
impl<S, O, T, N, D, NO, DO> DotProductOps<O, T, T, NO, DO> for DspVec<S, T, N, D> where
D: Domain,
DO: PosEq<D> + Domain,
N: RealNumberSpace,
NO: PosEq<N> + NumberSpace,
O: Vector<T> + GetMetaData<T, NO, DO> + Index<RangeFull, Output = [T]>,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
DO: PosEq<D> + Domain,
N: RealNumberSpace,
NO: PosEq<N> + NumberSpace,
O: Vector<T> + GetMetaData<T, NO, DO> + Index<RangeFull, Output = [T]>,
S: ToSlice<T>,
T: RealNumber,
type Output = Result<T, ErrorReason>
fn dot_product(&self, factor: &O) -> Result<T, ErrorReason>[src]
impl<S, SO, T, N, D, NO, DO> ConvolutionOps<DspVec<SO, T, NO, DO>, S, T, NO, DO> for DspVec<S, T, N, D> where
D: TimeDomain,
DO: TimeDomain,
N: NumberSpace,
NO: PosEq<N> + NumberSpace,
S: ToSliceMut<T>,
SO: ToSliceMut<T>,
T: RealNumber,
DspVec<S, T, N, D>: TimeToFrequencyDomainOperations<S, T>,
DspVec<S, T, N, D>: Clone,
DspVec<SO, T, N, D>: TimeToFrequencyDomainOperations<SO, T>,
DspVec<SO, T, N, D>: Clone, [src]
D: TimeDomain,
DO: TimeDomain,
N: NumberSpace,
NO: PosEq<N> + NumberSpace,
S: ToSliceMut<T>,
SO: ToSliceMut<T>,
T: RealNumber,
DspVec<S, T, N, D>: TimeToFrequencyDomainOperations<S, T>,
DspVec<S, T, N, D>: Clone,
DspVec<SO, T, N, D>: TimeToFrequencyDomainOperations<SO, T>,
DspVec<SO, T, N, D>: Clone,
fn convolve_signal<B>(
&mut self,
buffer: &mut B,
impulse_response: &DspVec<SO, T, NO, DO>
) -> Result<(), ErrorReason> where
B: Buffer<'a, S, T>, [src]
&mut self,
buffer: &mut B,
impulse_response: &DspVec<SO, T, NO, DO>
) -> Result<(), ErrorReason> where
B: Buffer<'a, S, T>,
impl<S, T, N, D> Vector<T> for DspVec<S, T, N, D> where
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber,
fn delta(&self) -> T[src]
fn set_delta(&mut self, delta: T)[src]
fn len(&self) -> usize[src]
fn is_empty(&self) -> bool[src]
fn points(&self) -> usize[src]
fn get_multicore_settings(&self) -> &MultiCoreSettings[src]
fn set_multicore_settings(&mut self, settings: MultiCoreSettings)[src]
fn alloc_len(&self) -> usize[src]
impl<S, T, N, NR, D, O, DO> ComplexToRealSetterOps<O, T, NR, DO> for DspVec<S, T, N, D> where
D: Domain,
DO: PosEq<D> + Domain,
N: ComplexNumberSpace,
NR: RealNumberSpace,
O: Index<Range<usize>, Output = [T]> + Vector<T> + GetMetaData<T, NR, DO>,
S: ToSliceMut<T> + Resize,
T: RealNumber,
DspVec<S, T, N, D>: ToRealResult, [src]
D: Domain,
DO: PosEq<D> + Domain,
N: ComplexNumberSpace,
NR: RealNumberSpace,
O: Index<Range<usize>, Output = [T]> + Vector<T> + GetMetaData<T, NR, DO>,
S: ToSliceMut<T> + Resize,
T: RealNumber,
DspVec<S, T, N, D>: ToRealResult,
fn set_real_imag(&mut self, real: &O, imag: &O) -> Result<(), ErrorReason>[src]
fn set_mag_phase(&mut self, mag: &O, phase: &O) -> Result<(), ErrorReason>[src]
impl<S, T, N, D> SymmetricTimeToFrequencyDomainOperations<S, T> for DspVec<S, T, N, D> where
D: TimeDomain,
N: RealNumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
DspVec<S, T, N, D>: ToFreqResult,
<DspVec<S, T, N, D> as ToFreqResult>::FreqResult: RededicateForceOps<DspVec<S, T, N, D>>,
<DspVec<S, T, N, D> as ToFreqResult>::FreqResult: FrequencyDomainOperations<S, T>,
<DspVec<S, T, N, D> as ToFreqResult>::FreqResult: ResizeOps, [src]
D: TimeDomain,
N: RealNumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
DspVec<S, T, N, D>: ToFreqResult,
<DspVec<S, T, N, D> as ToFreqResult>::FreqResult: RededicateForceOps<DspVec<S, T, N, D>>,
<DspVec<S, T, N, D> as ToFreqResult>::FreqResult: FrequencyDomainOperations<S, T>,
<DspVec<S, T, N, D> as ToFreqResult>::FreqResult: ResizeOps,
fn plain_sfft<B>(
self,
buffer: &mut B
) -> Result<<DspVec<S, T, N, D> as ToFreqResult>::FreqResult, (ErrorReason, <DspVec<S, T, N, D> as ToFreqResult>::FreqResult)> where
B: Buffer<'a, S, T>, [src]
self,
buffer: &mut B
) -> Result<<DspVec<S, T, N, D> as ToFreqResult>::FreqResult, (ErrorReason, <DspVec<S, T, N, D> as ToFreqResult>::FreqResult)> where
B: Buffer<'a, S, T>,
fn sfft<B>(
self,
buffer: &mut B
) -> Result<<DspVec<S, T, N, D> as ToFreqResult>::FreqResult, (ErrorReason, <DspVec<S, T, N, D> as ToFreqResult>::FreqResult)> where
B: Buffer<'a, S, T>, [src]
self,
buffer: &mut B
) -> Result<<DspVec<S, T, N, D> as ToFreqResult>::FreqResult, (ErrorReason, <DspVec<S, T, N, D> as ToFreqResult>::FreqResult)> where
B: Buffer<'a, S, T>,
fn windowed_sfft<B>(
self,
buffer: &mut B,
window: &dyn WindowFunction<T>
) -> Result<<DspVec<S, T, N, D> as ToFreqResult>::FreqResult, (ErrorReason, <DspVec<S, T, N, D> as ToFreqResult>::FreqResult)> where
B: Buffer<'a, S, T>, [src]
self,
buffer: &mut B,
window: &dyn WindowFunction<T>
) -> Result<<DspVec<S, T, N, D> as ToFreqResult>::FreqResult, (ErrorReason, <DspVec<S, T, N, D> as ToFreqResult>::FreqResult)> where
B: Buffer<'a, S, T>,
impl<S, T> ToTimeResult for DspVec<S, T, Complex, Freq> where
S: ToSlice<T>,
T: RealNumber, [src]
S: ToSlice<T>,
T: RealNumber,
type TimeResult = DspVec<S, T, Complex, Time>
Specifies what the the result is if a type is transformed to time domain.
impl<S, T> ToTimeResult for DspVec<S, T, RealOrComplex, TimeOrFreq> where
S: ToSlice<T>,
T: RealNumber, [src]
S: ToSlice<T>,
T: RealNumber,
type TimeResult = DspVec<S, T, RealOrComplex, TimeOrFreq>
Specifies what the the result is if a type is transformed to time domain.
impl<S, T, N, D, O> RededicateToOps<O> for DspVec<S, T, N, D> where
D: Domain,
N: NumberSpace,
O: Vector<T> + RededicateOps<DspVec<S, T, N, D>>,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
O: Vector<T> + RededicateOps<DspVec<S, T, N, D>>,
S: ToSlice<T>,
T: RealNumber,
fn rededicate(self) -> O[src]
impl<S, T, N, D> ComplexIndexMut<Range<usize>> for DspVec<S, T, N, D> where
D: Domain,
N: ComplexNumberSpace,
S: ToSliceMut<T>,
T: RealNumber, [src]
D: Domain,
N: ComplexNumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
impl<S, T, N, D> ComplexIndexMut<RangeFull> for DspVec<S, T, N, D> where
D: Domain,
N: ComplexNumberSpace,
S: ToSliceMut<T>,
T: RealNumber, [src]
D: Domain,
N: ComplexNumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
impl<S, T, N, D> ComplexIndexMut<RangeTo<usize>> for DspVec<S, T, N, D> where
D: Domain,
N: ComplexNumberSpace,
S: ToSliceMut<T>,
T: RealNumber, [src]
D: Domain,
N: ComplexNumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
impl<S, T, N, D> ComplexIndexMut<RangeFrom<usize>> for DspVec<S, T, N, D> where
D: Domain,
N: ComplexNumberSpace,
S: ToSliceMut<T>,
T: RealNumber, [src]
D: Domain,
N: ComplexNumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
impl<S, T, N, D> ComplexIndexMut<usize> for DspVec<S, T, N, D> where
D: Domain,
N: ComplexNumberSpace,
S: ToSliceMut<T>,
T: RealNumber, [src]
D: Domain,
N: ComplexNumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
fn complex_mut(&mut self, index: usize) -> &mut Complex<T>[src]
impl<S, T, N, D> RededicateForceOps<DspVec<S, T, N, D>> for DspVec<S, T, Real, Time> where
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber,
fn rededicate_from_force(origin: DspVec<S, T, N, D>) -> DspVec<S, T, Real, Time>[src]
fn rededicate_with_runtime_data(
origin: DspVec<S, T, N, D>,
bool,
DataDomain
) -> DspVec<S, T, Real, Time>[src]
origin: DspVec<S, T, N, D>,
bool,
DataDomain
) -> DspVec<S, T, Real, Time>
impl<S, T, N, D> RededicateForceOps<DspVec<S, T, N, D>> for DspVec<S, T, RealOrComplex, TimeOrFreq> where
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber,
fn rededicate_from_force(
origin: DspVec<S, T, N, D>
) -> DspVec<S, T, RealOrComplex, TimeOrFreq>[src]
origin: DspVec<S, T, N, D>
) -> DspVec<S, T, RealOrComplex, TimeOrFreq>
fn rededicate_with_runtime_data(
origin: DspVec<S, T, N, D>,
is_complex: bool,
domain: DataDomain
) -> DspVec<S, T, RealOrComplex, TimeOrFreq>[src]
origin: DspVec<S, T, N, D>,
is_complex: bool,
domain: DataDomain
) -> DspVec<S, T, RealOrComplex, TimeOrFreq>
impl<S, T, N, D> RededicateForceOps<DspVec<S, T, N, D>> for DspVec<S, T, Complex, Time> where
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber,
fn rededicate_from_force(
origin: DspVec<S, T, N, D>
) -> DspVec<S, T, Complex, Time>[src]
origin: DspVec<S, T, N, D>
) -> DspVec<S, T, Complex, Time>
fn rededicate_with_runtime_data(
origin: DspVec<S, T, N, D>,
bool,
DataDomain
) -> DspVec<S, T, Complex, Time>[src]
origin: DspVec<S, T, N, D>,
bool,
DataDomain
) -> DspVec<S, T, Complex, Time>
impl<S, T, N, D> RededicateForceOps<DspVec<S, T, N, D>> for DspVec<S, T, Complex, Freq> where
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber,
fn rededicate_from_force(
origin: DspVec<S, T, N, D>
) -> DspVec<S, T, Complex, Freq>[src]
origin: DspVec<S, T, N, D>
) -> DspVec<S, T, Complex, Freq>
fn rededicate_with_runtime_data(
origin: DspVec<S, T, N, D>,
bool,
DataDomain
) -> DspVec<S, T, Complex, Freq>[src]
origin: DspVec<S, T, N, D>,
bool,
DataDomain
) -> DspVec<S, T, Complex, Freq>
impl<S, T, N, D> RededicateForceOps<DspVec<S, T, N, D>> for DspVec<S, T, Real, Freq> where
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber,
fn rededicate_from_force(origin: DspVec<S, T, N, D>) -> DspVec<S, T, Real, Freq>[src]
fn rededicate_with_runtime_data(
origin: DspVec<S, T, N, D>,
bool,
DataDomain
) -> DspVec<S, T, Real, Freq>[src]
origin: DspVec<S, T, N, D>,
bool,
DataDomain
) -> DspVec<S, T, Real, Freq>
impl<S, T, N, D> ComplexIndex<RangeFrom<usize>> for DspVec<S, T, N, D> where
D: Domain,
N: ComplexNumberSpace,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
N: ComplexNumberSpace,
S: ToSlice<T>,
T: RealNumber,
impl<S, T, N, D> ComplexIndex<usize> for DspVec<S, T, N, D> where
D: Domain,
N: ComplexNumberSpace,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
N: ComplexNumberSpace,
S: ToSlice<T>,
T: RealNumber,
impl<S, T, N, D> ComplexIndex<RangeFull> for DspVec<S, T, N, D> where
D: Domain,
N: ComplexNumberSpace,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
N: ComplexNumberSpace,
S: ToSlice<T>,
T: RealNumber,
impl<S, T, N, D> ComplexIndex<Range<usize>> for DspVec<S, T, N, D> where
D: Domain,
N: ComplexNumberSpace,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
N: ComplexNumberSpace,
S: ToSlice<T>,
T: RealNumber,
impl<S, T, N, D> ComplexIndex<RangeTo<usize>> for DspVec<S, T, N, D> where
D: Domain,
N: ComplexNumberSpace,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
N: ComplexNumberSpace,
S: ToSlice<T>,
T: RealNumber,
impl<S, T, N, D, R> MapAggregateOps<Complex<T>, R> for DspVec<S, T, N, D> where
D: Domain,
N: ComplexNumberSpace,
R: Send,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
N: ComplexNumberSpace,
R: Send,
S: ToSlice<T>,
T: RealNumber,
type Output = Result<R, ErrorReason>
fn map_aggregate<'a, A, FMap, FAggr>(
&self,
argument: A,
map: &FMap,
aggregate: &FAggr
) -> Result<R, ErrorReason> where
A: Sync + Copy + Send,
FAggr: Fn(R, R) -> R + 'a + Sync + Send,
FMap: Fn(Complex<T>, usize, A) -> R + 'a + Sync, [src]
&self,
argument: A,
map: &FMap,
aggregate: &FAggr
) -> Result<R, ErrorReason> where
A: Sync + Copy + Send,
FAggr: Fn(R, R) -> R + 'a + Sync + Send,
FMap: Fn(Complex<T>, usize, A) -> R + 'a + Sync,
impl<S, T, N, D, R> MapAggregateOps<T, R> for DspVec<S, T, N, D> where
D: Domain,
N: RealNumberSpace,
R: Send,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
N: RealNumberSpace,
R: Send,
S: ToSlice<T>,
T: RealNumber,
type Output = Result<R, ErrorReason>
fn map_aggregate<'a, A, FMap, FAggr>(
&self,
argument: A,
map: &FMap,
aggregate: &FAggr
) -> Result<R, ErrorReason> where
A: Sync + Copy + Send,
FAggr: Fn(R, R) -> R + 'a + Sync + Send,
FMap: Fn(T, usize, A) -> R + 'a + Sync, [src]
&self,
argument: A,
map: &FMap,
aggregate: &FAggr
) -> Result<R, ErrorReason> where
A: Sync + Copy + Send,
FAggr: Fn(R, R) -> R + 'a + Sync + Send,
FMap: Fn(T, usize, A) -> R + 'a + Sync,
impl<S, T, N, D> FrequencyToTimeDomainOperations<S, T> for DspVec<S, T, N, D> where
D: FrequencyDomain,
N: ComplexNumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
DspVec<S, T, N, D>: ToTimeResult,
<DspVec<S, T, N, D> as ToTimeResult>::TimeResult: RededicateForceOps<DspVec<S, T, N, D>>,
<DspVec<S, T, N, D> as ToTimeResult>::TimeResult: TimeDomainOperations<S, T>, [src]
D: FrequencyDomain,
N: ComplexNumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
DspVec<S, T, N, D>: ToTimeResult,
<DspVec<S, T, N, D> as ToTimeResult>::TimeResult: RededicateForceOps<DspVec<S, T, N, D>>,
<DspVec<S, T, N, D> as ToTimeResult>::TimeResult: TimeDomainOperations<S, T>,
fn plain_ifft<B>(
self,
buffer: &mut B
) -> <DspVec<S, T, N, D> as ToTimeResult>::TimeResult where
B: Buffer<'a, S, T>, [src]
self,
buffer: &mut B
) -> <DspVec<S, T, N, D> as ToTimeResult>::TimeResult where
B: Buffer<'a, S, T>,
fn ifft<B>(
self,
buffer: &mut B
) -> <DspVec<S, T, N, D> as ToTimeResult>::TimeResult where
B: Buffer<'a, S, T>, [src]
self,
buffer: &mut B
) -> <DspVec<S, T, N, D> as ToTimeResult>::TimeResult where
B: Buffer<'a, S, T>,
fn windowed_ifft<B>(
self,
buffer: &mut B,
window: &dyn WindowFunction<T>
) -> <DspVec<S, T, N, D> as ToTimeResult>::TimeResult where
B: Buffer<'a, S, T>, [src]
self,
buffer: &mut B,
window: &dyn WindowFunction<T>
) -> <DspVec<S, T, N, D> as ToTimeResult>::TimeResult where
B: Buffer<'a, S, T>,
impl<S, T, N, D> ApproximatedOps<T> for DspVec<S, T, N, D> where
D: Domain,
N: RealNumberSpace,
S: ToSliceMut<T>,
T: RealNumber, [src]
D: Domain,
N: RealNumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
fn ln_approx(&mut self)[src]
fn exp_approx(&mut self)[src]
fn sin_approx(&mut self)[src]
fn cos_approx(&mut self)[src]
fn log_approx(&mut self, base: T)[src]
fn expf_approx(&mut self, base: T)[src]
fn powf_approx(&mut self, exponent: T)[src]
impl<S, T, N, D> TimeDomainOperations<S, T> for DspVec<S, T, N, D> where
D: TimeDomain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
DspVec<S, T, N, D>: ToFreqResult,
<DspVec<S, T, N, D> as ToFreqResult>::FreqResult: RededicateForceOps<DspVec<S, T, N, D>>, [src]
D: TimeDomain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
DspVec<S, T, N, D>: ToFreqResult,
<DspVec<S, T, N, D> as ToFreqResult>::FreqResult: RededicateForceOps<DspVec<S, T, N, D>>,
fn apply_window(&mut self, window: &dyn WindowFunction<T>)[src]
fn unapply_window(&mut self, window: &dyn WindowFunction<T>)[src]
impl<S, N, D> PreciseSumOps<f64> for DspVec<S, f32, N, D> where
D: Domain,
N: RealNumberSpace,
S: ToSlice<f32>, [src]
D: Domain,
N: RealNumberSpace,
S: ToSlice<f32>,
impl<S, N, D> PreciseSumOps<Complex<f64>> for DspVec<S, f32, N, D> where
D: Domain,
N: ComplexNumberSpace,
S: ToSlice<f32>, [src]
D: Domain,
N: ComplexNumberSpace,
S: ToSlice<f32>,
impl<S, N, D> PreciseSumOps<f64> for DspVec<S, f64, N, D> where
D: Domain,
N: RealNumberSpace,
S: ToSlice<f64>, [src]
D: Domain,
N: RealNumberSpace,
S: ToSlice<f64>,
impl<S, N, D> PreciseSumOps<Complex<f64>> for DspVec<S, f64, N, D> where
D: Domain,
N: ComplexNumberSpace,
S: ToSlice<f64>, [src]
D: Domain,
N: ComplexNumberSpace,
S: ToSlice<f64>,
impl<S, T, N, D> ModuloOps<T> for DspVec<S, T, N, D> where
D: Domain,
N: RealNumberSpace,
S: ToSliceMut<T>,
T: RealNumber, [src]
D: Domain,
N: RealNumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
impl<S, N, D> PreciseStatisticsSplitOps<f64> for DspVec<S, f64, N, D> where
D: Domain,
N: RealNumberSpace,
S: ToSlice<f64>, [src]
D: Domain,
N: RealNumberSpace,
S: ToSlice<f64>,
type Result = ArrayVec<[Statistics<f64>; 16]>
fn statistics_split_prec(
&self,
len: usize
) -> Result<ArrayVec<[Statistics<f64>; 16]>, ErrorReason>[src]
&self,
len: usize
) -> Result<ArrayVec<[Statistics<f64>; 16]>, ErrorReason>
impl<S, N, D> PreciseStatisticsSplitOps<Complex<f64>> for DspVec<S, f32, N, D> where
D: Domain,
N: ComplexNumberSpace,
S: ToSlice<f32>, [src]
D: Domain,
N: ComplexNumberSpace,
S: ToSlice<f32>,
type Result = ArrayVec<[Statistics<Complex<f64>>; 16]>
fn statistics_split_prec(
&self,
len: usize
) -> Result<ArrayVec<[Statistics<Complex<f64>>; 16]>, ErrorReason>[src]
&self,
len: usize
) -> Result<ArrayVec<[Statistics<Complex<f64>>; 16]>, ErrorReason>
impl<S, N, D> PreciseStatisticsSplitOps<f64> for DspVec<S, f32, N, D> where
D: Domain,
N: RealNumberSpace,
S: ToSlice<f32>, [src]
D: Domain,
N: RealNumberSpace,
S: ToSlice<f32>,
type Result = ArrayVec<[Statistics<f64>; 16]>
fn statistics_split_prec(
&self,
len: usize
) -> Result<ArrayVec<[Statistics<f64>; 16]>, ErrorReason>[src]
&self,
len: usize
) -> Result<ArrayVec<[Statistics<f64>; 16]>, ErrorReason>
impl<S, N, D> PreciseStatisticsSplitOps<Complex<f64>> for DspVec<S, f64, N, D> where
D: Domain,
N: ComplexNumberSpace,
S: ToSlice<f64>, [src]
D: Domain,
N: ComplexNumberSpace,
S: ToSlice<f64>,
type Result = ArrayVec<[Statistics<Complex<f64>>; 16]>
fn statistics_split_prec(
&self,
len: usize
) -> Result<ArrayVec<[Statistics<Complex<f64>>; 16]>, ErrorReason>[src]
&self,
len: usize
) -> Result<ArrayVec<[Statistics<Complex<f64>>; 16]>, ErrorReason>
impl<S, N, D> PreciseStatisticsOps<Complex<f64>> for DspVec<S, f32, N, D> where
D: Domain,
N: ComplexNumberSpace,
S: ToSlice<f32>, [src]
D: Domain,
N: ComplexNumberSpace,
S: ToSlice<f32>,
type Result = Statistics<Complex<f64>>
fn statistics_prec(&self) -> Statistics<Complex<f64>>[src]
impl<S, N, D> PreciseStatisticsOps<f64> for DspVec<S, f32, N, D> where
D: Domain,
N: RealNumberSpace,
S: ToSlice<f32>, [src]
D: Domain,
N: RealNumberSpace,
S: ToSlice<f32>,
type Result = Statistics<f64>
fn statistics_prec(&self) -> Statistics<f64>[src]
impl<S, N, D> PreciseStatisticsOps<f64> for DspVec<S, f64, N, D> where
D: Domain,
N: RealNumberSpace,
S: ToSlice<f64>, [src]
D: Domain,
N: RealNumberSpace,
S: ToSlice<f64>,
type Result = Statistics<f64>
fn statistics_prec(&self) -> Statistics<f64>[src]
impl<S, N, D> PreciseStatisticsOps<Complex<f64>> for DspVec<S, f64, N, D> where
D: Domain,
N: ComplexNumberSpace,
S: ToSlice<f64>, [src]
D: Domain,
N: ComplexNumberSpace,
S: ToSlice<f64>,
type Result = Statistics<Complex<f64>>
fn statistics_prec(&self) -> Statistics<Complex<f64>>[src]
impl<S, T, N, D> Debug for DspVec<S, T, N, D> where
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber,
impl<S, T, N, D> OffsetOps<T> for DspVec<S, T, N, D> where
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
impl<S, T, N, D> OffsetOps<Complex<T>> for DspVec<S, T, N, D> where
D: Domain,
N: ComplexNumberSpace,
S: ToSliceMut<T>,
T: RealNumber, [src]
D: Domain,
N: ComplexNumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
impl<S, T, N, D> MergeOps for DspVec<S, T, N, D> where
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
impl<S, T, N, D> FrequencyDomainOperations<S, T> for DspVec<S, T, N, D> where
D: FrequencyDomain,
N: ComplexNumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
DspVec<S, T, N, D>: ToTimeResult,
<DspVec<S, T, N, D> as ToTimeResult>::TimeResult: RededicateForceOps<DspVec<S, T, N, D>>, [src]
D: FrequencyDomain,
N: ComplexNumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
DspVec<S, T, N, D>: ToTimeResult,
<DspVec<S, T, N, D> as ToTimeResult>::TimeResult: RededicateForceOps<DspVec<S, T, N, D>>,
fn mirror<B>(&mut self, buffer: &mut B) where
B: Buffer<'a, S, T>, [src]
B: Buffer<'a, S, T>,
fn fft_shift(&mut self)[src]
fn ifft_shift(&mut self)[src]
impl<S, T> ToRealTimeResult for DspVec<S, T, RealOrComplex, TimeOrFreq> where
S: ToSlice<T>,
T: RealNumber, [src]
S: ToSlice<T>,
T: RealNumber,
type RealTimeResult = DspVec<S, T, RealOrComplex, TimeOrFreq>
impl<S, T> ToRealTimeResult for DspVec<S, T, Complex, Freq> where
S: ToSlice<T>,
T: RealNumber, [src]
S: ToSlice<T>,
T: RealNumber,
type RealTimeResult = DspVec<S, T, Real, Time>
impl<S, T, N, D> Clone for DspVec<S, T, N, D> where
D: Domain + Clone,
N: NumberSpace + Clone,
S: ToSlice<T> + Clone,
T: RealNumber, [src]
D: Domain + Clone,
N: NumberSpace + Clone,
S: ToSlice<T> + Clone,
T: RealNumber,
fn clone(&self) -> DspVec<S, T, N, D>[src]
fn clone_from(&mut self, source: &DspVec<S, T, N, D>)[src]
impl<S, T, N, D> ResizeBufferedOps<S, T> for DspVec<S, T, N, D> where
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
fn resize_b<B>(&mut self, buffer: &mut B, len: usize) -> Result<(), ErrorReason> where
B: Buffer<'a, S, T>, [src]
B: Buffer<'a, S, T>,
impl<'a, S, T, N, D> Convolution<'a, S, T, &'a (dyn ComplexImpulseResponse<T> + 'a)> for DspVec<S, T, N, D> where
D: TimeDomain,
N: ComplexNumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
DspVec<S, T, N, D>: TimeToFrequencyDomainOperations<S, T>,
DspVec<S, T, N, D>: Clone,
DspVec<S, T, N, D>: ConvolutionOps<DspVec<InlineVector<T>, T, N, D>, S, T, N, D>, [src]
D: TimeDomain,
N: ComplexNumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
DspVec<S, T, N, D>: TimeToFrequencyDomainOperations<S, T>,
DspVec<S, T, N, D>: Clone,
DspVec<S, T, N, D>: ConvolutionOps<DspVec<InlineVector<T>, T, N, D>, S, T, N, D>,
fn convolve<B>(
&mut self,
buffer: &mut B,
function: &dyn ComplexImpulseResponse<T>,
ratio: T,
len: usize
) where
B: Buffer<'b, S, T>, [src]
&mut self,
buffer: &mut B,
function: &dyn ComplexImpulseResponse<T>,
ratio: T,
len: usize
) where
B: Buffer<'b, S, T>,
impl<'a, S, T, N, D> Convolution<'a, S, T, &'a (dyn RealImpulseResponse<T> + 'a)> for DspVec<S, T, N, D> where
D: TimeDomain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
DspVec<S, T, N, D>: TimeToFrequencyDomainOperations<S, T>,
DspVec<S, T, N, D>: Clone,
DspVec<S, T, N, D>: ConvolutionOps<DspVec<InlineVector<T>, T, N, D>, S, T, N, D>, [src]
D: TimeDomain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
DspVec<S, T, N, D>: TimeToFrequencyDomainOperations<S, T>,
DspVec<S, T, N, D>: Clone,
DspVec<S, T, N, D>: ConvolutionOps<DspVec<InlineVector<T>, T, N, D>, S, T, N, D>,
fn convolve<B>(
&mut self,
buffer: &mut B,
function: &dyn RealImpulseResponse<T>,
ratio: T,
len: usize
) where
B: Buffer<'b, S, T>, [src]
&mut self,
buffer: &mut B,
function: &dyn RealImpulseResponse<T>,
ratio: T,
len: usize
) where
B: Buffer<'b, S, T>,
impl<S, T> ToComplexResult for DspVec<S, T, Real, Time> where
S: ToSlice<T>,
T: RealNumber, [src]
S: ToSlice<T>,
T: RealNumber,
type ComplexResult = DspVec<S, T, Complex, Time>
impl<S, T> ToComplexResult for DspVec<S, T, Real, Freq> where
S: ToSlice<T>,
T: RealNumber, [src]
S: ToSlice<T>,
T: RealNumber,
type ComplexResult = DspVec<S, T, Complex, Freq>
impl<S, T> ToComplexResult for DspVec<S, T, RealOrComplex, TimeOrFreq> where
S: ToSlice<T>,
T: RealNumber, [src]
S: ToSlice<T>,
T: RealNumber,
type ComplexResult = DspVec<S, T, RealOrComplex, TimeOrFreq>
impl<S, T, N, D> TrigOps for DspVec<S, T, N, D> where
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
fn sin(&mut self)[src]
fn cos(&mut self)[src]
fn tan(&mut self)[src]
fn asin(&mut self)[src]
fn acos(&mut self)[src]
fn atan(&mut self)[src]
fn sinh(&mut self)[src]
fn cosh(&mut self)[src]
fn tanh(&mut self)[src]
fn asinh(&mut self)[src]
fn acosh(&mut self)[src]
fn atanh(&mut self)[src]
impl<S, T, N, NR, D, O, DO> ComplexToRealGetterOps<O, T, NR, DO> for DspVec<S, T, N, D> where
D: Domain,
DO: PosEq<D> + Domain,
N: ComplexNumberSpace,
NR: RealNumberSpace,
O: Vector<T> + GetMetaData<T, NR, DO> + Index<Range<usize>, Output = [T]> + IndexMut<Range<usize>>,
S: ToSlice<T>,
T: RealNumber,
DspVec<S, T, N, D>: ToRealResult, [src]
D: Domain,
DO: PosEq<D> + Domain,
N: ComplexNumberSpace,
NR: RealNumberSpace,
O: Vector<T> + GetMetaData<T, NR, DO> + Index<Range<usize>, Output = [T]> + IndexMut<Range<usize>>,
S: ToSlice<T>,
T: RealNumber,
DspVec<S, T, N, D>: ToRealResult,
fn get_real(&self, destination: &mut O)[src]
fn get_imag(&self, destination: &mut O)[src]
fn get_magnitude(&self, destination: &mut O)[src]
fn get_magnitude_squared(&self, destination: &mut O)[src]
fn get_phase(&self, destination: &mut O)[src]
fn get_real_imag(&self, real: &mut O, imag: &mut O)[src]
fn get_mag_phase(&self, mag: &mut O, phase: &mut O)[src]
impl<S, T, N, D> IndexMut<RangeTo<usize>> for DspVec<S, T, N, D> where
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
impl<S, T, N, D> IndexMut<RangeFrom<usize>> for DspVec<S, T, N, D> where
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
impl<S, T, N, D> IndexMut<Range<usize>> for DspVec<S, T, N, D> where
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
impl<S, T, N, D> IndexMut<RangeFull> for DspVec<S, T, N, D> where
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
impl<S, T, N, D> IndexMut<usize> for DspVec<S, T, N, D> where
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
impl<S, T, N, D, O> RededicateOps<O> for DspVec<S, T, N, D> where
D: Domain,
N: NumberSpace,
O: Vector<T>,
S: ToSlice<T>,
T: RealNumber,
DspVec<S, T, N, D>: RededicateForceOps<O>, [src]
D: Domain,
N: NumberSpace,
O: Vector<T>,
S: ToSlice<T>,
T: RealNumber,
DspVec<S, T, N, D>: RededicateForceOps<O>,
fn rededicate_from(origin: O) -> DspVec<S, T, N, D>[src]
impl<S, T, N, D> ComplexToRealTransformsOpsBuffered<S, 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]
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>>,
fn magnitude_b<B>(
self,
buffer: &mut B
) -> <DspVec<S, T, N, D> as ToRealResult>::RealResult where
B: Buffer<'a, S, T>, [src]
self,
buffer: &mut B
) -> <DspVec<S, T, N, D> as ToRealResult>::RealResult where
B: Buffer<'a, S, T>,
fn magnitude_squared_b<B>(
self,
buffer: &mut B
) -> <DspVec<S, T, N, D> as ToRealResult>::RealResult where
B: Buffer<'a, S, T>, [src]
self,
buffer: &mut B
) -> <DspVec<S, T, N, D> as ToRealResult>::RealResult where
B: Buffer<'a, S, T>,
fn to_real_b<B>(
self,
buffer: &mut B
) -> <DspVec<S, T, N, D> as ToRealResult>::RealResult where
B: Buffer<'a, S, T>, [src]
self,
buffer: &mut B
) -> <DspVec<S, T, N, D> as ToRealResult>::RealResult where
B: Buffer<'a, S, T>,
fn to_imag_b<B>(
self,
buffer: &mut B
) -> <DspVec<S, T, N, D> as ToRealResult>::RealResult where
B: Buffer<'a, S, T>, [src]
self,
buffer: &mut B
) -> <DspVec<S, T, N, D> as ToRealResult>::RealResult where
B: Buffer<'a, S, T>,
fn phase_b<B>(
self,
buffer: &mut B
) -> <DspVec<S, T, N, D> as ToRealResult>::RealResult where
B: Buffer<'a, S, T>, [src]
self,
buffer: &mut B
) -> <DspVec<S, T, N, D> as ToRealResult>::RealResult where
B: Buffer<'a, S, T>,
impl<S, T, N, D> MapInplaceOps<T> for DspVec<S, T, N, D> where
D: Domain,
N: RealNumberSpace,
S: ToSliceMut<T>,
T: RealNumber, [src]
D: Domain,
N: RealNumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
fn map_inplace<'a, A, F>(&mut self, argument: A, map: &F) where
A: Sync + Copy + Send,
F: Fn(T, usize, A) -> T + 'a + Sync, [src]
A: Sync + Copy + Send,
F: Fn(T, usize, A) -> T + 'a + Sync,
impl<S, T, N, D> MapInplaceOps<Complex<T>> for DspVec<S, T, N, D> where
D: Domain,
N: ComplexNumberSpace,
S: ToSliceMut<T>,
T: RealNumber, [src]
D: Domain,
N: ComplexNumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
fn map_inplace<'a, A, F>(&mut self, argument: A, map: &F) where
A: Sync + Copy + Send,
F: Fn(Complex<T>, usize, A) -> Complex<T> + 'a + Sync, [src]
A: Sync + Copy + Send,
F: Fn(Complex<T>, usize, A) -> Complex<T> + 'a + Sync,
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]
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>>,
fn magnitude(self) -> <DspVec<S, T, N, D> as ToRealResult>::RealResult[src]
fn magnitude_squared(self) -> <DspVec<S, T, N, D> as ToRealResult>::RealResult[src]
fn to_real(self) -> <DspVec<S, T, N, D> as ToRealResult>::RealResult[src]
fn to_imag(self) -> <DspVec<S, T, N, D> as ToRealResult>::RealResult[src]
fn phase(self) -> <DspVec<S, T, N, D> as ToRealResult>::RealResult[src]
impl<S, T, N, D> SymmetricFrequencyToTimeDomainOperations<S, T> for DspVec<S, T, N, D> where
D: FrequencyDomain,
N: ComplexNumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
DspVec<S, T, N, D>: ToRealTimeResult,
DspVec<S, T, N, D>: ToTimeResult,
DspVec<S, T, N, D>: FrequencyDomainOperations<S, T>,
<DspVec<S, T, N, D> as ToRealTimeResult>::RealTimeResult: RededicateForceOps<DspVec<S, T, N, D>>,
<DspVec<S, T, N, D> as ToRealTimeResult>::RealTimeResult: TimeDomainOperations<S, T>, [src]
D: FrequencyDomain,
N: ComplexNumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
DspVec<S, T, N, D>: ToRealTimeResult,
DspVec<S, T, N, D>: ToTimeResult,
DspVec<S, T, N, D>: FrequencyDomainOperations<S, T>,
<DspVec<S, T, N, D> as ToRealTimeResult>::RealTimeResult: RededicateForceOps<DspVec<S, T, N, D>>,
<DspVec<S, T, N, D> as ToRealTimeResult>::RealTimeResult: TimeDomainOperations<S, T>,
fn plain_sifft<B>(
self,
buffer: &mut B
) -> Result<<DspVec<S, T, N, D> as ToRealTimeResult>::RealTimeResult, (ErrorReason, <DspVec<S, T, N, D> as ToRealTimeResult>::RealTimeResult)> where
B: Buffer<'a, S, T>, [src]
self,
buffer: &mut B
) -> Result<<DspVec<S, T, N, D> as ToRealTimeResult>::RealTimeResult, (ErrorReason, <DspVec<S, T, N, D> as ToRealTimeResult>::RealTimeResult)> where
B: Buffer<'a, S, T>,
fn sifft<B>(
self,
buffer: &mut B
) -> Result<<DspVec<S, T, N, D> as ToRealTimeResult>::RealTimeResult, (ErrorReason, <DspVec<S, T, N, D> as ToRealTimeResult>::RealTimeResult)> where
B: Buffer<'a, S, T>, [src]
self,
buffer: &mut B
) -> Result<<DspVec<S, T, N, D> as ToRealTimeResult>::RealTimeResult, (ErrorReason, <DspVec<S, T, N, D> as ToRealTimeResult>::RealTimeResult)> where
B: Buffer<'a, S, T>,
fn windowed_sifft<B>(
self,
buffer: &mut B,
window: &dyn WindowFunction<T>
) -> Result<<DspVec<S, T, N, D> as ToRealTimeResult>::RealTimeResult, (ErrorReason, <DspVec<S, T, N, D> as ToRealTimeResult>::RealTimeResult)> where
B: Buffer<'a, S, T>, [src]
self,
buffer: &mut B,
window: &dyn WindowFunction<T>
) -> Result<<DspVec<S, T, N, D> as ToRealTimeResult>::RealTimeResult, (ErrorReason, <DspVec<S, T, N, D> as ToRealTimeResult>::RealTimeResult)> where
B: Buffer<'a, S, T>,
impl<S, T, N, D> DiffSumOps for DspVec<S, T, N, D> where
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber, [src]
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
Auto Trait Implementations
impl<S, T, N, D> Send for DspVec<S, T, N, D> where
D: Send,
N: Send,
S: Send,
D: Send,
N: Send,
S: Send,
impl<S, T, N, D> Sync for DspVec<S, T, N, D> where
D: Sync,
N: Sync,
S: Sync,
D: Sync,
N: Sync,
S: Sync,
Blanket Implementations
impl<T> From for T[src]
impl<T, U> Into for T where
U: From<T>, [src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone, [src]
T: Clone,
impl<T, U> TryFrom for T where
U: Into<T>, [src]
U: Into<T>,
type Error = !
try_from)The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T> Borrow for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> BorrowMut for T where
T: ?Sized, [src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T[src]
impl<T, U> TryInto for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
try_from)The type returned in the event of a conversion error.