Fourier transformations
ILNumerics.Net provides interfaces to common FFT functionalities. This includes forward and backward transformations for floating point (single & double) data in 1...n dimensions. The interface reminds one (and in fact is 100% compatible) to the one known from major mathematical programs like Matlab.
FFT can be computed for any size and dimension number. However, general considerations hold for the length of FFT: dimension lengths beeing factors of small primes (2,3,5,7) are computed most efficiently. This - of course - includes 2n lenghts.
Compatible modules
The transformations are computed by use of native libraries. Which native module is utilized, depends on your processor version. The following modules are available:
- Intel MKL - FFT functions included into the MKL are utilized per default. The MKL is included into the runtime distribution as well as in the source distribution. Those functions will work on all common processors.
- AMD ACML - AMDs performance library provides FFT functions as well. You may download those binaries from our download page, in order to speed FFT functions up on AMD processors.
- FFTW - precompiled binaries (Win32) are provided on our download page.
Due to licensing issues, only the MKL is included into the general ILNumerics.Net distribution. FFTW and ACML are downloadable as seperate packages from the vendor homepage or from our download page. All packages listed above come with free licenses. ILNumerics.Net is well prepared for all packages and will use them automatically once they are found. You will only have to make sure, their licenses match the one you are using.
Interfaces to FFT
Fourier transformations can be computed in two ways:
- Using static fft functions from ILMath, a topic which is handled in the next subchapter and
- by using the IILFFT interface, which is described here.
In order to configure, which native library is used for serving the IILFFT interface, read the details provided on the end of this section in the chapter FFT modules.