[−][src]Trait basic_dsp::ConvolutionOps
Provides a convolution operation for types which at some point are slice based.
Required methods
fn convolve_signal<B>(
&mut self,
buffer: &mut B,
impulse_response: &A
) -> Result<(), ErrorReason> where
B: Buffer<'a, S, T>,
&mut self,
buffer: &mut B,
impulse_response: &A
) -> Result<(), ErrorReason> where
B: Buffer<'a, S, T>,
Convolves self
with the convolution function impulse_response
.
For performance it's recommended
to use multiply both vectors in frequency domain instead of this operation.
Failures
TransRes may report the following ErrorReason
members:
VectorMustBeInTimeDomain
: ifself
is in frequency domain.VectorMetaDataMustAgree
: in caseself
andimpulse_response
are not in the same number space and same domain.InvalidArgumentLength
: ifself.points() < impulse_response.points()
.
Implementors
impl<'a, S, T, N, D> ConvolutionOps<[[&'a DspVec<S, T, N, D>; 2]; 2], S, T, N, D> for Matrix2xN<DspVec<S, T, N, D>, S, T> where
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
[src]
impl<'a, S, T, N, D> ConvolutionOps<[[&'a DspVec<S, T, N, D>; 2]; 2], S, T, N, D> for Matrix2xN<DspVec<S, T, N, D>, S, T> where
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
fn convolve_signal<B>( | [src] |
impl<'a, S, T, N, D> ConvolutionOps<[[&'a DspVec<S, T, N, D>; 3]; 3], S, T, N, D> for Matrix3xN<DspVec<S, T, N, D>, S, T> where
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
[src]
impl<'a, S, T, N, D> ConvolutionOps<[[&'a DspVec<S, T, N, D>; 3]; 3], S, T, N, D> for Matrix3xN<DspVec<S, T, N, D>, S, T> where
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
fn convolve_signal<B>( | [src] |
impl<'a, S, T, N, D> ConvolutionOps<[[&'a DspVec<S, T, N, D>; 4]; 4], S, T, N, D> for Matrix4xN<DspVec<S, T, N, D>, S, T> where
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
[src]
impl<'a, S, T, N, D> ConvolutionOps<[[&'a DspVec<S, T, N, D>; 4]; 4], S, T, N, D> for Matrix4xN<DspVec<S, T, N, D>, S, T> where
D: Domain,
N: NumberSpace,
S: ToSliceMut<T>,
T: RealNumber,
fn convolve_signal<B>( | [src] |
impl<'a, S, T, N, D> ConvolutionOps<Vec<&'a Vec<&'a 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,
[src]
impl<'a, S, T, N, D> ConvolutionOps<Vec<&'a Vec<&'a 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,
fn convolve_signal<B>( | [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]
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,
fn convolve_signal<B>( | [src] |
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]
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>,
fn convolve_signal<B>( | [src] |
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]
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>,
fn convolve_signal<B>( | [src] |
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]
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>,
fn convolve_signal<B>( | [src] |
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]
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>,
fn convolve_signal<B>( | [src] |