fftw3

DO NOT CHECK OUT THESE FILES FROM GITHUB UNLESS YOU KNOW WHAT YOU ARE DOING. (See below.)

GPL-2.0 License

Stars
2.7K
Committers
38

FFTW is a free collection of fast C routines for computing the Discrete Fourier Transform in one or more dimensions. It includes complex, real, symmetric, and parallel transforms, and can handle arbitrary array sizes efficiently. FFTW is typically faster than other publically-available FFT implementations, and is even competitive with vendor-tuned libraries. (See our web page http://fftw.org/ for extensive benchmarks.) To achieve this performance, FFTW uses novel code-generation and runtime self-optimization techniques (along with many other tricks).

The doc/ directory contains the manual in texinfo, PDF, info, and HTML formats. Frequently asked questions and answers can be found in the doc/FAQ/ directory in ASCII and HTML.

For a quick introduction to calling FFTW, see the "Tutorial" section of the manual.

INSTALLATION

INSTALLATION FROM AN OFFICIAL RELEASE:

Please read chapter 10 "Installation and Customization" of the manual. In short:

 ./configure
 make
 make install

INSTALLATION FROM THE GIT REPOSITORY:

First, install these programs:

ocaml, ocamlbuild, autoconf, automake, indent, and libtool.

You also need the ocaml Num library, which was standard in Ocaml but was removed without warning in OCaml 4.06.0 (3 Nov 2017). On Fedora 30, try installing the ocaml-num-devel package.

Then, execute

sh bootstrap.sh
make

The bootstrap.sh script runs configure directly, but if you need to re-run configure, you must pass the --enable-maintainer-mode flag:

./configure --enable-maintainer-mode [OTHER CONFIGURE FLAGS]

Alternatively, you can run

sh mkdist.sh

which will run the entire bootstrapping process and generate .tar.gz files similar to those for official releases.

CONTACTS

FFTW was written by Matteo Frigo and Steven G. Johnson. You can contact them at [email protected]. The latest version of FFTW, benchmarks, links, and other information can be found at the FFTW home page (http://www.fftw.org). You can also sign up to the fftw-announce Google group to receive (infrequent) updates and information about new releases.