What is the Discrete Fourier Transform (DFT), and why does naive matrix-vector evaluation require Θ(N²) operations?
The Discrete Fourier Transform converts a discrete complex sequence x_n of length N into its orthogonal frequency components X_k via the summation X_k = Σ_{n=0}^{N-1} x_n W_N^{kn}, where W_N = exp(-2πi/N) is the primitive N-th root of unity. In matrix notation, this maps to multiplying an N-dimensional vector by a dense N×N Vandermonde matrix F_N whose entries are (F_N)_{k,n} = W_N^{kn}. Because every entry in F_N is non-zero, computing all N output coefficients directly requires N independent inner products, each performing N complex multiplications and N-1 additions, totaling exactly N² complex multiplications and N(N-1) complex additions, establishing a strict Θ(N²) quadratic computational complexity.