=================================================================== RCS file: /home/cvs/OpenXM/src/asir-doc/parts/type.texi,v retrieving revision 1.3 retrieving revision 1.13 diff -u -p -r1.3 -r1.13 --- OpenXM/src/asir-doc/parts/type.texi 1999/12/21 02:47:32 1.3 +++ OpenXM/src/asir-doc/parts/type.texi 2007/02/15 02:41:38 1.13 @@ -1,4 +1,4 @@ -@comment $OpenXM$ +@comment $OpenXM: OpenXM/src/asir-doc/parts/type.texi,v 1.12 2003/04/20 08:01:27 noro Exp $ \BJP @node $B7?(B,,, Top @chapter $B7?(B @@ -52,7 +52,7 @@ Each example shows possible forms of inputs for @b{Asi @table @code @item 0 @b{0} - +@* \BJP $B]$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 @@ -83,14 +83,14 @@ x afo (2.3*x+y)^10 \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 -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{$BO$r2~$a$F2r@b$9$kM=Dj$G$"$k(B. -\EG For type @b{structure}, we shall describe it in a later chapter. -(Not written yet.) +\BJP +Asir $B$K$*$1$k9=B$BN$O(B, C $B$K$*$1$k9=B$BN$r4J0W2=$7$?$b$N$G$"$k(B. +$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} \EG @item 9 @b{distributed polynomial} @@ -320,13 +330,13 @@ For details @xref{Groebner basis computation}. \JP @item 11 @b{$B%(%i!<%*%V%8%'%/%H(B} \EG @item 11 @b{error object} - +@* \JP $B0J>eFs$D$O(B, Open XM $B$K$*$$$FMQ$$$i$l$kFCe$N9TNs(B} \EG @item 12 @b{matrix over GF(2)} - +@* \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 $B$k(B. @@ -337,18 +347,28 @@ This is used for basis conversion in finite fields of \JP @item 13 @b{MATHCAP $B%*%V%8%'%/%H(B} \EG @item 13 @b{MATHCAP object} - +@* \JP Open XM $B$K$*$$$F(B, $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 -1 @b{VOID $B%*%V%8%'%/%H(B} \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. \BEG The object with the object identifier -1 indicates that a return value @@ -369,7 +389,7 @@ of a function is void. @item 0 \JP @b{$BM-M}?t(B} \EG @b{rational number} - +@* \BJP $BM-M}?t$O(B, $BG$0UB?G\D9@0?t(B (@b{bignum}) $B$K$h$jo$K(B $B4{LsJ,?t$GI=8=$5$l$k(B. @@ -383,7 +403,7 @@ lowest terms. @item 1 \JP @b{$BG\@:EYIbF0>.?t(B} \EG @b{double precision floating point number (double float)} - +@* \BJP $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, @@ -423,13 +443,13 @@ result shall be computed as a double float number. @item 2 \JP @b{$BBe?tE*?t(B} \EG @b{algebraic number} - +@* \JP @xref{$BBe?tE*?t$K4X$9$k1i;;(B}. \EG @xref{Algebraic numbers}. @item 3 @b{bigfloat} - +@* \BJP @b{bigfloat} $B$O(B, @b{Asir} $B$G$O(B @b{PARI} $B%i%$%V%i%j$K$h$j(B $B?tIt(B @@ -457,7 +477,7 @@ The default precision is about 9 digits, which can be [2] setprec(100); 9 [3] eval(2^(1/2)); -1.41421356237309504880168872420969807856967187537694807317654396116148 +1.41421356237309504880168872420969807856967187537694807317... @end example \BJP @@ -473,12 +493,12 @@ not guarantee the accuracy of the result, but it indicates the representation size of numbers with which internal operations of @b{PARI} are performed. \E -(@ref{eval}, @xref{pari}) +(@xref{eval deval}, @ref{pari}.) @item 4 \JP @b{$BJ#AG?t(B} \EG @b{complex number} - +@* \BJP $BJ#AG?t$O(B, $BM-M}?t(B, $BG\@:EYIbF0>.?t(B, @b{bigfloat} $B$r.I8?t$NM-8BAGBN$N85(B} \EG @b{element of a small finite prime field} - +@* \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 $BBN$O(B, $B8=:_$N$H$3$m%0%l%V%J4pDl7W;;$K$*$$$FFbItE*$KMQ$$$i$l(B, $BM-8BBN78?t$N(B @@ -520,7 +540,7 @@ field operations are executed by using a prime @var{p} @item 6 \JP @b{$BBgI8?t$NM-8BAGBN$N85(B} \EG @b{element of large finite prime field} - +@* \BJP $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. @@ -534,7 +554,7 @@ is an arbitrary prime. An object of this type is obtai @item 7 \JP @b{$BI8?t(B 2 $B$NM-8BBN$N85(B} \EG @b{element of a finite field of characteristic 2} - +@* \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, $B3HBge4{Ls$J(B n $Bl9g$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) \E \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 @code{@@^10+@@+1} represents an element of @var{F}. \E @item @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. \BEG @code{ptogf2n} converts a univariate polynomial into an element of @var{F}. @@ -581,7 +601,7 @@ By using @code{@@} one can input an element of @var{F} @item @code{ntogf2n} - +@* \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, 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. @@ -595,7 +615,7 @@ hexadecimal (@code{0x} prefix) and binary (@code{0b} p @item \JP @code{$B$=$NB>(B} \EG @code{micellaneous} - +@* \BJP $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. @@ -606,22 +626,106 @@ coefficients of a polynomial. \E @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} $Be$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$S3HBgl9g(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} $Be$N(B @var{m} +$B.I8?tM-8BAGBN0J30$NM-8BBN$O(B @code{setmod_ff} $B$G@_Dj$9$k(B. +$BM-8BBN$N85$I$&$7$N1i;;$G$O(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. \E \BEG -The characteristic of a large finite prime field and the defining -polynomial of a finite field of characteristic 2 are set by @code{setmod_ff}. +Finite fields other than small finite prime fields are +set by @code{setmod_ff}. Elements of finite fields do not have informations about the modulus. -Upon an arithmetic operation, the modulus set by @code{setmod_ff} is -used. If one of the operands is a rational number, it is automatically +Upon an arithmetic operation, i +f one of the operands is a rational number, it is automatically converted into an element of the finite field currently set and the operation is done in the finite field. \E @@ -659,7 +763,7 @@ and further are classified into sub-types of the type @item 0 \JP @b{$B0lHLITDj85(B} \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. \BEG An object of this sub-type is denoted by a string that start with @@ -677,7 +781,7 @@ polynomials. @item 1 \JP @b{$BL$Dj78?t(B} \EG @b{undetermined coefficient} - +@* \BJP @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, @@ -704,7 +808,7 @@ _0 @item 2 \JP @b{$BH!?t7A<0(B} \EG @b{function form} - +@* \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 $BFbIt7A<0$KJQ49$5$l$k$,(B, @code{sin(x)}, @code{cos(x+1)} $B$J$I$O(B, $BI>2A8e(B @@ -736,15 +840,15 @@ sin(x) @item 3 \JP @b{$BH!?t;R(B} \EG @b{functor} - +@* \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