next up previous
Next: Computing primitive n mathend000#-th roots Up: Fast Polynomial Multiplication based on Previous: The Fast Fourier Transform

Fast Convolution and Multiplication

Algorithm 2  

\fbox{
\begin{minipage}{10 cm}
\begin{description}
\item[{\bf Input:}] $f,g \in ...
...amma}) \ = \ 1/n \, DTF_{{\omega}^{-1}}({\gamma})$
\end{tabbing}\end{minipage}} mathend000#

Theorem 2   Let n mathend000# be a power of 2 mathend000# and $ \omega$ $ \in$ R mathend000# a primitive n mathend000#-th root of unity. Then convolution in R[x]/$ \langle$xn-1$ \rangle$ mathend000# and multiplication in R[x] mathend000# of polynomials whose product has degree less than n mathend000# can be performed using leading to 9/2 n log(n) + $ \cal {O}$(n) mathend000# operations in R mathend000#.

Figure: FFT-based univariate polynomial multiplication over $ \mbox{${\mathbb Z}$}$/p$ \mbox{${\mathbb Z}$}$ mathend000#
\begin{figure}\htmlimage[no_transparent]
\centering
\includegraphics[scale=0.5]{fftflowchart.eps}
\end{figure}

Remark 4   To multiply two arbitrary polynomials of degree less than n $ \in$ $ \mbox{${\mathbb N}$}$ mathend000# we only need a primitive 2k mathend000#-th root of unity where

2k-1  <  2 n  $\displaystyle \leq$ 2k (41)

Then we have decreased the cost of about $ \cal {O}$(n2) mathend000# of the classical algorithm to $ \cal {O}$(n log(n)) mathend000#.


next up previous
Next: Computing primitive n mathend000#-th roots Up: Fast Polynomial Multiplication based on Previous: The Fast Fourier Transform
Marc Moreno Maza
2007-01-10