FftBackend

Trait FftBackend 

Source
pub trait FftBackend: Send + Sync {
    // Required methods
    fn name(&self) -> &str;
    fn description(&self) -> &str;
    fn is_available(&self) -> bool;
    fn fft(
        &self,
        input: &[Complex64],
        output: &mut [Complex64],
    ) -> FFTResult<()>;
    fn ifft(
        &self,
        input: &[Complex64],
        output: &mut [Complex64],
    ) -> FFTResult<()>;
    fn fft_sized(
        &self,
        input: &[Complex64],
        output: &mut [Complex64],
        size: usize,
    ) -> FFTResult<()>;
    fn ifft_sized(
        &self,
        input: &[Complex64],
        output: &mut [Complex64],
        size: usize,
    ) -> FFTResult<()>;
    fn supports_feature(&self, feature: &str) -> bool;
}
Expand description

FFT Backend trait for implementing different FFT algorithms

Required Methods§

Source

fn name(&self) -> &str

Name of the backend

Source

fn description(&self) -> &str

Description of the backend

Source

fn is_available(&self) -> bool

Check if this backend is available

Source

fn fft(&self, input: &[Complex64], output: &mut [Complex64]) -> FFTResult<()>

Perform forward FFT

Source

fn ifft(&self, input: &[Complex64], output: &mut [Complex64]) -> FFTResult<()>

Perform inverse FFT

Source

fn fft_sized( &self, input: &[Complex64], output: &mut [Complex64], size: usize, ) -> FFTResult<()>

Perform FFT with specific size (may be cached)

Source

fn ifft_sized( &self, input: &[Complex64], output: &mut [Complex64], size: usize, ) -> FFTResult<()>

Perform inverse FFT with specific size (may be cached)

Source

fn supports_feature(&self, feature: &str) -> bool

Check if this backend supports a specific feature

Implementors§