Lemma 30.6: (Summation lemma)
For any integer n ≥ 1 and nonnegative integer k not divisible by n,
Proof Equation (A.5) applies to complex values as well as to reals, and so we have
Requiring that k not be divisible by n ensures that the denominator is not 0, since only when k is divisible by n.
of degree-bound n at (that is, at the n complex nth roots of unity).Without loss of generality, we assume that n is a power of 2, since a given degree-bound can always be raised -we can always add new high-order zero coefficients as necessary.We assume that A is given in coefficient form: a = (a0, a1,..., an-1). Let us define the results yk, for k = 0, 1,..., n - 1, by
(30.8) |
The vector y = (y0, y1,..., yn-1) is the Discrete Fourier Transform (DFT) of the coefficient vector a = (a0, a1,..., an-1). We also write y = DFTn(a).
By using a method known as the Fast Fourier Transform (FFT), which takes advantage of the special properties of the complex roots of unity, we can compute DFTn(a)in time Θ(n lg n), as opposed to the Θ(n2) time of the straightforward method.
The FFT method employs a divide-and-conquer strategy, using the even-index and odd-index coefficients of A(x) separately to define the two new polynomials A[0](x) and A[1](x) of degree-bound n/2:
A[0](x) = a0 a2x a4x2 ··· an-2xn/2-1,
A[1](x) = a1 a3x a5x2 ··· an-1xn/2-1.
Note that A[0] contains all the even-index coefficients of A (the binary representation of the index ends in 0) and A[1] contains all the odd-index coefficients (the binary representation of the index ends in 1). It follows that
(30.9) |
so that the problem of evaluating A(x) at reduces to
evaluating the degree-bound n/2 polynomials A[0](x) and A[1](x) at the points
(30.10) |
and then
combining the results according to equation (30.9).