FFTs
FFTs, or fast Fourier transforms, are a family of algorithms for computing the discrete Fourier transform (DFT) and its inverse efficiently. The DFT transforms a sequence of complex numbers into its frequency-domain representation. The straightforward DFT requires O(N^2) operations; FFTs reduce this to O(N log N), making practical analysis and processing of signals feasible for large N.
Most FFTs are divide-and-conquer algorithms. The canonical Cooley–Tukey FFT splits an N-point DFT into two N/2-point
Implementation notes: many FFTs are in-place and require a bit-reversal permutation of outputs. Real-input FFTs exploit
Applications: spectral analysis, digital filtering, convolution via the convolution theorem, and efficient multiplication of polynomials or