FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) in one or more dimensions, of arbitrary input size, and of both real and complex data (as well as of even/odd data, i.e. the discrete cosine/sine transforms or DCT/DST). For
To use FFTW 2.1.5, load the module fftw/2.1.5.
In FFTW 2.1.5, the single and double precision routine names are not unique. Consequently, users must explicitly specify in their codes the include files to use and also specify the libraries to link against. In the default configuration of FFTW 2.1.5, the libraries (and include files) are named the same across the available precisions. Cray's installation of FFTW 2.1.5 is configured with --enable-type-prefix so that the include and library file names would be distinct.
Single precision library and include files use s in their names.
Double precision library and include files use d in their names.
There is no concept of system wide "wisdom" as there is in FFTW 3.1.1.
At compile time, you must specify the include files. The files are:
Table 1. Include Files
| FFT Type | Precision | Include file name |
|---|---|---|
| complex | single | sfftw.h |
| real | single | srfftw.h |
| complex | double | dfftw.h |
| real | double | drfftw.h |
| complex | single | sfftw_mpi.h |
| real | single | srfftw_mpi.h |
| complex | double | dfftw_mpi.h |
| real | double | drfftw_mpi.h |
Note: For Fortran, there is only one fftw_f77.i include file. It works independently of the prevailing default precision.
At link time, the user must specify which libraries to link against. The libraries are shown in Table 2.
Table 2. Libraries
| FFT Type | Precision | Library Name | Link With |
|---|---|---|---|
| complex | single | libsfftw.a | -lsfftw |
| real | single | libsrfftw.a | -lsrfftw |
| complex | double | libdfftw.a | -ldfftw |
| real | double | libdrfftw.a | -ldrfftw |
| complex | single | libsfftw_mpi.a | -lsfftw_mpi |
| real | single | libsrfftw_mpi.a | -lsrfftw_mpi |
| complex | double | libdfftw_mpi.a | -ldfftw_mpi |
| real | double | libdrfftw_mpi.a | -ldrfftw_mpi |