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

Diff for /OpenXM/src/asir-doc/parts/type.texi between version 1.3 and 1.15

version 1.3, 1999/12/21 02:47:32 version 1.15, 2019/09/13 09:31:00
Line 1 
Line 1 
 @comment $OpenXM$  @comment $OpenXM: OpenXM/src/asir-doc/parts/type.texi,v 1.14 2016/03/22 07:25:14 noro Exp $
 \BJP  \BJP
 @node $B7?(B,,, Top  @node $B7?(B,,, Top
 @chapter $B7?(B  @chapter $B7?(B
Line 52  Each example shows possible forms of inputs for @b{Asi
Line 52  Each example shows possible forms of inputs for @b{Asi
   
 @table @code  @table @code
 @item 0 @b{0}  @item 0 @b{0}
   @*
 \BJP  \BJP
 $B<B:]$K$O(B 0 $B$r<1JL;R$K$b$DBP>]$OB8:_$7$J$$(B. 0 $B$O(B, C $B$K$*$1$k(B 0 $B%]%$%s%?$K(B  $B<B:]$K$O(B 0 $B$r<1JL;R$K$b$DBP>]$OB8:_$7$J$$(B. 0 $B$O(B, C $B$K$*$1$k(B 0 $B%]%$%s%?$K(B
 $B$h$jI=8=$5$l$F$$$k(B. $B$7$+$7(B, $BJX59>e(B @b{Asir} $B$N(B @code{type(0)} $B$O(B  $B$h$jI=8=$5$l$F$$$k(B. $B$7$+$7(B, $BJX59>e(B @b{Asir} $B$N(B @code{type(0)} $B$O(B
Line 83  x  afo  (2.3*x+y)^10
Line 83  x  afo  (2.3*x+y)^10
   
 \BJP  \BJP
 $BB?9`<0$O(B, $BA4$FE83+$5$l(B, $B$=$N;~E@$K$*$1$kJQ?t=g=x$K=>$C$F(B, $B:F5"E*$K(B  $BB?9`<0$O(B, $BA4$FE83+$5$l(B, $B$=$N;~E@$K$*$1$kJQ?t=g=x$K=>$C$F(B, $B:F5"E*$K(B
 1 $BJQ?tB?9`<0$H$7$F9_QQ$N=g$K@0M}$5$l$k(B (@xref{$BJ,;6I=8=B?9`<0(B}).  1 $BJQ?tB?9`<0$H$7$F9_QQ$N=g$K@0M}$5$l$k(B. (@xref{$BJ,;6I=8=B?9`<0(B}.)
 $B$3$N;~(B, $B$=$NB?9`<0$K8=$l$k=g=x:GBg$NJQ?t$r(B @b{$B<gJQ?t(B} $B$H8F$V(B.  $B$3$N;~(B, $B$=$NB?9`<0$K8=$l$k=g=x:GBg$NJQ?t$r(B @b{$B<gJQ?t(B} $B$H8F$V(B.
 \E  \E
 \BEG  \BEG
 Every polynomial is maintained internally in its full expanded form,  Every polynomial is maintained internally in its full expanded form,
 represented as a nested univariate polynomial, according to the current  represented as a nested univariate polynomial, according to the current
 variable ordering, arranged by the descending order of exponents.  variable ordering, arranged by the descending order of exponents.
 (@xref{Distributed polynomial}).  (@xref{Distributed polynomial}.)
 In the representation, the indeterminate (or variable), appearing in  In the representation, the indeterminate (or variable), appearing in
 the polynomial, with maximum ordering is called the @b{main variable}.  the polynomial, with maximum ordering is called the @b{main variable}.
 Moreover, we call the coefficient of the maximum degree term of  Moreover, we call the coefficient of the maximum degree term of
Line 207  on the whole value of that vector.
Line 207  on the whole value of that vector.
 [1] for (I=0;I<3;I++)A3[I] = newvect(3);  [1] for (I=0;I<3;I++)A3[I] = newvect(3);
 [2] for (I=0;I<3;I++)for(J=0;J<3;J++)A3[I][J]=newvect(3);  [2] for (I=0;I<3;I++)for(J=0;J<3;J++)A3[I][J]=newvect(3);
 [3] A3;  [3] A3;
 [ [ [ 0 0 0 ] [ 0 0 0 ] [ 0 0 0 ] ] [ [ 0 0 0 ] [ 0 0 0 ] [ 0 0 0 ] ] [ [ 0 0 0 ] [ 0 0 0 ] [ 0 0 0 ] ] ]  [ [ [ 0 0 0 ] [ 0 0 0 ] [ 0 0 0 ] ]
   [ [ 0 0 0 ] [ 0 0 0 ] [ 0 0 0 ] ]
   [ [ 0 0 0 ] [ 0 0 0 ] [ 0 0 0 ] ] ]
 [4] A3[0];  [4] A3[0];
 [ [ 0 0 0 ] [ 0 0 0 ] [ 0 0 0 ] ]  [ [ 0 0 0 ] [ 0 0 0 ] [ 0 0 0 ] ]
 [5] A3[0][0];  [5] A3[0][0];
Line 288  afotake
Line 290  afotake
 newstruct(afo)  newstruct(afo)
 @end example  @end example
   
 \JP $B9=B$BN$K4X$7$F$O(B, $B>O$r2~$a$F2r@b$9$kM=Dj$G$"$k(B.  \BJP
 \EG For type @b{structure}, we shall describe it in a later chapter.  Asir $B$K$*$1$k9=B$BN$O(B, C $B$K$*$1$k9=B$BN$r4J0W2=$7$?$b$N$G$"$k(B.
 (Not written yet.)  $B8GDjD9G[Ns$N3F@.J,$rL>A0$G%"%/%;%9$G$-$k%*%V%8%'%/%H$G(B,
   $B9=B$BNDj5AKh$KL>A0$r$D$1$k(B.
   \E
   
   \BEG
   The type @b{structure} is a simplified version of that in C language.
   It is defined as a fixed length array and each entry of the array
   is accessed by its name. A name is associated with each structure.
   \E
   
 \JP @item 9 @b{$BJ,;6I=8=B?9`<0(B}  \JP @item 9 @b{$BJ,;6I=8=B?9`<0(B}
 \EG @item 9 @b{distributed polynomial}  \EG @item 9 @b{distributed polynomial}
   
Line 320  For details @xref{Groebner basis computation}.
Line 330  For details @xref{Groebner basis computation}.
   
 \JP @item 11 @b{$B%(%i!<%*%V%8%'%/%H(B}  \JP @item 11 @b{$B%(%i!<%*%V%8%'%/%H(B}
 \EG @item 11 @b{error object}  \EG @item 11 @b{error object}
   @*
 \JP $B0J>eFs$D$O(B, Open XM $B$K$*$$$FMQ$$$i$l$kFC<l%*%V%8%'%/%H$G$"$k(B.  \JP $B0J>eFs$D$O(B, Open XM $B$K$*$$$FMQ$$$i$l$kFC<l%*%V%8%'%/%H$G$"$k(B.
 \EG These are special objects used for OpenXM.  \EG These are special objects used for OpenXM.
   
 \JP @item 12 @b{GF(2) $B>e$N9TNs(B}  \JP @item 12 @b{GF(2) $B>e$N9TNs(B}
 \EG @item 12 @b{matrix over GF(2)}  \EG @item 12 @b{matrix over GF(2)}
   @*
 \BJP  \BJP
 $B8=:_(B, $BI8?t(B 2 $B$NM-8BBN$K$*$1$k4pDlJQ49$N$?$a$N%*%V%8%'%/%H$H$7$FMQ$$$i$l(B  $B8=:_(B, $BI8?t(B 2 $B$NM-8BBN$K$*$1$k4pDlJQ49$N$?$a$N%*%V%8%'%/%H$H$7$FMQ$$$i$l(B
 $B$k(B.  $B$k(B.
Line 337  This is used for basis conversion in finite fields of 
Line 347  This is used for basis conversion in finite fields of 
   
 \JP @item 13 @b{MATHCAP $B%*%V%8%'%/%H(B}  \JP @item 13 @b{MATHCAP $B%*%V%8%'%/%H(B}
 \EG @item 13 @b{MATHCAP object}  \EG @item 13 @b{MATHCAP object}
   @*
 \JP Open XM $B$K$*$$$F(B, $B<BAu$5$l$F$$$k5!G=$rAw<u?.$9$k$?$a$N%*%V%8%'%/%H$G$"$k(B.  \JP Open XM $B$K$*$$$F(B, $B<BAu$5$l$F$$$k5!G=$rAw<u?.$9$k$?$a$N%*%V%8%'%/%H$G$"$k(B.
 \EG This object is used to express available funcionalities for Open XM.  \EG This object is used to express available funcionalities for Open XM.
   
 @item 14 @b{first order formula}  @item 14 @b{first order formula}
   @*
 \JP quantifier elimination $B$GMQ$$$i$l$k0l3,=R8lO@M}<0(B.  \JP quantifier elimination $B$GMQ$$$i$l$k0l3,=R8lO@M}<0(B.
 \EG This expresses a first order formula used in quantifier elimination.  \EG This expresses a first order formula used in quantifier elimination.
   
   @item 15 @b{matrix over GF(@var{p})}
   @*
   \JP $B>.I8?tM-8BBN>e$N9TNs(B.
   \EG A matrix over a small finite field.
   
   @item 16 @b{byte array}
   @*
   \JP $BId9f$J$7(B byte $B$NG[Ns(B
   \EG An array of unsigned bytes.
   
   \JP @item 26 @b{$BJ,;6I=8=2C72B?9`<0(B}
   \EG @item 26 @b{distributed module polynomial}
   
   @example
   2*<<0,1,2,3:1>>-3*<<1,2,3,4:2>>
   @end example
   
   \BJP
   $B$3$l$O(B, $BB?9`<04D>e$N<+M32C72$N85$r(B, $B2C72C19`<0$NOB$H$7$FFbItI=8=$7$?$b$N$G$"$k(B.
   $B$3$3$G(B, $B2C72C19`<0$H$OC19`<0$H2C72$NI8=`4pDl$N@Q$G$"$k(B.
   $B$3$l$K$D$$$F$O(B @xref{$B%0%l%V%J4pDl$N7W;;(B}.
   \E
   \BEG
   This represents an element in a free module over a polynomial ring
   as a linear sum of module monomials, where a module monomial is
   the product of a monomial in the polynomial ring and a standard base of the free module.
   For details @xref{Groebner basis computation}.
   \E
 \JP @item -1 @b{VOID $B%*%V%8%'%/%H(B}  \JP @item -1 @b{VOID $B%*%V%8%'%/%H(B}
 \EG @item -1 @b{VOID object}  \EG @item -1 @b{VOID object}
   @*
 \JP $B7?<1JL;R(B -1 $B$r$b$D%*%V%8%'%/%H$O4X?t$NLa$jCM$J$I$,L58z$G$"$k$3$H$r<($9(B.  \JP $B7?<1JL;R(B -1 $B$r$b$D%*%V%8%'%/%H$O4X?t$NLa$jCM$J$I$,L58z$G$"$k$3$H$r<($9(B.
 \BEG  \BEG
 The object with the object identifier -1 indicates that a return value  The object with the object identifier -1 indicates that a return value
Line 369  of a function is void.
Line 407  of a function is void.
 @item 0  @item 0
 \JP @b{$BM-M}?t(B}  \JP @b{$BM-M}?t(B}
 \EG @b{rational number}  \EG @b{rational number}
   @*
 \BJP  \BJP
 $BM-M}?t$O(B, $BG$0UB?G\D9@0?t(B (@b{bignum}) $B$K$h$j<B8=$5$l$F$$$k(B. $BM-M}?t$O>o$K(B  $BM-M}?t$O(B, $BG$0UB?G\D9@0?t(B (@b{bignum}) $B$K$h$j<B8=$5$l$F$$$k(B. $BM-M}?t$O>o$K(B
 $B4{LsJ,?t$GI=8=$5$l$k(B.  $B4{LsJ,?t$GI=8=$5$l$k(B.
Line 383  lowest terms.
Line 421  lowest terms.
 @item 1  @item 1
 \JP @b{$BG\@:EYIbF0>.?t(B}  \JP @b{$BG\@:EYIbF0>.?t(B}
 \EG @b{double precision floating point number (double float)}  \EG @b{double precision floating point number (double float)}
   @*
 \BJP  \BJP
 $B%^%7%s$NDs6!$9$kG\@:EYIbF0>.?t$G$"$k(B. @b{Asir} $B$N5/F0;~$K$O(B,  $B%^%7%s$NDs6!$9$kG\@:EYIbF0>.?t$G$"$k(B. @b{Asir} $B$N5/F0;~$K$O(B,
 $BDL>o$N7A<0$GF~NO$5$l$?IbF0>.?t$O$3$N7?$KJQ49$5$l$k(B. $B$?$@$7(B,  $BDL>o$N7A<0$GF~NO$5$l$?IbF0>.?t$O$3$N7?$KJQ49$5$l$k(B. $B$?$@$7(B,
Line 423  result shall be computed as a double float number.
Line 461  result shall be computed as a double float number.
 @item 2  @item 2
 \JP @b{$BBe?tE*?t(B}  \JP @b{$BBe?tE*?t(B}
 \EG @b{algebraic number}  \EG @b{algebraic number}
   @*
 \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}.
   
 @item 3  @item 3
 @b{bigfloat}  @b{bigfloat}
   @*
 \BJP  \BJP
 @b{bigfloat} $B$O(B, @b{Asir} $B$G$O(B @b{PARI} $B%i%$%V%i%j$K$h$j(B  @b{bigfloat} $B$O(B, @b{Asir} $B$G$O(B @b{MPFR} $B%i%$%V%i%j$K$h$j(B
 $B<B8=$5$l$F$$$k(B. @b{PARI} $B$K$*$$$F$O(B, @b{bigfloat} $B$O(B, $B2>?tIt(B  $B<B8=$5$l$F$$$k(B. @b{MPFR} $B$K$*$$$F$O(B, @b{bigfloat} $B$O(B, $B2>?tIt(B
 $B$N$_G$0UB?G\D9$G(B, $B;X?tIt$O(B 1 $B%o!<%I0JFb$N@0?t$K8B$i$l$F$$$k(B.  $B$N$_G$0UB?G\D9$G(B, $B;X?tIt$O(B 64bit $B@0?t$G$"$k(B.
 @code{ctrl()} $B$G(B @b{bigfloat} $B$rA*Br$9$k$3$H$K$h$j(B, $B0J8e$NIbF0>.?t(B  @code{ctrl()} $B$G(B @b{bigfloat} $B$rA*Br$9$k$3$H$K$h$j(B, $B0J8e$NIbF0>.?t(B
 $B$NF~NO$O(B @b{bigfloat} $B$H$7$F07$o$l$k(B. $B@:EY$O%G%U%)%k%H$G$O(B  $B$NF~NO$O(B @b{bigfloat} $B$H$7$F07$o$l$k(B. $B@:EY$O%G%U%)%k%H$G$O(B
 10 $B?J(B 9 $B7eDxEY$G$"$k$,(B, @code{setprec()} $B$K$h$j;XDj2DG=$G$"$k(B.  10 $B?J(B 9 $B7eDxEY$G$"$k$,(B, @code{setprec()}, @code{setbprec()} $B$K$h$j;XDj2DG=$G$"$k(B.
 \E  \E
 \BEG  \BEG
 The @b{bigfloat} numbers of @b{Asir} is realized by @b{PARI} library.  The @b{bigfloat} numbers of @b{Asir} is realized by @b{MPFR} library.
 A @b{bigfloat} number of @b{PARI} has an arbitrary precision mantissa  A @b{bigfloat} number of @b{MPFR} has an arbitrary precision mantissa
 part.  However, its exponent part admits only an integer with a single  part.  However, its exponent part admits only a 64bit integer.
 word precision.  
 Floating point operations will be performed all in @b{bigfloat} after  Floating point operations will be performed all in @b{bigfloat} after
 activating the @b{bigfloat} switch by @code{ctrl()} command.  activating the @b{bigfloat} switch by @code{ctrl()} command.
 The default precision is about 9 digits, which can be specified by  The default precision is 53 bits (about 15 digits), which can be specified by
 @code{setprec()} command.  @code{setbprec()} and @code{setprec()} command.
 \E  \E
   
 @example  @example
 [0] ctrl("bigfloat",1);  [0] ctrl("bigfloat",1);
 1  1
 [1] eval(2^(1/2));  [1] eval(2^(1/2));
 1.414213562373095048763788073031  1.4142135623731
 [2] setprec(100);  [2] setprec(100);
 9  15
 [3] eval(2^(1/2));  [3] eval(2^(1/2));
 1.41421356237309504880168872420969807856967187537694807317654396116148  1.41421356237309504880168872420969807856967187537694...764157
   [4] setbprec(100);
   332
   [5] 1.41421356237309504880168872421
 @end example  @end example
   
 \BJP  \BJP
 @code{eval()} $B$O(B, $B0z?t$K4^$^$l$kH!?tCM$r2DG=$J8B$j?tCM2=$9$kH!?t$G$"$k(B.  @code{eval()} $B$O(B, $B0z?t$K4^$^$l$kH!?tCM$r2DG=$J8B$j?tCM2=$9$kH!?t$G$"$k(B.
 @code{setprec()} $B$G;XDj$5$l$?7e?t$O(B, $B7k2L$N@:EY$rJ]>Z$9$k$b$N$G$O$J$/(B,  @code{setbprec()} $B$G;XDj$5$l$?(B2 $B?J7e?t$O(B, $B4]$a%b!<%I$K1~$8$?7k2L$N@:EY$rJ]>Z$9$k(B. @code{setprec()} $B$G;XDj$5$l$k(B10$B?J7e?t$O(B 2 $B?J7e?t$KJQ49$5$l$F@_Dj$5$l$k(B.
 @b{PARI} $BFbIt$GMQ$$$i$l$kI=8=$N%5%$%:$r<($9$3$H$KCm0U$9$Y$-$G$"$k(B.  
 \E  \E
 \BEG  \BEG
 Function @code{eval()} evaluates numerically its argument as far as  Function @code{eval()} evaluates numerically its argument as far as
 possible.  possible.
 Notice that the integer given for the argument of @code{setprec()} does  Notice that the integer given for the argument of @code{setbprec()}
 not guarantee the accuracy of the result,  guarantees the accuracy of the result according to the current rounding mode.
 but it indicates the representation size of numbers with which internal  The argument of @code{setbprec()} is converted to the corresonding bit length
 operations of @b{PARI} are performed.  and set.
 \E  \E
 (@ref{eval}, @xref{pari})  (@xref{eval deval}.)
   
 @item 4  @item 4
 \JP @b{$BJ#AG?t(B}  \JP @b{$BJ#AG?t(B}
 \EG @b{complex number}  \EG @b{complex number}
   @*
 \BJP  \BJP
 $BJ#AG?t$O(B, $BM-M}?t(B, $BG\@:EYIbF0>.?t(B, @b{bigfloat} $B$r<BIt(B, $B5uIt$H$7$F(B  $BJ#AG?t$O(B, $BM-M}?t(B, $BG\@:EYIbF0>.?t(B, @b{bigfloat} $B$r<BIt(B, $B5uIt$H$7$F(B
 @code{a+b*@@i} (@@i $B$O5u?tC10L(B) $B$H$7$FM?$($i$l$k?t$G$"$k(B. $B<BIt(B, $B5uIt$O(B  @code{a+b*@@i} (@@i $B$O5u?tC10L(B) $B$H$7$FM?$($i$l$k?t$G$"$k(B. $B<BIt(B, $B5uIt$O(B
Line 497  taken out by @code{real()} and @code{imag()} respectiv
Line 537  taken out by @code{real()} and @code{imag()} respectiv
 @item 5  @item 5
 \JP @b{$B>.I8?t$NM-8BAGBN$N85(B}  \JP @b{$B>.I8?t$NM-8BAGBN$N85(B}
 \EG @b{element of a small finite prime field}  \EG @b{element of a small finite prime field}
   @*
 \BJP  \BJP
 $B$3$3$G8@$&>.I8?t$H$O(B, $BI8?t$,(B 2^27 $BL$K~$N$b$N$N$3$H$G$"$k(B. $B$3$N$h$&$JM-8B(B  $B$3$3$G8@$&>.I8?t$H$O(B, $BI8?t$,(B 2^27 $BL$K~$N$b$N$N$3$H$G$"$k(B. $B$3$N$h$&$JM-8B(B
 $BBN$O(B, $B8=:_$N$H$3$m%0%l%V%J4pDl7W;;$K$*$$$FFbItE*$KMQ$$$i$l(B, $BM-8BBN78?t$N(B  $BBN$O(B, $B8=:_$N$H$3$m%0%l%V%J4pDl7W;;$K$*$$$FFbItE*$KMQ$$$i$l(B, $BM-8BBN78?t$N(B
Line 520  field operations are executed by using a prime @var{p}
Line 560  field operations are executed by using a prime @var{p}
 @item 6  @item 6
 \JP @b{$BBgI8?t$NM-8BAGBN$N85(B}  \JP @b{$BBgI8?t$NM-8BAGBN$N85(B}
 \EG @b{element of large finite prime field}  \EG @b{element of large finite prime field}
   @*
 \BJP  \BJP
 $BI8?t$H$7$FG$0U$NAG?t$,$H$l$k(B.  $BI8?t$H$7$FG$0U$NAG?t$,$H$l$k(B.
 $B$3$N7?$N?t$O(B, $B@0?t$KBP$7(B@code{simp_ff} $B$rE,MQ$9$k$3$H$K$h$jF@$i$l$k(B.  $B$3$N7?$N?t$O(B, $B@0?t$KBP$7(B@code{simp_ff} $B$rE,MQ$9$k$3$H$K$h$jF@$i$l$k(B.
Line 534  is an arbitrary prime. An object of this type is obtai
Line 574  is an arbitrary prime. An object of this type is obtai
 @item 7  @item 7
 \JP @b{$BI8?t(B 2 $B$NM-8BBN$N85(B}  \JP @b{$BI8?t(B 2 $B$NM-8BBN$N85(B}
 \EG @b{element of a finite field of characteristic 2}  \EG @b{element of a finite field of characteristic 2}
   @*
 \BJP  \BJP
 $BI8?t(B 2 $B$NG$0U$NM-8BBN$N85$rI=8=$9$k(B. $BI8?t(B 2 $B$NM-8BBN(B F $B$O(B, $B3HBg<!?t(B  $BI8?t(B 2 $B$NG$0U$NM-8BBN$N85$rI=8=$9$k(B. $BI8?t(B 2 $B$NM-8BBN(B F $B$O(B, $B3HBg<!?t(B
 [F:GF(2)] $B$r(B n $B$H$9$l$P(B, GF(2) $B>e4{Ls$J(B n $B<!B?9`<0(B f(t) $B$K$h$j(B  [F:GF(2)] $B$r(B n $B$H$9$l$P(B, GF(2) $B>e4{Ls$J(B n $B<!B?9`<0(B f(t) $B$K$h$j(B
Line 544  g mod f $B$O(B, g, f  $B$r$"$i$o$9(B 2 $B$D$N%S%C
Line 584  g mod f $B$O(B, g, f  $B$r$"$i$o$9(B 2 $B$D$N%S%C
 \E  \E
 \BEG  \BEG
 This type expresses an element of a finite field of characteristic 2.  This type expresses an element of a finite field of characteristic 2.
 Let @var{F} be a finite field of characteristic 2. If @var{[F:GF(2)]}  Let @var{F} be a finite field of characteristic 2. If [F:GF(2)]
 is equal to @var{n}, then @var{F} is expressed as @var{F=GF(2)[t]/(f(t))},  is equal to @var{n}, then @var{F} is expressed as F=GF(2)[t]/(f(t)),
 where @var{f(t)} is an irreducible polynomial over @var{GF(2)}  where f(t) is an irreducible polynomial over GF(2)
 of degree @var{n}.  of degree @var{n}.
 As an element @var{g} of @var{GF(2)[t]} can be expressed by a bit string,  As an element @var{g} of GF(2)[t] can be expressed by a bit string,
 An element @var{g mod f} in @var{F} can be expressed by two bit strings  An element @var{g mod f} in @var{F} can be expressed by two bit strings
 representing @var{g} and @var{f} respectively.  representing @var{g} and @var{f} respectively.
 \E  \E
Line 559  representing @var{g} and @var{f} respectively.
Line 599  representing @var{g} and @var{f} respectively.
 @itemize @bullet  @itemize @bullet
 @item  @item
 @code{@@}  @code{@@}
   @*
 \BJP  \BJP
 @code{@@} $B$O$=$N8e$m$K?t;z(B, $BJ8;z$rH<$C$F(B, $B%R%9%H%j$dFC<l$J?t$r$"$i$o$9$,(B,  @code{@@} $B$O$=$N8e$m$K?t;z(B, $BJ8;z$rH<$C$F(B, $B%R%9%H%j$dFC<l$J?t$r$"$i$o$9$,(B,
 $BC1FH$G8=$l$?>l9g$K$O(B, F=GF(2)[t]/(f(t)) $B$K$*$1$k(B t mod f $B$r$"$i$o$9(B.  $BC1FH$G8=$l$?>l9g$K$O(B, F=GF(2)[t]/(f(t)) $B$K$*$1$k(B t mod f $B$r$"$i$o$9(B.
 $B$h$C$F(B, @@ $B$NB?9`<0$H$7$F(B F $B$N85$rF~NO$G$-$k(B. (@@^10+@@+1 $B$J$I(B)  $B$h$C$F(B, @@ $B$NB?9`<0$H$7$F(B F $B$N85$rF~NO$G$-$k(B. (@@^10+@@+1 $B$J$I(B)
 \E  \E
 \BEG  \BEG
 @code{@@} represents @var{t mod f} in @var{F=GF(2)[t](f(t))}.  @code{@@} represents @var{t mod f} in F=GF(2)[t](f(t)).
 By using @code{@@} one can input an element of @var{F}. For example  By using @code{@@} one can input an element of @var{F}. For example
 @code{@@^10+@@+1} represents an element of @var{F}.  @code{@@^10+@@+1} represents an element of @var{F}.
 \E  \E
   
 @item  @item
 @code{ptogf2n}  @code{ptogf2n}
   @*
 \JP $BG$0UJQ?t$N(B 1 $BJQ?tB?9`<0$r(B, @code{ptogf2n} $B$K$h$jBP1~$9$k(B F $B$N85$KJQ49$9$k(B.  \JP $BG$0UJQ?t$N(B 1 $BJQ?tB?9`<0$r(B, @code{ptogf2n} $B$K$h$jBP1~$9$k(B F $B$N85$KJQ49$9$k(B.
 \BEG  \BEG
 @code{ptogf2n} converts a univariate polynomial into an element of @var{F}.  @code{ptogf2n} converts a univariate polynomial into an element of @var{F}.
Line 581 } one can input an element of @var{F}
Line 621 } one can input an element of @var{F}
   
 @item  @item
 @code{ntogf2n}  @code{ntogf2n}
   @*
 \BJP  \BJP
 $BG$0U$N<+A3?t$r(B, $B<+A3$J;EJ}$G(B F $B$N85$H$_$J$9(B. $B<+A3?t$H$7$F$O(B, 10 $B?J(B,  $BG$0U$N<+A3?t$r(B, $B<+A3$J;EJ}$G(B F $B$N85$H$_$J$9(B. $B<+A3?t$H$7$F$O(B, 10 $B?J(B,
 16 $B?J(B (0x $B$G;O$^$k(B), 2 $B?J(B (0b $B$G;O$^$k(B) $B$GF~NO$,2DG=$G$"$k(B.  16 $B?J(B (0x $B$G;O$^$k(B), 2 $B?J(B (0b $B$G;O$^$k(B) $B$GF~NO$,2DG=$G$"$k(B.
Line 595  hexadecimal (@code{0x} prefix) and binary (@code{0b} p
Line 635  hexadecimal (@code{0x} prefix) and binary (@code{0b} p
 @item  @item
 \JP @code{$B$=$NB>(B}  \JP @code{$B$=$NB>(B}
 \EG @code{micellaneous}  \EG @code{micellaneous}
   @*
 \BJP  \BJP
 $BB?9`<0$N78?t$r4]$4$H(B F $B$N85$KJQ49$9$k$h$&$J>l9g(B, @code{simp_ff}  $BB?9`<0$N78?t$r4]$4$H(B F $B$N85$KJQ49$9$k$h$&$J>l9g(B, @code{simp_ff}
 $B$K$h$jJQ49$G$-$k(B.  $B$K$h$jJQ49$G$-$k(B.
Line 606  coefficients of a polynomial.
Line 646  coefficients of a polynomial.
 \E  \E
   
 @end itemize  @end itemize
   
   
   @item 8
   \JP @b{$B0L?t(B @var{p^n} $B$NM-8BBN$N85(B}
   \EG @b{element of a finite field of characteristic @var{p^n}}
   
   \BJP
   $B0L?t$,(B @var{p^n} (@var{p} $B$OG$0U$NAG?t(B, @var{n} $B$O@5@0?t(B) $B$O(B,
   $BI8?t(B @var{p} $B$*$h$S(B GF(@var{p}) $B>e4{Ls$J(B @var{n} $B<!B?9`<0(B m(x)
   $B$r(B @code{setmod_ff} $B$K$h$j;XDj$9$k$3$H$K$h$j@_Dj$9$k(B.
   $B$3$NBN$N85$O(B m(x) $B$rK!$H$9$k(B GF(@var{p}) $B>e$NB?9`<0$H$7$F(B
   $BI=8=$5$l$k(B.
   \E
   \BEG
   A finite field of order @var{p^n}, where @var{p} is an arbitrary prime
   and @var{n} is a positive integer, is set by @code{setmod_ff}
   by specifying its characteristic @var{p} and an irreducible polynomial
   of degree @var{n} over GF(@var{p}). An element of this field
   is represented by a polynomial over GF(@var{p}) modulo m(x).
   \E
   
   @item 9
   \JP @b{$B0L?t(B @var{p^n} $B$NM-8BBN$N85(B ($B>.0L?t(B)}
   \EG @b{element of a finite field of characteristic @var{p^n} (small order)}
   
   \BJP
   $B0L?t$,(B @var{p^n} $B$NM-8BBN(B (@var{p^n} $B$,(B @var{2^29} $B0J2<(B, @var{p} $B$,(B @var{2^14} $B0J>e(B
   $B$J$i(B @var{n} $B$O(B 1) $B$O(B,
   $BI8?t(B @var{p} $B$*$h$S3HBg<!?t(B @var{n}
   $B$r(B @code{setmod_ff} $B$K$h$j;XDj$9$k$3$H$K$h$j@_Dj$9$k(B.
   $B$3$NBN$N(B 0 $B$G$J$$85$O(B, @var{p} $B$,(B @var{2^14} $BL$K~$N>l9g(B,
   GF(@var{p^n}) $B$N>hK!72$N@8@.85$r8GDj$9$k$3$H(B
   $B$K$h$j(B, $B$3$N85$N$Y$-$H$7$FI=$5$l$k(B. $B$3$l$K$h$j(B, $B$3$NBN$N(B 0 $B$G$J$$85(B
   $B$O(B, $B$3$N$Y$-;X?t$H$7$FI=8=$5$l$k(B. @var{p} $B$,(B @var{2^14} $B0J>e(B
   $B$N>l9g$ODL>o$N>jM>$K$h$kI=8=$H$J$k$,(B, $B6&DL$N%W%m%0%i%`$G(B
   $BAPJ}$N>l9g$r07$($k$h$&$K$3$N$h$&$J;EMM$H$J$C$F$$$k(B.
   
   \E
   \BEG
   A finite field of order @var{p^n}, where @var{p^n} must be less than
   @var{2^29} and @var{n} must be equal to 1 if @var{p} is greater or
   equal to @var{2^14},
   is set by @code{setmod_ff}
   by specifying its characteristic @var{p} the extension degree
   @var{n}. If @var{p} is less than @var{2^14}, each non-zero element
   of this field
   is a power of a fixed element, which is a generator of the multiplicative
   group of the field, and it is represented by its exponent.
   Otherwise, each element is represented by the redue modulo @var{p}.
   This specification is useful for treating both cases in a single
   program.
   \E
   
   @item 10
   \JP @b{$B0L?t(B @var{p^n} $B$N>.0L?tM-8BBN$NBe?t3HBg$N85(B}
   \EG @b{element of a finite field which is an algebraic extension of a small finite field of characteristic @var{p^n}}
   
   \BJP
   $BA09`$N(B, $B0L?t$,(B @var{p^n} $B$N>.0L?tM-8BBN$N(B @var{m} $B<!3HBg$N85$G$"$k(B.
   $BI8?t(B @var{p} $B$*$h$S3HBg<!?t(B @var{n}, @var{m}
   $B$r(B @code{setmod_ff} $B$K$h$j;XDj$9$k$3$H$K$h$j@_Dj$9$k(B. $B4pACBN>e$N(B @var{m}
   $B<!4{LsB?9`<0$,<+F0@8@.$5$l(B, $B$=$NBe?t3HBg$N@8@.85$NDj5AB?9`<0$H$7$FMQ$$$i$l$k(B.
   $B@8@.85$O(B @code{@@s} $B$G$"$k(B.
   
   \E
   \BEG
   An extension field @var{K} of the small finite field @var{F} of order @var{p^n}
   is set by @code{setmod_ff}
   by specifying its characteristic @var{p} the extension degree
   @var{n} and @var{m}=[@var{K}:@var{F}]. An irreducible polynomial of degree @var{m}
   over @var{K} is automatically generated and used as the defining polynomial of
   the generator of the extension @var{K/F}. The generator is denoted by @code{@@s}.
   \E
   
   @item 11
   \JP @b{$BJ,;6I=8=$NBe?tE*?t(B}
   \EG @b{algebraic number represented by a distributed polynomial}
   @*
   \JP @xref{$BBe?tE*?t$K4X$9$k1i;;(B}.
   \EG @xref{Algebraic numbers}.
   
   \BJP
   
   \E
   \BEG
   \E
 @end table  @end table
   
 \BJP  \BJP
 $BBgI8?tAGBN$NI8?t(B, $BI8?t(B 2 $B$NM-8BBN$NDj5AB?9`<0$O(B, @code{setmod_ff}  $B>.I8?tM-8BAGBN0J30$NM-8BBN$O(B @code{setmod_ff} $B$G@_Dj$9$k(B.
 $B$G@_Dj$9$k(B.  $BM-8BBN$N85$I$&$7$N1i;;$G$O(B,
 $BM-8BBN$N85$I$&$7$N1i;;$G$O(B, @code{setmod_ff} $B$K$h$j@_Dj$5$l$F$$$k(B  
 modulus $B$G(B, $BB0$9$kBN$,J,$+$j(B, $B$=$NCf$G1i;;$,9T$o$l$k(B.  
 $B0lJ}$,M-M}?t$N>l9g$K$O(B, $B$=$NM-M}?t$O<+F0E*$K8=:_@_Dj$5$l$F$$$k(B  $B0lJ}$,M-M}?t$N>l9g$K$O(B, $B$=$NM-M}?t$O<+F0E*$K8=:_@_Dj$5$l$F$$$k(B
 $BM-8BBN$N85$KJQ49$5$l(B, $B1i;;$,9T$o$l$k(B.  $BM-8BBN$N85$KJQ49$5$l(B, $B1i;;$,9T$o$l$k(B.
 \E  \E
 \BEG  \BEG
 The characteristic of a large finite prime field and the defining  Finite fields other than small finite prime fields are
 polynomial of a finite field of characteristic 2 are set by @code{setmod_ff}.  set by @code{setmod_ff}.
 Elements of finite fields do not have informations about the modulus.  Elements of finite fields do not have informations about the modulus.
 Upon an arithmetic operation, the modulus set by @code{setmod_ff} is  Upon an arithmetic operation, i
 used. If one of the operands is a rational number, it is automatically  f one of the operands is a rational number, it is automatically
 converted into an element of the finite field currently set and  converted into an element of the finite field currently set and
 the operation is done in the finite field.  the operation is done in the finite field.
 \E  \E
Line 659  and further are classified into sub-types of the type 
Line 783  and further are classified into sub-types of the type 
 @item 0  @item 0
 \JP @b{$B0lHLITDj85(B}  \JP @b{$B0lHLITDj85(B}
 \EG @b{ordinary indeterminate}  \EG @b{ordinary indeterminate}
   @*
 \JP $B1Q>.J8;z$G;O$^$kJ8;zNs(B. $BB?9`<0$NJQ?t$H$7$F:G$bIaDL$KMQ$$$i$l$k(B.  \JP $B1Q>.J8;z$G;O$^$kJ8;zNs(B. $BB?9`<0$NJQ?t$H$7$F:G$bIaDL$KMQ$$$i$l$k(B.
 \BEG  \BEG
 An object of this sub-type is denoted by a string that start with  An object of this sub-type is denoted by a string that start with
Line 677  polynomials.
Line 801  polynomials.
 @item 1  @item 1
 \JP @b{$BL$Dj78?t(B}  \JP @b{$BL$Dj78?t(B}
 \EG @b{undetermined coefficient}  \EG @b{undetermined coefficient}
   @*
 \BJP  \BJP
 @code{uc()} $B$O(B, @samp{_} $B$G;O$^$kJ8;zNs$rL>A0$H$9$kITDj85$r@8@.$9$k(B.  @code{uc()} $B$O(B, @samp{_} $B$G;O$^$kJ8;zNs$rL>A0$H$9$kITDj85$r@8@.$9$k(B.
 $B$3$l$i$O(B, $B%f!<%6$,F~NO$G$-$J$$$H$$$&$@$1$G(B, $B0lHLITDj85$HJQ$o$i$J$$$,(B,  $B$3$l$i$O(B, $B%f!<%6$,F~NO$G$-$J$$$H$$$&$@$1$G(B, $B0lHLITDj85$HJQ$o$i$J$$$,(B,
Line 704  _0
Line 828  _0
 @item 2  @item 2
 \JP @b{$BH!?t7A<0(B}  \JP @b{$BH!?t7A<0(B}
 \EG @b{function form}  \EG @b{function form}
   @*
 \BJP  \BJP
 $BAH$_9~$_H!?t(B, $B%f!<%6H!?t$N8F$S=P$7$O(B, $BI>2A$5$l$F2?$i$+$N(B @b{Asir} $B$N(B  $BAH$_9~$_H!?t(B, $B%f!<%6H!?t$N8F$S=P$7$O(B, $BI>2A$5$l$F2?$i$+$N(B @b{Asir} $B$N(B
 $BFbIt7A<0$KJQ49$5$l$k$,(B, @code{sin(x)}, @code{cos(x+1)} $B$J$I$O(B, $BI>2A8e(B  $BFbIt7A<0$KJQ49$5$l$k$,(B, @code{sin(x)}, @code{cos(x+1)} $B$J$I$O(B, $BI>2A8e(B
Line 736  sin(x)
Line 860  sin(x)
 @item 3  @item 3
 \JP @b{$BH!?t;R(B}  \JP @b{$BH!?t;R(B}
 \EG @b{functor}  \EG @b{functor}
   @*
 \BJP  \BJP
 $BH!?t8F$S=P$7$O(B, @var{fname(args)} $B$H$$$&7A$G9T$J$o$l$k$,(B, @var{fname} $B$N(B  $BH!?t8F$S=P$7$O(B, @var{fname}(@var{args}) $B$H$$$&7A$G9T$J$o$l$k$,(B, @var{fname} $B$N(B
 $BItJ,$rH!?t;R$H8F$V(B. $BH!?t;R$K$O(B, $BH!?t$N<oN`$K$h$jAH$_9~$_H!?t;R(B,  $BItJ,$rH!?t;R$H8F$V(B. $BH!?t;R$K$O(B, $BH!?t$N<oN`$K$h$jAH$_9~$_H!?t;R(B,
 $B%f!<%6Dj5AH!?t;R(B, $B=iEyH!?t;R$J$I$,$"$k$,(B, $BH!?t;R$OC1FH$GITDj85$H$7$F(B  $B%f!<%6Dj5AH!?t;R(B, $B=iEyH!?t;R$J$I$,$"$k$,(B, $BH!?t;R$OC1FH$GITDj85$H$7$F(B
 $B5!G=$9$k(B.  $B5!G=$9$k(B.
 \E  \E
 \BEG  \BEG
 A function call (or a function form) has a form @var{fname(args)}.  A function call (or a function form) has a form @var{fname}(@var{args}).
 Here, @var{fname} alone is called a @b{functor}.  Here, @var{fname} alone is called a @b{functor}.
 There are several kinds of @b{functor}s: built-in functor, user defined  There are several kinds of @b{functor}s: built-in functor, user defined
 functor and functor for the elementary functions.  A functor alone is  functor and functor for the elementary functions.  A functor alone is

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.15

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