Fast Fourier transforms (FFTs) are one of the “10 algorithms with the greatest influence on the development and practice of science and engineering in the 20th century” . This is because the FFT is applied in almost every area of modern science, including fields as diverse as acoustics, astronomy, computational biology, fluid dynamics, medicine, physics, and digital signal processing. For example, FFTs are the basic algorithm for compression algorithms used in MP3 data generation, for digital television and radio encoding, and for digital spectrum analysis. Therefore, it is generally accepted that “the fast Fourier transform is one of the truly great computational developments of this century. It has changed the face of science and engineering so much … that it is not an exaggeration to say that life as we know it would be very different without the FFT” .
The classical Cooley-Tukey algorithm  computes the discrete Fourier transform for N, given complex coefficients in N log N floating point operations instead of N2 floating point operations. It was later discovered that this algorithm was known to Carl Friedrich Gauss as early as 1805, and was subsequently rediscovered several times. Currently, the FFTW  package is the FFT library of choice for most applications; it is available as free software.
A severe shortcoming of traditional schemes in recent applications is that they require equispaced sampling. During the last two decades, that problem has attracted much attention. The nonequispaced fast Fourier transform (NFFT)  overcomes this disadvantage while keeping the number of floating point operations at N log N. NFFTs are based on the concept of trading exactness for efficiency. Instead of precise computations (up to machine precision for actual implementations), the proposed methods guarantee a user-specified target accuracy.
New applications that utilize the NFFT continue to arise, such as 3D imaging. Several research groups have applied nonequidistant FFTs to applications in geoscience, crystallography, or computational biology for the computation of protein interactions, or for reconstruction in electron microscopy. In each of these applications, the NFFT is the computationally dominant task; one has to deal with different requirements with respect to the target accuracy, the usage of memory, and the actual computation time .
2. Background of the NFFT
An early review of several algorithms [7,8] has been given by Ware . Steidl  obtained a unified approach to fast algorithms for the NFFT. The main idea is the use of a window function that is well localized in space, as well as in the frequency domain. Then, one can use an approximation obtained by translations of the scaled window function to estimate the approximation error . It became clear that this approach was related to the gridding algorithm, which was known years earlier in the context of image processing and astrophysics. A widely used implementation is now available as part of the NFFT package , and is based on the FFTW . If you wish to cite NFFT, the most current general paper is by Keiner et al. .
Some important applications of the NFFT follow.
The nonequispaced or irregular sampling problem is concerned with recovery of a band-limited signal from a sequence of samples that might be taken in an irregular way. From the linear algebra viewpoint, one has to “invert” the NFFT. Hence, one has to solve a least squares or an interpolation problem. An efficient scheme for the first problem is known as the ACT method (adaptive weights method, conjugate gradient acceleration, and Toeplitz matrices) , suggested by Feichtinger, Groechenig, and Strohmer. Kunis has developed an efficient scheme for the second problem .
Another application is the so-called nonequispaced convolution. For lattices, the discrete convolution and its fast computation are typically realized by fast Fourier transforms exploiting the basic property ei(y−x) = e2 iy e-2ix. Along these lines, the convolution at nonequispaced knots should be computed by Fourier methods as well, more precisely by the NFFT. This new method includes the fast Gauss transform or the convolution with kernels of the form 1/x, which have been often realized with the fast multipole method (FMM). In summary, the advantage of the NFFT, which has almost the same arithmetic complexity as the FMM, is its simple structure, which resembles ideas from the fast convolution by FFTs and allows an immediate incorporation of various kernels .
Further algorithms based on the NFFT
In recent years, it has become clear that the NFFT is a building block for more algorithms (see Figure 1). One important generalization replaces the system of complex exponentials with other systems of functions. In particular, the spherical analogue of the usual Fourier basis functions, the standard orthonormal spherical harmonics, plays a fundamental role. Therefore, the development of a fast spherical Fourier transform by Driscoll and Healy  was a breakthrough. A variety of authors have improved this algorithm, and it has been shown that one can compute with spherical harmonics efficiently. In order to overcome the main drawback that all previous spherical Fourier transforms had in relying on a specific grid, a combination with the NFFT has been developed. The nonequispaced fast spherical Fourier transform and its inverse for solving the irregular sampling problem on the sphere are part of the NFFT package . There are further algorithms based on the NFFT, such as the curvelet transform, the ridgelet transform, the shearlet transform, and the polar FFT, with a wide range of applications in image processing (see the related Web pages section).
|Figure 1: High-level applications use building blocks from several lower layers.
4. Software Packages
Currently, the NFFT package  is the most widespread library for generalized FFTs. The tremendous computing power of next-generation supercomputers like Blue Gene/Q mainly arises from massive parallelism. Therefore, one has to consider appropriate algorithmic reformulations of the NFFT, that is, the NFFT must be split into multiple subproblems that can be computed concurrently. Such parallel NFFT algorithms have been recently developed and implemented for shared memory architectures , distributed memory architectures [16,17], and graphic cards . With the help of these parallel NFFT modules, the porting of existing serial applications to parallel platforms becomes straightforward. For high-dimensional problems, the hyperbolic cross FFT  was developed.
Created: May 08 2008
Last updated: Apr 09 2013
Dongarra, J., Sullivan, F. Introduction to the top 10 algorithms. Computing in Science & Engineering. 2, 1 (2000), 22-23.
van Loan, C. Computational frameworks for the fast Fourier transform. SIAM, Philadelphia, PA, 1987.
Cooley, J.W., Tukey, J.W. An algorithm for machine calculation of complex Fourier series. Math. Comp. 19 (1965), 297-301.
Frigo, M., Johnson, S.G. FFTW C subroutine library.
Keiner, J., Kunis, S., Potts, D. NFFT C subroutine library (2006).
Kunis, S. Nonequispaced FFT - Generalisation and Inversion. PhD thesis, Institut für Mathematik, Universität zu Lübeck (2006).
Beylkin, G. On the fast Fourier transform of functions with singularities. Appl. Comput. Harmon. Analysis 2 (1995), 363-381.
Dutt, A., Rokhlin, V. Fast Fourier transforms for nonequispaced data. SIAM J. Sci. Stat. Comput. 14 (1993), 1368-1393.
Ware, A.F. Fast approximate Fourier transforms for irregularly spaced data. SIAM Rev. 40 (1998), 838-856.
Steidl, G. A note on fast Fourier transforms for nonequispaced grids. Adv. Comput. Math. 9 (1998), 337-353.
Potts, D., Steidl, G., Tasche, M. Fast Fourier transforms for nonequispaced data: a tutorial. In Modern sampling theory: Mathematics and Applications, Birkhäuser, Boston (2001), 247-270.
Keiner, J., Kunis, S., Potts, D. Using NFFT 3 -- a software library for various nonequispaced fast Fourier transforms. ACM Trans. Math. Software. 36, 4 (2009) Art. No. 19.
Feichtinger, H.G., Groechenig, K., Strohmer, T. Efficient numerical methods in nonuniform sampling theory. Numer. Math. 69 (1995), 423-440.
Driscoll, J.R., Healy, D. Computing Fourier transforms and convolutions on the 2-sphere. Adv. in Appl. Math. 15 (1994), 202-250.
Volkmer, T. OpenMP parallelization in the NFFT software library. TU Chemnitz, Preprint 7 (2012).
Pippig, M. PNFFT, parallel nonequispaced FFT subroutine library (2011).
Pippig, M., Potts, D. Parallel three-dimensional nonequispaced fast Fourier transforms and their application to particle simulation. TU Chemnitz, Preprint 8 (2012).
Kunis, S., Kunis, S. The nonequispaced FFT on graphics processing units. PAMM: Proc. Appl. Math. Mech. 12 (2013).
Döhler, M., Kämmerer, L., Kunis, S., Potts, D. NHCFFT, MATLAB toolbox for the nonequispaced hyperbolic cross FFT.