5 questions to test your understanding
The naive algorithm for multiplying two degree-n polynomials takes O(n^2) time. Why does the FFT-based approach achieve O(n log n)?
The Cooley-Tukey FFT algorithm splits a polynomial A(x) = A_even(x^2) + x * A_odd(x^2) and recursively evaluates at the n-th roots of unity. What property of roots of unity makes this work?
The inverse FFT recovers polynomial coefficients from point values. It is computed by running the FFT with omega^(-1) instead of omega, then dividing by n.
The FFT requires the input length to be a power of 2.
Explain how the FFT connects to integer multiplication via the Schonhage-Strassen algorithm.