As shown in the last subsection, kernel density estimates can be expressed as a submatrix of a certain convolution. The fast Fourier transform (FFT) is a computationally effective method for computing such convolutions. For a reference on this material, see Press et al. (1988).
The discrete Fourier transform of a complex vector is the vector
, where
and i is the square root of –1. The vector can be recovered from
by applying the inverse discrete Fourier transform formula
Discrete Fourier transforms and their inverses can be computed quickly using the FFT algorithm, especially when N is highly composite; that is, it can be decomposed into many factors, such as a power of 2. By the discrete convolution theorem, the convolution of two vectors is the inverse Fourier transform of the element-by-element product of their Fourier transforms.
This, however, requires certain periodicity assumptions, which explains why the vectors and
require zero-padding. This is to avoid wrap-around effects (see Press et al.; 1988, pp. 410–411). The vector
is actually mirror-imaged so that the convolution of
and
will be the vector of binned estimates. Thus, if S denotes the inverse Fourier transform of the element-by-element product of the Fourier transforms of
and
, then the first g elements of S are the estimates.
The bivariate Fourier transform of an complex matrix having
entry equal to
is the
matrix with
entry given by
and the formula of the inverse is
The same discrete convolution theorem applies, and zero-padding is needed for matrices and
. In the case of
, the matrix is mirror-imaged twice. Thus, if S denotes the inverse Fourier transform of the element-by-element product of the Fourier transforms of
and
, then the upper-left
corner of S contains the estimates.