[BACK]Return to dag-noro-proc.tex CVS log [TXT][DIR] Up to [local] / OpenXM / doc / Papers

Diff for /OpenXM/doc/Papers/Attic/dag-noro-proc.tex between version 1.10 and 1.11

version 1.10, 2002/01/04 06:06:09 version 1.11, 2002/02/25 01:02:14
Line 1 
Line 1 
 % $OpenXM: OpenXM/doc/Papers/dag-noro-proc.tex,v 1.9 2001/12/28 06:06:15 noro Exp $  % $OpenXM: OpenXM/doc/Papers/dag-noro-proc.tex,v 1.10 2002/01/04 06:06:09 noro Exp $
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 % This is a sample input file for your contribution to a multi-  % This is a sample input file for your contribution to a multi-
 % author book to be published by Springer Verlag.  % author book to be published by Springer Verlag.
Line 60 
Line 60 
 \usepackage{epsfig}  \usepackage{epsfig}
 \def\cont{{\rm cont}}  \def\cont{{\rm cont}}
 \def\GCD{{\rm GCD}}  \def\GCD{{\rm GCD}}
   \def\Q{{\bf Q}}
 %  %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   
Line 87 
Line 88 
   
 \maketitle              % typesets the title of the contribution  \maketitle              % typesets the title of the contribution
   
 \begin{abstract}  %\begin{abstract}
 Risa/Asir is software for polynomial computation. It has been  %Risa/Asir is software for polynomial computation. It has been
 developed for testing experimental polynomial algorithms, and now it  %developed for testing experimental polynomial algorithms, and now it
 acts also as a main component in the OpenXM package \cite{OPENXM}.  %acts also as a main component in the OpenXM package \cite{noro:OPENXM}.
 OpenXM is an infrastructure for exchanging mathematical  %OpenXM is an infrastructure for exchanging mathematical
 data.  It defines a client-server architecture for parallel and  %data.  It defines a client-server architecture for parallel and
 distributed computation. In this article we present an overview of  %distributed computation. In this article we present an overview of
 Risa/Asir and review several techniques for improving performances of  %Risa/Asir and review several techniques for improving performances of
 Groebner basis computation over {\bf Q}. We also show Risa/Asir's  %Groebner basis computation over {\bf Q}. We also show Risa/Asir's
 OpenXM interfaces and their usages.  %OpenXM interfaces and their usages.
 \end{abstract}  %\end{abstract}
   
 \section{A computer algebra system Risa/Asir}  \section{Introduction}
   
 \subsection{What is Risa/Asir?}  %Risa/Asir $B$O(B, $B?t(B, $BB?9`<0$J$I$KBP$9$k1i;;$r<BAu$9$k(B engine,
   %$B%f!<%68@8l$r<BAu$9$k(B parser and interpreter $B$*$h$S(B,
   %$BB>$N(B application $B$H$N(B interaction $B$N$?$a$N(B OpenXM interface $B$+$i$J$k(B
   %computer algebra system $B$G$"$k(B.
   Risa/Asir is a computer algebra system which consists of an engine for
   operations on numbers and polynomials, a parser and an interpreter for
   the user language, and a communication interface called OpenXM API for
   interaction with other applications.
   %engine $B$G$O(B, $B?t(B, $BB?9`<0$J$I$N(B arithmetics $B$*$h$S(B, $BB?9`<0(B
   %GCD, $B0x?tJ,2r(B, $B%0%l%V%J4pDl7W;;$,<BAu$5$l$F$$$k(B. $B$3$l$i$OAH$_9~$_4X?t(B
   %$B$H$7$F%f!<%68@8l$+$i8F$S=P$5$l$k(B.
   The engine implements fundamental arithmetics on numbers and polynomials,
   polynomial GCD, polynomial factorizations and Groebner basis computations,
   etc. These can be called from the user language as builtin functions.
   %Risa/Asir $B$N%f!<%68@8l$O(B C $B8@8l(B like $B$JJ8K!$r$b$A(B, $BJQ?t$N7?@k8@$,(B
   %$B$J$$(B, $B%j%9%H=hM}$*$h$S<+F0(B garbage collection $B$D$-$N%$%s%?%W%j%?(B
   %$B8@8l$G$"$k(B. $B%f!<%68@8l%W%m%0%i%`$O(B parser $B$K$h$jCf4V8@8l$K(B
   %$BJQ49$5$l(B, interpreter $B$K$h$j2r<a<B9T$5$l$k(B. interpreter $B$K$O(B
   %gdb $BIw$N(B debugger $B$,AH$_9~$^$l$F$$$k(B.
   The user language has C-like syntax, without type declarations
   of variables, with list processing and with automatic garbage collection.
   The interpreter is equipped with a {\tt gdb}-like debugger.
   %$B$3$l$i$N5!G=$O(B OpenXM interface $B$rDL$7$FB>$N(B application $B$+$i$b;HMQ2D(B
   %$BG=$G$"$k(B. OpenXM \cite{noro:RFC100} $B$O?t3X%=%U%H%&%'%"$N(B client-server
   %$B7?$NAj8_8F$S=P$7$N$?$a$N(B $B%W%m%H%3%k$G$"$k(B.
   These functions can be called from other applications via OpenXM API.
   OpenXM \cite{noro:RFC100} is a protocol for client-server
   communications between mathematical software.  We are distributing
   OpenXM package \cite{noro:OPENXM}, which is a collection of various
   clients and servers comlient to the OpenXM protocol specification.
   
 Risa/Asir \cite{RISA} is software mainly for polynomial  %Risa/Asir $B$OB?9`<00x?tJ,2r(B, $B%,%m%"727W;;(B \cite{noro:ANY}, $B%0%l%V%J4pDl(B
 computation. Its major functions are polynomial factorization and  %$B7W;;(B \cite{noro:NM,noro:NY}, $B=`AG%$%G%"%kJ,2r(B \cite{noro:SY}, $B0E9f(B
 Groebner basis computation, whose core parts are implemented as  %\cite{noro:IKNY} $B$K$*$1$k<B83E*%"%k%4%j%:%`(B $B$r%F%9%H$9$k$?$a$N%W%i%C%H(B
 built-in functions.  Some higher algorithms such as primary ideal  %$B%U%)!<%`$H$7$F3+H/$5$l$F$-$?(B. $B$^$?(B, OpenXM API $B$rMQ$$$F(B parallel
 decomposition or Galois group computation are built on them by the  %distributed computation $B$N<B83$K$bMQ$$$i$l$F$$$k(B.  $B:,44$r$J$9$N$OB?9`(B
 user language called Asir language. Asir language can be regarded as C  %$B<00x?tJ,2r$*$h$S%0%l%V%J4pDl7W;;$G$"$k(B.  $BK\9F$G$O(B, $BFC$K(B, $B%0%l%V%J4pDl(B
 language without type declaration of variables, with list processing,  %$B7W;;$K4X$7$F(B, $B$=$N4pK\$*$h$S(B {\bf Q} $B>e$G$N7W;;$N:$Fq$r9nI~$9$k$?$a$N(B
 and with automatic garbage collection. A built-in {\tt gdb}-like user  %$B$5$^$6$^$J9)IW$*$h$S$=$N8z2L$K$D$$$F=R$Y$k(B.  $B$^$?(B, Risa/Asir $B$O(B OpenXM
 language debugger is available. Risa/Asir is open source and the  %package $B$K$*$1$k<gMW$J(B component $B$N0l$D$G$"$k(B. Risa/Asir $B$r(B client $B$"(B
 source code and binaries are available via {\tt ftp} or {\tt CVS}.  %$B$k$$$O(B server $B$H$7$FMQ$$$kJ,;6JBNs7W;;$K$D$$$F(B, $B<BNc$r$b$H$K2r@b$9$k(B.
 Risa/Asir is not only a standalone computer algebra system but also a  Risa/Asir has been used for implementing and testing experimental
 main component in OpenXM package \cite{OPENXM}, which is a collection  algorithms such as polynomial factorizations, splitting field and
 of various software compliant to OpenXM protocol specification.  Galois group computations \cite{noro:ANY}, Groebner basis computations
 OpenXM is an infrastructure for exchanging mathematical data and  \cite{noro:REPL,noro:NOYO} primary ideal decomposition \cite{noro:SY}
 Risa/Asir has three kinds of OpenXM interfaces :  and cryptgraphy \cite{noro:IKNY}.  In these applications the important
 OpenXM API in the Risa/Asir user language,  funtions are polynomial factorization and Groebner basis
 OpenXM C language API in the Risa/Asir subroutine library,  computation. We focus on Groebner basis computation and we review its
 and an OpenXM server.  fundamentals and vaious efforts for improving efficiency especially
 Our goals of developing Risa/Asir are as follows:  over $\Q$. Risa/Asir is also a main component of OpenXM package and
   it has been used for parallel distributed computation with OpenXM API.
   We will explain how one can execute parallel distributed computation
   by using Risa/Asir as a client or a server.
   
 \begin{enumerate}  \section{Efficient Groebner basis computation over {\bf Q}}
 \item Providing a platform for testing new algorithms  \label{tab:gbtech}
   
 Risa/Asir has been a platform for testing experimental algorithms in  
 polynomial factorization, Groebner basis computation,  
 cryptography and quantifier elimination. As to Groebner basis, we have  
 been mainly interested in problems over {\bf Q} and we tried applying  
 various modular techniques to overcome difficulties caused by huge  
 intermediate coefficients. We have had several results and they have  
 been implemented in Risa/Asir with other known methods.  
   
 \item General purpose open system  
   
 We need a lot of functions to make Risa/Asir a general purpose  
 computer algebra system.  In recent years we can make use of various high  
 performance applications or libraries as free software. We wrapped  
 such software as OpenXM servers and we started to release a collection  
 of such servers and clients as the OpenXM package in 1997. Risa/Asir  
 is now a main client in the package.  
   
 \item Environment for parallel and distributed computation  
   
 The ancestor of OpenXM is a protocol designed for doing parallel  
 distributed computations by connecting multiple Risa/Asir's over  
 TCP/IP. OpenXM is also designed to provide an environment for  
 efficient parallel distributed computation. Currently only  
 client-server communication is available, but we are preparing a  
 specification OpenXM-RFC 102 allowing client-client communication,  
 which will enable us to execute wider range of parallel algorithms  
 requiring collective operations efficiently.  
 \end{enumerate}  
   
 \subsection{Groebner basis and the related computation}  
   
 Currently Risa/Asir can only deal with polynomial ring. Operations on  
 modules over polynomial rings have not yet supported.  However, both  
 commutative polynomial rings and Weyl algebra are supported and one  
 can compute Groebner basis in both rings over {\bf Q}, fields of  
 rational functions and finite fields. In the early stage of our  
 development, our effort was mainly devoted to improve the efficiency  
 of computation over {\bf Q}. Our main tool is modular  
 computation. For Buchberger algorithm we adopted the trace lifting  
 algorithm by Traverso \cite{TRAV} and elaborated it by applying our  
 theory on a correspondence between Groebner basis and its modular  
 image \cite{NOYO}. We also combine the trace lifting with  
 homogenization to stabilize selection strategies, which enables us to  
 compute several examples efficiently which are hard to compute without  
 such a combination.  Our modular method can be applied to the change  
 of ordering algorithm\cite{FGLM} and rational univariate  
 representation \cite{RUR}.  We also made a test implementation of  
 $F_4$ algorithm \cite{F4}. In the later section we will show timing  
 data on Groebner basis computation.  
   
 \subsection{Polynomial factorization}  
   
 Here we briefly review functions on polynomial factorization.  For  
 univariate factorization over {\bf Q}, the Berlekamp-Zassenhaus  
 algorithm is implemented.  Efficient algorithms recently proposed have  
 not yet implemented.  For univariate factorization over algebraic  
 number fields, Trager's algorithm \cite{TRAGER} is implemented with  
 some modifications.  Its major applications are splitting field and  
 Galois group computation of polynomials over {\bf Q} \cite{ANY}. For  
 such purpose a tower of simple extensions are suitable because factors  
 represented over a simple extension often have huge coefficients.  For  
 univariate factorization over finite fields, equal degree  
 factorization and Cantor-Zassenhaus algorithm are implemented. We can  
 use various representation of finite fields: $GF(p)$ with a machine  
 integer prime $p$, $GF(p)$ and $GF(p^n)$ with any odd prime $p$,  
 $GF(2^n)$ with a bit-array representation of polynomials over $GF(2)$  
 and $GF(p^n)$ with small $p^n$ represented by a primitive root.  For  
 multivariate factorization over {\bf Q}, the EZ(Extended Zassenhaus)  
 type algorithm is implemented.  
   
 \subsection{Other functions}  
 By applying Groebner basis computation and polynomial factorization,  
 we have implemented several higher level algorithms. A typical  
 application is primary ideal decomposition of polynomial ideals over  
 {\bf Q}, which needs both functions.  Shimoyama-Yokoyama algorithm  
 \cite{SY} for primary decomposition is written in the user language.  
 Splitting field and Galois group computation \cite{ANY} are closely  
 related and are also important applications of polynomial  
 factorization.  
   
 \section{Techniques for efficient Groebner basis computation over {\bf Q}}  
 \label{gbtech}  
   
 In this section we review several practical techniques to improve  In this section we review several practical techniques to improve
 Groebner basis computation over {\bf Q}, which are easily  Groebner basis computation over {\bf Q}, which are easily
 implemented but may not be well known.  implemented but may not be well known.
Line 261  it practical. The following are major improvements:
Line 211  it practical. The following are major improvements:
 \item Useless pair detection  \item Useless pair detection
   
 We don't have to process all the pairs in $D$ and several useful  We don't have to process all the pairs in $D$ and several useful
 criteria for detecting useless pairs were proposed.  criteria for detecting useless pairs were proposed (cf. \cite{noro:BW}).
   
 \item Selection strategy  \item Selection strategy
   
 The selection of $\{f,g\}$ greatly affects the subsequent computation.  The selection of $\{f,g\}$ greatly affects the subsequent computation.
 The typical strategies are the normal startegy and the sugar strategy.  The typical strategies are the normal startegy \cite{noro:BUCH}
   and the sugar strategy \cite{noro:SUGAR}.
 The latter was proposed for efficient computation under a non  The latter was proposed for efficient computation under a non
 degree-compatible order.  degree-compatible order.
   
Line 274  degree-compatible order.
Line 225  degree-compatible order.
   
 Even if we apply several criteria, it is difficult to detect all pairs  Even if we apply several criteria, it is difficult to detect all pairs
 whose S-polynomials are reduced to zero, and the cost to process them  whose S-polynomials are reduced to zero, and the cost to process them
 often occupies a major part in the whole computation. The trace algorithms  often occupies a major part in the whole computation. The trace
 were proposed to reduce such cost. This will be explained in more detail  algorithms \cite{noro:TRAV} were proposed to reduce such cost. This
 in Section \ref{gbhomo}.  will be explained in more detail in Section \ref{sec:gbhomo}.
   
 \item Change of ordering  \item Change of ordering
   
 For elimination, we need a Groebner basis with respect to a non  For elimination, we need a Groebner basis with respect to a non
 degree-compatible order, but it is often hard to compute it by  degree-compatible order, but it is often hard to compute it by the
 the Buchberger algorithm. If the ideal is zero dimensional, we  Buchberger algorithm. If the ideal is zero dimensional, we can apply a
 can apply a change of ordering algorithm for a Groebner basis  change of ordering algorithm \cite{noro:FGLM} for a Groebner basis
 with respect to any order and we can obtain a Groebner basis  with respect to any order and we can obtain a Groebner basis with
 with respect to a desired order.  respect to a desired order.
   
 \end{itemize}  \end{itemize}
 By implementing these techniques, one can obtain Groebner bases for  By implementing these techniques, one can obtain Groebner bases for
Line 294  problems with these classical tools. In the subsequent
Line 245  problems with these classical tools. In the subsequent
 we show several methods for further improvements.  we show several methods for further improvements.
   
 \subsection{Combination of homogenization and trace lifting}  \subsection{Combination of homogenization and trace lifting}
 \label{gbhomo}  \label{sec:gbhomo}
   
 Traverso's trace lifting algorithm can be  The trace lifting algorithm can be
 formulated in an abstract form as follows (c.f. \cite{FPARA}).  formulated in an abstract form as follows (c.f. \cite{noro:FPARA}).
 \begin{tabbing}  \begin{tabbing}
 Input : a finite subset $F \subset {\bf Z}[X]$\\  Input : a finite subset $F \subset {\bf Z}[X]$\\
 Output : a Groebner basis $G$ of $Id(F)$ with respect to a term order $<$\\  Output : a Groebner basis $G$ of $Id(F)$ with respect to a term order $<$\\
Line 336  lots of redundant elements can be removed.
Line 287  lots of redundant elements can be removed.
   
 Let $I$ be a zero-dimensional ideal in $R={\bf Q}[x_1,\ldots,x_n]$.  Let $I$ be a zero-dimensional ideal in $R={\bf Q}[x_1,\ldots,x_n]$.
 Then the minimal polynomial $m(x_i)$ of a variable $x_i$ in $R/I$ can  Then the minimal polynomial $m(x_i)$ of a variable $x_i$ in $R/I$ can
 be computed by a partial FGLM \cite{FGLM}, but it often takes long  be computed by a partial FGLM \cite{noro:FGLM}, but it often takes long
 time if one searches $m(x_i)$ incrementally over {\bf Q}.  In this  time if one searches $m(x_i)$ incrementally over {\bf Q}.  In this
 case we can apply a simple modular method to compute the minimal  case we can apply a simple modular method to compute the minimal
 polynomial.  polynomial.
Line 355  $GF(p)$ because $\phi_p(G)$ is a Groebner basis. Once 
Line 306  $GF(p)$ because $\phi_p(G)$ is a Groebner basis. Once 
 candidate of $\deg(m(x_i))$, $m(x_i)$ can be determined by solving a  candidate of $\deg(m(x_i))$, $m(x_i)$ can be determined by solving a
 system of linear equations via the method of indeterminate  system of linear equations via the method of indeterminate
 coefficient, and it can be solved efficiently by $p$-adic method.  coefficient, and it can be solved efficiently by $p$-adic method.
 Arguments on \cite{NOYO} ensures that $m(x_i)$ is what we want if it  Arguments on \cite{noro:NOYO} ensures that $m(x_i)$ is what we want if it
 exists. Note that the full FGLM can also be computed by the same  exists. Note that the full FGLM can also be computed by the same
 method.  method.
   
 \subsection{Integer contents reduction}  \subsection{Integer contents reduction}
 \label{gbcont}  \label{sec:gbcont}
   
 In some cases the cost to remove integer contents during normal form  In some cases the cost to remove integer contents during normal form
 computations is dominant. We can remove the content of an integral  computations is dominant. We can remove the content of an integral
 polynomial $f$ efficiently by the following method \cite{REPL}.  polynomial $f$ efficiently by the following method \cite{noro:REPL}.
 \begin{tabbing}  \begin{tabbing}
 Input : an integral polynomial $f$\\  Input : an integral polynomial $f$\\
 Output : a pair $(\cont(f),f/\cont(f))$\\  Output : a pair $(\cont(f),f/\cont(f))$\\
Line 386  $g_0$ with high accuracy. Then other components are ea
Line 337  $g_0$ with high accuracy. Then other components are ea
 %cost for reading basis elements from disk is often negligible because  %cost for reading basis elements from disk is often negligible because
 %of the cost for coefficient computations.  %of the cost for coefficient computations.
   
 \section{Risa/Asir performance}  \subsection{Performances of Groebner basis computation}
   
 We show timing data on Risa/Asir for Groebner basis computation  We show timing data on Risa/Asir for Groebner basis computation.  The
 and polynomial factorization. The measurements were made on  measurements were made on a PC with PentiumIII 1GHz and 1Gbyte of main
 a PC with PentiumIII 1GHz and 1Gbyte of main memory. Timings  memory. Timings are given in seconds. In the tables `---' means it was
 are given in seconds. In the tables `---' means it was not  not measured.  $C_n$ is the cyclic $n$ system and $K_n$ is the Katsura
 measured.  $n$ system, both are famous bench mark problems \cite{noro:BENCH}.  $McKay$
   \cite{noro:REPL} is a system whose Groebner basis is hard to compute over
   {\bf Q}.  In Risa/Asir we have a test implemention of $F_4$ algorithm
   \cite{noro:F4} and we also show its current performance.  The term order is
   graded reverse lexicographic order.
   
 \subsection{Groebner basis computation}  Table \ref{tab:gbmod} shows timing data for Groebner basis computation
   over $GF(32003)$.  $F_4$ implementation in Risa/Asir outperforms
   Buchberger algorithm implementation, but it is still several times
   slower than $F_4$ implementation in FGb \cite{noro:FGB}.
   
 Table \ref{gbmod} and Table \ref{gbq} show timing data for Groebner  Table \ref{tab:gbq} shows timing data for Groebner basis computation over
 basis computation over $GF(32003)$ and over {\bf Q} respectively.  In  $\Q$, where we compare the timing data under various configuration of
 Table \ref{gbq} we compare the timing data under various configuration  algorithms. {\bf TR}, {\bf Homo}, {\bf Cont} means trace lifting,
 of algorithms: with/without trace lifting, homogenization and contents  homogenization and contents reduction respectively.
 reduction.  \ref{tab:gbq} also shows timings of minimal polynomial
 $C_n$ is the cyclic $n$ system and $K_n$ is the Katsura $n$ system,  computation for zero-dimensional ideals.  Table \ref{tab:gbq} shows that
 both are famous bench mark problems \cite{BENCH}.  We also measured  it is difficult or practically impossible to compute Groebner bases of
 the timing for $McKay$ system over {\bf Q} \cite{REPL}.  the term  $C_7$, $C_8$ and $McKay$ without the methods described in Section
 order is graded reverse lexicographic order.  \ref{sec:gbhomo} and \ref{sec:gbcont}.
 As to the Buchberger algorithm over $GF(32003)$,  
 Singular\cite{SINGULAR}'s Buchberger algorithm implementation shows  
 better performance than Risa/Asir. $F_4$ implementation in Risa/Asir  
 is outperforms both of them, but it is still several times slower than  
 $F_4$ implementation in FGb \cite{FGB}.  
   
 Table \ref{gbq} shows that it is difficult or practically impossible  
 to compute Groebner bases of $C_7$, $C_8$ and $McKay$ without  
 the methods described in Section \ref{gbhomo} and \ref{gbcont}.  
   
 Though $F_4$ implementation in Risa/Asir over {\bf Q} is still  Though $F_4$ implementation in Risa/Asir over {\bf Q} is still
 experimental, the timing of $McKay$ is greatly reduced.  experimental, the timing of $McKay$ is greatly reduced.
 Fig. \ref{f4vsbuch} explains why $F_4$ is efficient in this case.  The  Fig. \ref{tab:f4vsbuch} explains why $F_4$ is efficient in this case.  The
 figure shows that the Buchberger algorithm produces normal forms with  figure shows that the Buchberger algorithm produces normal forms with
 huge coefficients for S-polynomials after the 250-th one, which are  huge coefficients for S-polynomials after the 250-th one, which are
 the computations in degree 16.  However, we know that the reduced  the computations in degree 16.  However, we know that the reduced
Line 437  FGb(estimated) & 0.9 & 23 & 0.1 & 0.8 & 6 & 51 & 366 \
Line 385  FGb(estimated) & 0.9 & 23 & 0.1 & 0.8 & 6 & 51 & 366 \
 \end{tabular}  \end{tabular}
 \end{center}  \end{center}
 \caption{Groebner basis computation over $GF(32003)$}  \caption{Groebner basis computation over $GF(32003)$}
 \label{gbmod}  \label{tab:gbmod}
 \end{table}  \end{table}
   
 \begin{table}[hbtp]  \begin{table}[hbtp]
 \begin{center}  \begin{center}
 \begin{tabular}{|c||c|c|c|c|c|} \hline  \begin{tabular}{|c||c|c|c|c|c|} \hline
                 & $C_7$ & $C_8$ & $K_7$ & $K_8$ & $McKay$ \\ \hline                  & $C_7$ & $C_8$ & $K_7$ & $K_8$ & $McKay$ \\ \hline
 TR+Homo,Cont & 389 & 54000 & 29 & 299 & 34950 \\ \hline  TR+Homo+Cont & 389 & 54000 & 29 & 299 & 34950 \\ \hline
 TR+Homo & --- & --- & --- & --- & --- \\ \hline  TR+Homo & --- & --- & --- & --- & --- \\ \hline
 TR & --- & --- & --- & --- & --- \\ \hline  TR & --- & --- & --- & --- & --- \\ \hline \hline
   Minipoly & --- & --- & --- & --- & N/A \\ \hline
 %Singular & --- & 15247 & --- & 7.6 & 79 & $>$ 20h \\ \hline  %Singular & --- & 15247 & --- & 7.6 & 79 & $>$ 20h \\ \hline
 %CoCoA 4 & --- & 13227 & --- & 57 & 709 & --- \\ \hline\hline  %CoCoA 4 & --- & 13227 & --- & 57 & 709 & --- \\ \hline\hline
 %Asir $F_4$     &  989 & 456 & --- & 90 & 991 & 4939 \\ \hline  %Asir $F_4$     &  989 & 456 & --- & 90 & 991 & 4939 \\ \hline
 %FGb(estimated) & 8 &11 & 288 &  0.6 & 5 & 10 \\ \hline  %FGb(estimated) & 8 &11 & 288 &  0.6 & 5 & 10 \\ \hline
 \end{tabular}  \end{tabular}
   
 (TR : trace lifting; Homo : homogenization; Cont : contents reduction)  
 \end{center}  \end{center}
 \caption{Groebner basis computation over {\bf Q}}  \caption{Groebner basis and minimal polynomial computation over {\bf Q}}
 \label{gbq}  \label{tab:gbq}
 \end{table}  \end{table}
   
 \begin{figure}[hbtp]  \begin{figure}[hbtp]
Line 466  TR & --- & --- & --- & --- & --- \\ \hline
Line 412  TR & --- & --- & --- & --- & --- \\ \hline
 \epsffile{blen.ps}  \epsffile{blen.ps}
 \end{center}  \end{center}
 \caption{Maximal coefficient bit length of intermediate bases}  \caption{Maximal coefficient bit length of intermediate bases}
 \label{f4vsbuch}  \label{tab:f4vsbuch}
 \end{figure}  \end{figure}
   
 Table \ref{minipoly} shows timing data for the minimal polynomial  %Table \ref{minipoly} shows timing data for the minimal polynomial
 computations of all variables over {\bf Q} by the modular method.  %computations of all variables over {\bf Q} by the modular method.
 \begin{table}[hbtp]  %\begin{table}[hbtp]
 \begin{center}  %\begin{center}
 \begin{tabular}{|c||c|c|c|c|c|} \hline  %\begin{tabular}{|c||c|c|c|c|c|} \hline
                 & $C_6$ & $C_7$ & $K_6$ & $K_7$ & $K_8$ \\ \hline  %               & $C_6$ & $C_7$ & $K_6$ & $K_7$ & $K_8$ \\ \hline
 %Singular & 0.9 & 846 & 307 & 60880 & ---  \\ \hline  %Singular & 0.9 & 846 & 307 & 60880 & ---  \\ \hline
 Asir & 1.5 & 182 & 12 & 164 & 3420  \\ \hline  %Asir & 1.5 & 182 & 12 & 164 & 3420  \\ \hline
 \end{tabular}  %\end{tabular}
 \end{center}  %\end{center}
 \caption{Minimal polynomial computation}  %\caption{Minimal polynomial computation}
 \label{minipoly}  %\label{minipoly}
 \end{table}  %\end{table}
   
 \subsection{Polynomial factorization}  %\subsection{Polynomial factorization}
   %
 %Table \ref{unifac} shows timing data for univariate factorization over  %Table \ref{unifac} shows timing data for univariate factorization over
 %{\bf Q}.  $N_{i,j}$ is an irreducible polynomial which are hard to  %{\bf Q}.  $N_{i,j}$ is an irreducible polynomial which are hard to
 %factor by the classical algorithm. $N_{i,j}$ is a norm of a polynomial  %factor by the classical algorithm. $N_{i,j}$ is a norm of a polynomial
 %and $\deg(N_i) = i$ with $j$ modular factors. Risa/Asir is  %and $\deg(N_i) = i$ with $j$ modular factors. Risa/Asir is
 %disadvantageous in factoring polynomials of this type because the  %disadvantageous in factoring polynomials of this type because the
 %algorithm used in Risa/Asir has exponential complexity. In contrast,  %algorithm used in Risa/Asir has exponential complexity. In contrast,
 %CoCoA 4\cite{COCOA} and NTL-5.2\cite{NTL} show nice performances  %CoCoA 4\cite{noro:COCOA} and NTL-5.2\cite{noro:NTL} show nice performances
 %because they implement recently developed algorithms.  %because they implement recently developed algorithms.
 %  %
 %\begin{table}[hbtp]  %\begin{table}[hbtp]
Line 508  Asir & 1.5 & 182 & 12 & 164 & 3420  \\ \hline
Line 454  Asir & 1.5 & 182 & 12 & 164 & 3420  \\ \hline
 %\caption{Univariate factorization over {\bf Q}}  %\caption{Univariate factorization over {\bf Q}}
 %\label{unifac}  %\label{unifac}
 %\end{table}  %\end{table}
   %
 Table \ref{multifac} shows timing data for multivariate factorization  %Table \ref{multifac} shows timing data for multivariate factorization
 over {\bf Q}.  $W_{i,j,k}$ is a product of three multivariate  %over {\bf Q}.  $W_{i,j,k}$ is a product of three multivariate
 polynomials $Wang[i]$, $Wang[j]$, $Wang[k]$ given in a data file {\tt  %polynomials $Wang[i]$, $Wang[j]$, $Wang[k]$ given in a data file {\tt
 fctrdata} in Asir library directory. It is also included in Risa/Asir  %fctrdata} in Asir library directory. It is also included in Risa/Asir
 source tree and located in {\tt asir2000/lib}.  These examples have  %source tree and located in {\tt asir2000/lib}.  These examples have
 leading coefficients of large degree which vanish at 0 which tend to  %leading coefficients of large degree which vanish at 0 which tend to
 cause so-called the leading coefficient problem the bad zero  %cause so-called the leading coefficient problem the bad zero
 problem. Risa/Asir's implementation carefully treats such cases and it  %problem. Risa/Asir's implementation carefully treats such cases and it
 shows reasonable performance compared with other famous systems.  %shows reasonable performance compared with other famous systems.
 \begin{table}[hbtp]  %\begin{table}[hbtp]
 \begin{center}  %\begin{center}
 \begin{tabular}{|c||c|c|c|c|c|} \hline  %\begin{tabular}{|c||c|c|c|c|c|} \hline
         & $W_{1,2,3}$ & $W_{4,5,6}$ & $W_{7,8,9}$ & $W_{10,11,12}$ & $W_{13,14,15}$ \\ \hline  %       & $W_{1,2,3}$ & $W_{4,5,6}$ & $W_{7,8,9}$ & $W_{10,11,12}$ & $W_{13,14,15}$ \\ \hline
 variables & 3 & 5 & 5 & 5 & 4 \\ \hline  %variables & 3 & 5 & 5 & 5 & 4 \\ \hline
 monomials & 905 & 41369 & 51940 & 30988 & 3344 \\ \hline\hline  %monomials & 905 & 41369 & 51940 & 30988 & 3344 \\ \hline\hline
 Asir    & 0.2 & 4.7 & 14 & 17 & 0.4 \\ \hline  %Asir   & 0.2 & 4.7 & 14 & 17 & 0.4 \\ \hline
 %Singular& $>$15min     & ---   & ---& ---& ---\\ \hline  %Singular& $>$15min     & ---   & ---& ---& ---\\ \hline
 %CoCoA 4 & 5.2 & $>$15min       & $>$15min & $>$15min & 117 \\ \hline\hline  %CoCoA 4 & 5.2 & $>$15min       & $>$15min & $>$15min & 117 \\ \hline\hline
 Mathematica 4& 0.2      & 16    & 23 & 36 & 1.1 \\ \hline  %Mathematica 4& 0.2     & 16    & 23 & 36 & 1.1 \\ \hline
 Maple 7& 0.5    & 18    & 967  & 48 & 1.3 \\ \hline  %Maple 7& 0.5   & 18    & 967  & 48 & 1.3 \\ \hline
 \end{tabular}  %\end{tabular}
 \end{center}  %\end{center}
 \caption{Multivariate factorization over {\bf Q}}  %\caption{Multivariate factorization over {\bf Q}}
 \label{multifac}  %\label{multifac}
 \end{table}  %\end{table}
 As to univariate factorization over {\bf Q}, the univariate factorizer  %As to univariate factorization over {\bf Q}, the univariate factorizer
 implements old algorithms and its behavior is what one expects,  %implements old algorithms and its behavior is what one expects,
 that is, it shows average performance in cases where there are little  %that is, it shows average performance in cases where there are little
 extraneous factors, but shows poor performance for hard to factor  %extraneous factors, but shows poor performance for hard to factor
 polynomials with many extraneous factors.  %polynomials with many extraneous factors.
   
 \section{OpenXM and Risa/Asir OpenXM interfaces}  \section{OpenXM and Risa/Asir OpenXM interfaces}
   
Line 546  polynomials with many extraneous factors.
Line 492  polynomials with many extraneous factors.
   
 OpenXM stands for Open message eXchange protocol for Mathematics.  OpenXM stands for Open message eXchange protocol for Mathematics.
 From the viewpoint of protocol design, it can be regarded as a child  From the viewpoint of protocol design, it can be regarded as a child
 of OpenMath \cite{OPENMATH}.  However our approach is somewhat  of OpenMath \cite{noro:OPENMATH}.  However our approach is somewhat
 different. Our main purpose is to provide an environment for  different. Our main purpose is to provide an environment for
 integrating {\it existing} mathematical software systems. OpenXM  integrating {\it existing} mathematical software systems. OpenXM
 RFC-100 \cite{RFC100} defines a client-server architecture.  Under  RFC-100 \cite{noro:RFC100} defines a client-server architecture.  Under
 this specification, a client invokes an OpenXM ({\it OX}) server.  The  this specification, a client invokes an OpenXM ({\it OX}) server.  The
 client can send OpenXM ({\it OX}) messages to the server.  OX messages  client can send OpenXM ({\it OX}) messages to the server.  OX messages
 consist of {\it data} and {\it command}. Data is encoded according to  consist of {\it data} and {\it command}. Data is encoded according to
Line 566  hybrid server.
Line 512  hybrid server.
 OpenXM RFC-100 also defines methods for session management. In particular  OpenXM RFC-100 also defines methods for session management. In particular
 the method to reset a server is carefully designed and it provides  the method to reset a server is carefully designed and it provides
 a robust way of using servers both for interactive and non-interactive  a robust way of using servers both for interactive and non-interactive
 purposes.  purposes.
   
 \subsection{OpenXM API in Risa/Asir user language}  \subsection{OpenXM API in Risa/Asir user language}
   
Line 662  readable form, which may be sufficient for a simple us
Line 608  readable form, which may be sufficient for a simple us
 interface.  interface.
   
 \section{Concluding remarks}  \section{Concluding remarks}
 We have shown the current status of Risa/Asir and its OpenXM  %We have shown the current status of Risa/Asir and its OpenXM
 interfaces. As a result of our policy of development, it is true that  %interfaces. As a result of our policy of development, it is true that
 Risa/Asir does not have abundant functions. However it is a completely  %Risa/Asir does not have abundant functions. However it is a completely
 open system and its total performance is not bad. Especially on  %open system and its total performance is not bad. Especially on
 Groebner basis computation over {\bf Q}, many techniques for improving  %Groebner basis computation over {\bf Q}, many techniques for improving
 practical performances have been implemented. As the OpenXM interface  %practical performances have been implemented. As the OpenXM interface
 specification is completely documented, we can easily add another  %specification is completely documented, we can easily add another
 function to Risa/Asir by wrapping an existing software system as an OX  %function to Risa/Asir by wrapping an existing software system as an OX
 server, and other clients can call functions in Risa/Asir by  %server, and other clients can call functions in Risa/Asir by
 implementing the OpenXM client interface.  With the remote debugging  %implementing the OpenXM client interface.  With the remote debugging
 and the function to reset servers, one will be able to enjoy parallel  %and the function to reset servers, one will be able to enjoy parallel
 and distributed computation with OpenXM facilities.  %and distributed computation with OpenXM facilities.
 %  %
   We have shown that many techniques for
   improving practical performances are implemented in Risa/Asir's
   Groebner basis engine.  Though another important function, the
   polynomial factorizer only implements classical algorithms, its
   performance is comparable with or superior to that of Maple or
   Mathematica and is still practically useful.  By preparing OpenXM
   interface or simply linking the Asir OpenXM library, one can call
   these efficient functions from any application.  Risa/Asir is a
   completely open system.  It is open source software
   and the OpenXM interface specification is completely documented, one
   can easily write interfaces to call functions in Risa/Asir and one
   will be able to enjoy parallel and distributed computation.
   
   
 \begin{thebibliography}{7}  \begin{thebibliography}{7}
 %  %
 \addcontentsline{toc}{section}{References}  \addcontentsline{toc}{section}{References}
   
 \bibitem{ANY}  \bibitem{noro:ANY}
 Anay, H., Noro, M., Yokoyama, K. (1996)  Anay, H., Noro, M., Yokoyama, K. (1996)
 Computation of the Splitting fields and the Galois Groups of Polynomials.  Computation of the Splitting fields and the Galois Groups of Polynomials.
 Algorithms in Algebraic geometry and Applications,  Algorithms in Algebraic geometry and Applications,
 Birkh\"auser (Proceedings of MEGA'94), 29--50.  Birkh\"auser (Proceedings of MEGA'94), 29--50.
   
 \bibitem{FPARA}  \bibitem{noro:FPARA}
 Jean-Charles Faug\`ere (1994)  Jean-Charles Faug\`ere (1994)
 Parallelization of Groebner basis.  Parallelization of Groebner basis.
 Proceedings of PASCO'94, 124--132.  Proceedings of PASCO'94, 124--132.
   
 \bibitem{F4}  \bibitem{noro:F4}
 Jean-Charles Faug\`ere (1999)  Jean-Charles Faug\`ere (1999)
 A new efficient algorithm for computing Groebner bases  ($F_4$).  A new efficient algorithm for computing Groebner bases  ($F_4$).
 Journal of Pure and Applied Algebra (139) 1-3 , 61--88.  Journal of Pure and Applied Algebra (139) 1-3 , 61--88.
   
 \bibitem{FGLM}  \bibitem{noro:FGLM}
 Faug\`ere, J.-C. et al. (1993)  Faug\`ere, J.-C. et al. (1993)
 Efficient computation of zero-dimensional Groebner bases by change of ordering.  Efficient computation of zero-dimensional Groebner bases by change of ordering.
 Journal of Symbolic Computation 16, 329--344.  Journal of Symbolic Computation 16, 329--344.
   
 \bibitem{RFC100}  \bibitem{noro:RFC100}
 M. Maekawa, et al. (2001)  M. Maekawa, et al. (2001)
 The Design and Implementation of OpenXM-RFC 100 and 101.  The Design and Implementation of OpenXM-RFC 100 and 101.
 Proceedings of ASCM2001, World Scientific, 102--111.  Proceedings of ASCM2001, World Scientific, 102--111.
   
 \bibitem{RISA}  \bibitem{noro:RISA}
 Noro, M. et al. (1994-2001)  Noro, M. et al. (1994-2001)
 A computer algebra system Risa/Asir.  A computer algebra system Risa/Asir.
 {\tt http://www.openxm.org}, {\tt http://www.math.kobe-u.ac.jp/Asir/asir.html}.  {\tt http://www.openxm.org}, {\tt http://www.math.kobe-u.ac.jp/Asir/asir.html}.
   
 \bibitem{REPL}  \bibitem{noro:REPL}
 Noro, M., McKay, J. (1997)  Noro, M., McKay, J. (1997)
 Computation of replicable functions on Risa/Asir.  Computation of replicable functions on Risa/Asir.
 Proceedings of PASCO'97, ACM Press, 130--138.  Proceedings of PASCO'97, ACM Press, 130--138.
   
 \bibitem{NOYO}  \bibitem{noro:NOYO}
 Noro, M., Yokoyama, K. (1999)  Noro, M., Yokoyama, K. (1999)
 A Modular Method to Compute the Rational Univariate  A Modular Method to Compute the Rational Univariate
 Representation of Zero-Dimensional Ideals.  Representation of Zero-Dimensional Ideals.
 Journal of Symbolic Computation, 28, 1, 243--263.  Journal of Symbolic Computation, 28, 1, 243--263.
   
 \bibitem{OPENXM}  \bibitem{noro:OPENXM}
 OpenXM committers (2000-2001)  OpenXM committers (2000-2001)
 OpenXM package.  OpenXM package.
 {\tt http://www.openxm.org}.  {\tt http://www.openxm.org}.
   
 \bibitem{RUR}  \bibitem{noro:RUR}
 Rouillier, R. (1996)  Rouillier, R. (1996)
 R\'esolution des syst\`emes z\'ero-dimensionnels.  R\'esolution des syst\`emes z\'ero-dimensionnels.
 Doctoral Thesis(1996), University of Rennes I, France.  Doctoral Thesis(1996), University of Rennes I, France.
   
 \bibitem{SY}  \bibitem{noro:SY}
 Shimoyama, T., Yokoyama, K. (1996)  Shimoyama, T., Yokoyama, K. (1996)
 Localization and Primary Decomposition of Polynomial Ideals.  Localization and Primary Decomposition of Polynomial Ideals.
 Journal of Symbolic Computation, 22, 3, 247--277.  Journal of Symbolic Computation, 22, 3, 247--277.
   
 \bibitem{TRAGER}  \bibitem{noro:TRAGER}
 Trager, B.M. (1976)  Trager, B.M. (1976)
 Algebraic Factoring and Rational Function Integration.  Algebraic Factoring and Rational Function Integration.
 Proceedings of SYMSAC 76, 219--226.  Proceedings of SYMSAC 76, 219--226.
   
 \bibitem{TRAV}  \bibitem{noro:TRAV}
 Traverso, C. (1988)  Traverso, C. (1988)
 Groebner trace algorithms.  Groebner trace algorithms.
 LNCS {\bf 358} (Proceedings of ISSAC'88), Springer-Verlag, 125--138.  LNCS {\bf 358} (Proceedings of ISSAC'88), Springer-Verlag, 125--138.
   
 \bibitem{BENCH}  \bibitem{noro:BENCH}
 {\tt http://www.math.uic.edu/\~\,jan/demo.html}.  {\tt http://www.math.uic.edu/\~\,jan/demo.html}.
   
 \bibitem{COCOA}  \bibitem{noro:COCOA}
 {\tt http://cocoa.dima.unige.it/}.  {\tt http://cocoa.dima.unige.it/}.
   
 \bibitem{FGB}  \bibitem{noro:FGB}
 {\tt http://www-calfor.lip6.fr/\~\,jcf/}.  {\tt http://www-calfor.lip6.fr/\~\,jcf/}.
   
 %\bibitem{NTL}  %\bibitem{noro:NTL}
 %{\tt http://www.shoup.net/}.  %{\tt http://www.shoup.net/}.
   
 \bibitem{OPENMATH}  \bibitem{noro:OPENMATH}
 {\tt http://www.openmath.org/}.  {\tt http://www.openmath.org/}.
   
 \bibitem{SINGULAR}  \bibitem{noro:SINGULAR}
 {\tt http://www.singular.uni-kl.de/}.  {\tt http://www.singular.uni-kl.de/}.
   
 \end{thebibliography}  \end{thebibliography}

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.11

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>