next up previous
Next: Primitive roots of unity Up: Foundations of Computer Algebra: Fast Previous: Foundations of Computer Algebra: Fast

Fast Polynomial Multiplication based on the Discrete Fourier Transform

In the whole section we consider a commutative ring R mathend000# with units. Let us consider two univariate polynomials f, g $ \in$ R[x] mathend000# of degree less than n mathend000#. Then their product has degree less than 2n - 1 mathend000#. Assume that we are given a finite subset P mathend000# of R mathend000# with n - 1 mathend000# elements such that f (r) mathend000# and g(r) mathend000# are known for every r $ \in$ R mathend000#. Then the values f (rg(r) mathend000# define the polynomial f g mathend000# completely. Indeed, by Lagrange interpolation we construct the polynomial f g mathend000# (which has at most 2n - 1 mathend000# coefficients) from the n - 1 mathend000# values f (rg(r) mathend000#. Observe that the cost of defining f g mathend000# by the values f (rg(r) mathend000# is 2 n - 1 mathend000#, which is cheap!

However if we need information about f g mathend000# such as its leading coefficient or its number of terms we need to compute the coefficients of f g mathend000#. The cost of this construction is in $ \cal {O}$(n2) mathend000#.

The underlying idea of the fast polynomial multiplication based on the discrete Fourier transform is the following. Assume that there exists a subset P mathend000# of R mathend000# with n - 1 mathend000# elements such that

Then the multiplication of f mathend000# by g mathend000#, represented by their coefficients, can be done in $ \cal {O}$(n log(n)) mathend000#.

Such sets P mathend000# do not always exist. This depends on the ring R mathend000# and the degrees of the polynomials f mathend000# and g mathend000#. However many finite fields possess such sets for small enough degrees of f mathend000# and g mathend000#. For the arbitrary ring R mathend000#, it can be shown that the multiplication of f mathend000# nad g mathend000#, represented by their coefficients, can be done in $ \cal {O}$(n log(n)log(log(n))) mathend000#.



Subsections
next up previous
Next: Primitive roots of unity Up: Foundations of Computer Algebra: Fast Previous: Foundations of Computer Algebra: Fast
Marc Moreno Maza
2007-01-10