Lecture 4: FFTs, Convolutions and Multiplying Polynomials
August 29th, 2007The content of this lecture is drawn from multiple sources, and so I’m providing a handout here.
WARNING: this is a nontrivial example of divide-and-conquer and may require thought-like substances.
Update: The recursive method of splitting a polynomial into even and odd parts works for any set of evaluation points. So why do we need to use the complex roots of unity ? The answer is in the Halving Lemma. It allows us to reduce the number of evaluations needed by half at each recursive step. If this were not the case, we’d be evaluating the same number of points at each recursive level, and if we solve the resulting recurrence, we obtain an algorithm that needs $latex n^2$ time to run. I’ve added a small section explaining this at the end of Section 4.4.3 in the notes.
August 31st, 2007 at 5:17 pm
In class, we didn’t get chance to go through a example of polynomial multiplication using FFT. Could you post one?
September 2nd, 2007 at 10:46 pm
I’ll work one out: it’s long and painful :).
September 3rd, 2007 at 2:01 pm
Actually I changed my mind. I’ll give one such question as an assignment, with two relatively simple polynomials.