[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.5 and 1.10

version 1.5, 2001/11/28 08:46:54 version 1.10, 2002/01/04 06:06:09
Line 1 
Line 1 
 % $OpenXM: OpenXM/doc/Papers/dag-noro-proc.tex,v 1.4 2001/11/26 08:42:28 noro Exp $  % $OpenXM: OpenXM/doc/Papers/dag-noro-proc.tex,v 1.9 2001/12/28 06:06:15 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 76 
Line 76 
 % allows abbreviation of title, if the full title is too long  % allows abbreviation of title, if the full title is too long
 % to fit in the running head  % to fit in the running head
 %  %
 \author{Masayuki Noro\inst{1}}  \author{Masayuki Noro}
 %  %
 %\authorrunning{Masayuki Noro}  %\authorrunning{Masayuki Noro}
 % if there are more than two authors,  % if there are more than two authors,
Line 88 
Line 88 
 \maketitle              % typesets the title of the contribution  \maketitle              % typesets the title of the contribution
   
 \begin{abstract}  \begin{abstract}
 OpenXM \cite{OPENXM} is an infrastructure for exchanging mathematical  Risa/Asir is software for polynomial computation. It has been
   developed for testing experimental polynomial algorithms, and now it
   acts also as a main component in the OpenXM package \cite{OPENXM}.
   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.  Risa/Asir is software for polynomial  distributed computation. In this article we present an overview of
 computation. It has been developed for testing new algorithms, and now  Risa/Asir and review several techniques for improving performances of
 it acts as both a client and a server in the OpenXM package. In this  Groebner basis computation over {\bf Q}. We also show Risa/Asir's
 article we present an overview of Risa/Asir and review several  OpenXM interfaces and their usages.
 techniques for improving performances of Groebner basis computation.  
 We also show Risa/Asir's OpenXM interfaces and their usages by  
 examples.  
 \end{abstract}  \end{abstract}
   
 \section{A computer algebra system Risa/Asir}  \section{A computer algebra system Risa/Asir}
Line 111  decomposition or Galois group computation are built on
Line 111  decomposition or Galois group computation are built on
 user language called Asir language. Asir language can be regarded as C  user language called Asir language. Asir language can be regarded as C
 language without type declaration of variables, with list processing,  language without type declaration of variables, with list processing,
 and with automatic garbage collection. A built-in {\tt gdb}-like user  and with automatic garbage collection. A built-in {\tt gdb}-like user
 language debugger is available. It is open source and the source code  language debugger is available. Risa/Asir is open source and the
 and binaries are available via {\tt ftp} or {\tt CVS}.  Risa/Asir is  source code and binaries are available via {\tt ftp} or {\tt CVS}.
 not only a standalone computer algebra system but also a main  Risa/Asir is not only a standalone computer algebra system but also a
 component in OpenXM package \cite{OPENXM}, which is a collection of  main component in OpenXM package \cite{OPENXM}, which is a collection
 various software compliant to OpenXM protocol specification.  OpenXM  of various software compliant to OpenXM protocol specification.
 is an infrastructure for exchanging mathematical data and Risa/Asir  OpenXM is an infrastructure for exchanging mathematical data and
 has three kind of OpenXM interfaces : client interfaces, an OpenXM  Risa/Asir has three kinds of OpenXM interfaces :
 server, and a subroutine library. Our goals of developing Risa/Asir  OpenXM API in the Risa/Asir user language,
 are as follows:  OpenXM C language API in the Risa/Asir subroutine library,
   and an OpenXM server.
   Our goals of developing Risa/Asir are as follows:
   
 \begin{enumerate}  \begin{enumerate}
 \item Providing a platform for testing new algorithms  \item Providing a platform for testing new algorithms
   
 Risa/Asir has been a platform for testing experimental algorithms in  Risa/Asir has been a platform for testing experimental algorithms in
 polynomial factorization, computation related to Groebner basis,  polynomial factorization, Groebner basis computation,
 cryptography and quantifier elimination. As to Groebner basis, we have  cryptography and quantifier elimination. As to Groebner basis, we have
 been mainly interested in problems over {\bf Q} and we tried applying  been mainly interested in problems over {\bf Q} and we tried applying
 various modular techniques to overcome difficulties caused by huge  various modular techniques to overcome difficulties caused by huge
 intermediate coefficients. We have had several results and they have  intermediate coefficients. We have had several results and they have
 been implemented in Risa/Asir.  been implemented in Risa/Asir with other known methods.
   
 \item General purpose open system  \item General purpose open system
   
 We need a lot of functions to make Risa/Asir a general purpose  We need a lot of functions to make Risa/Asir a general purpose
 computer algebra system.  In recent years we can obtain various high  computer algebra system.  In recent years we can make use of various high
 performance applications or libraries as free software. We wrapped  performance applications or libraries as free software. We wrapped
 such software as OpenXM servers and we started to release a collection  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  of such servers and clients as the OpenXM package in 1997. Risa/Asir
Line 143  is now a main client in the package.
Line 145  is now a main client in the package.
   
 \item Environment for parallel and distributed computation  \item Environment for parallel and distributed computation
   
 The origin of OpenXM is a protocol for doing parallel distributed  The ancestor of OpenXM is a protocol designed for doing parallel
 computations by connecting multiple Risa/Asir's over TCP/IP. OpenXM is  distributed computations by connecting multiple Risa/Asir's over
 also designed to provide an environment efficient parallel distributed  TCP/IP. OpenXM is also designed to provide an environment for
 computation. Currently only client-server communication is available,  efficient parallel distributed computation. Currently only
 but we are preparing a specification OpenXM-RFC 102 allowing  client-server communication is available, but we are preparing a
 client-client communication, which will enable us to execute wider  specification OpenXM-RFC 102 allowing client-client communication,
 range of parallel algorithms efficiently.  which will enable us to execute wider range of parallel algorithms
   requiring collective operations efficiently.
 \end{enumerate}  \end{enumerate}
   
 \subsection{Groebner basis and the related computation}  \subsection{Groebner basis and the related computation}
Line 157  range of parallel algorithms efficiently.
Line 160  range of parallel algorithms efficiently.
 Currently Risa/Asir can only deal with polynomial ring. Operations on  Currently Risa/Asir can only deal with polynomial ring. Operations on
 modules over polynomial rings have not yet supported.  However, both  modules over polynomial rings have not yet supported.  However, both
 commutative polynomial rings and Weyl algebra are supported and one  commutative polynomial rings and Weyl algebra are supported and one
 can compute Groebner basis in both rings over the rationals, fields of  can compute Groebner basis in both rings over {\bf Q}, fields of
 rational functions and finite fields. In the early stage of our  rational functions and finite fields. In the early stage of our
 development, our effort was mainly devoted to improve the efficiency  development, our effort was mainly devoted to improve the efficiency
 of computation over the rationals. Our main tool is modular  of computation over {\bf Q}. Our main tool is modular
 computation. For Buchberger algorithm we adopted the trace lifting  computation. For Buchberger algorithm we adopted the trace lifting
 algorithm by Traverso \cite{TRAV} and elaborated it by applying our  algorithm by Traverso \cite{TRAV} and elaborated it by applying our
 theory on a correspondence between Groebner basis and its modular  theory on a correspondence between Groebner basis and its modular
 image \cite{NOYO}. We also combine the trace lifting with  image \cite{NOYO}. We also combine the trace lifting with
 homogenization to stabilize selection strategies, which enables us to  homogenization to stabilize selection strategies, which enables us to
 compute several examples efficiently which is hard to compute without  compute several examples efficiently which are hard to compute without
 such a combination.  Our modular method can be applied to the change  such a combination.  Our modular method can be applied to the change
 of ordering algorithm and rational univariate representation.  We also  of ordering algorithm\cite{FGLM} and rational univariate
 made a test implementation of $F_4$ algorithm \cite{F4}. Later we will  representation \cite{RUR}.  We also made a test implementation of
 show timing data on Groebner basis computation.  $F_4$ algorithm \cite{F4}. In the later section we will show timing
   data on Groebner basis computation.
   
 \subsection{Polynomial factorization}  \subsection{Polynomial factorization}
   
 Here we briefly review functions on polynomial factorization.  For  Here we briefly review functions on polynomial factorization.  For
 univariate factorization over {\bf Q}, the classical  univariate factorization over {\bf Q}, the Berlekamp-Zassenhaus
 Berlekamp-Zassenhaus algorithm is implemented.  Efficient algorithms  algorithm is implemented.  Efficient algorithms recently proposed have
 recently proposed have not yet implemented.  For Univariate factorizer  not yet implemented.  For univariate factorization over algebraic
 over algebraic number fields, Trager's algorithm \cite{TRAGER} is  number fields, Trager's algorithm \cite{TRAGER} is implemented with
 implemented with some modifications.  Its major applications are  some modifications.  Its major applications are splitting field and
 splitting field and Galois group computation of polynomials over the  Galois group computation of polynomials over {\bf Q} \cite{ANY}. For
 rationals \cite{ANY}. For such purpose a tower of simple extensions  such purpose a tower of simple extensions are suitable because factors
 are suitable because factors represented over a simple extension often  represented over a simple extension often have huge coefficients.  For
 have huge coefficients.  For univariate factorization over finite  univariate factorization over finite fields, equal degree
 fields, equal degree factorization and Cantor-Zassenhaus algorithm are  factorization and Cantor-Zassenhaus algorithm are implemented. We can
 implemented. We can use various representation of finite fields:  use various representation of finite fields: $GF(p)$ with a machine
 $GF(p)$ with a machine integer prime $p$, $GF(p)$ and $GF(p^n)$ with  integer prime $p$, $GF(p)$ and $GF(p^n)$ with any odd prime $p$,
 any odd prime $p$, $GF(2^n)$ with a bit-array representation of  $GF(2^n)$ with a bit-array representation of polynomials over $GF(2)$
 polynomials over $GF(2)$ and $GF(p^n)$ with small $p^n$ represented by  and $GF(p^n)$ with small $p^n$ represented by a primitive root.  For
 a primitive root.  For multivariate factorization over the rationals,  multivariate factorization over {\bf Q}, the EZ(Extended Zassenhaus)
 the classical EZ(Extended Zassenhaus) type algorithm is implemented.  type algorithm is implemented.
   
 \subsection{Other functions}  \subsection{Other functions}
 By applying Groebner basis computation and polynomial factorization,  By applying Groebner basis computation and polynomial factorization,
Line 210  Groebner basis computation over {\bf Q}, which are eas
Line 214  Groebner basis computation over {\bf Q}, which are eas
 implemented but may not be well known.  implemented but may not be well known.
 We use the following notations.  We use the following notations.
 \begin{description}  \begin{description}
 \item $Id(F)$ : a polynomial ideal generated by $F$  \item $<$ : a term order in the set of monomials. It is a total order such that
 \item $\phi_p$ : the canonical projection from ${\bf Z}$ onto $GF(p)$  
 \item $HT(f)$ : the head term of a polynomial with respect to a term order   $\forall t, 1 \le t$ and $\forall s, t, u, s<t \Rightarrow us<ut$.
 \item $HC(f)$ : the head coefficient of a polynomial with respect to a term order  \item $Id(F)$ : a polynomial ideal generated by a polynomial set $F$.
   \item $HT(f)$ : the head term of a polynomial with respect to a term order.
   \item $HC(f)$ : the head coefficient of a polynomial with respect to a term order.
   \item $T(f)$ : terms with non zero coefficients in $f$.
   \item $Spoly(f,g)$ : the S-polynomial of $\{f,g\}$
   
   $Spoly(f,g) = T_{f,g}/HT(f)\cdot f/HC(f) -T_{f,g}/HT(g)\cdot g/HC(g)$, where
   $T_{f,g} = LCM(HT(f),HT(g))$.
   \item $\phi_p$ : the canonical projection from ${\bf Z}$ onto $GF(p)$.
 \end{description}  \end{description}
   
   \subsection{Groebner basis computation and its improvements}
   
   A Groebner basis of an ideal $Id(F)$ can be computed by the Buchberger
   algorithm. The key oeration in the algorithm is the following
   division by a polynomial set.
   \begin{tabbing}
   while \= $\exists g \in G$, $\exists t \in T(f)$ such that $HT(g)|t$ do\\
         \> $f \leftarrow f - t/HT(g) \cdot c/HC(g) \cdot g$, \quad
         where $c$ is the coeffcient of $t$ in $f$
   \end{tabbing}
   This division terminates for any term order.
   With this division, we can show the most primitive version of the
   Buchberger algorithm.
   \begin{tabbing}
   Input : a finite polynomial set $F$\\
   Output : a Groebner basis $G$ of $Id(F)$ with respect to a term order $<$\\
   $G \leftarrow F$; \quad $D \leftarrow \{\{f,g\}| f, g \in G, f \neq g \}$\\
   while \= $D \neq \emptyset$ do \\
         \> $\{f,g\} \leftarrow$ an element of $D$; \quad
             $D \leftarrow D \setminus \{P\}$\\
         \> $R \leftarrow$ a remainder of $Spoly(f,g)$ on division by $G$\\
         \> if $R \neq 0$ then $D \leftarrow D \cup \{\{f,R\}| f \in G\}$; \quad
            $G \leftarrow G \cup \{R\}$\\
   end do\\
   return G
   \end{tabbing}
   Though this algorithm gives a Groebner basis of $Id(F)$,
   it is not practical at all. We need lots of techniques to make
   it practical. The following are major improvements:
   \begin{itemize}
   \item Useless pair detection
   
   We don't have to process all the pairs in $D$ and several useful
   criteria for detecting useless pairs were proposed.
   
   \item Selection strategy
   
   The selection of $\{f,g\}$ greatly affects the subsequent computation.
   The typical strategies are the normal startegy and the sugar strategy.
   The latter was proposed for efficient computation under a non
   degree-compatible order.
   
   \item Modular methods
   
   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
   often occupies a major part in the whole computation. The trace algorithms
   were proposed to reduce such cost. This will be explained in more detail
   in Section \ref{gbhomo}.
   
   \item Change of ordering
   
   For elimination, we need a Groebner basis with respect to a non
   degree-compatible order, but it is often hard to compute it by
   the Buchberger algorithm. If the ideal is zero dimensional, we
   can apply a change of ordering algorithm for a Groebner basis
   with respect to any order and we can obtain a Groebner basis
   with respect to a desired order.
   
   \end{itemize}
   By implementing these techniques, one can obtain Groebner bases for
   wider range of inputs. Nevertheless there are still intractable
   problems with these classical tools. In the subsequent sections
   we show several methods for further improvements.
   
 \subsection{Combination of homogenization and trace lifting}  \subsection{Combination of homogenization and trace lifting}
   \label{gbhomo}
   
 Traverso's trace lifting algorithm can be  Traverso's trace lifting algorithm can be
 formulated in an abstract form as follows \cite{FPARA}.  formulated in an abstract form as follows (c.f. \cite{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 252  The input is homogenized to suppress intermediate coef
Line 330  The input is homogenized to suppress intermediate coef
 of intermediate basis elements.  The number of zero normal forms may  of intermediate basis elements.  The number of zero normal forms may
 increase by the homogenization, but they are detected over  increase by the homogenization, but they are detected over
 $GF(p)$. Finally, by dehomogenizing the candidate we can expect that  $GF(p)$. Finally, by dehomogenizing the candidate we can expect that
 lots of redundant elements can be removed.  We will show later that this is  lots of redundant elements can be removed.
 surely efficient for some input polynomial sets.  
   
 \subsection{Minimal polynomial computation by modular method}  \subsection{Minimal polynomial computation by modular method}
   
 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{FGLM}, but it often takes long
Line 264  case we can apply a simple modular method to compute t
Line 342  case we can apply a simple modular method to compute t
 polynomial.  polynomial.
 \begin{tabbing}  \begin{tabbing}
 Input : a Groebner basis $G$ of $I$, a variable $x_i$\\  Input : a Groebner basis $G$ of $I$, a variable $x_i$\\
 Output : the minimal polynomial of $x$ in $R/I$\\  Output : the minimal polynomial of $x_i$ in $R/I$\\
 do \= \\  do \= \\
 \> $p \leftarrow$ a new prime such that $p \not{|} HC(g)$ for all $g \in G$\\  \> $p \leftarrow$ a new prime such that $p \not{|} HC(g)$ for all $g \in G$\\
 \> $m_p \leftarrow$ the minimal polynomial of $x_i$ in $GF(p)[x_1,\ldots,x_n]/Id(\phi_p(G))$\\  \> $m_p \leftarrow$ the minimal polynomial of $x_i$ in $GF(p)[x_1,\ldots,x_n]/Id(\phi_p(G))$\\
Line 276  In this algorithm, $m_p$ can be obtained by a partial 
Line 354  In this algorithm, $m_p$ can be obtained by a partial 
 $GF(p)$ because $\phi_p(G)$ is a Groebner basis. Once we know the  $GF(p)$ because $\phi_p(G)$ is a Groebner basis. Once we know the
 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. Arguments on \cite{NOYO} ensures that $m(x_i)$ is what we  coefficient, and it can be solved efficiently by $p$-adic method.
 want if it exists. Note that the full FGLM can also be computed by the  Arguments on \cite{NOYO} ensures that $m(x_i)$ is what we want if it
 same method.  exists. Note that the full FGLM can also be computed by the same
   method.
   
 \subsection{Integer contents reduction}  \subsection{Integer contents reduction}
   \label{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
Line 289  polynomial $f$ efficiently by the following method \ci
Line 369  polynomial $f$ efficiently by the following method \ci
 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))$\\
 $g_0 \leftarrow$ an estimate of $\cont(f)$ such that $\cont(f)|g_0$\\  $g_0 \leftarrow$ an estimate of $\cont(f)$ such that $\cont(f)|g_0$\\
 Write $f$ as $f = g_0q+r$ by division with remainder for each coefficient\\  Write $f$ as $f = g_0q+r$ by division with remainder by $g_0$ for each coefficient\\
 If $r = 0$ then return $(g_0,q)$\\  If $r = 0$ then return $(g_0,q)$\\
 else return $(g,g_0/g \cdot q + r/g)$, where $g = \GCD(g_0,\cont(r))$  else return $(g,g_0/g \cdot q + r/g)$, where $g = \GCD(g_0,\cont(r))$
 \end{tabbing}  \end{tabbing}
 By separating the set of coefficients of $f$ into two subsets and by  By separating the set of coefficients of $f$ into two subsets and by
 computing GCD of sums in the elements in the subsets we can estimate  computing GCD of sums of the elements in each subset we can estimate
 $g_0$ with high accuracy. Then other components are easily computed.  $g_0$ with high accuracy. Then other components are easily computed.
   
 %\subsection{Demand loading of reducers}  %\subsection{Demand loading of reducers}
Line 317  measured.
Line 397  measured.
 \subsection{Groebner basis computation}  \subsection{Groebner basis computation}
   
 Table \ref{gbmod} and Table \ref{gbq} show timing data for Groebner  Table \ref{gbmod} and Table \ref{gbq} show timing data for Groebner
 basis computation over $GF(32003)$ and over {\bf Q} respectively.  basis computation over $GF(32003)$ and over {\bf Q} respectively.  In
   Table \ref{gbq} we compare the timing data under various configuration
   of algorithms: with/without trace lifting, homogenization and contents
   reduction.
 $C_n$ is the cyclic $n$ system and $K_n$ is the Katsura $n$ system,  $C_n$ is the cyclic $n$ system and $K_n$ is the Katsura $n$ system,
 both are famous bench mark problems \cite{BENCH}.  We also measured  both are famous bench mark problems \cite{BENCH}.  We also measured
 the timing for $McKay$ system over {\bf Q} \cite{REPL}.  the term  the timing for $McKay$ system over {\bf Q} \cite{REPL}.  the term
 order is graded reverse lexicographic order.  In the both tables, the  order is graded reverse lexicographic order.
 first three rows are timings for the Buchberger algorithm, and the  As to the Buchberger algorithm over $GF(32003)$,
 last two rows are timings for $F_4$ algorithm. As to the Buchberger  Singular\cite{SINGULAR}'s Buchberger algorithm implementation shows
 algorithm over $GF(32003)$, Singular\cite{SINGULAR} shows the best  better performance than Risa/Asir. $F_4$ implementation in Risa/Asir
 performance among the three systems. $F_4$ implementation in Risa/Asir  is outperforms both of them, but it is still several times slower than
 is faster than the Buchberger algorithm implementation in Singular,  $F_4$ implementation in FGb \cite{FGB}.
 but it is still several times slower than $F_4$ implementation in FGb  
 \cite{FGB}.  In Table \ref{gbq}, $C_7$ and $McKay$ can be computed by  
 the Buchberger algorithm with the methods described in Section  
 \ref{gbtech}.  It is obvious that $F_4$ implementation in Risa/Asir  
 over {\bf Q} is too immature. Nevertheless the timing of $McKay$ is  
 greatly reduced.  Fig. \ref{f4vsbuch} explains why $F_4$ is efficient  
 in this case.  The figure shows that the Buchberger algorithm produces  
 normal forms with huge coefficients for S-polynomials after the 250-th  
 one, which are the computations in degree 16.  However, we know that  
 the reduced basis elements have much smaller coefficients after  
 removing contents.  As $F_4$ algorithm automatically produces the  
 reduced ones, the degree 16 computation is quite easy in $F_4$.  
   
   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
   experimental, the timing of $McKay$ is greatly reduced.
   Fig. \ref{f4vsbuch} explains why $F_4$ is efficient in this case.  The
   figure shows that the Buchberger algorithm produces normal forms with
   huge coefficients for S-polynomials after the 250-th one, which are
   the computations in degree 16.  However, we know that the reduced
   basis elements have much smaller coefficients after removing contents.
   As $F_4$ algorithm automatically produces the reduced ones, the degree
   16 computation is quite easy in $F_4$.
   
 \begin{table}[hbtp]  \begin{table}[hbtp]
 \begin{center}  \begin{center}
 \begin{tabular}{|c||c|c|c|c|c|c|c|} \hline  \begin{tabular}{|c||c|c|c|c|c|c|c|} \hline
                 & $C_7$ & $C_8$ & $K_7$ & $K_8$ & $K_9$ & $K_{10}$ & $K_{11}$ \\ \hline                  & $C_7$ & $C_8$ & $K_7$ & $K_8$ & $K_9$ & $K_{10}$ & $K_{11}$ \\ \hline
 Asir $Buchberger$       & 31 & 1687  & 2.6  & 27 & 294  & 4309 & --- \\ \hline  Asir $Buchberger$       & 31 & 1687  & 2.6  & 27 & 294  & 4309 & --- \\ \hline
 Singular & 8.7 & 278 & 0.6 & 5.6 & 54 & 508 & 5510 \\ \hline  %Singular & 8.7 & 278 & 0.6 & 5.6 & 54 & 508 & 5510 \\ \hline
 CoCoA 4 & 241 & $>$ 5h & 3.8 & 35 & 402 &7021  & --- \\ \hline\hline  %CoCoA 4 & 241 & $>$ 5h & 3.8 & 35 & 402 &7021  & --- \\ \hline\hline
 Asir $F_4$      & 5.3 & 129 & 0.5  & 4.5 & 31  & 273 & 2641 \\ \hline  Asir $F_4$      & 5.3 & 129 & 0.5  & 4.5 & 31  & 273 & 2641 \\ \hline
 FGb(estimated)  & 0.9 & 23 & 0.1 & 0.8 & 6 & 51 & 366 \\ \hline  FGb(estimated)  & 0.9 & 23 & 0.1 & 0.8 & 6 & 51 & 366 \\ \hline
 \end{tabular}  \end{tabular}
Line 357  FGb(estimated) & 0.9 & 23 & 0.1 & 0.8 & 6 & 51 & 366 \
Line 442  FGb(estimated) & 0.9 & 23 & 0.1 & 0.8 & 6 & 51 & 366 \
   
 \begin{table}[hbtp]  \begin{table}[hbtp]
 \begin{center}  \begin{center}
 \begin{tabular}{|c||c|c|c|c|c|c|} \hline  \begin{tabular}{|c||c|c|c|c|c|} \hline
                 & $C_7$ & $Homog. C_7$ & $C_8$ & $K_7$ & $K_8$ & $McKay$ \\ \hline                  & $C_7$ & $C_8$ & $K_7$ & $K_8$ & $McKay$ \\ \hline
 Asir $Buchberger$       & 389 & 594 & 54000 & 29 & 299 & 34950 \\ \hline  TR+Homo,Cont & 389 & 54000 & 29 & 299 & 34950 \\ \hline
 Singular & --- & 15247 & --- & 7.6 & 79 & $>$ 20h \\ \hline  TR+Homo & --- & --- & --- & --- & --- \\ \hline
 CoCoA 4 & --- & 13227 & --- & 57 & 709 & --- \\ \hline\hline  TR & --- & --- & --- & --- & --- \\ \hline
 Asir $F_4$      &  989 & 456 & --- & 90 & 991 & 4939 \\ \hline  %Singular & --- & 15247 & --- & 7.6 & 79 & $>$ 20h \\ \hline
 FGb(estimated)  & 8 &11 & 288 &  0.6 & 5 & 10 \\ \hline  %CoCoA 4 & --- & 13227 & --- & 57 & 709 & --- \\ \hline\hline
   %Asir $F_4$     &  989 & 456 & --- & 90 & 991 & 4939 \\ \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 computation over {\bf Q}}
 \label{gbq}  \label{gbq}
Line 373  FGb(estimated) & 8 &11 & 288 &  0.6 & 5 & 10 \\ \hline
Line 462  FGb(estimated) & 8 &11 & 288 &  0.6 & 5 & 10 \\ \hline
 \begin{figure}[hbtp]  \begin{figure}[hbtp]
 \begin{center}  \begin{center}
 \epsfxsize=12cm  \epsfxsize=12cm
 \epsffile{../compalg/ps/blenall.ps}  %\epsffile{../compalg/ps/blenall.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{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
 computation over {\bf Q}. Singular provides a function {\tt finduni}  computations of all variables over {\bf Q} by the modular method.
 for computing the minimal polynomial in each variable in ${\bf  
 Q}[x_1,\ldots,x_n]/I$ for zero dimensional ideal $I$. The modular  
 method used in Asir is efficient when the resulting minimal  
 polynomials have large coefficients and we can verify the fact from Table  
 \ref{minipoly}.  
 \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}
Line 424  Asir & 1.5 & 182 & 12 & 164 & 3420  \\ \hline
Line 509  Asir & 1.5 & 182 & 12 & 164 & 3420  \\ \hline
 %\label{unifac}  %\label{unifac}
 %\end{table}  %\end{table}
   
 Table \ref{multifac} shows timing data for multivariate  Table \ref{multifac} shows timing data for multivariate factorization
 factorization over {\bf Q}.  over {\bf Q}.  $W_{i,j,k}$ is a product of three multivariate
 $W_{i,j,k}$ is a product of three multivariate polynomials  polynomials $Wang[i]$, $Wang[j]$, $Wang[k]$ given in a data file {\tt
 $Wang[i]$, $Wang[j]$, $Wang[k]$ given in a data file  fctrdata} in Asir library directory. It is also included in Risa/Asir
 {\tt fctrdata} in Asir library directory. It is also included  source tree and located in {\tt asir2000/lib}.  These examples have
 in Risa/Asir source tree and located in {\tt asir2000/lib}.  leading coefficients of large degree which vanish at 0 which tend to
 For these examples Risa/Asir shows reasonable performance  cause so-called the leading coefficient problem the bad zero
 compared with other famous systems.  problem. Risa/Asir's implementation carefully treats such cases and it
   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
Line 440  variables & 3 & 5 & 5 & 5 & 4 \\ \hline
Line 526  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}
Line 448  Maple 7& 0.5  & 18  & 967  & 48 & 1.3 \\ \hline
Line 534  Maple 7& 0.5  & 18  & 967  & 48 & 1.3 \\ \hline
 \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},  As to univariate factorization over {\bf Q}, the univariate factorizer
 the univariate factorizer implements only classical  implements old algorithms and its behavior is what one expects,
 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  extraneous factors, but shows poor performance for hard to factor
 where there are little extraneous factors, but  polynomials with many extraneous factors.
 shows poor performance for hard to factor polynomials.  
   
 \section{OpenXM and Risa/Asir OpenXM interfaces}  \section{OpenXM and Risa/Asir OpenXM interfaces}
   
Line 483  the method to reset a server is carefully designed and
Line 568  the method to reset a server is carefully designed and
 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 client interface of {\tt asir}}  \subsection{OpenXM API in Risa/Asir user language}
   
 Risa/Asir is a main client in OpenXM package.  The application {\tt  Risa/Asir is a main client in OpenXM package.  The application {\tt
 asir} can access to OpenXM servers via several built-in interface  asir} can access to OpenXM servers via several built-in interface
Line 503  We show a typical OpenXM session.
Line 588  We show a typical OpenXM session.
 [[1,1],[x^4+y*x^3+y^2*x^2+y^3*x+y^4,1],  [[1,1],[x^4+y*x^3+y^2*x^2+y^3*x+y^4,1],
 [x^4-y*x^3+y^2*x^2-y^3*x+y^4,1],[x-y,1],[x+y,1]]  [x^4-y*x^3+y^2*x^2-y^3*x+y^4,1],[x-y,1],[x+y,1]]
 [5] ox_cmo_rpc(P,"fctr,",x^10000-2^10000*y^10000);  [5] ox_cmo_rpc(P,"fctr,",x^10000-2^10000*y^10000);
 /* call factorizer; an utility function */  /* call factorizer; a utility function */
 0  0
 [6] ox_reset(P); /* reset the computation in the server */  [6] ox_reset(P); /* reset the computation in the server */
 1  1
Line 515  We show a typical OpenXM session.
Line 600  We show a typical OpenXM session.
   
 An application {\tt ox\_asir} is a wrapper of {\tt asir} and provides  An application {\tt ox\_asir} is a wrapper of {\tt asir} and provides
 all the functions of {\tt asir} to OpenXM clients. It completely  all the functions of {\tt asir} to OpenXM clients. It completely
 implements the OpenXM reset protocol and also provides remote  implements the OpenXM reset protocol and also allows remote
 debugging of user programs running on the server. As an example we  debugging of user programs running on the server. As an example we
 show a program for checking whether a polynomial set is a Groebner  show a program for checking whether a polynomial set is a Groebner
 basis or not. A client executes {\tt gbcheck()} and servers execute  basis or not. A client executes {\tt gbcheck()} and servers execute
 {\tt sp\_nf\_for\_gbcheck()} which is a simple normal form computation  {\tt sp\_nf\_for\_gbcheck()} which is a simple normal form computation
 of a S-polynomial. First of all the client collects all critical pairs  of an S-polynomial. First of all the client collects all critical pairs
 necessary for the check. Then the client requests normal form  necessary for the check. Then the client requests normal form
 computations to idling servers. If there are no idling servers the  computations to idling servers. If there are no idling servers the
 clients waits for some servers to return results by {\tt  clients waits for some servers to return results by {\tt
Line 562  def gbcheck(B,V,O,Procs) {
Line 647  def gbcheck(B,V,O,Procs) {
 }  }
 \end{verbatim}  \end{verbatim}
   
 \subsection{Asir OpenXM library {\tt libasir.a}}  \subsection{OpenXM C language API in {\tt libasir.a}}
   
 Asir OpenXM library {\tt libasir.a} includes functions simulating the  Risa/Asir subroutine library {\tt libasir.a} contains functions
 stack machine commands supported in {\tt ox\_asir}.  By linking {\tt  simulating the stack machine commands supported in {\tt ox\_asir}.  By
 libasir.a} an application can use the same functions as in {\tt  linking {\tt libasir.a} an application can use the same functions as
 ox\_asir} without accessing to {\tt ox\_asir} via TCP/IP. There is  in {\tt ox\_asir} without accessing to {\tt ox\_asir} via
 also a stack, which can be manipulated by library functions. In  TCP/IP. There is also a stack, which can be manipulated by the library
 order to make full use of this interface, one has to prepare  functions. In order to make full use of this interface, one has to
 conversion functions between CMO and the data structures proper to the  prepare conversion functions between CMO and the data structures
 application.  A function {\tt asir\_ox\_pop\_string()} is provided to  proper to the application itself.  A function {\tt
 convert CMO to a human readable form, which may be sufficient for a  asir\_ox\_pop\_string()} is provided to convert CMO to a human
 simple use of this interface.  readable form, which may be sufficient for a simple use of this
   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
Line 584  Groebner basis computation over {\bf Q}, many techniqu
Line 670  Groebner basis computation over {\bf Q}, many techniqu
 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 vice versa. User program debugger can be used both for  server, and other clients can call functions in Risa/Asir by
 local and remote debugging. By combining the debugger and the function  implementing the OpenXM client interface.  With the remote debugging
 to reset servers, one will be able to enjoy parallel and distributed  and the function to reset servers, one will be able to enjoy parallel
 computation with OpenXM facilities.  and distributed computation with OpenXM facilities.
 %  %
 \begin{thebibliography}{7}  \begin{thebibliography}{7}
 %  %
Line 639  Journal of Symbolic Computation, 28, 1, 243--263.
Line 725  Journal of Symbolic Computation, 28, 1, 243--263.
 OpenXM committers (2000-2001)  OpenXM committers (2000-2001)
 OpenXM package.  OpenXM package.
 {\tt http://www.openxm.org}.  {\tt http://www.openxm.org}.
   
   \bibitem{RUR}
   Rouillier, R. (1996)
   R\'esolution des syst\`emes z\'ero-dimensionnels.
   Doctoral Thesis(1996), University of Rennes I, France.
   
 \bibitem{SY}  \bibitem{SY}
 Shimoyama, T., Yokoyama, K. (1996)  Shimoyama, T., Yokoyama, K. (1996)

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

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