Fourier transformations
ILNumerics provides interfaces to forward and backward fourier transformations, for real and complex floating point data, in single and double precision, in 1...n dimensions. The interface is similar to the one known from popular mathematical languages like Matlab.
FFT can be computed for any size and dimension number. However, dimension lengths of small prime factors (2,3,5,7,...) are computed most efficiently. This - of course - includes 2n data lenghts.
Interfaces to FFT
The recommended way for fourier transforms is to utilize the static functions from the ILMath class. They provide a convenient interface, similar to popular mathematical languages. These functions automatically profit from the high performance memory management of ILNumerics and are described in the next section.
ILNumerics relies on the Intel MKL® for FFT computations by default. However, bindings to several other libraries exist, namely AMD ACML and FFTW3. On a lower level, the IILFFT interface is provided, which allows the implementation of custom FFT modules. Which module is used is configurable at runtime. Details are found in the FFT Modules article.