[][src]Struct basic_dsp_vector::DspVec

pub struct DspVec<S, T, N, D> where
    S: ToSlice<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain
{ pub data: S, // some fields omitted }

A 1xN (one times N elements) or Nx1 data vector as used for most digital signal processing (DSP) operations.

Vectors come in different flavors:

  1. Time or Frequency domain
  2. Real or Complex numbers
  3. 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: S

The 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
    S: ToSliceMut<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain
[src]

pub fn convolve_mat(
    matrix: &[&Self],
    impulse_response: &[&Self],
    target: &mut [T]
) -> VoidResult
[src]

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: ToSliceMut<T>, T: RealNumber> DspVec<S, T, RealOrComplex, TimeOrFreq>
[src]

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<S, T, N, D> FromVector<T> for DspVec<S, T, N, D> where
    S: ToSlice<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain
[src]

type Output = S

Type of the underlying storage of a vector.

impl<S, T, N, D> ComplexIndex<usize> for DspVec<S, T, N, D> where
    S: ToSlice<T>,
    T: RealNumber,
    N: ComplexNumberSpace,
    D: Domain
[src]

type Output = Complex<T>

impl<S, T, N, D> ComplexIndex<RangeFull> for DspVec<S, T, N, D> where
    S: ToSlice<T>,
    T: RealNumber,
    N: ComplexNumberSpace,
    D: Domain
[src]

type Output = [Complex<T>]

impl<S, T, N, D> ComplexIndex<RangeFrom<usize>> for DspVec<S, T, N, D> where
    S: ToSlice<T>,
    T: RealNumber,
    N: ComplexNumberSpace,
    D: Domain
[src]

type Output = [Complex<T>]

impl<S, T, N, D> ComplexIndex<RangeTo<usize>> for DspVec<S, T, N, D> where
    S: ToSlice<T>,
    T: RealNumber,
    N: ComplexNumberSpace,
    D: Domain
[src]

type Output = [Complex<T>]

impl<S, T, N, D> ComplexIndex<Range<usize>> for DspVec<S, T, N, D> where
    S: ToSlice<T>,
    T: RealNumber,
    N: ComplexNumberSpace,
    D: Domain
[src]

type Output = [Complex<T>]

impl<S, T, N, D> ComplexIndexMut<usize> for DspVec<S, T, N, D> where
    S: ToSliceMut<T>,
    T: RealNumber,
    N: ComplexNumberSpace,
    D: Domain
[src]

impl<S, T, N, D> ComplexIndexMut<RangeFull> for DspVec<S, T, N, D> where
    S: ToSliceMut<T>,
    T: RealNumber,
    N: ComplexNumberSpace,
    D: Domain
[src]

impl<S, T, N, D> ComplexIndexMut<RangeFrom<usize>> for DspVec<S, T, N, D> where
    S: ToSliceMut<T>,
    T: RealNumber,
    N: ComplexNumberSpace,
    D: Domain
[src]

impl<S, T, N, D> ComplexIndexMut<RangeTo<usize>> for DspVec<S, T, N, D> where
    S: ToSliceMut<T>,
    T: RealNumber,
    N: ComplexNumberSpace,
    D: Domain
[src]

impl<S, T, N, D> ComplexIndexMut<Range<usize>> for DspVec<S, T, N, D> where
    S: ToSliceMut<T>,
    T: RealNumber,
    N: ComplexNumberSpace,
    D: Domain
[src]

impl<S, T, N, D> MetaData for DspVec<S, T, N, D> where
    S: ToSlice<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain
[src]

impl<S, T, N, D> ResizeOps for DspVec<S, T, N, D> where
    S: ToSlice<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain
[src]

impl<S, T, N, D> ResizeBufferedOps<S, T> for DspVec<S, T, N, D> where
    S: ToSliceMut<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain
[src]

impl<S, T, N, D> Vector<T> for DspVec<S, T, N, D> where
    S: ToSlice<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain
[src]

impl<S, T, N, D> GetMetaData<T, N, D> for DspVec<S, T, N, D> where
    S: ToSlice<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain
[src]

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

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

impl<S, T, N, NR, D, O, DO> ComplexToRealGetterOps<O, T, NR, DO> for DspVec<S, T, N, D> where
    DspVec<S, T, N, D>: ToRealResult,
    O: Vector<T> + GetMetaData<T, NR, DO> + Index<Range<usize>, Output = [T]> + IndexMut<Range<usize>>,
    S: ToSlice<T>,
    T: RealNumber,
    N: ComplexNumberSpace,
    NR: RealNumberSpace,
    D: Domain,
    DO: PosEq<D> + Domain
[src]

impl<S, T, N, NR, D, O, DO> ComplexToRealSetterOps<O, T, NR, DO> for DspVec<S, T, N, D> where
    DspVec<S, T, N, D>: ToRealResult,
    O: Index<Range<usize>, Output = [T]> + Vector<T> + GetMetaData<T, NR, DO>,
    S: ToSliceMut<T> + Resize,
    T: RealNumber,
    N: ComplexNumberSpace,
    NR: RealNumberSpace,
    D: Domain,
    DO: PosEq<D> + Domain
[src]

impl<S, T, N, D> ComplexOps<T> for DspVec<S, T, N, D> where
    S: ToSliceMut<T>,
    T: RealNumber,
    N: ComplexNumberSpace,
    D: Domain
[src]

impl<S, T, N, D> RealToComplexTransformsOps<T> for DspVec<S, T, N, D> where
    DspVec<S, T, N, D>: ToComplexResult + InsertZerosOps<T>,
    <DspVec<S, T, N, D> as ToComplexResult>::ComplexResult: RededicateForceOps<DspVec<S, T, N, D>>,
    S: ToSliceMut<T>,
    T: RealNumber,
    N: RealNumberSpace,
    D: Domain
[src]

impl<S, T, N, D> RealToComplexTransformsOpsBuffered<S, T> for DspVec<S, T, N, D> where
    DspVec<S, T, N, D>: ToComplexResult + InsertZerosOpsBuffered<S, T>,
    <DspVec<S, T, N, D> as ToComplexResult>::ComplexResult: RededicateForceOps<DspVec<S, T, N, D>>,
    S: ToSliceMut<T>,
    T: RealNumber,
    N: RealNumberSpace,
    D: Domain
[src]

impl<S, T, N, D> RealOps for DspVec<S, T, N, D> where
    S: ToSliceMut<T>,
    T: RealNumber,
    N: RealNumberSpace,
    D: Domain
[src]

impl<S, T, N, D> ModuloOps<T> for DspVec<S, T, N, D> where
    S: ToSliceMut<T>,
    T: RealNumber,
    N: RealNumberSpace,
    D: Domain
[src]

impl<S, T, N, D> ApproximatedOps<T> for DspVec<S, T, N, D> where
    S: ToSliceMut<T>,
    T: RealNumber,
    N: RealNumberSpace,
    D: Domain
[src]

impl<S, T, N, D> FrequencyDomainOperations<S, T> for DspVec<S, T, N, D> where
    DspVec<S, T, N, D>: ToTimeResult,
    <DspVec<S, T, N, D> as ToTimeResult>::TimeResult: RededicateForceOps<DspVec<S, T, N, D>>,
    S: ToSliceMut<T>,
    T: RealNumber,
    N: ComplexNumberSpace,
    D: FrequencyDomain
[src]

impl<S, T, N, D> TimeDomainOperations<S, T> for DspVec<S, T, N, D> where
    DspVec<S, T, N, D>: ToFreqResult,
    <DspVec<S, T, N, D> as ToFreqResult>::FreqResult: RededicateForceOps<DspVec<S, T, N, D>>,
    S: ToSliceMut<T>,
    T: RealNumber,
    N: NumberSpace,
    D: TimeDomain
[src]

impl<S, T, N, D> TimeToFrequencyDomainOperations<S, T> for DspVec<S, T, N, D> where
    DspVec<S, T, N, D>: ToFreqResult,
    <DspVec<S, T, N, D> as ToFreqResult>::FreqResult: RededicateForceOps<DspVec<S, T, N, D>> + FrequencyDomainOperations<S, T>,
    S: ToSliceMut<T>,
    T: RealNumber,
    N: NumberSpace,
    D: TimeDomain
[src]

impl<S, T, N, D> SymmetricTimeToFrequencyDomainOperations<S, T> for DspVec<S, T, N, D> where
    DspVec<S, T, N, D>: ToFreqResult,
    <DspVec<S, T, N, D> as ToFreqResult>::FreqResult: RededicateForceOps<DspVec<S, T, N, D>> + FrequencyDomainOperations<S, T> + ResizeOps,
    S: ToSliceMut<T>,
    T: RealNumber,
    N: RealNumberSpace,
    D: TimeDomain
[src]

impl<S, T, N, D> FrequencyToTimeDomainOperations<S, T> for DspVec<S, T, N, D> where
    DspVec<S, T, N, D>: ToTimeResult,
    <DspVec<S, T, N, D> as ToTimeResult>::TimeResult: RededicateForceOps<DspVec<S, T, N, D>> + TimeDomainOperations<S, T>,
    S: ToSliceMut<T>,
    T: RealNumber,
    N: ComplexNumberSpace,
    D: FrequencyDomain
[src]

impl<S, T, N, D> SymmetricFrequencyToTimeDomainOperations<S, T> for DspVec<S, T, N, D> where
    DspVec<S, T, N, D>: ToRealTimeResult + ToTimeResult + FrequencyDomainOperations<S, T>,
    <DspVec<S, T, N, D> as ToRealTimeResult>::RealTimeResult: RededicateForceOps<DspVec<S, T, N, D>> + TimeDomainOperations<S, T>,
    S: ToSliceMut<T>,
    T: RealNumber,
    N: ComplexNumberSpace,
    D: FrequencyDomain
[src]

impl<S, T, N, D> CrossCorrelationArgumentOps<S, T> for DspVec<S, T, N, D> where
    DspVec<S, T, N, D>: ToFreqResult + TimeToFrequencyDomainOperations<S, T>,
    <DspVec<S, T, N, D> as ToFreqResult>::FreqResult: FrequencyDomainOperations<S, T> + ComplexOps<T>,
    S: ToSliceMut<T>,
    T: RealNumber,
    N: ComplexNumberSpace,
    D: TimeDomain
[src]

impl<S, T, N, D, DF, O, NO> CrossCorrelationOps<O, S, T, NO, DF> for DspVec<S, T, N, D> where
    DspVec<S, T, N, D>: ScaleOps<T>,
    S: ToSliceMut<T>,
    T: RealNumber,
    N: ComplexNumberSpace,
    D: TimeDomain,
    DF: FrequencyDomain,
    O: Vector<T> + GetMetaData<T, NO, DF> + Index<RangeFull, Output = [T]>,
    NO: PosEq<N> + NumberSpace
[src]

impl<'a, S, T, N, D> Convolution<'a, S, T, &'a (dyn RealImpulseResponse<T> + 'a)> for DspVec<S, T, N, D> where
    S: ToSliceMut<T>,
    T: RealNumber,
    N: NumberSpace,
    D: TimeDomain,
    DspVec<S, T, N, D>: TimeToFrequencyDomainOperations<S, T> + Clone + ConvolutionOps<DspVec<InlineVector<T>, T, N, D>, S, T, N, D>, 
[src]

impl<'a, S, T, N, D> Convolution<'a, S, T, &'a (dyn ComplexImpulseResponse<T> + 'a)> for DspVec<S, T, N, D> where
    S: ToSliceMut<T>,
    T: RealNumber,
    N: ComplexNumberSpace,
    D: TimeDomain,
    DspVec<S, T, N, D>: TimeToFrequencyDomainOperations<S, T> + Clone + ConvolutionOps<DspVec<InlineVector<T>, T, N, D>, S, T, N, D>, 
[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
    S: ToSliceMut<T>,
    SO: ToSliceMut<T>,
    T: RealNumber,
    N: NumberSpace,
    D: TimeDomain,
    DspVec<S, T, N, D>: TimeToFrequencyDomainOperations<S, T> + Clone,
    DspVec<SO, T, N, D>: TimeToFrequencyDomainOperations<SO, T> + Clone,
    NO: PosEq<N> + NumberSpace,
    DO: TimeDomain
[src]

impl<'a, S, T, N, D> FrequencyMultiplication<'a, S, T, &'a (dyn ComplexFrequencyResponse<T> + 'a)> for DspVec<S, T, N, D> where
    S: ToSliceMut<T>,
    T: RealNumber,
    N: ComplexNumberSpace,
    D: FrequencyDomain
[src]

impl<'a, S, T, N, D> FrequencyMultiplication<'a, S, T, &'a (dyn RealFrequencyResponse<T> + 'a)> for DspVec<S, T, N, D> where
    S: ToSliceMut<T>,
    T: RealNumber,
    N: NumberSpace,
    D: FrequencyDomain
[src]

impl<S, T, N, D> InterpolationOps<S, T> for DspVec<S, T, N, D> where
    DspVec<S, T, N, D>: InsertZerosOpsBuffered<S, T> + ScaleOps<T> + ResizeBufferedOps<S, T>,
    S: ToSliceMut<T> + ToComplexVector<S, T> + ToDspVector<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain
[src]

impl<S, T, N, D> RealInterpolationOps<S, T> for DspVec<S, T, N, D> where
    S: ToSliceMut<T>,
    T: RealNumber,
    N: RealNumberSpace,
    D: Domain
[src]

impl<S, T, N, D, O> RededicateOps<O> for DspVec<S, T, N, D> where
    S: ToSlice<T>,
    T: RealNumber,
    DspVec<S, T, N, D>: RededicateForceOps<O>,
    N: NumberSpace,
    D: Domain,
    O: Vector<T>, 
[src]

impl<S, T, N, D> RededicateForceOps<DspVec<S, T, N, D>> for RealTimeVec<S, T> where
    S: ToSlice<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain
[src]

impl<S, T, N, D> RededicateForceOps<DspVec<S, T, N, D>> for RealFreqVec<S, T> where
    S: ToSlice<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain
[src]

impl<S, T, N, D> RededicateForceOps<DspVec<S, T, N, D>> for ComplexTimeVec<S, T> where
    S: ToSlice<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain
[src]

impl<S, T, N, D> RededicateForceOps<DspVec<S, T, N, D>> for ComplexFreqVec<S, T> where
    S: ToSlice<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain
[src]

impl<S, T, N, D> RededicateForceOps<DspVec<S, T, N, D>> for GenDspVec<S, T> where
    S: ToSlice<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain
[src]

impl<S, T, N, D, O> RededicateToOps<O> for DspVec<S, T, N, D> where
    S: ToSlice<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain,
    O: Vector<T> + RededicateOps<Self>, 
[src]

impl<S, T, D, N> ScaleOps<T> for DspVec<S, T, N, D> where
    S: ToSliceMut<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain
[src]

impl<S, T, D, N> ScaleOps<Complex<T>> for DspVec<S, T, N, D> where
    S: ToSliceMut<T>,
    T: RealNumber,
    N: ComplexNumberSpace,
    D: Domain
[src]

impl<S, T, N, D> OffsetOps<T> for DspVec<S, T, N, D> where
    S: ToSliceMut<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain
[src]

impl<S, T, N, D> OffsetOps<Complex<T>> for DspVec<S, T, N, D> where
    S: ToSliceMut<T>,
    T: RealNumber,
    N: ComplexNumberSpace,
    D: Domain
[src]

impl<S, T, N, D, O, NO, DO> ElementaryOps<O, T, NO, DO> for DspVec<S, T, N, D> where
    S: ToSliceMut<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain,
    O: Vector<T> + Index<RangeFull, Output = [T]> + GetMetaData<T, NO, DO>,
    NO: PosEq<N> + NumberSpace,
    DO: PosEq<D> + Domain
[src]

impl<S, T, N, D, O, NO, DO> ElementaryWrapAroundOps<O, T, NO, DO> for DspVec<S, T, N, D> where
    S: ToSliceMut<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain,
    O: Vector<T> + Index<RangeFull, Output = [T]> + GetMetaData<T, NO, DO>,
    NO: PosEq<N> + NumberSpace,
    DO: PosEq<D> + Domain
[src]

impl<S, T, N, D> TrigOps for DspVec<S, T, N, D> where
    S: ToSliceMut<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain
[src]

impl<S, T, N, D> PowerOps<T> for DspVec<S, T, N, D> where
    S: ToSliceMut<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain
[src]

impl<S, T, N, D> ReorganizeDataOps<T> for DspVec<S, T, N, D> where
    S: ToSliceMut<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain
[src]

impl<S, T, N, D> InsertZerosOps<T> for DspVec<S, T, N, D> where
    S: ToSliceMut<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain
[src]

impl<S, T, N, D> InsertZerosOpsBuffered<S, T> for DspVec<S, T, N, D> where
    S: ToSliceMut<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain
[src]

impl<S, T, N, D> SplitOps for DspVec<S, T, N, D> where
    S: ToSliceMut<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain
[src]

impl<S, T, N, D> MergeOps for DspVec<S, T, N, D> where
    S: ToSliceMut<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain
[src]

impl<S, T, N, D> DiffSumOps for DspVec<S, T, N, D> where
    S: ToSliceMut<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain
[src]

impl<S, O, T, N, D, NO, DO> DotProductOps<O, T, T, NO, DO> for DspVec<S, T, N, D> where
    S: ToSlice<T>,
    T: RealNumber,
    N: RealNumberSpace,
    D: Domain,
    O: Vector<T> + GetMetaData<T, NO, DO> + Index<RangeFull, Output = [T]>,
    NO: PosEq<N> + NumberSpace,
    DO: PosEq<D> + Domain
[src]

type Output = ScalarResult<T>

impl<S, O, T, N, D, NO, DO> DotProductOps<O, Complex<T>, T, NO, DO> for DspVec<S, T, N, D> where
    S: ToSlice<T>,
    T: RealNumber,
    N: ComplexNumberSpace,
    D: Domain,
    O: Vector<T> + GetMetaData<T, NO, DO> + Index<RangeFull, Output = [T]>,
    NO: PosEq<N> + NumberSpace,
    DO: PosEq<D> + Domain
[src]

type Output = ScalarResult<Complex<T>>

impl<S, O, T, N, D, NO, DO> PreciseDotProductOps<O, T, T, NO, DO> for DspVec<S, T, N, D> where
    S: ToSlice<T>,
    T: RealNumber,
    N: RealNumberSpace,
    D: Domain,
    O: Vector<T> + GetMetaData<T, NO, DO> + Index<RangeFull, Output = [T]>,
    NO: PosEq<N> + NumberSpace,
    DO: PosEq<D> + Domain
[src]

type Output = ScalarResult<T>

impl<S, O, T, N, D, NO, DO> PreciseDotProductOps<O, Complex<T>, T, NO, DO> for DspVec<S, T, N, D> where
    S: ToSlice<T>,
    T: RealNumber,
    N: ComplexNumberSpace,
    D: Domain,
    O: Vector<T> + GetMetaData<T, NO, DO> + Index<RangeFull, Output = [T]>,
    NO: PosEq<N> + NumberSpace,
    DO: PosEq<D> + Domain
[src]

type Output = ScalarResult<Complex<T>>

impl<S, T, N, D> MapInplaceOps<T> for DspVec<S, T, N, D> where
    S: ToSliceMut<T>,
    T: RealNumber,
    N: RealNumberSpace,
    D: Domain
[src]

impl<S, T, N, D> MapInplaceOps<Complex<T>> for DspVec<S, T, N, D> where
    S: ToSliceMut<T>,
    T: RealNumber,
    N: ComplexNumberSpace,
    D: Domain
[src]

impl<S, T, N, D, R> MapAggregateOps<T, R> for DspVec<S, T, N, D> where
    S: ToSlice<T>,
    T: RealNumber,
    N: RealNumberSpace,
    D: Domain,
    R: Send
[src]

type Output = ScalarResult<R>

impl<S, T, N, D, R> MapAggregateOps<Complex<T>, R> for DspVec<S, T, N, D> where
    S: ToSlice<T>,
    T: RealNumber,
    N: ComplexNumberSpace,
    D: Domain,
    R: Send
[src]

type Output = ScalarResult<R>

impl<S, T, N, D> StatisticsOps<T> for DspVec<S, T, N, D> where
    S: ToSlice<T>,
    T: RealNumber,
    N: RealNumberSpace,
    D: Domain
[src]

type Result = Statistics<T>

impl<S, T, N, D> StatisticsOps<Complex<T>> for DspVec<S, T, N, D> where
    S: ToSlice<T>,
    T: RealNumber,
    N: ComplexNumberSpace,
    D: Domain
[src]

type Result = Statistics<Complex<T>>

impl<S, T, N, D> StatisticsSplitOps<T> for DspVec<S, T, N, D> where
    S: ToSlice<T>,
    T: RealNumber,
    N: RealNumberSpace,
    D: Domain
[src]

type Result = StatsVec<Statistics<T>>

impl<S, T, N, D> StatisticsSplitOps<Complex<T>> for DspVec<S, T, N, D> where
    S: ToSlice<T>,
    T: RealNumber,
    N: ComplexNumberSpace,
    D: Domain
[src]

type Result = StatsVec<Statistics<Complex<T>>>

impl<S, T, N, D> SumOps<T> for DspVec<S, T, N, D> where
    S: ToSlice<T>,
    T: RealNumber,
    N: RealNumberSpace,
    D: Domain
[src]

impl<S, T, N, D> SumOps<Complex<T>> for DspVec<S, T, N, D> where
    S: ToSlice<T>,
    T: RealNumber,
    N: ComplexNumberSpace,
    D: Domain
[src]

impl<S, N, D> PreciseStatisticsOps<f64> for DspVec<S, f32, N, D> where
    S: ToSlice<f32>,
    N: RealNumberSpace,
    D: Domain
[src]

type Result = Statistics<f64>

impl<S, N, D> PreciseStatisticsOps<f64> for DspVec<S, f64, N, D> where
    S: ToSlice<f64>,
    N: RealNumberSpace,
    D: Domain
[src]

type Result = Statistics<f64>

impl<S, N, D> PreciseStatisticsOps<Complex<f64>> for DspVec<S, f32, N, D> where
    S: ToSlice<f32>,
    N: ComplexNumberSpace,
    D: Domain
[src]

type Result = Statistics<Complex<f64>>

impl<S, N, D> PreciseStatisticsOps<Complex<f64>> for DspVec<S, f64, N, D> where
    S: ToSlice<f64>,
    N: ComplexNumberSpace,
    D: Domain
[src]

type Result = Statistics<Complex<f64>>

impl<S, N, D> PreciseStatisticsSplitOps<f64> for DspVec<S, f32, N, D> where
    S: ToSlice<f32>,
    N: RealNumberSpace,
    D: Domain
[src]

type Result = StatsVec<Statistics<f64>>

impl<S, N, D> PreciseStatisticsSplitOps<f64> for DspVec<S, f64, N, D> where
    S: ToSlice<f64>,
    N: RealNumberSpace,
    D: Domain
[src]

type Result = StatsVec<Statistics<f64>>

impl<S, N, D> PreciseStatisticsSplitOps<Complex<f64>> for DspVec<S, f32, N, D> where
    S: ToSlice<f32>,
    N: ComplexNumberSpace,
    D: Domain
[src]

type Result = StatsVec<Statistics<Complex<f64>>>

impl<S, N, D> PreciseStatisticsSplitOps<Complex<f64>> for DspVec<S, f64, N, D> where
    S: ToSlice<f64>,
    N: ComplexNumberSpace,
    D: Domain
[src]

type Result = StatsVec<Statistics<Complex<f64>>>

impl<S, N, D> PreciseSumOps<f64> for DspVec<S, f32, N, D> where
    S: ToSlice<f32>,
    N: RealNumberSpace,
    D: Domain
[src]

impl<S, N, D> PreciseSumOps<f64> for DspVec<S, f64, N, D> where
    S: ToSlice<f64>,
    N: RealNumberSpace,
    D: Domain
[src]

impl<S, N, D> PreciseSumOps<Complex<f64>> for DspVec<S, f32, N, D> where
    S: ToSlice<f32>,
    N: ComplexNumberSpace,
    D: Domain
[src]

impl<S, N, D> PreciseSumOps<Complex<f64>> for DspVec<S, f64, N, D> where
    S: ToSlice<f64>,
    N: ComplexNumberSpace,
    D: Domain
[src]

impl<S, T, N, D> Clone for DspVec<S, T, N, D> where
    S: ToSlice<T> + Clone,
    T: RealNumber,
    N: NumberSpace + Clone,
    D: Domain + Clone
[src]

impl<S, T, N, D> Debug for DspVec<S, T, N, D> where
    S: ToSlice<T>,
    T: RealNumber,
    D: Domain,
    N: NumberSpace
[src]

impl<S, T, N, D> Index<usize> for DspVec<S, T, N, D> where
    S: ToSlice<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain
[src]

type Output = T

The returned type after indexing.

impl<S, T, N, D> Index<RangeFull> for DspVec<S, T, N, D> where
    S: ToSlice<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain
[src]

type Output = [T]

The returned type after indexing.

impl<S, T, N, D> Index<RangeFrom<usize>> for DspVec<S, T, N, D> where
    S: ToSlice<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain
[src]

type Output = [T]

The returned type after indexing.

impl<S, T, N, D> Index<RangeTo<usize>> for DspVec<S, T, N, D> where
    S: ToSlice<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain
[src]

type Output = [T]

The returned type after indexing.

impl<S, T, N, D> Index<Range<usize>> for DspVec<S, T, N, D> where
    S: ToSlice<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain
[src]

type Output = [T]

The returned type after indexing.

impl<S, T, N, D> IndexMut<usize> for DspVec<S, T, N, D> where
    S: ToSliceMut<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain
[src]

impl<S, T, N, D> IndexMut<RangeFull> for DspVec<S, T, N, D> where
    S: ToSliceMut<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain
[src]

impl<S, T, N, D> IndexMut<RangeFrom<usize>> for DspVec<S, T, N, D> where
    S: ToSliceMut<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain
[src]

impl<S, T, N, D> IndexMut<RangeTo<usize>> for DspVec<S, T, N, D> where
    S: ToSliceMut<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain
[src]

impl<S, T, N, D> IndexMut<Range<usize>> for DspVec<S, T, N, D> where
    S: ToSliceMut<T>,
    T: RealNumber,
    N: NumberSpace,
    D: Domain
[src]

Auto Trait Implementations

impl<S, T, N, D> Send for DspVec<S, T, N, D> where
    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

Blanket Implementations

impl<T> From for T
[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

impl<T, U> TryFrom for T where
    T: From<U>, 
[src]

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Erased for T