<P> To illustrate the savings of an FFT, consider the count of complex multiplications and additions . Evaluating the DFT's sums directly involves N complex multiplications and N (N − 1) complex additions, of which O (N) operations can be saved by eliminating trivial operations such as multiplications by 1 . The radix - 2 Cooley--Tukey algorithm, for N a power of 2, can compute the same result with only (N / 2) log (N) complex multiplications (again, ignoring simplifications of multiplications by 1 and similar) and N log (N) complex additions . In practice, actual performance on modern computers is usually dominated by factors other than the speed of arithmetic operations and the analysis is a complicated subject (see, e.g., Frigo & Johnson, 2005), but the overall improvement from O (N) to O (N log N) remains . </P> <P> By far the most commonly used FFT is the Cooley--Tukey algorithm . This is a divide and conquer algorithm that recursively breaks down a DFT of any composite size N = N N into many smaller DFTs of sizes N and N, along with O (N) multiplications by complex roots of unity traditionally called twiddle factors (after Gentleman and Sande, 1966). </P> <P> This method (and the general idea of an FFT) was popularized by a publication of J.W. Cooley and J.W. Tukey in 1965, but it was later discovered that those two authors had independently re-invented an algorithm known to Carl Friedrich Gauss around 1805 (and subsequently rediscovered several times in limited forms). </P> <P> The best known use of the Cooley--Tukey algorithm is to divide the transform into two pieces of size N / 2 at each step, and is therefore limited to power - of - two sizes, but any factorization can be used in general (as was known to both Gauss and Cooley / Tukey). These are called the radix - 2 and mixed - radix cases, respectively (and other variants such as the split - radix FFT have their own names as well). Although the basic idea is recursive, most traditional implementations rearrange the algorithm to avoid explicit recursion . Also, because the Cooley--Tukey algorithm breaks the DFT into smaller DFTs, it can be combined arbitrarily with any other algorithm for the DFT, such as those described below . </P>

Number of real multiplications and additions in fft