|
numerics
|
Classes | |
| class | FFTPlan |
| Precomputed plan for repeated complex transforms of a fixed size. More... | |
Enumerations | |
| enum class | FFTBackend { seq , simd , stdsimd , fftw } |
| Selects which backend handles an FFT operation. More... | |
Functions | |
| void | fft (const CVector &in, CVector &out, FFTBackend b=default_fft_backend) |
| Forward complex DFT. out must be pre-allocated to in.size(). | |
| void | ifft (const CVector &in, CVector &out, FFTBackend b=default_fft_backend) |
| Inverse complex DFT (unnormalised: result = n * true_inverse). | |
| void | rfft (const Vector &in, CVector &out, FFTBackend b=default_fft_backend) |
| Real-to-complex forward DFT. out must be pre-allocated to n/2+1. | |
| void | irfft (const CVector &in, int n, Vector &out, FFTBackend b=default_fft_backend) |
| Complex-to-real inverse DFT (unnormalised). | |
Variables | |
| constexpr FFTBackend | seq = FFTBackend::seq |
| constexpr FFTBackend | fftw = FFTBackend::fftw |
| constexpr FFTBackend | fft_simd = FFTBackend::simd |
| constexpr FFTBackend | fft_stdsimd = FFTBackend::stdsimd |
| constexpr bool | has_fftw |
| True when FFTW3 was found at configure time. | |
| constexpr bool | has_fft_simd |
| True when handwritten AVX2 or NEON backend is available. | |
| constexpr bool | has_fft_stdsimd |
| True when std::experimental::simd is available. | |
| constexpr FFTBackend | default_fft_backend |
| Automatically selected at configure time: fftw > simd > seq. | |
|
strong |
Selects which backend handles an FFT operation.
| void num::spectral::fft | ( | const CVector & | in, |
| CVector & | out, | ||
| FFTBackend | b = default_fft_backend |
||
| ) |
Forward complex DFT. out must be pre-allocated to in.size().
Definition at line 15 of file fft.cpp.
References backends::opt::fft(), backends::seq::fft(), fftw, num::ipow(), simd, and stdsimd.
| void num::spectral::ifft | ( | const CVector & | in, |
| CVector & | out, | ||
| FFTBackend | b = default_fft_backend |
||
| ) |
Inverse complex DFT (unnormalised: result = n * true_inverse).
Definition at line 31 of file fft.cpp.
References fftw, backends::opt::ifft(), backends::seq::ifft(), num::ipow(), simd, and stdsimd.
| void num::spectral::irfft | ( | const CVector & | in, |
| int | n, | ||
| Vector & | out, | ||
| FFTBackend | b = default_fft_backend |
||
| ) |
Complex-to-real inverse DFT (unnormalised).
| n | Length of the real output (must satisfy in.size() == n/2+1). |
Definition at line 61 of file fft.cpp.
References fftw, num::ipow(), backends::opt::irfft(), backends::seq::irfft(), simd, and stdsimd.
| void num::spectral::rfft | ( | const Vector & | in, |
| CVector & | out, | ||
| FFTBackend | b = default_fft_backend |
||
| ) |
Real-to-complex forward DFT. out must be pre-allocated to n/2+1.
Definition at line 46 of file fft.cpp.
References fftw, num::ipow(), backends::opt::rfft(), backends::seq::rfft(), simd, and stdsimd.
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |