Download presentation
1
Introduction to Algorithms
Polynomials and the FFT My T. UF
2
Polynomials A polynomial in the variable x: Polynomial addition
Polynomial multiplication where My T. Thai
3
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. Thai
4
Representing polynomials
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 Proof: Da = y |D| = => a = D-1y Vandermonde matrix My T. Thai
5
Operations in point-value representation
B : Addition: C: Multiplication: Extend A, B to 2n points: Product: My T. Thai
6
Fast multiplication of polynomials in coefficient form
Evaluation: coefficient representation point-value representation Interpolation: point-value representation coefficient form of a polynomial My T. Thai
7
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. Thai
8
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. Thai
9
Properties of unity’s Complex roots
Proof: My T. Thai
10
Halving lemma Proof: Cancellation lemma: My T. Thai
11
Summation lemma Proof: Note: k is not divisible by n only when k
is divisible by n My T. Thai
12
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. Thai
13
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. Thai
14
Fast Fourier Transform
Time: My T. Thai
15
Inversion of Vandermonde matrix
Proof: My T. Thai
16
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. Thai
17
FFT and Polynomial mutiplication
My T. Thai
18
Efficient FFT implementations
Line 10 – 12: change the loop to compute only once storing it in t ( Butterfly operation) Butterfly operation My T. Thai
19
Structure of RECURSIVE-FFT
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 My T. Thai
20
An iterative FFT implementation
Time: My T. Thai
21
A parallel FFT circuit My T. Thai
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.