Introduction to Algorithms Polynomials and the FFT My T. Thai @ UF.
-
Upload
ross-perry -
Category
Documents
-
view
231 -
download
4
Transcript of Introduction to Algorithms Polynomials and the FFT My T. Thai @ UF.
Polynomials
A polynomial in the variable x:
Polynomial addition
Polynomial multiplication
whereMy T. Thai
2
Representing polynomials
A coefficient representation of a polynomial d of degree bound n is a vector of coefficients
Horner’s rule to compute A(x0)
Time: O(n)
Given a = , b = Sum: c = a + b, takes O(n) time Product: c = (convolution of a and b), takes
O(n2) time My T. [email protected]
3
A point-value representation of a polynomial A(x) of degree-bound n is a set of n point-value pairs d All of the xk are distinct
Da = y
|D| =
=> a = D-1y
Representing polynomials
My T. [email protected]
4
Proof:
Vandermondematrix
Operations in point-value representation
A :
B : Addition:
C: Multiplication:
Extend A, B to 2n points:
Product: My T. Thai
5
Fast multiplication of polynomials in coefficient form
Evaluation: coefficient representation point-value representation
Interpolation: point-value representation coefficient form of a polynomial
My T. [email protected]
6
Compute evaluation and interpolation
Evaluation: using Horner method takes O(n2) => not good
Interpolation: computing inversion of Vandermonde matrix takes O(n3) time => not good
How to complete evaluation and interpolation in O(n log n) time? Choose evaluation points: complex roots of unity Use Discrete Fourier Transform for evaluation Use inverse Discrete Fourier Transform for
interpolation
My T. [email protected]
7
Complex roots of unity
A complex nth root of unity is a complex number such that
There are exactly n complex nth roots of unity
Principal nth root of unity All other complex nth roots of
unity are powers of
My T. [email protected]
8
Summation lemma
Proof:
My T. [email protected]
11
Note:k is not divisible by n only when kis divisible by n
Discrete Fourier Transform
Given:
The values of A at evaluation points
Vector is discrete Fourier transform (DFT) of the coefficient vector d . Denote
My T. [email protected]
12
Fast Fourier Transform
Divide A into two polynomials based on the even-indexed and odd-indexed coefficients:
Combine: Evaluation points of A[0] and A[1]
are actually the n/2th roots of unity
My T. [email protected]
13
Interpolation at the complex roots of unity
Compute by modifying FFT algorithm Switch the roles of a and y Replace Divide each element by n
My T. [email protected]
16
Efficient FFT implementations
My T. [email protected]
18
Line 10 – 12: change the loop to compute only once storing it in t ( Butterfly operation)
Butterfly operation
Structure of RECURSIVE-FFT
My T. [email protected]
19
Each RECURSIVE-FFT invocation makes two recursive calls
Arrange the elements of a into the order in which they appear in the leaves ( take log n for each element)
Compute bottom up