210 likes | 348 Vues
This document explores the representation and manipulation of polynomials through various methods, including coefficient and point-value representations. It details polynomial addition and multiplication, emphasizing the efficiency of operations using the Fast Fourier Transform (FFT). The evaluation and interpolation of polynomials are examined, highlighting the advantages of using complex roots of unity and Discrete Fourier Transform. Techniques for improving polynomial multiplication efficiency and FFT implementations are discussed in depth, providing a comprehensive understanding for computational applications.
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