Our benchmarks, performed on on a variety of platforms, show that FFTW's performance is typically superior to that of other publicly available FFT software, and is even competitive with vendor-tuned codes. In contrast to vendor-tuned codes, however, FFTW's performance is portable: the same program will perform well on most architectures without modification. Hence the name, "FFTW," which stands for the somewhat whimsical title of "Fastest Fourier Transform in the West."
The FFTW package was developed at MIT by Matteo Frigo and Steven G. Johnson.
The latest snapshot 3.2 alpha3 is now available (download it, or see the release notes for what's new). (Subscribe to the fftw-announce mailing list to get release announcements.)
This release supports the Cell Broadband Engine, has rewritten threading support, and has an experimental new MPI interface. See this page for details on the Cell support. See also the 3.2alpha3 manual.
The API of FFTW 3.x is incompatible with that of FFTW 2.x, for reasons of performance and generality (see the FAQ or the manual). We encourage you to upgrade, but we still maintain version 2.1.5 for legacy users. MPI parallel transforms are still only available in 2.1.5.
FFTW received the 1999 J. H. Wilkinson Prize for Numerical Software, which is awarded every four years to the software that "best addresses all phases of the preparation of high quality numerical software."
Wilkinson was a seminal figure in modern numerical analysis as well as a key proponent of the notion of reusable, common libraries for scientific computing, and we are especially honored to receive this award in his memory.
You can read the manual for FFTW 3.1.3 online (also in PDF format); for a quick start, skip to the tutorial. You can also read the manual for FFTW 2.1.5.
We also have man pages for the fftw-wisdom and fftw-wisdom-to-conf utilities.
For general questions about Fourier transforms, see our links to FFT-related resources. People often ask us how to compute a subset of the FFT outputs, so we have posted a short discussion of pruned FFTs.
We benchmarked FFTW against many other FFT programs, in one to three dimensions, on a variety of platforms. You can view the results from this benchmark, or download it to run on your own machine and compiler, at the benchFFT web page.
Four papers about FFTW are available online (and also as a BibTeX file). The most current general paper, and the one that we recommend if you wish to cite FFTW, is:
The paper "A Fast Fourier Transform Compiler," by Matteo Frigo, appears in the Proceedings of the 1999 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI '99), Atlanta, Georgia, May 1999. This paper describes the guts of the FFTW codelet generator. (Also in Postscript. The slides from the talk are also available.) An earlier (and somewhat out of date) paper on FFTW was published in the 1998 ICASSP conference proceedings (vol. 3, pp. 1381-1384) with the title "FFTW: An Adaptive Software Architecture for the FFT" (also in Postscript), by M. Frigo and S. G. Johnson. An even older technical report is "The Fastest Fourier Transform in the West," MIT-LCS-TR-728 (September 1997) (also in Postscript.). You might also be interested in "Cache-Oblivious Algorithms," by M. Frigo, C. E. Leiserson, H. Prokop, and S. Ramachandran (FOCS '99). The slides from the 7/28/98 talk "The Fastest Fourier Transform in the West," by M. Frigo, are also available, along with the slides from a shorter 1/14/98 talk on the same subject by S. G. Johnson.
A paper on a new FFT algorithm that, following James Van Buskirk, improves upon previous records for the arithmetic complexity of the DFT and related transforms, is: Steven G. Johnson and Matteo Frigo, "A modified split-radix FFT with fewer arithmetic operations", IEEE Trans. Signal Processing 55 (1), 111–119 (2007). Two preprints describing the application of the new algorithm to discrete cosine transforms are "Type-II/III DCT/DST algorithms with reduced number of arithmetic operations" (March 2007) and "Type-IV DCT, DST, and MDCT algorithms with reduced numbers of arithmetic operations" (August 2007), by X. Shao and S. G. Johnson.
By popular demand, we now have our very own Y2K Statement.