Log in-->
Login

Building FFTW

FFTW stands for Fastest Fourier Transform in the
West
. 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).

Steps to building
To build FFTW, you will need to download the source, build it with the
suggested flags, and install it. These steps, and any known
limitations, are described in the sections below.


Downloading FFTW
You can obtain the code from the FFTW website. We have
tested with both the 2.1.5 and the 3.0.1 releases.


Building FFTW
We recommend that you set the compiler flags to -O3
-OPT:Ofast
for optimal performance.
./configure CC="pathcc" F77="pathf90" CFLAGS="-O2 -OPT:Ofast"
make

This will build the single-threaded complex and real transform libraries
along with test programs. By default, FFTW is built using double
precision numbers, but can be configured to use single precision using --enable-single. The build will take about an hour,
depending on your machine.

You might want to verify the correctness of the built libraries using
the self-tests included in FFTW. To run these tests, use this command:

cd tests                                                 
make bigcheck                                            

This test typically takes about half an hour to complete.


Installing FFTW
The make install command installs the fftw and rfftw libraries in standard places, and typically requires
root privileges. You can also specify a different install directory by
using the --prefix flag with configure.

If you have problems during configuration or compilation, you may want
to run make distclean before trying again; this ensures that
you don't have any stale files left over from previous compilation
attempts.


Known limitations
There are no known limitations.

WWe recommend you record what steps you took, along with their output,
in case of problems. You can include this in your email to support.
Here is an example of changing a make command to record the output in a
text file:

make foo 2>&1 | tee make-foo-log.txt

If you have any comments or suggestions about additions to these
pages, please contact support@pathscale.com.