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 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 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 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 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 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 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 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