Tensorium
|
Fast Fourier Transform (FFT) implementation using Cooley–Tukey algorithm. More...
#include <Spectral.hpp>
Public Types | |
using | Tensor2D = tensorium::Tensor<T, 2> |
using | VectorT = tensorium::Vector<T> |
using | C = std::complex<T> |
using | CVectorT = tensorium::Vector<C> |
Static Public Member Functions | |
static void | forward (CVectorT &a) |
Perform forward FFT (in-place) | |
static void | backward (CVectorT &a) |
Perform inverse FFT (in-place) | |
Static Private Member Functions | |
static void | transform_impl (CVectorT &a, bool inverse) |
Internal FFT implementation (shared by forward/backward) | |
static void | bit_reverse (CVectorT &a) |
Bit-reversal permutation step. | |
Fast Fourier Transform (FFT) implementation using Cooley–Tukey algorithm.
Performs in-place FFT or inverse FFT on complex-valued vectors whose size is a power of 2.
T | Underlying scalar type (e.g., float or double) |
using tensorium::SpectralFFT< T >::CVectorT = tensorium::Vector<C> |
using tensorium::SpectralFFT< T >::Tensor2D = tensorium::Tensor<T, 2> |
using tensorium::SpectralFFT< T >::VectorT = tensorium::Vector<T> |
|
inlinestatic |
Perform inverse FFT (in-place)
a | Input/output complex vector (must have power-of-two size) |
References tensorium::SpectralFFT< T >::transform_impl().
Referenced by tensorium::backwardFFP(), and tensorium::backwardFFT().
|
inlinestaticprivate |
Bit-reversal permutation step.
a | Vector to reorder |
References tensorium::Vector< K >::size().
Referenced by tensorium::SpectralFFT< T >::transform_impl().
Perform forward FFT (in-place)
a | Input/output complex vector (must have power-of-two size) |
References tensorium::SpectralFFT< T >::transform_impl().
Referenced by tensorium::forwardFFT().
|
inlinestaticprivate |
Internal FFT implementation (shared by forward/backward)
a | Vector to transform |
inverse | Whether to perform inverse FFT |
References tensorium::SpectralFFT< T >::bit_reverse(), pi, and tensorium::Vector< K >::size().
Referenced by tensorium::SpectralFFT< T >::backward(), and tensorium::SpectralFFT< T >::forward().