introduction to algorithms polynomials and the fft my t. thai @ uf

21
Introduction to Algorithms Polynomials and the FFT My T. Thai @ UF

Upload: ross-perry

Post on 21-Dec-2015

227 views

Category:

Documents


4 download

TRANSCRIPT

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

[email protected]

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

[email protected]

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

Properties of unity’s Complex roots

Proof:

My T. [email protected]

9

Halving lemma

Proof:

Cancellation lemma:

My T. [email protected]

10

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

Fast Fourier Transform

Time:My T. Thai

[email protected]

14

Inversion of Vandermonde matrix

Proof:

My T. [email protected]

15

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

FFT and Polynomial mutiplication

My T. [email protected]

17

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

An iterative FFT implementation

My T. [email protected]

20

Time:

A parallel FFT circuit

My T. [email protected]

21