The radix-two Cooley--Tukey algorithm recursively splits a discrete Fourier transform into transforms of the even-indexed and odd-indexed samples. For a power-of-two length this evaluates the transform in arithmetic operations.
The saving comes from reusing the two shorter discrete Fourier transforms for both halves of the output, through an FFT butterfly. For , each level of the even--odd fast Fourier transform recursion needs work proportional to , and there are levels. This gives the time complexity without changing the discrete Fourier transform being computed.
James W. Cooley and John W. Tukey published An Algorithm for the Machine Calculation of Complex Fourier Series in Mathematics of Computation 19 (1965), pp. 297–301. Their original paper factors a composite length as , derives an operation count , and discusses powers of two and in-place storage. Its opening explicitly builds on earlier algorithms by I. J. Good; the 1965 paper is a landmark computational formulation, rather than the invention of the underlying Fourier analysis. Its positive-exponent convention also illustrates why a Fast Fourier transform's exponent sign must be specified.[ref]
https://janmr.com/files/papers/cooley-tukey.pdf. Cooley and Tukey 1965, original paper, pp. 297–300, equations (1)–(12); scan of the published article
Articles by others on the same topic
The Cooley–Tukey FFT algorithm is an efficient computational method for calculating the discrete Fourier transform (DFT) and its inverse. The DFT converts a sequence of complex numbers into another sequence of complex numbers, representing the frequency domain of the input signal. The direct computation of the DFT using its mathematical definition requires \(O(N^2)\) operations for \(N\) input points, which is computationally expensive for large datasets.