Overview
In Chapter 22 we discuss the Discrete Fourier Transform (DFT) of a polynomial and the
celebrated Fast Fourier Transform (FFT) for computing the DFT in time O(nlogn). We
begin the chapter by defining and motivating the DFT of a polynomial P(x) with respect to
a primitive root of unity ω, denoted by DFTω(P(x)). This is followed by a discussion the
FFT algorithm for computing DFTω(P(x)) using the divide-and-conquer strategy. We then
show how the FFT can be used to multiply two polynomials whose product has size at
most n in time O(nlogn)) by transforming the problem to one of simply multiplying n
complex numbers. We finish the chapter with a discussion of how the FFT can be
implemented on the PRAM and on the Butterfly Interconnection Network.
Chapter Objectives
After completing the chapter the student will know:
• The definition of a primitive root of unity ω
• The definition of the Discrete Fourier Transform DFTω(P(x))
• The design of the FFT algorithm
Instructor Notes
When implementing the FFT on a computer, round-off errors invariably occur, since irrational
numbers are involved. To see how to deal with this issue, we refer the instructor Knuth, The
Art of Computer Programming (Vol. 2 Seminumerical Algorithms), 2nd edition, Addison
Wesley Publishing Co., Reading Mass., 1981.