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

version 1.9, 2001/12/28 06:06:15 version 1.10, 2002/01/04 06:06:09
Line 1 
Line 1 
 % $OpenXM: OpenXM/doc/Papers/dag-noro-proc.tex,v 1.8 2001/11/30 02:08:46 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 117  Risa/Asir is not only a standalone computer algebra sy
Line 117  Risa/Asir is not only a standalone computer algebra sy
 main component in OpenXM package \cite{OPENXM}, which is a collection  main component in OpenXM package \cite{OPENXM}, which is a collection
 of various software compliant to OpenXM protocol specification.  of various software compliant to OpenXM protocol specification.
 OpenXM is an infrastructure for exchanging mathematical data and  OpenXM is an infrastructure for exchanging mathematical data and
 Risa/Asir has three kinds of OpenXM interfaces : as a client, as a  Risa/Asir has three kinds of OpenXM interfaces :
 server, and as 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
Line 177  data on Groebner basis computation.
Line 179  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  not yet implemented.  For univariate factorization over algebraic
 factorization over algebraic number fields, Trager's algorithm  number fields, Trager's algorithm \cite{TRAGER} is implemented with
 \cite{TRAGER} is implemented with some modifications.  Its major  some modifications.  Its major applications are splitting field and
 applications are splitting field and Galois group computation of  Galois group computation of polynomials over {\bf Q} \cite{ANY}. For
 polynomials over {\bf Q} \cite{ANY}. For such purpose a tower of  such purpose a tower of simple extensions are suitable because factors
 simple extensions are suitable because factors represented over a  represented over a simple extension often have huge coefficients.  For
 simple extension often have huge coefficients.  For univariate  univariate factorization over finite fields, equal degree
 factorization over finite fields, equal degree factorization and  factorization and Cantor-Zassenhaus algorithm are implemented. We can
 Cantor-Zassenhaus algorithm are implemented. We can use various  use various representation of finite fields: $GF(p)$ with a machine
 representation of finite fields: $GF(p)$ with a machine integer prime  integer prime $p$, $GF(p)$ and $GF(p^n)$ with any odd prime $p$,
 $p$, $GF(p)$ and $GF(p^n)$ with any odd prime $p$, $GF(2^n)$ with a  $GF(2^n)$ with a bit-array representation of polynomials over $GF(2)$
 bit-array representation of polynomials over $GF(2)$ and $GF(p^n)$  and $GF(p^n)$ with small $p^n$ represented by a primitive root.  For
 with small $p^n$ represented by a primitive root.  For multivariate  multivariate factorization over {\bf Q}, the EZ(Extended Zassenhaus)
 factorization over {\bf Q}, the classical EZ(Extended  type algorithm is implemented.
 Zassenhaus) 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 396  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}, Risa/Asir computed $C_7$ and $McKay$  
 by the Buchberger algorithm with the methods described in Section  
 \ref{gbhomo} and \ref{gbcont}.  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 437  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 461  FGb(estimated) & 8 &11 & 288 &  0.6 & 5 & 10 \\ \hline
Line 470  FGb(estimated) & 8 &11 & 288 &  0.6 & 5 & 10 \\ \hline
 \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 505  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 521  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 529  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 with  
 many extraneous factors.  
   
 \section{OpenXM and Risa/Asir OpenXM interfaces}  \section{OpenXM and Risa/Asir OpenXM interfaces}
   
Line 565  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 644  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} contains 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 the 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 itself.  A function {\tt asir\_ox\_pop\_string()} is  proper to the application itself.  A function {\tt
 provided to convert CMO to a human readable form, which may be  asir\_ox\_pop\_string()} is provided to convert CMO to a human
 sufficient for a 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

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

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