numerics 0.1.0
Loading...
Searching...
No Matches
fft.hpp File Reference

FFT interface with backend dispatch. More...

#include "core/types.hpp"
#include "core/vector.hpp"

Go to the source code of this file.

Classes

class  num::spectral::FFTPlan
 Precomputed complex transform plan. More...
 

Namespaces

namespace  num
 
namespace  num::spectral
 

Enumerations

enum class  num::spectral::FFTBackend { num::spectral::seq , num::spectral::simd , num::spectral::stdsimd , num::spectral::fftw }
 

Functions

void num::spectral::fft (const CVector &in, CVector &out, FFTBackend b=default_fft_backend)
 
void num::spectral::ifft (const CVector &in, CVector &out, FFTBackend b=default_fft_backend)
 
void num::spectral::rfft (const Vector &in, CVector &out, FFTBackend b=default_fft_backend)
 
void num::spectral::irfft (const CVector &in, int n, Vector &out, FFTBackend b=default_fft_backend)
 

Variables

constexpr FFTBackend num::spectral::seq = FFTBackend::seq
 
constexpr FFTBackend num::spectral::fftw = FFTBackend::fftw
 
constexpr FFTBackend num::spectral::fft_simd = FFTBackend::simd
 
constexpr FFTBackend num::spectral::fft_stdsimd = FFTBackend::stdsimd
 
constexpr bool num::spectral::has_fftw
 
constexpr bool num::spectral::has_fft_simd
 
constexpr bool num::spectral::has_fft_stdsimd
 
constexpr FFTBackend num::spectral::default_fft_backend
 

Detailed Description

FFT interface with backend dispatch.

Forward transform convention:

\[ X_k=\sum_{j=0}^{n-1} x_j e^{-2\pi i jk/n}. \]

The inverse transform is unnormalized.

Definition in file fft.hpp.