next up previous
Next: A First Session with AXIOM Up: Computer Algebra Previous: A breif history

Challenges and Achievements

The main challenges of symbolic/exact computations:

We iluustrate below the gap between naive and optimized implementations of the same algorithm.

Figure: Polynomial addition over $ \mbox{${\mathbb Z}$}$/p$ \mbox{${\mathbb Z}$}$ mathend000#.
\begin{figure}\htmlimage[no_transparent]
\centering
\includegraphics[scale=0.5]{uma2add.eps}
\end{figure}

Figure: Polynomial multiplication over $ \mbox{${\mathbb Z}$}$/p$ \mbox{${\mathbb Z}$}$ mathend000#.
\begin{figure}\htmlimage[no_transparent]
\centering
\includegraphics[scale=0.5]{uma2mul.eps}
\end{figure}

Next, we show benchmarks between classical and FFT-based univariate polynomial multiplication.

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

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

The maple work sheet Bareiss.mw iluustrates the problem of intermediate expression swell. In many situations, this problem is solved by means of modular methods. Here's an example of such method that will study in detail later

Input:
A = (aij) mathend000# a square matrix over $ \mbox{${\mathbb Z}$}$ mathend000# of order n mathend000# with | aij | $ \leq$ C mathend000# for 1 $ \leq$ i, j $ \leq$ n mathend000#.
Output:
det(A) $ \in$ $ \mbox{${\mathbb Z}$}$ mathend000#.
\fbox{
\begin{minipage}{10 cm}
\begin{tabbing}
\quad \= \quad \= \quad \= \quad ...
...\
\> \> $d$\ := $d - m$\ \\
\> {\bf return}($d$)
\end{tabbing}\end{minipage}} mathend000#

Another example of intermediate expression swell is given below. Consider the polynomials

r0 = x$\displaystyle \sp$200 + x$\displaystyle \sp$10 +1  and  r1 = x$\displaystyle \sp$80 + x$\displaystyle \sp$8 + 1 (1)

in the ring $ \mbox{${\mathbb Q}$}$[x] mathend000#. The successive remainders of the Euclidean Algorithm applied to r0 mathend000# and r1 mathend000# are

We will study modular methods for the Euclidean Algorithm too.


next up previous
Next: A First Session with AXIOM Up: Computer Algebra Previous: A breif history
Marc Moreno Maza
2007-01-10