210 likes | 329 Views
Introduction to Algorithms. Polynomials and the FFT My T. Thai @ UF. Polynomials. A polynomial in the variable x : Polynomial addition Polynomial multiplication where. Representing polynomials.
E N D
Introduction to Algorithms Polynomials and the FFT My T. Thai @ UF
Polynomials • A polynomial in the variable x: • Polynomial addition • Polynomial multiplication • where My T. Thai mythai@cise.ufl.edu
Representing polynomials • Acoefficient 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 mythai@cise.ufl.edu
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 mythai@cise.ufl.edu
Operations in point-value representation A : B : • Addition: C: • Multiplication: • Extend A, B to 2n points: • Product: My T. Thai mythai@cise.ufl.edu
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 mythai@cise.ufl.edu
Compute evaluation and interpolation • Evaluation: using Hornermethod 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 mythai@cise.ufl.edu
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 mythai@cise.ufl.edu
Properties of unity’s Complex roots Proof: My T. Thai mythai@cise.ufl.edu
Halving lemma • Proof: • Cancellation lemma: My T. Thai mythai@cise.ufl.edu
Summation lemma Proof: • Note: • k is not divisible by n • only when k • is divisible by n My T. Thai mythai@cise.ufl.edu
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 mythai@cise.ufl.edu
Fast Fourier Transform • DivideA 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 mythai@cise.ufl.edu
Fast Fourier Transform Time: My T. Thai mythai@cise.ufl.edu
Inversion of Vandermonde matrix Proof: My T. Thai mythai@cise.ufl.edu
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 mythai@cise.ufl.edu
FFT and Polynomial mutiplication My T. Thai mythai@cise.ufl.edu
Efficient FFT implementations • Line 10 – 12: change the loop to compute only once storing it in t ( Butterfly operation) Butterfly operation My T. Thai mythai@cise.ufl.edu
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 mythai@cise.ufl.edu
An iterative FFT implementation Time: My T. Thai mythai@cise.ufl.edu
A parallel FFT circuit My T. Thai mythai@cise.ufl.edu