[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.6 and 1.15

version 1.6, 2000/09/23 07:53:25 version 1.15, 2019/09/13 09:31:00
Line 1 
Line 1 
 @comment $OpenXM: OpenXM/src/asir-doc/parts/type.texi,v 1.5 2000/01/26 01:37:33 noro Exp $  @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 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 ] ]
Line 355  This is used for basis conversion in finite fields of 
Line 356  This is used for basis conversion in finite fields of 
 \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}
 @*  @*
Line 440  result shall be computed as a double float number.
Line 469  result shall be computed as a double float number.
 @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}
Line 553  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 575  representing @var{g} and @var{f} respectively.
Line 606  representing @var{g} and @var{f} respectively.
 $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
Line 615  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 747  sin(x)
Line 862  sin(x)
 \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.6  
changed lines
  Added in v.1.15

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