[][src]Trait rustfft::FFT

pub trait FFT<T: FFTnum>: Length + IsInverse + Sync + Send {
    fn process(&self, input: &mut [Complex<T>], output: &mut [Complex<T>]);
fn process_multi(&self, input: &mut [Complex<T>], output: &mut [Complex<T>]); }

An umbrella trait for all available FFT algorithms

Required methods

fn process(&self, input: &mut [Complex<T>], output: &mut [Complex<T>])

Computes an FFT on the input buffer and places the result in the output buffer.

The output is not normalized. Callers must manually normalize the results by scaling each element by 1/len().sqrt(). Multiple normalization steps can be merged into one via pairwise multiplication, so when doing a forward FFT followed by an inverse FFT, callers can normalize once by scaling each element by 1/len()

This method uses the input buffer as scratch space, so the contents of input should be considered garbage after calling

fn process_multi(&self, input: &mut [Complex<T>], output: &mut [Complex<T>])

Divides the input and output buffers into chunks of length self.len(), then computes an FFT on each chunk.

The output is not normalized. Callers must manually normalize the results by scaling each element by 1/len().sqrt(). Multiple normalization steps can be merged into one via pairwise multiplication, so when doing a forward FFT followed by an inverse FFT, callers can normalize once by scaling each element by 1/len()

This method uses the input buffer as scratch space, so the contents of input should be considered garbage after calling

Loading content...

Implementors

impl<T: FFTnum> FFT<T> for Butterfly16<T>[src]

impl<T: FFTnum> FFT<T> for Butterfly2[src]

impl<T: FFTnum> FFT<T> for Butterfly3<T>[src]

impl<T: FFTnum> FFT<T> for Butterfly32<T>[src]

impl<T: FFTnum> FFT<T> for Butterfly4[src]

impl<T: FFTnum> FFT<T> for Butterfly5<T>[src]

impl<T: FFTnum> FFT<T> for Butterfly6<T>[src]

impl<T: FFTnum> FFT<T> for Butterfly7<T>[src]

impl<T: FFTnum> FFT<T> for Butterfly8<T>[src]

impl<T: FFTnum> FFT<T> for DFT<T>[src]

impl<T: FFTnum> FFT<T> for GoodThomasAlgorithm<T>[src]

impl<T: FFTnum> FFT<T> for GoodThomasAlgorithmDoubleButterfly<T>[src]

impl<T: FFTnum> FFT<T> for MixedRadix<T>[src]

impl<T: FFTnum> FFT<T> for MixedRadixDoubleButterfly<T>[src]

impl<T: FFTnum> FFT<T> for RadersAlgorithm<T>[src]

impl<T: FFTnum> FFT<T> for Radix4<T>[src]

Loading content...