| version 1.10, 2002/01/04 06:06:09 | 
version 1.11, 2002/02/25 01:02:14 | 
 | 
 | 
|  % $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. | 
 | 
 | 
|  \usepackage{epsfig} | 
 \usepackage{epsfig} | 
|  \def\cont{{\rm cont}} | 
 \def\cont{{\rm cont}} | 
|  \def\GCD{{\rm GCD}} | 
 \def\GCD{{\rm GCD}} | 
|   | 
 \def\Q{{\bf Q}} | 
|  % | 
 % | 
|  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
|   | 
  | 
 | 
 | 
|   | 
  | 
|  \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 | 
 | 
 | 
|  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} |