[BACK]Return to appendix.texi CVS log [TXT][DIR] Up to [local] / OpenXM / src / asir-doc / parts

Diff for /OpenXM/src/asir-doc/parts/appendix.texi between version 1.4 and 1.14

version 1.4, 1999/12/24 04:38:04 version 1.14, 2003/04/28 03:09:23
Line 1 
Line 1 
 @comment $OpenXM: OpenXM/src/asir-doc/parts/appendix.texi,v 1.3 1999/12/21 02:47:30 noro Exp $  @comment $OpenXM: OpenXM/src/asir-doc/parts/appendix.texi,v 1.13 2003/04/24 08:13:24 noro Exp $
 \BJP  \BJP
 @node $BIUO?(B,,, Top  @node $BIUO?(B,,, Top
 @appendix $BIUO?(B  @appendix $BIUO?(B
Line 13 
Line 13 
 * $BJ8K!$N>\:Y(B::  * $BJ8K!$N>\:Y(B::
 * $BE:IU$N%f!<%6Dj5AH!?t%U%!%$%k(B::  * $BE:IU$N%f!<%6Dj5AH!?t%U%!%$%k(B::
 * $BF~NO%$%s%?%U%'!<%9(B::  * $BF~NO%$%s%?%U%'!<%9(B::
   * $B%i%$%V%i%j%$%s%?%U%'!<%9(B::
 * $BJQ99E@(B::  * $BJQ99E@(B::
 * $BJ88%(B::  * $BJ88%(B::
 \E  \E
Line 20 
Line 21 
 * Details of syntax::  * Details of syntax::
 * Files of user defined functions::  * Files of user defined functions::
 * Input interfaces::  * Input interfaces::
   * Library interfaces::
 * Changes::  * Changes::
 * References::  * References::
 \E  \E
Line 78 
Line 80 
     <list>      <list>
 \E  \E
 @end example  @end example
 \JP (@xref{$B$5$^$6$^$J<0(B})  \JP (@xref{$B$5$^$6$^$J<0(B}.)
 \EG (@xref{various expressions})  \EG (@xref{various expressions}.)
   
 @example  @example
 \BJP  \BJP
Line 131 
Line 133 
 \E  \E
 \BEG  \BEG
 <option>:  <option>:
     Character sequence beginning with an alphabetical letter @samp{=} <expression>      Character sequence beginning with an alphabetical letter @samp{=} <expr>
 \E  \E
 @end example  @end example
   
Line 172 
Line 174 
    (X,Y,Japan etc.)     (X,Y,Japan etc.)
 \E  \E
 @end example  @end example
 \JP (@xref{$BJQ?t$*$h$SITDj85(B})  \JP (@xref{$BJQ?t$*$h$SITDj85(B}.)
 \EG (@xref{variables and indeterminates})  \EG (@xref{variables and indeterminates}.)
   
 @example  @example
 \BJP  \BJP
Line 213 
Line 215 
    (a,bCD,c1_2 etc.)     (a,bCD,c1_2 etc.)
 \E  \E
 @end example  @end example
 \JP (@xref{$BJQ?t$*$h$SITDj85(B})  \JP (@xref{$BJQ?t$*$h$SITDj85(B}.)
 \EG (@xref{variables and indeterminates})  \EG (@xref{variables and indeterminates}.)
   
 @example  @example
 \BJP  \BJP
Line 232 
Line 234 
    <complex number>     <complex number>
 \E  \E
 @end example  @end example
 \JP (@xref{$B?t$N7?(B})  \JP (@xref{$B?t$N7?(B}.)
 \EG (@xref{Types of numbers})  \EG (@xref{Types of numbers}.)
   
 @example  @example
 \JP <$BM-M}?t(B>:  \JP <$BM-M}?t(B>:
Line 252 
Line 254 
 \EG <algebraic number>:  \EG <algebraic number>:
    newalg(x^2+1), alg(0)^2+1     newalg(x^2+1), alg(0)^2+1
 @end example  @end example
 \JP (@xref{$BBe?tE*?t$K4X$9$k1i;;(B})  \JP (@xref{$BBe?tE*?t$K4X$9$k1i;;(B}.)
 \EG (@xref{Algebraic numbers})  \EG (@xref{Algebraic numbers}.)
   
 @example  @example
 \JP <$BJ#AG?t(B>:  \JP <$BJ#AG?t(B>:
Line 282 
Line 284 
    @samp{<<} <expr list> @samp{>>}     @samp{<<} <expr list> @samp{>>}
 \E  \E
 @end example  @end example
 \JP (@xref{$B%0%l%V%J4pDl$N7W;;(B})  \JP (@xref{$B%0%l%V%J4pDl$N7W;;(B}.)
 \EG (@xref{Groebner basis computation})  \EG (@xref{Groebner basis computation}.)
   
 @example  @example
 \BJP  \BJP
Line 319 
Line 321 
     @samp{end(quit)} <terminator>      @samp{end(quit)} <terminator>
 \E  \E
 @end example  @end example
 \JP (@xref{$BJ8(B})  \JP (@xref{$BJ8(B}.)
 \EG (@xref{statements})  \EG (@xref{statements}.)
   
 @example  @example
 \JP <$B=*C<(B>:  \JP <$B=*C<(B>:
Line 384  Here, we explain some of them.
Line 386  Here, we explain some of them.
   
 @table @samp  @table @samp
 @item fff  @item fff
 \JP $BBgI8?tAGBN$*$h$SI8?t(B 2 $B$NM-8BBN>e$N0lJQ?tB?9`<00x?tJ,2r(B (@xref{$BM-8BBN$K4X$9$k1i;;(B})  \JP $BBgI8?tAGBN$*$h$SI8?t(B 2 $B$NM-8BBN>e$N0lJQ?tB?9`<00x?tJ,2r(B (@xref{$BM-8BBN$K4X$9$k1i;;(B}.)
 \EG Univariate factorizer over large finite fields (@xref{Finite fields})  \EG Univariate factorizer over large finite fields (@xref{Finite fields}.)
 @item gr  @item gr
 \JP $B%0%l%V%J4pDl7W;;%Q%C%1!<%8(B.  (@xref{$B%0%l%V%J4pDl$N7W;;(B})  \JP $B%0%l%V%J4pDl7W;;%Q%C%1!<%8(B.  (@xref{$B%0%l%V%J4pDl$N7W;;(B}.)
 \EG Groebner basis package.  (@xref{Groebner basis computation})  \EG Groebner basis package.  (@xref{Groebner basis computation}.)
 @item sp  @item sp
 \JP $BBe?tE*?t$N1i;;$*$h$S0x?tJ,2r(B, $B:G>.J,2rBN(B. (@xref{$BBe?tE*?t$K4X$9$k1i;;(B})  \JP $BBe?tE*?t$N1i;;$*$h$S0x?tJ,2r(B, $B:G>.J,2rBN(B. (@xref{$BBe?tE*?t$K4X$9$k1i;;(B}.)
 \EG Operations over algebraic numbers and factorization, Splitting fields. (@xref{Algebraic numbers})  \EG Operations over algebraic numbers and factorization, Splitting fields. (@xref{Algebraic numbers}.)
 @item alpi  @item alpi
 @itemx bgk  @itemx bgk
 @itemx cyclic  @itemx cyclic
Line 399  Here, we explain some of them.
Line 401  Here, we explain some of them.
 @itemx kimura  @itemx kimura
 \JP $B%0%l%V%J4pDl7W;;$K$*$$$F(B, $B%Y%s%A%^!<%/$=$NB>$GMQ$$$i$l$kNc(B.  \JP $B%0%l%V%J4pDl7W;;$K$*$$$F(B, $B%Y%s%A%^!<%/$=$NB>$GMQ$$$i$l$kNc(B.
 \EG Example polynomial sets for benchmarks of Groebner basis computation.  \EG Example polynomial sets for benchmarks of Groebner basis computation.
 (@xref{katsura hkatsura cyclic hcyclic})  (@xref{katsura hkatsura cyclic hcyclic}.)
 @item defs.h  @item defs.h
 \JP $B$$$/$D$+$N%^%/%mDj5A(B. (@xref{$B%W%j%W%m%;%C%5(B})  \JP $B$$$/$D$+$N%^%/%mDj5A(B. (@xref{$B%W%j%W%m%;%C%5(B}.)
 \EG Macro definitions. (@xref{preprocessor})  \EG Macro definitions. (@xref{preprocessor}.)
 @item fctrtest  @item fctrtest
 \BJP  \BJP
 $B@0?t>e$NB?9`<0$N0x?tJ,2r$N%F%9%H(B. REDUCE $B$N(B @samp{factor.tst} $B$*$h$S(B  $B@0?t>e$NB?9`<0$N0x?tJ,2r$N%F%9%H(B. REDUCE $B$N(B @samp{factor.tst} $B$*$h$S(B
Line 421  correctly.
Line 423  correctly.
 @item fctrdata  @item fctrdata
 \BJP  \BJP
 @samp{fctrtest} $B$G;H$o$l$F$$$kNc$r4^$`(B, $B0x?tJ,2r%F%9%HMQ$NNc(B.  @samp{fctrtest} $B$G;H$o$l$F$$$kNc$r4^$`(B, $B0x?tJ,2r%F%9%HMQ$NNc(B.
 @code{Alg[]} $B$K<}$a$i$l$F$$$kNc$O(B, @code{af()} (@xref{asq af}) $BMQ$NNc$G$"$k(B.  @code{Alg[]} $B$K<}$a$i$l$F$$$kNc$O(B, @code{af()} (@ref{asq af af_noalg}) $BMQ$NNc$G$"$k(B.
 \E  \E
 \BEG  \BEG
 This contains example polynomials for factorization.  It includes  This contains example polynomials for factorization.  It includes
 polynomials used in @samp{fctrtest}.  polynomials used in @samp{fctrtest}.
 Polynomials contained in vector @code{Alg[]} is for the algebraic  Polynomials contained in vector @code{Alg[]} is for the algebraic
 factorization @code{af()} (@xref{asq af}).  factorization @code{af()}. (@xref{asq af af_noalg}.)
 \E  \E
 @example  @example
 [45] load("sp")$  [45] load("sp")$
Line 438  factorization @code{af()} (@xref{asq af}).
Line 440  factorization @code{af()} (@xref{asq af}).
 x^9-15*x^6-87*x^3-125  x^9-15*x^6-87*x^3-125
 0msec  0msec
 [177] af(Alg[5],[newalg(Alg[5])]);  [177] af(Alg[5],[newalg(Alg[5])]);
 [[1,1],[75*x^2+(10*#0^7-175*#0^4-470*#0)*x+(3*#0^8-45*#0^5-261*#0^2),1],  [[1,1],[75*x^2+(10*#0^7-175*#0^4-470*#0)*x
 [75*x^2+(-10*#0^7+175*#0^4+395*#0)*x+(3*#0^8-45*#0^5-261*#0^2),1],  +(3*#0^8-45*#0^5-261*#0^2),1],
 [25*x^2+(25*#0)*x+(#0^8-15*#0^5-87*#0^2),1],[x^2+(#0)*x+(#0^2),1],  [75*x^2+(-10*#0^7+175*#0^4+395*#0)*x
 [x+(-#0),1]]  +(3*#0^8-45*#0^5-261*#0^2),1],
   [25*x^2+(25*#0)*x+(#0^8-15*#0^5-87*#0^2),1],
   [x^2+(#0)*x+(#0^2),1],[x+(-#0),1]]
 3.600sec + gc : 1.040sec  3.600sec + gc : 1.040sec
 @end example  @end example
 @item ifplot  @item ifplot
 \BJP  \BJP
 $BIA2h(B (@xref{ifplot conplot plot plotover}) $B$N$?$a$NNc(B. @code{IS[]} $B$K$OM-L>$J(B  $BIA2h(B (@ref{ifplot conplot plot polarplot plotover}) $B$N$?$a$NNc(B. @code{IS[]} $B$K$OM-L>$J(B
 $B6J@~$NNc(B, $BJQ?t(B @code{H, D, C, S} $B$K$O%H%i%s%W$N%O!<%H(B, $B%@%$%d(B, $B%/%i%V(B,  $B6J@~$NNc(B, $BJQ?t(B @code{H, D, C, S} $B$K$O%H%i%s%W$N%O!<%H(B, $B%@%$%d(B, $B%/%i%V(B,
 $B%9%Z!<%I(B ($B$i$7$-(B) $B6J@~$NNc$,F~$C$F$$$k(B.  $B%9%Z!<%I(B ($B$i$7$-(B) $B6J@~$NNc$,F~$C$F$$$k(B.
 \E  \E
 \BEG  \BEG
 Examples for plotting (@xref{ifplot conplot plot plotover}).  Examples for plotting. (@xref{ifplot conplot plot polarplot plotover}.)
 Vector @code{IS[]} contains several famous algebraic curves.  Vector @code{IS[]} contains several famous algebraic curves.
 Variables @code{H, D, C, S} contains something like the suits  Variables @code{H, D, C, S} contains something like the suits
 (Heart, Diamond, Club, and Spade) of cards.  (Heart, Diamond, Club, and Spade) of cards.
Line 478  is defined.  Its returns a rather complex result.
Line 482  is defined.  Its returns a rather complex result.
 [84] load("ratint")$  [84] load("ratint")$
 [102] ratint(x^6/(x^5+x+1),x);  [102] ratint(x^6/(x^5+x+1),x);
 [1/2*x^2,  [1/2*x^2,
 [[(#2)*log(-140*x+(-2737*#2^2+552*#2-131)),161*t#2^3-23*t#2^2+15*t#2-1],  [[(#2)*log(-140*x+(-2737*#2^2+552*#2-131)),
   161*t#2^3-23*t#2^2+15*t#2-1],
 [(#1)*log(-5*x+(-21*#1-4)),21*t#1^2+3*t#1+1]]]  [(#1)*log(-5*x+(-21*#1-4)),21*t#1^2+3*t#1+1]]]
 @end example  @end example
 \BJP  \BJP
Line 511  result and then summing them up all.
Line 516  result and then summing them up all.
 \E  \E
 @item primdec  @item primdec
 \BJP  \BJP
 $BB?9`<0%$%G%"%k$N=`AG%$%G%"%kJ,2r$H$=$N:,4p$NAG%$%G%"%kJ,2r(B  $BM-M}?tBN>e$NB?9`<0%$%G%"%k$N=`AG%$%G%"%kJ,2r$H$=$N:,4p$NAG%$%G%"%kJ,2r(B
 (@pxref{primadec primedec}).  (@pxref{primadec primedec}).
 \E  \E
 \BEG  \BEG
 Primary ideal decomposition of polynomial ideals and prime compotision  Primary ideal decomposition of polynomial ideals and prime compotision
 of radicals (@pxref{primadec primedec}).  of radicals over the rationals (@pxref{primadec primedec}).
 \E  \E
   @item primdec_mod
   \BJP
   $BM-8BBN>e$NB?9`<0%$%G%"%k$N:,4p$NAG%$%G%"%kJ,2r(B
   (@pxref{primedec_mod}).
   \E
   \BEG
   Prime decomposition of radicals of polynomial ideals
   over finite fields (@pxref{primedec_mod}).
   \E
   @item bfct
   \BJP
   b $B4X?t$N7W;;(B.
   \E
   \BEG
   Computation of b-function.
   \E
   (@pxref{bfunction bfct generic_bfct ann ann0}).
 @end table  @end table
   
 \BJP  \BJP
Line 530  of radicals (@pxref{primadec primedec}).
Line 552  of radicals (@pxref{primadec primedec}).
 \E  \E
   
 \BJP  \BJP
 $B4{$K=R$Y$?$h$&$K(B, DOS $BHG(B, Windows $BHG(B, Macintosh $BHG$G$OF~NO%$%s%?%U%'!<%9$H(B  DOS $BHG(B, Windows $BHG$G$OF~NO%$%s%?%U%'!<%9$H(B
 $B$7$F%3%^%s%I%i%$%sJT=8$*$h$S%R%9%H%jCV$-49$($,AH$_9~$^$l$F$$$k(B. UNIX $BHG$G$O(B  $B$7$F%3%^%s%I%i%$%sJT=8$*$h$S%R%9%H%jCV$-49$($,AH$_9~$^$l$F$$$k(B. UNIX $BHG$G$O(B
 $B$3$N$h$&$J5!G=$OAH$_9~$^$l$F$$$J$$$,(B, $B0J2<$G=R$Y$k$h$&$JF~NO%$%s%?%U%'!<%9(B  $B$3$N$h$&$J5!G=$OAH$_9~$^$l$F$$$J$$$,(B, $B0J2<$G=R$Y$k$h$&$JF~NO%$%s%?%U%'!<%9(B
 $B$,MQ0U$5$l$F$$$k(B. $B$3$l$i$O(B @b{Asir} $B%P%$%J%j$H$H$b$K(B ftp $B2DG=$G$"$k(B.  $B$,MQ0U$5$l$F$$$k(B. $B$3$l$i$O(B @b{Asir} $B%P%$%J%j$H$H$b$K(B ftp $B2DG=$G$"$k(B.
 ftp server $B$K4X$7$F$O(B @xref{$BF~<jJ}K!(B}.  ftp server $B$K4X$7$F$O(B @xref{$BF~<jJ}K!(B}.
   
   Windows $BHG(B @samp{asirgui.exe} $B$O(B, $BDL>o$N(B Windows $B$K$*$1$k47=,$H$O0[$J$k(B
   $B7A$N%3%T!<%Z!<%9%H5!G=$rDs6!$7$F$$$k(B. Window $B>e$KI=<($5$l$F$$$kJ8;zNs(B
   $B$KBP$7%^%&%9:8%\%?%s$r2!$7$J$,$i%I%i%C%0$9$k$HJ8;zNs$,A*Br$5$l$k(B.
   $B%\%?%s$rN%$9$HH?E>I=<($,85$KLa$k$,(B, $B$=$NJ8;zNs$O%3%T!<%P%C%U%!$K(B
   $B<h$j9~$^$l$F$$$k(B. $B%^%&%91&%\%?%s$r2!$9$H(B, $B%3%T!<%P%C%U%!Fb$NJ8;zNs$,(B
   $B8=:_$N%+!<%=%k0LCV$KA^F~$5$l$k(B. $B4{$KI=<($5$l$?ItJ,$O(B readonly
   $B$G$"$j(B, $B$=$NItJ,$r2~JQ$G$-$J$$$3$H$KCm0U$7$FM_$7$$(B.
 \E  \E
 \BEG  \BEG
 As already mentioned a command line editing facility and a history  A command line editing facility and a history
 substitution facility are built-in for DOS, Windows Macintosh version  substitution facility are built-in for DOS, Windows version
 of @b{Asir}. UNIX versions of @b{Asir} do not have such built-in facilites.  of @b{Asir}. UNIX versions of @b{Asir} do not have such built-in facilites.
 Instead, the following input interfaces are prepared. This are also available  Instead, the following input interfaces are prepared. This are also available
 from our ftp server. As for our ftp server @xref{How to get Risa/Asir}.  from our ftp server. As for our ftp server @xref{How to get Risa/Asir}.
   
   On Windows, @samp{asirgui.exe} has a copy and paste functionality
   different from Windows convention. Press the left button of the mouse
   and drag the mouse cursor on a text, then the text is selected and is
   highlighted.  When the button is released, highlighted text returns to
   the normal state and it is saved in the copy buffer.  If the right
   button is pressed, the text in the copy buffer is inserted at the
   current text cursor position. Note that the existing text is read-only and
   one cannot modify it.
 \E  \E
   
 @menu  @menu
Line 575  available for UNIX commands, including @samp{asir}.
Line 614  available for UNIX commands, including @samp{asir}.
 [[1,1],[x-1,1],[x^4+x^3+x^2+x+1,1]]  [[1,1],[x-1,1],[x^4+x^3+x^2+x+1,1]]
 [1] !!                              /* !!+Return                      */  [1] !!                              /* !!+Return                      */
 \BJP  \BJP
 fctr(x^5-1);                        /* $BD>A0$NF~NO$,8=$l$k$FJT=8$G$-$k(B */  fctr(x^5-1);                        /* $BD>A0$NF~NO$,8=$l$FJT=8$G$-$k(B */
 ...                                 /* $BJT=8(B+Return                    */  ...                                 /* $BJT=8(B+Return                  */
 \E  \E
 \BEG  \BEG
 fctr(x^5-1);                        /* The last input appears.        */  fctr(x^5-1);                        /* The last input appears.        */
Line 638  The way of setting up and the usage can be found at th
Line 677  The way of setting up and the usage can be found at th
 \E  \E
   
 \BJP  \BJP
   @node $B%i%$%V%i%j%$%s%?%U%'!<%9(B,,, $BIUO?(B
   @section $B%i%$%V%i%j%$%s%?%U%'!<%9(B
   \E
   \BEG
   @node Library interfaces,,, Appendix
   @section Library interfaces
   \E
   
   \BJP
   @b{Asir} $B$NDs6!$9$k5!G=$rB>$N%W%m%0%i%`$+$i;HMQ$9$kJ}K!$H$7$F(B, @b{OpenXM} $B$K$h$k(B
   $BB>$K(B, $B%i%$%V%i%j$ND>@\%j%s%/$K$h$kJ}K!$,2DG=$G$"$k(B. $B%i%$%V%i%j$O(B,
   GC $B%i%$%V%i%j$G$"$k(B @samp{libasir-gc.a} $B$H$H$b$K(B @b{OpenXM}
   distribution (@code{http://www.math.kobe-u.ac.jp/OpenXM}) $B$K4^$^$l$k(B.
   $B8=>u$G$O(B@b{OpenXM} $B%$%s%?%U%'!<%9$N$_$,8x3+$5$l$F$$$k$?$a(B, $B0J2<$G$O(B
   @b{OpenXM} $B$,%$%s%9%H!<%k$5$l$F$$$k$H2>Dj$9$k(B. @b{OpenXM} root $B%G%#%l%/%H%j$r(B
   @code{$OpenXM_HOME}$B$H=q$/(B. $B%i%$%V%i%j%U%!%$%k$OA4$F(B @samp{$OpenXM_HOME/lib}
   $B$K$*$+$l$F$$$k(B. $B%i%$%V%i%j$K$O0J2<$N(B 3 $B<oN`$,$"$k(B.
   \E
   \BEG
   It is possible to link an @b{Asir} library to use the functionalities of
   @b{Asir} from other programs.
   The necessary libraries are included in the @b{OpenXM} distribution
   @ifhtml
   (<A HREF="http://www.math.kobe-u.ac.jp/OpenXM">OpenXM </A>)
   @end ifhtml
   (@code{http://www.math.kobe-u.ac.jp/OpenXM}).
   At present only the @b{OpenXM} interfaces are available. Here we assume
   that @b{OpenXM} is already installed. In the following
   @code{$OpenXM_HOME} denotes the @b{OpenXM} root directory.
   All the library files are placed in @samp{$OpenXM_HOME/lib}.
   There are three kinds of libraries as follows.
   \E
   @itemize @bullet
   @item @samp{libasir.a}
   @*
   \BJP
   @b{PARI}, @b{X11} $B4XO"$N5!G=$r4^$^$J$$(B.
   $B%j%s%/$K$O(B @samp{libasir-gc.a} $B$N$_$,I,MW(B.
   \E
   \BEG
   It does not contain the functionalities related to @b{PARI} and @b{X11}.
   Only @samp{libasir-gc.a} is necessary for linking.
   \E
   
   @item @samp{libasir_pari.a}
   @*
   \BJP
   @b{X11} $B4XO"$N5!G=$r4^$^$J$$(B. $B%j%s%/$K$O(B @samp{libasir-gc.a},
   @samp{libpari.a} $B$,I,MW(B.
   \E
   \BEG
   It does not contain the functionalities related to @b{X11}.
   @samp{libasir-gc.a}, @samp{libpari.a} are necessary for linking.
   \E
   
   @item @samp{libasir_pari_X.a}
   @*
   \BJP
   $BA4$F$N5!G=$r4^$`(B. $B%j%s%/$K$O(B @samp{libasir-gc.a}, @samp{libpari.a}
   $B$*$h$S(B @b{X11} $B4XO"$N%i%$%V%i%j;XDj$,I,MW(B.
   \E
   \BEG
   All the functionalities are included. @samp{libasir-gc.a}, @samp{libpari.a}
   and libraries related to @b{X11} are necessary for linking.
   \E
   @end itemize
   \BJP
   $BDs6!$5$l$F$$$k4X?t$O0J2<$NDL$j$G$"$k(B.
   \E
   @itemize @bullet
   @item @code{int asir_ox_init(int @var{byteorder})}
   @*
   \BJP
   $B%i%$%V%i%j$N=i4|2=(B. @var{byteorder} $B$O%a%b%j>e$X$N%P%$%J%j(B CMO $B%G!<%?(B
   $B$X$NE83+J}K!$r;XDj$9$k(B. @var{byteorder} $B$,(B 0 $B$N$H$-%^%7%s8GM-$N(B byteorder
   $B$rMQ$$$k(B. 1 $B$N$H$-(B network byteorder $B$rMQ$$$k(B. $B=i4|2=$K@.8y$7$?>l9g(B 0,
   $B<:GT$N;~(B -1 $B$rJV$9(B.
   \E
   \BEG
   It initializes the library.
   @var{byteorder} specifies the format of binary CMO data on the memory.
   If @var{byteorder} is 0, the byteorder native to the machine is used.
   If @var{byteorder} is 1, the network byteorder is used. It returns
   0 if the initialization is successful, -1 otherwise.
   \E
   
   @item @code{void asir_ox_push_cmo(void *@var{cmo})}
   @*
   \BJP
   $B%a%b%j>e$KCV$+$l$?(B CMO $B%G!<%?$r(B @b{Asir} $B$NFbIt7A<0$KJQ49$7$F%9%?%C%/$K(B
   push $B$9$k(B.
   \E
   \BJP
   It converts CMO data pointed by @var{cmo} into an @b{Asir} object and
   it pushes the object onto the stack.
   \E
   
   @item @code{int asir_ox_peek_cmo_size()}
   @*
   \BJP
   $B%9%?%C%/$N:G>e0L$K$"$k(B @b{Asir} $B%G!<%?$r(B CMO $B$KJQ49$7$?$H$-$N%5%$%:$rJV$9(B.
   $BJQ49ITG=$J>l9g$K$O(B -1 $B$rJV$9(B.
   \E
   \BEG
   It returns the size of the object at the top of the stack as CMO object.
   It returns -1 if the object cannot be converted into CMO object.
   \E
   
   @item @code{int asir_ox_pop_cmo(void *@var{cmo}, int @var{limit})}
   @*
   \BJP
   $B%9%?%C%/$N:G>e0L$K$"$k(B @b{Asir} $B%G!<%?$r(B pop $B$7(B, CMO $B$KJQ49$7$F(B @var{cmo}$B$G(B
   $B;X$5$l$kG[Ns$K=q$-(B, CMO $B$N%5%$%:$rJV$9(B. $B$3$N$H$-(B, CMO $B$N%5%$%:$,(B
   @var{limit} $B$h$jBg$-$$>l9g$K$O(B -1 $B$rJV$9(B. @var{cmo} $B$OD9$5$,>/$J$/$H$b(B
   @var{limit}$B%P%$%H$NG[Ns$r;X$9I,MW$,$"$k(B. $BJQ49$5$l$?(B CMO $B$r<}MF$G$-$k(B
   $BG[Ns$ND9$5$rCN$k$?$a$K(B, @code{asir_ox_peek_cmo_size} $B$rMQ$$$k(B.
   \E
   \BEG
   It pops an @b{Asir} object at the top of the stack and it converts
   the object into CMO data. If the size of the CMO data is not greater
   than @var{limit}, then the data is written in @var{cmo} and the size
   is returned. Otherwise -1 is returned. The size of the array pointed
   by @var{cmo} must be at least @var{limit}. In order to know the size
   of converted CMO data in advance @code{asir_ox_peek_cmo_size} is called.
   \E
   
   @item @code{void asir_ox_push_cmd(int @var{cmd})}
   @*
   \BJP
   $B%9%?%C%/%^%7%s%3%^%s%I(B @var{cmd} $B$r<B9T$9$k(B.
   \E
   \BEG
   It executes a stack machine command @var{cmd}.
   \E
   
   @item @code{void asir_ox_execute_string(char *@var{str})}
   @*
   \BJP
   @b{Asir} $B$,<B9T2DG=$JJ8;zNs(B @var{str} $B$r<B9T$7(B, $B$=$N7k2L$r%9%?%C%/$K(B push $B$9$k(B.
   \E
   \BEG
   It evaluates @var{str} as a string written in the @b{Asir} user language.
   The result is pushed onto the stack.
   \E
   @end itemize
   
   \BJP
   include $B$9$Y$-(B header file $B$O(B @samp{$OpenXM_HOME/include/asir/ox.h} $B$G$"$k(B.
   $B$3$N(B header file $B$K$O(B, @b{OpenXM} $B$K4X$9$kA4$F$N(B tag, command $B$NDj5A$,4^$^$l$F(B
   $B$$$k(B.
   $B<!$NNc(B (@samp{$OpenXM_HOME/doc/oxlib/test3.c}) $B$O>e5-4X?t$N;HMQ(B
   $BK!$r<($9(B.
   \E
   \BEG
   A program calling the above functions should include
   @samp{$OpenXM_HOME/include/asir/ox.h}.
   In this file all the definitions of @b{OpenXM} tags and commands.
   The following example
   (@samp{$OpenXM_HOME/doc/oxlib/test3.c}) illustrates the usage of
   the above functions.
   \E
   
   @example
   #include <asir/ox.h>
   #include <signal.h>
   
   main(int argc, char **argv)
   @{
     char buf[BUFSIZ+1];
     int c;
     unsigned char sendbuf[BUFSIZ+10];
     unsigned char *result;
     unsigned char h[3];
     int len,i,j;
     static int result_len = 0;
     char *kwd,*bdy;
     unsigned int cmd;
   
     signal(SIGINT,SIG_IGN);
     asir_ox_init(1); /* 1: network byte order; 0: native byte order */
     result_len = BUFSIZ;
     result = (void *)malloc(BUFSIZ);
     while ( 1 ) @{
       printf("Input>"); fflush(stdout);
       fgets(buf,BUFSIZ,stdin);
       for ( i = 0; buf[i] && isspace(buf[i]); i++ );
       if ( !buf[i] )
         continue;
       kwd = buf+i;
       for ( ; buf[i] && !isspace(buf[i]); i++ );
       buf[i] = 0;
       bdy = buf+i+1;
       if ( !strcmp(kwd,"asir") ) @{
         sprintf(sendbuf,"%s;",bdy);
         asir_ox_execute_string(sendbuf);
       @} else if ( !strcmp(kwd,"push") ) @{
         h[0] = 0;
         h[2] = 0;
         j = 0;
         while ( 1 ) @{
           for ( ; (c= *bdy) && isspace(c); bdy++ );
           if ( !c )
             break;
           else if ( h[0] ) @{
             h[1] = c;
             sendbuf[j++] = strtoul(h,0,16);
             h[0] = 0;
           @} else
             h[0] = c;
           bdy++;
         @}
         if ( h[0] )
           fprintf(stderr,"Number of characters is odd.\n");
         else @{
           sendbuf[j] = 0;
           asir_ox_push_cmo(sendbuf);
         @}
       @} else if ( !strcmp(kwd,"cmd") ) @{
         cmd = atoi(bdy);
         asir_ox_push_cmd(cmd);
       @} else if ( !strcmp(kwd,"pop") ) @{
         len = asir_ox_peek_cmo_size();
         if ( !len )
           continue;
         if ( len > result_len ) @{
           result = (char *)realloc(result,len);
           result_len = len;
         @}
         asir_ox_pop_cmo(result,len);
         printf("Output>"); fflush(stdout);
         printf("\n");
         for ( i = 0; i < len; ) @{
           printf("%02x ",result[i]);
           i++;
           if ( !(i%16) )
             printf("\n");
         @}
         printf("\n");
       @}
     @}
   @}
   @end example
   \BJP
   $B$3$N%W%m%0%i%`$O(B, @var{keyword} @var{body} $B$J$k(B 1 $B9T$rF~NO$H$7$F<u$1<h$j(B
   @var{keyword} $B$K1~$8$F<!$N$h$&$JF0:n$r9T$&(B.
   \E
   \BEG
   This program receives a line in the form of @var{keyword} @var{body}
   as an input and it executes the following operations according to
   @var{keyword}.
   \E
   @itemize @bullet
   @item @code{asir} @var{body}
   @*
   \BJP
   @var{body} $B$r(B @b{Asir} $B8@8l$G=q$+$l$?<0$H$_$J$7(B, $B<B9T7k2L$r%9%?%C%/$K(B push $B$9$k(B.
   @code{asir_ox_execute_string()} $B$,MQ$$$i$l$k(B.
   \E
   \BEG
   @var{body} is regarded as an expression written in the @b{Asir} user language.
   The expression is evaluated and the result is pushed onto the stack.
   @code{asir_ox_execute_string()} is called.
   \E
   
   @item @code{push} @var{body}
   @*
   \BJP
   @var{body} $B$r(B 16 $B?J?t$GI=<($5$l$?(B CMO $B%G!<%?$H$_$J$7(B, @b{Asir} $B%*%V%8%'%/%H$KJQ49(B
   $B$7$F%9%?%C%/$K(B push $B$9$k(B. @code{asir_ox_push_cmo()} $B$,MQ$$$i$l$k(B.
   \E
   \BEG
   @var{body} is regarded as a CMO object in the hexadecimal form.
   The CMO object is converted into an @b{Asir} object and is pushed onto the stack.
   @code{asir_ox_push_cmo()} is called.
   \E
   
   @item @code{pop}
   @*
   \BJP
   $B%9%?%C%/:G>e0L$N%*%V%8%'%/%H$r(B CMO $B$KJQ49$7(B, 16 $B?J?t$GI=<($9$k(B.
   @code{asir_ox_peek_cmo_size()} $B$*$h$S(B @code{asir_ox_pop_cmo()} $B$,MQ$$$i$l$k(B.
   \E
   \BEG
   The object at the top of the stack is converted into a CMO object
   and it is displayed in the hexadecimal form.
   @code{asir_ox_peek_cmo_size()} and @code{asir_ox_pop_cmo()} are called.
   \E
   
   @item @code{cmd} @var{body}
   @*
   \BJP
   @var{body} $B$r(B SM $B%3%^%s%I$H$_$J$7(B, $B<B9T$9$k(B.
   @code{asir_ox_push_cmd()} $B$,MQ$$$i$l$k(B.
   \E
   \BEG
   @var{body} is regarded as an SM command and the command is executed.
   @code{asir_ox_push_cmd()} is called.
   \E
   @end itemize
   
   \BJP
 @node $BJQ99E@(B,,, $BIUO?(B  @node $BJQ99E@(B,,, $BIUO?(B
 @section $BJQ99E@(B  @section $BJQ99E@(B
 \E  \E
Line 877  Proc. ISSAC'92, 387-396.
Line 1217  Proc. ISSAC'92, 387-396.
 Noro, M., Yokoyama, K., "A Modular Method to Compute the Rational Univariate  Noro, M., Yokoyama, K., "A Modular Method to Compute the Rational Univariate
 Representation of Zero-Dimensional Ideals",  Representation of Zero-Dimensional Ideals",
 J. Symb. Comp. 28/1 (1999), 243-263.  J. Symb. Comp. 28/1 (1999), 243-263.
   @item [Saito,Sturmfels,Takayama]
   Saito, M., Sturmfels, B., Takayama, N.,
   "Groebner deformations of hypergeometric differential equations",
   Algorithms and Computation in Mathematics 6, Springer-Verlag (2000).
 @item [Shimoyama,Yokoyama]  @item [Shimoyama,Yokoyama]
 Shimoyama, T., Yokoyama, K.,  Shimoyama, T., Yokoyama, K.,
 "Localization and primary decomposition of polynomial ideals",  "Localization and primary decomposition of polynomial ideals",
Line 888  J. Symb. Comp. 20 (1995), 364-397.
Line 1232  J. Symb. Comp. 20 (1995), 364-397.
 Traverso, C., "Groebner trace algorithms", Proc. ISSAC '88(LNCS 358), 125-138.  Traverso, C., "Groebner trace algorithms", Proc. ISSAC '88(LNCS 358), 125-138.
 @item [Weber]  @item [Weber]
 Weber, K., "The accelerated Integer GCD Algorithm", ACM TOMS, 21, 1(1995), 111-122.  Weber, K., "The accelerated Integer GCD Algorithm", ACM TOMS, 21, 1(1995), 111-122.
   @item [Yokoyama]
   Yokoyama, K., "Prime decomposition of polynomial ideals over finite fields",
   Proc. ICMS, (2002), 217-227.
 @end table  @end table
   

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.14

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