# Introduction

Fast Fourier transforms (FFTs) belong to the '10 algorithms with the greatest influence on the development and practice of science and engineering in the 20th century'. The classic algorithm computes the discrete Fourier transform

for and given complex coefficients . Using a divide and conquer approach, the number of floating point operations is reduced from for a straightforward computation to only . In conjunction with publicly available efficient implementations the fast Fourier transform has become of great importance in scientific computing.

However, two shortcomings of traditional schemes are the need for equispaced sampling and the restriction to the system of complex exponential functions. The NFFT is a C subroutine library for computing the nonequispaced discrete Fourier transform (NDFT) and its generalisations in one or more dimensions, of arbitrary input size, and of complex data.

More precisely, we collect the possible frequencies in the multi-index set

where is the multibandlimit, i.e., . For a finite number of given Fourier coefficients , , we consider the fast evaluation of the trigonometric polynomial

at given nonequispaced nodes , , from the -dimensional torus as well as the adjoint problem, the fast evaluation of sums of the form

## Generalisations

The generalisations of the NFFT include

- NNFFT - nonequispaced in time and frequency fast Fourier transform,
- NFCT/NFST - nonequispaced fast (co)sine transform,
- NSFFT - nonequispaced sparse fast Fourier transform,
- FPT - fast polynomial transform,
- NFSFT - nonequispaced fast spherical Fourier transform.

Furthermore, we consider the inversion of the above transforms by iterative methods.

# FAQ - Frequently Asked Questions

see https://www.tu-chemnitz.de/~potts/nfft/faq.php