Chapter 23 Fast Fourier Transform
CS 573: Algorithms, Fall 2013 November 7, 2013
23.1 Introduction
23.1.0.1 Multiplying polynomials quickly Definition 23.1.1. polynomial p(x) of degree n:a function p(x) = ∑n
j=0 ajxj = a0 + x(a1 + x(a2 +
. . . + xan)). x0: p(x0) can be computed in O(n) time. “dual” (and equivalent) representation... Theorem 23.1.2. For any set
{
(x0, y0), (x1, y1), . . . , (xn−1, yn−1)
}
- f n point-value pairs such that
all the xk values are distinct, there is a unique polynomial p(x) of degree n − 1, such that yk = p(xk), for k = 0, . . . , n − 1. 23.1.0.2 Polynomial via point-value
{
(x0, y0), (x1, y1), (x2, y2)
}
: polynomial through points: p(x) = y0 ✘✘✘✘
✘ ❳❳❳❳ ❳
(x − x0)(x − x1)(x − x2)
❳❳❳❳❳
(x0 − x0)(x0 − x1)(x0 − x2) + y1 (x − x0)✘✘✘✘
✘ ❳❳❳❳ ❳
(x − x1)(x − x2) (x1 − x0)❳❳❳❳❳ (x1 − x1)(x1 − x2) + y2 (x − x0)(x − x1)✘✘✘✘
✘ ❳❳❳❳ ❳
(x − x2) (x2 − x0)(x2 − x1)❳❳❳❳❳ (x2 − x2) p(x) = y0 (x − x1)(x − x2) (x0 − x1)(x0 − x2) + y1 (x − x0)(x − x2) (x1 − x0)(x1 − x2) + y2 (x − x0)(x − x1) (x2 − x0)(x2 − x1) 1