version 1.1, 1999/12/08 05:47:44 |
version 1.12, 2016/08/29 04:56:58 |
|
|
|
@comment $OpenXM: OpenXM/src/asir-doc/parts/builtin/num.texi,v 1.11 2016/03/22 07:25:14 noro Exp $ |
|
\BJP |
@node $B?t$N1i;;(B,,, $BAH$_9~$_H!?t(B |
@node $B?t$N1i;;(B,,, $BAH$_9~$_H!?t(B |
@section $B?t$N1i;;(B |
@section $B?t$N1i;;(B |
|
\E |
|
\BEG |
|
@node Numbers,,, Built-in Function |
|
@section Numbers |
|
\E |
|
|
@menu |
@menu |
* idiv irem:: |
* idiv irem:: |
* fac:: |
* fac:: |
* igcd igcdcntl:: |
* igcd igcdcntl:: |
* ilcm:: |
* ilcm:: |
|
* isqrt:: |
* inv:: |
* inv:: |
* prime lprime:: |
* prime lprime:: |
* random:: |
* random:: |
* mt_save mt_load:: |
* mt_save mt_load:: |
* nm dn:: |
* nm dn:: |
* conj real imag:: |
* conj real imag:: |
* eval:: |
* eval deval:: |
* pari:: |
* pari:: |
* setprec:: |
* setbprec setprec:: |
* setmod:: |
* setmod:: |
* lrandom:: |
* lrandom:: |
|
* ntoint32 int32ton:: |
|
* setround:: |
@end menu |
@end menu |
|
|
@node idiv irem,,, $B?t$N1i;;(B |
\JP @node idiv irem,,, $B?t$N1i;;(B |
|
\EG @node idiv irem,,, Numbers |
@subsection @code{idiv}, @code{irem} |
@subsection @code{idiv}, @code{irem} |
@findex idiv |
@findex idiv |
@findex irem |
@findex irem |
|
|
@table @t |
@table @t |
@item idiv(@var{i1},@var{i2}) |
@item idiv(@var{i1},@var{i2}) |
:: $B@0?t=|;;$K$h$k>&(B. |
\JP :: $B@0?t=|;;$K$h$k>&(B. |
|
\EG :: Integer quotient of @var{i1} divided by @var{i2}. |
@item irem(@var{i1},@var{i2}) |
@item irem(@var{i1},@var{i2}) |
:: $B@0?t=|;;$K$h$k>jM>(B. |
\JP :: $B@0?t=|;;$K$h$k>jM>(B. |
|
\EG :: Integer remainder of @var{i1} divided by @var{i2}. |
@end table |
@end table |
|
|
@table @var |
@table @var |
@item return |
@item return |
$B@0?t(B |
\JP $B@0?t(B |
@item i1,i2 |
\EG integer |
$B@0?t(B |
@item i1 i2 |
|
\JP $B@0?t(B |
|
\EG integer |
@end table |
@end table |
|
|
@itemize @bullet |
@itemize @bullet |
|
\BJP |
@item |
@item |
@var{i1} $B$N(B @var{i2} $B$K$h$k@0?t=|;;$K$h$k>&(B, $B>jM>$r5a$a$k(B. |
@var{i1} $B$N(B @var{i2} $B$K$h$k@0?t=|;;$K$h$k>&(B, $B>jM>$r5a$a$k(B. |
@item |
@item |
|
|
@code{irem()} $B$NBe$o$j$KMQ$$$k$3$H$,$G$-$k(B. |
@code{irem()} $B$NBe$o$j$KMQ$$$k$3$H$,$G$-$k(B. |
@item |
@item |
$BB?9`<0$N>l9g$O(B @code{sdiv}, @code{srem} $B$rMQ$$$k(B. |
$BB?9`<0$N>l9g$O(B @code{sdiv}, @code{srem} $B$rMQ$$$k(B. |
|
\E |
|
\BEG |
|
@item |
|
Integer quotient and remainder of @var{i1} divided by @var{i2}. |
|
@item |
|
@var{i2} must not be 0. |
|
@item |
|
If the dividend is negative, the results are obtained by changing the |
|
sign of the results for absolute values of the dividend. |
|
@item |
|
One can use |
|
@var{i1} @code{%} @var{i2} |
|
for replacement of @code{irem()} which only differs in the point that |
|
the result is always normalized to non-negative values. |
|
@item |
|
Use @code{sdiv()}, @code{srem()} for polynomial quotient. |
|
\E |
@end itemize |
@end itemize |
|
|
@example |
@example |
|
|
@end example |
@end example |
|
|
@table @t |
@table @t |
@item $B;2>H(B |
\JP @item $B;2>H(B |
|
\EG @item References |
@fref{sdiv sdivm srem sremm sqr sqrm}, @fref{%}. |
@fref{sdiv sdivm srem sremm sqr sqrm}, @fref{%}. |
@end table |
@end table |
|
|
@node fac,,, $B?t$N1i;;(B |
\JP @node fac,,, $B?t$N1i;;(B |
|
\EG @node fac,,, Numbers |
@subsection @code{fac} |
@subsection @code{fac} |
@findex fac |
@findex fac |
|
|
@table @t |
@table @t |
@item fac(@var{i}) |
@item fac(@var{i}) |
:: @var{i} $B$N3,>h(B. |
\JP :: @var{i} $B$N3,>h(B. |
|
\EG :: The factorial of @var{i}. |
@end table |
@end table |
|
|
@table @var |
@table @var |
@item return |
@item return |
$B@0?t(B |
\JP $B@0?t(B |
|
\EG integer |
@item i |
@item i |
$B@0?t(B |
\JP $B@0?t(B |
|
\EG integer |
@end table |
@end table |
|
|
@itemize @bullet |
@itemize @bullet |
|
\BJP |
@item |
@item |
@var{i} $B$N3,>h$r7W;;$9$k(B. |
@var{i} $B$N3,>h$r7W;;$9$k(B. |
@item |
@item |
@var{i} $B$,Ii$N>l9g$O(B 0 $B$rJV$9(B. |
@var{i} $B$,Ii$N>l9g$O(B 0 $B$rJV$9(B. |
|
\E |
|
\BEG |
|
@item |
|
The factorial of @var{i}. |
|
@item |
|
Returns 0 if the argument @var{i} is negative. |
|
\E |
@end itemize |
@end itemize |
|
|
@example |
@example |
|
|
30414093201713378043612608166064768844377641568960512000000000000 |
30414093201713378043612608166064768844377641568960512000000000000 |
@end example |
@end example |
|
|
@node igcd igcdcntl,,, $B?t$N1i;;(B |
\JP @node igcd igcdcntl,,, $B?t$N1i;;(B |
|
\EG @node igcd igcdcntl,,, Numbers |
@subsection @code{igcd},@code{igcdcntl} |
@subsection @code{igcd},@code{igcdcntl} |
@findex igcd |
@findex igcd |
@findex igcdcntl |
@findex igcdcntl |
|
|
@table @t |
@table @t |
@item igcd(@var{i1},@var{i2}) |
@item igcd(@var{i1},@var{i2}) |
:: $B@0?t$N(B GCD ($B:GBg8xLs?t(B) |
\JP :: $B@0?t$N(B GCD ($B:GBg8xLs?t(B) |
|
\EG :: The integer greatest common divisor of @var{i1} and @var{i2}. |
@item igcdcntl([@var{i}]) |
@item igcdcntl([@var{i}]) |
:: $B@0?t(B GCD$B$N%"%k%4%j%:%`A*Br(B |
\JP :: $B@0?t(B GCD$B$N%"%k%4%j%:%`A*Br(B |
|
\EG :: Selects an algorithm for integer GCD. |
@end table |
@end table |
|
|
@table @var |
@table @var |
@item return |
@item return |
$B@0?t(B |
\JP $B@0?t(B |
@item i1,i2,i |
\EG integer |
$B@0?t(B |
@item i1 i2 i |
|
\JP $B@0?t(B |
|
\EG integer |
@end table |
@end table |
|
|
@itemize @bullet |
@itemize @bullet |
|
\BJP |
@item |
@item |
@code{igcd} $B$O(B @var{i1} $B$H(B @var{i2} $B$N(B GCD $B$r5a$a$k(B. |
@code{igcd} $B$O(B @var{i1} $B$H(B @var{i2} $B$N(B GCD $B$r5a$a$k(B. |
@item |
@item |
|
|
@item 3 |
@item 3 |
accelerated integer GCD |
accelerated integer GCD |
@end table |
@end table |
2, 3 $B$O(B K. Weber, ACM TOMS, Vol.21, No. 1 (1995), pp. 111-122 $B$K$h$k(B. |
@code{2}, @code{3} $B$O(B @code{[Weber]} $B$K$h$k(B. |
|
|
$B$*$*$`$M(B 3 $B$,9bB.$@$,(B, $BNc30$b$"$k(B. |
$B$*$*$`$M(B @code{3} $B$,9bB.$@$,(B, $BNc30$b$"$k(B. |
|
\E |
|
\BEG |
|
@item |
|
Function @code{igcd()} returns the integer greatest common divisor of |
|
the given two integers. |
|
@item |
|
An error will result if the argument is not an integer; the result is |
|
not valid even if one is returned. |
|
@item |
|
Use @code{gcd()}, @code{gcdz()} for polynomial GCD. |
|
|
|
@item |
|
Various method of integer GCD computation are implemented |
|
and they can be selected by @code{igcdcntl}. |
|
|
|
@table @code |
|
@item 0 |
|
Euclid algorithm (default) |
|
@item 1 |
|
binary GCD |
|
@item 2 |
|
bmod GCD |
|
@item 3 |
|
accelerated integer GCD |
|
@end table |
|
@code{2}, @code{3} are due to @code{[Weber]}. |
|
|
|
In most cases @code{3} is the fastest, but there are exceptions. |
|
\E |
@end itemize |
@end itemize |
|
|
@example |
@example |
Line 161 accelerated integer GCD |
|
Line 242 accelerated integer GCD |
|
@end example |
@end example |
|
|
@table @t |
@table @t |
@item $B;2>H(B |
\JP @item $B;2>H(B |
|
\EG @item References |
@fref{gcd gcdz}. |
@fref{gcd gcdz}. |
@end table |
@end table |
|
|
@node ilcm,,, $B?t$N1i;;(B |
\JP @node ilcm,,, $B?t$N1i;;(B |
|
\EG @node ilcm,,, Numbers |
@subsection @code{ilcm} |
@subsection @code{ilcm} |
@findex ilcm |
@findex ilcm |
|
|
@table @t |
@table @t |
@item ilcm(@var{i1},@var{i2}) |
@item ilcm(@var{i1},@var{i2}) |
:: $B:G>.8xG\?t$r5a$a$k(B. |
\JP :: $B:G>.8xG\?t$r5a$a$k(B. |
|
\EG :: The integer least common multiple of @var{i1} and @var{i2}. |
@end table |
@end table |
|
|
@table @var |
@table @var |
@item return |
@item return |
$B@0?t(B |
\JP $B@0?t(B |
@item i1,i2 |
\EG integer |
$B@0?t(B |
@item i1 i2 |
|
\JP $B@0?t(B |
|
\EG integer |
@end table |
@end table |
|
|
@itemize @bullet |
@itemize @bullet |
|
\BJP |
@item |
@item |
$B@0?t(B @var{i1}, @var{i2} $B$N:G>.8xG\?t$r5a$a$k(B. |
$B@0?t(B @var{i1}, @var{i2} $B$N:G>.8xG\?t$r5a$a$k(B. |
@item |
@item |
$B0lJ}$,(B 0 $B$N>l9g(B 0 $B$rJV$9(B. |
$B0lJ}$,(B 0 $B$N>l9g(B 0 $B$rJV$9(B. |
|
\E |
|
\BEG |
@item |
@item |
|
This function computes the integer least common multiple of |
|
@var{i1}, @var{i2}. |
|
@item |
|
If one of argument is equal to 0, the return 0. |
|
\E |
@end itemize |
@end itemize |
|
|
@table @t |
@table @t |
@item $B;2>H(B |
\JP @item $B;2>H(B |
|
\EG @item References |
@fref{igcd igcdcntl}, @fref{mt_save mt_load}. |
@fref{igcd igcdcntl}, @fref{mt_save mt_load}. |
@end table |
@end table |
@node inv,,, $B?t$N1i;;(B |
|
|
\JP @node isqrt,,, $B?t$N1i;;(B |
|
\EG @node isqrt,,, Numbers |
|
@subsection @code{isqrt} |
|
@findex isqrt |
|
|
|
@table @t |
|
@item isqrt(@var{n}) |
|
\JP :: $BJ?J}:,$r1[$($J$$:GBg$N@0?t$r5a$a$k(B. |
|
\EG :: The integer square root of @var{n}. |
|
@end table |
|
|
|
@table @var |
|
@item return |
|
\JP $BHsIi@0?t(B |
|
\EG non-negative integer |
|
@item n |
|
\JP $BHsIi@0?t(B |
|
\EG non-negative integer |
|
@end table |
|
|
|
\JP @node inv,,, $B?t$N1i;;(B |
|
\EG @node inv,,, Numbers |
@subsection @code{inv} |
@subsection @code{inv} |
@findex inv |
@findex inv |
|
|
@table @t |
@table @t |
@item inv(@var{i},@var{m}) |
@item inv(@var{i},@var{m}) |
:: @var{m} $B$rK!$H$9$k(B @var{i} $B$N5U?t(B |
\JP :: @var{m} $B$rK!$H$9$k(B @var{i} $B$N5U?t(B |
|
\EG :: the inverse (reciprocal) of @var{i} modulo @var{m}. |
@end table |
@end table |
|
|
@table @var |
@table @var |
@item return |
@item return |
$B@0?t(B |
\JP $B@0?t(B |
@item i,m |
\EG integer |
$B@0?t(B |
@item i m |
|
\JP $B@0?t(B |
|
\EG integer |
@end table |
@end table |
|
|
@itemize @bullet |
@itemize @bullet |
|
\BJP |
@item |
@item |
@var{ia} @equiv{} 1 mod (@var{m}) $B$J$k@0?t(B @var{a} $B$r5a$a$k(B. |
@var{ia} @equiv{} 1 mod (@var{m}) $B$J$k@0?t(B @var{a} $B$r5a$a$k(B. |
@item |
@item |
@var{i} $B$H(B @var{m} $B$O8_$$$KAG$G$J$1$l$P$J$i$J$$$,(B, @code{inv()} $B$O(B |
@var{i} $B$H(B @var{m} $B$O8_$$$KAG$G$J$1$l$P$J$i$J$$$,(B, @code{inv()} $B$O(B |
$B$=$N%A%'%C%/$O9T$o$J$$(B. |
$B$=$N%A%'%C%/$O9T$o$J$$(B. |
|
\E |
|
\BEG |
|
@item |
|
This function computes an integer such that |
|
@var{ia} @equiv{} 1 mod (@var{m}). |
|
@item |
|
The integer @var{i} and @var{m} must be mutually prime. |
|
However, @code{inv()} does not check it. |
|
\E |
@end itemize |
@end itemize |
|
|
@example |
@example |
Line 228 accelerated integer GCD |
|
Line 357 accelerated integer GCD |
|
@end example |
@end example |
|
|
@table @t |
@table @t |
@item $B;2>H(B |
\JP @item $B;2>H(B |
|
\EG @item References |
@fref{igcd igcdcntl}. |
@fref{igcd igcdcntl}. |
@end table |
@end table |
|
|
@node prime lprime,,, $B?t$N1i;;(B |
\JP @node prime lprime,,, $B?t$N1i;;(B |
|
\EG @node prime lprime,,, Numbers |
@subsection @code{prime}, @code{lprime} |
@subsection @code{prime}, @code{lprime} |
@findex prime |
@findex prime |
@findex lprime |
@findex lprime |
Line 240 accelerated integer GCD |
|
Line 371 accelerated integer GCD |
|
@table @t |
@table @t |
@item prime(@var{index}) |
@item prime(@var{index}) |
@item lprime(@var{index}) |
@item lprime(@var{index}) |
:: $BAG?t$rJV$9(B |
\JP :: $BAG?t$rJV$9(B |
|
\EG :: Returns a prime number. |
@end table |
@end table |
|
|
@table @var |
@table @var |
@item return |
@item return |
$B@0?t(B |
\JP $B@0?t(B |
|
\EG integer |
@item index |
@item index |
$B@0?t(B |
\JP $B@0?t(B |
|
\EG integer |
@end table |
@end table |
|
|
@itemize @bullet |
@itemize @bullet |
|
\BJP |
@item |
@item |
@code{prime()}, @code{lprime()} $B$$$:$l$b%7%9%F%`$,FbIt$K;}$D(B |
@code{prime()}, @code{lprime()} $B$$$:$l$b%7%9%F%`$,FbIt$K;}$D(B |
$BAG?tI=$NMWAG$rJV$9(B. @code{index} $B$O(B 0 $B0J>e$N@0?t$G(B, $BAG?tI=(B |
$BAG?tI=$NMWAG$rJV$9(B. @code{index} $B$O(B 0 $B0J>e$N@0?t$G(B, $BAG?tI=(B |
Line 259 accelerated integer GCD |
|
Line 394 accelerated integer GCD |
|
$BAG?t$+$iBg$-$$=g$K(B 999 $B8DJV$9(B. $B$=$l0J30$N%$%s%G%C%/%9$KBP$7$F$O(B |
$BAG?t$+$iBg$-$$=g$K(B 999 $B8DJV$9(B. $B$=$l0J30$N%$%s%G%C%/%9$KBP$7$F$O(B |
0 $B$rJV$9(B. |
0 $B$rJV$9(B. |
@item |
@item |
$B$h$j0lHLE*$JAG?t@8@.H!?t$H$7$F$O(B, @code{pari(nextprime,@var{number})} |
$B$h$j0lHLE*$JAG?t@8@.H!?t$H$7$F$O(B, |
|
@code{pari(nextprime,@var{number})} |
$B$,$"$k(B. |
$B$,$"$k(B. |
|
\E |
|
\BEG |
|
@item |
|
The two functions, @code{prime()} and @code{lprime()}, returns |
|
an element stored in the system table of prime numbers. |
|
Here, @code{index} is a non-negative integer and be used as an index |
|
for the prime tables. |
|
The function @code{prime()} can return one of 1900 primes |
|
up to 16381 indexed so that the smaller one has smaller |
|
index. The function @code{lprime()} can return one of 999 primes which |
|
are 8 digit sized and indexed so that the larger one has the smaller |
|
index. |
|
The two function always returns 0 for other indices. |
|
@item |
|
For more general function for prime generation, there is a @code{PARI} |
|
function |
|
|
|
@code{pari(nextprime,@var{number})}. |
|
\E |
@end itemize |
@end itemize |
|
|
@example |
@example |
Line 275 accelerated integer GCD |
|
Line 430 accelerated integer GCD |
|
@end example |
@end example |
|
|
@table @t |
@table @t |
@item $B;2>H(B |
\JP @item $B;2>H(B |
|
\EG @item References |
@fref{pari}. |
@fref{pari}. |
@end table |
@end table |
|
|
@node random,,, $B?t$N1i;;(B |
\JP @node random,,, $B?t$N1i;;(B |
|
\EG @node random,,, Numbers |
@subsection @code{random} |
@subsection @code{random} |
@findex random |
@findex random |
|
|
@table @t |
@table @t |
@item radom([@var{seed}]) |
@item random([@var{seed}]) |
:: $BMp?t$r@8@.$9$k(B. |
\JP :: $BMp?t$r@8@.$9$k(B. |
@end table |
@end table |
|
|
@table @var |
@table @var |
@item seed |
@item seed |
@item return |
@itemx return |
$B<+A3?t(B |
\JP $B<+A3?t(B |
|
\EG non-negative integer |
@end table |
@end table |
|
|
@itemize @bullet |
@itemize @bullet |
|
\BJP |
@item |
@item |
$B:GBg(B 2^32-1 $B$NHsIi@0?t$NMp?t$r@8@.$9$k(B. |
$B:GBg(B 2^32-1 $B$NHsIi@0?t$NMp?t$r@8@.$9$k(B. |
@item |
@item |
Line 310 default $B$N(B seed $B$O8GDj$N$?$a(B, $B<o$r@_Dj$ |
|
Line 469 default $B$N(B seed $B$O8GDj$N$?$a(B, $B<o$r@_Dj$ |
|
@code{mt_save} $B$K$h$j(B state $B$r%U%!%$%k$K(B save $B$G$-$k(B. $B$3$l$r(B @code{mt_load} |
@code{mt_save} $B$K$h$j(B state $B$r%U%!%$%k$K(B save $B$G$-$k(B. $B$3$l$r(B @code{mt_load} |
$B$GFI$_9~$`$3$H$K$h$j(B, $B0[$k(B Asir $B%;%C%7%g%s4V$G0l$D$NMp?t$N7ONs$rC)$k$3$H$,(B |
$B$GFI$_9~$`$3$H$K$h$j(B, $B0[$k(B Asir $B%;%C%7%g%s4V$G0l$D$NMp?t$N7ONs$rC)$k$3$H$,(B |
$B$G$-$k(B. |
$B$G$-$k(B. |
|
\E |
|
\BEG |
|
@item |
|
Generates a random number which is a non-negative integer less than 2^32. |
|
@item |
|
If a non zero argument is specified, then after setting it as a random seed, |
|
a random number is generated. |
|
@item |
|
As the default seed is fixed, the sequence of the random numbers is |
|
always the same if a seed is not set. |
|
@item |
|
The algorithm is Mersenne Twister |
|
(http://www.math.keio.ac.jp/matsumoto/mt.html) by M. Matsumoto and |
|
T. Nishimura. The implementation is done also by themselves. |
|
@item |
|
The period of the random number sequence is 2^19937-1. |
|
@item |
|
One can save the state of the random number generator with @code{mt_save}. |
|
By loading the state file with @code{mt_load}, |
|
one can trace a single random number sequence arcoss multiple sessions. |
|
\E |
@end itemize |
@end itemize |
|
|
@table @t |
@table @t |
@item $B;2>H(B |
\JP @item $B;2>H(B |
|
\EG @item References |
@fref{lrandom}, @fref{mt_save mt_load}. |
@fref{lrandom}, @fref{mt_save mt_load}. |
@end table |
@end table |
|
|
@node lrandom,,, $B?t$N1i;;(B |
\JP @node lrandom,,, $B?t$N1i;;(B |
|
\EG @node lrandom,,, Numbers |
@subsection @code{lrandom} |
@subsection @code{lrandom} |
@findex lrandom |
@findex lrandom |
|
|
@table @t |
@table @t |
@item lradom(@var{bit}) |
@item lrandom(@var{bit}) |
:: $BB?G\D9Mp?t$r@8@.$9$k(B. |
\JP :: $BB?G\D9Mp?t$r@8@.$9$k(B. |
|
\EG :: Generates a long random number. |
@end table |
@end table |
|
|
@table @var |
@table @var |
@item bit |
@item bit |
@item return |
@item return |
$B<+A3?t(B |
\JP $B<+A3?t(B |
|
\EG integer |
@end table |
@end table |
|
|
@itemize @bullet |
@itemize @bullet |
|
\BJP |
@item |
@item |
$B9b!9(B @var{bit} $B$NHsIi@0?t$NMp?t$r@8@.$9$k(B. |
$B9b!9(B @var{bit} $B$NHsIi@0?t$NMp?t$r@8@.$9$k(B. |
@item |
@item |
@code{random} $B$rJ#?t2s8F$S=P$7$F7k9g$7(B, $B;XDj$N(B bit $BD9$K%^%9%/$7$F$$$k(B. |
@code{random} $B$rJ#?t2s8F$S=P$7$F7k9g$7(B, $B;XDj$N(B bit $BD9$K%^%9%/$7$F$$$k(B. |
|
\E |
|
\BEG |
|
@item |
|
Generates a non-negative integer of at most @var{bit} bits. |
|
@item |
|
The result is a concatination of outputs of @code{random}. |
|
\E |
@end itemize |
@end itemize |
|
|
@table @t |
@table @t |
@item $B;2>H(B |
\JP @item $B;2>H(B |
|
\EG @item References |
@fref{random}, @fref{mt_save mt_load}. |
@fref{random}, @fref{mt_save mt_load}. |
@end table |
@end table |
|
|
@node mt_save mt_load,,, $B?t$N1i;;(B |
\JP @node mt_save mt_load,,, $B?t$N1i;;(B |
|
\EG @node mt_save mt_load,,, Numbers |
@subsection @code{mt_save}, @code{mt_load} |
@subsection @code{mt_save}, @code{mt_load} |
@findex mt_save |
@findex mt_save |
@findex mt_load |
@findex mt_load |
|
|
@table @t |
@table @t |
@item mt_save(@var{fname}) |
@item mt_save(@var{fname}) |
:: $BMp?t@8@.4o$N8=:_$N>uBV$r%U%!%$%k$K%;!<%V$9$k(B. |
\JP :: $BMp?t@8@.4o$N8=:_$N>uBV$r%U%!%$%k$K%;!<%V$9$k(B. |
|
\EG :: Saves the state of the random number generator. |
@item mt_load(@var{fname}) |
@item mt_load(@var{fname}) |
:: $B%U%!%$%k$K%;!<%V$5$l$?Mp?t@8@.4o$N>uBV$r%m!<%I$9$k(B. |
\JP :: $B%U%!%$%k$K%;!<%V$5$l$?Mp?t@8@.4o$N>uBV$r%m!<%I$9$k(B. |
|
\EG :: Loads a saved state of the random number generator. |
@end table |
@end table |
|
|
@table @var |
@table @var |
@item return |
@item return |
0 $B$^$?$O(B 1 |
\JP 0 $B$^$?$O(B 1 |
|
\EG 0 or 1 |
@item fname |
@item fname |
$BJ8;zNs(B |
\JP $BJ8;zNs(B |
|
\EG string |
@end table |
@end table |
|
|
@itemize @bullet |
@itemize @bullet |
@item $B$"$k>uBV$r%;!<%V$7(B, $B$=$N>uBV$r%m!<%I$9$k$3$H$G(B, |
\BJP |
|
@item |
|
$B$"$k>uBV$r%;!<%V$7(B, $B$=$N>uBV$r%m!<%I$9$k$3$H$G(B, |
$B0l$D$N5?;wMp?t7ONs$r(B, $B?75,$N(B Asir $B%;%C%7%g%s$GB3$1$F$?$I$k$3$H$,(B |
$B0l$D$N5?;wMp?t7ONs$r(B, $B?75,$N(B Asir $B%;%C%7%g%s$GB3$1$F$?$I$k$3$H$,(B |
$B$G$-$k(B. |
$B$G$-$k(B. |
|
\E |
|
\BEG |
|
@item |
|
One can save the state of the random number generator with @code{mt_save}. |
|
By loading the state file with @code{mt_load}, |
|
one can trace a single random number sequence arcoss multiple |
|
@b{Asir} sessions. |
|
\E |
@end itemize |
@end itemize |
|
|
@example |
@example |
Line 388 Copyright (C) FUJITSU LABORATORIES LIMITED. |
|
Line 596 Copyright (C) FUJITSU LABORATORIES LIMITED. |
|
@end example |
@end example |
|
|
@table @t |
@table @t |
@item $B;2>H(B |
\JP @item $B;2>H(B |
|
\EG @item References |
@fref{random}, @fref{lrandom}. |
@fref{random}, @fref{lrandom}. |
@end table |
@end table |
|
|
@node nm dn,,, $B?t$N1i;;(B |
\JP @node nm dn,,, $B?t$N1i;;(B |
|
\EG @node nm dn,,, Numbers |
@subsection @code{nm}, @code{dn} |
@subsection @code{nm}, @code{dn} |
@findex nm |
@findex nm |
@findex dn |
@findex dn |
|
|
@table @t |
@table @t |
@item nm(@var{rat}) |
@item nm(@var{rat}) |
:: @var{rat} $B$NJ,;R(B. |
\JP :: @var{rat} $B$NJ,;R(B. |
|
\EG :: Numerator of @var{rat}. |
@item dn(@var{rat}) |
@item dn(@var{rat}) |
:: @var{rat} $B$NJ,Jl(B. |
\JP :: @var{rat} $B$NJ,Jl(B. |
|
\EG :: Denominator of @var{rat}. |
@end table |
@end table |
|
|
@table @var |
@table @var |
@item return |
@item return |
$B@0?t$^$?$OB?9`<0(B |
\JP $B@0?t$^$?$OB?9`<0(B |
|
\EG integer or polynomial |
@item rat |
@item rat |
$BM-M}?t$^$?$OM-M}<0(B |
\JP $BM-M}?t$^$?$OM-M}<0(B |
|
\EG rational number or rational expression |
@end table |
@end table |
|
|
@itemize @bullet |
@itemize @bullet |
|
\BJP |
@item |
@item |
$BM?$($i$l$?M-M}?t$^$?M-M}<0$NJ,;R5Z$SJ,Jl$rJV$9(B. |
$BM?$($i$l$?M-M}?t$^$?M-M}<0$NJ,;R5Z$SJ,Jl$rJV$9(B. |
@item |
@item |
Line 420 Copyright (C) FUJITSU LABORATORIES LIMITED. |
|
Line 635 Copyright (C) FUJITSU LABORATORIES LIMITED. |
|
$BM-M}<0$N>l9g(B, $BC1$KJ,Jl(B, $BJ,;R$r<h$j=P$9$@$1$G$"$k(B. |
$BM-M}<0$N>l9g(B, $BC1$KJ,Jl(B, $BJ,;R$r<h$j=P$9$@$1$G$"$k(B. |
$BM-M}<0$KBP$7$F$O(B, $BLsJ,$O<+F0E*$K$O9T$o$l$J$$(B. @code{red()} |
$BM-M}<0$KBP$7$F$O(B, $BLsJ,$O<+F0E*$K$O9T$o$l$J$$(B. @code{red()} |
$B$rL@<(E*$K8F$S=P$9I,MW$,$"$k(B. |
$B$rL@<(E*$K8F$S=P$9I,MW$,$"$k(B. |
|
\E |
|
\BEG |
|
@item |
|
Numerator and denominator of a given rational expression. |
|
@item |
|
For a rational number, they return its numerator and denominator, |
|
respectively. For a rational expression whose numerator and denominator |
|
may contain rational numbers, they do not separate those rational |
|
coefficients to numerators and denominators. |
|
@item |
|
For a rational number, the denominator is always kept positive, and |
|
the sign is contained in the numerator. |
|
@item |
|
@b{Risa/Asir} does not cancel the common divisors unless otherwise explicitly |
|
specified by the user. |
|
Therefore, @code{nm()} and @code{dn()} return the numerator and the |
|
denominator as it is, respectively. |
|
\E |
@end itemize |
@end itemize |
|
|
@example |
@example |
|
|
@end example |
@end example |
|
|
@table @t |
@table @t |
@item $B;2>H(B |
\JP @item $B;2>H(B |
|
\EG @item References |
@fref{red}. |
@fref{red}. |
@end table |
@end table |
|
|
@node conj real imag,,, $B?t$N1i;;(B |
\JP @node conj real imag,,, $B?t$N1i;;(B |
|
\EG @node conj real imag,,, Numbers |
@subsection @code{conj}, @code{real}, @code{imag} |
@subsection @code{conj}, @code{real}, @code{imag} |
@findex conj |
@findex conj |
|
|
@table @t |
@table @t |
@item real(@var{comp}) |
@item real(@var{comp}) |
:: @var{comp} $B$N<B?tItJ,(B. |
\JP :: @var{comp} $B$N<B?tItJ,(B. |
|
\EG :: Real part of @var{comp}. |
@item imag(@var{comp}) |
@item imag(@var{comp}) |
:: @var{comp} $B$N5u?tItJ,(B. |
\JP :: @var{comp} $B$N5u?tItJ,(B. |
|
\EG :: Imaginary part of @var{comp}. |
@item conj(@var{comp}) |
@item conj(@var{comp}) |
:: @var{comp} $B$N6&LrJ#AG?t(B. |
\JP :: @var{comp} $B$N6&LrJ#AG?t(B. |
|
\EG :: Complex conjugate of @var{comp}. |
@end table |
@end table |
|
|
@table @var |
@table @var |
@item return comp |
@item return comp |
$BJ#AG?t(B |
\JP $BJ#AG?t(B |
|
\EG complex number |
@end table |
@end table |
|
|
@itemize @bullet |
@itemize @bullet |
|
\BJP |
@item |
@item |
$BJ#AG?t$KBP$7(B, $B<BIt(B, $B5uIt(B, $B6&Lr$r5a$a$k(B. |
$BJ#AG?t$KBP$7(B, $B<BIt(B, $B5uIt(B, $B6&Lr$r5a$a$k(B. |
@item |
@item |
$B$3$l$i$O(B, $BB?9`<0$KBP$7$F$bF/$/(B. |
$B$3$l$i$O(B, $BB?9`<0$KBP$7$F$bF/$/(B. |
|
\E |
|
\BEG |
|
@item |
|
Basic operations for complex numbers. |
|
@item |
|
These functions works also for polynomials with complex coefficients. |
|
\E |
@end itemize |
@end itemize |
|
|
@example |
@example |
|
|
[2,11,(2-11*@@i)] |
[2,11,(2-11*@@i)] |
@end example |
@end example |
|
|
@node eval,,, $B?t$N1i;;(B |
\JP @node eval deval ,,, $B?t$N1i;;(B |
@subsection @code{eval} |
\EG @node eval deval,,, Numbers |
|
@subsection @code{eval}, @code{deval} |
@findex eval |
@findex eval |
|
@findex deval |
@cindex PARI |
@cindex PARI |
|
|
@table @t |
@table @t |
@item eval(@var{obj}[,@var{prec}]) |
@item eval(@var{obj}[,@var{prec}]) |
:: @var{obj} $B$NCM$NI>2A(B. |
@item deval(@var{obj}) |
|
\JP :: @var{obj} $B$NCM$NI>2A(B. |
|
\EG :: Evaluate @var{obj} numerically. |
@end table |
@end table |
|
|
@table @var |
@table @var |
@item return |
@item return |
$B?t$"$k$$$O<0(B |
\JP $B?t$"$k$$$O<0(B |
|
\EG number or expression |
@item obj |
@item obj |
$B0lHL$N<0(B |
\JP $B0lHL$N<0(B |
|
\EG general expression |
@item prec |
@item prec |
$B@0?t(B |
\JP $B@0?t(B |
|
\EG integer |
@end table |
@end table |
|
|
@itemize @bullet |
@itemize @bullet |
|
\BJP |
@item |
@item |
@var{obj} $B$K4^$^$l$kH!?t$NCM$r2DG=$J8B$jI>2A$9$k(B. |
@var{obj} $B$K4^$^$l$kH!?t$NCM$r2DG=$J8B$jI>2A$9$k(B. |
@item |
@item |
$B7W;;$O(B @b{PARI} (@xref{pari}) $B$,9T$&(B. |
@code{deval} $B$OG\@:EYIbF0>.?t$r7k2L$H$7$F(B |
|
@code{eval} $B$N>l9g(B, $BM-M}?t$O$=$N$^$^;D$k(B. |
@item |
@item |
|
@code{eval} $B$K$*$$$F$O(B, $B7W;;$O(B @b{MPFR} $B%i%$%V%i%j$,9T$&(B. |
|
@code{deval} $B$K$*$$$F$O(B, $B7W;;$O(B C $B?t3X%i%$%V%i%j$N4X?t$rMQ$$$F9T$&(B. |
|
@item |
|
@code{deval} $B$OJ#AG?t$O07$($J$$(B. |
|
@item |
|
@code{eval} $B$K$*$$$F$O(B, |
@var{prec} $B$r;XDj$7$?>l9g(B, $B7W;;$O(B, 10 $B?J(B @var{prec} $B7eDxEY$G9T$o$l$k(B. |
@var{prec} $B$r;XDj$7$?>l9g(B, $B7W;;$O(B, 10 $B?J(B @var{prec} $B7eDxEY$G9T$o$l$k(B. |
@var{prec} $B$N;XDj$,$J$$>l9g(B, $B8=:_@_Dj$5$l$F$$$k@:EY$G9T$o$l$k(B. |
@var{prec} $B$N;XDj$,$J$$>l9g(B, $B8=:_@_Dj$5$l$F$$$k@:EY$G9T$o$l$k(B. |
(@xref{setprec}) |
(@xref{setbprec setprec}.) |
@item |
@item |
@table @t |
@table @t |
@item $B07$($kH!?t$O(B, $B<!$NDL$j(B. |
@item $B07$($kH!?t$O(B, $B<!$NDL$j(B. |
|
|
@code{exp}, @code{log}, @code{pow(a,b) (a^b)} |
@code{exp}, @code{log}, @code{pow(a,b) (a^b)} |
@end table |
@end table |
@item |
@item |
$B0J2<$N5-9f$r?t$H$7$FI>2A$G$-$k(B. |
$B0J2<$N5-9f$r?t$H$7$FI>2A$G$-$k(B. $B$?$@$7(B @code{@@i} $B$r07$($k$N$O(B |
|
@code{eval}, @code{deval} $B$N$_$G$"$k(B. |
@table @t |
@table @t |
@item @@i |
@item @@i |
$B5u?tC10L(B |
$B5u?tC10L(B |
|
|
@item @@e |
@item @@e |
$B<+A3BP?t$NDl(B |
$B<+A3BP?t$NDl(B |
@end table |
@end table |
|
\E |
|
\BEG |
|
@item |
|
Evaluates the value of the functions contained in @var{obj} as far as |
|
possible. |
|
@item |
|
@code{deval} returns |
|
double float. Rational numbers remain unchanged in results from @code{eval}. |
|
@item |
|
In @code{eval} the computation is done |
|
by @b{MPFR} library. In @code{deval} the computation is |
|
done by the C math library. |
|
@item |
|
@code{deval} cannot handle complex numbers. |
|
@item |
|
When @var{prec} is specified, computation will be performed with a |
|
precision of about @var{prec}-digits. |
|
If @var{prec} is not specified, computation is performed with the |
|
precision set currently. (@xref{setbprec setprec}.) |
|
@item |
|
Currently available numerical functions are listed below. |
|
|
|
@table @t |
|
@code{sin}, @code{cos}, @code{tan}, |
|
|
|
@code{asin}, @code{acos}, @code{atan}, |
|
|
|
@code{sinh}, @code{cosh}, @code{tanh}, |
|
@code{asinh}, @code{acosh}, @code{atanh}, |
|
|
|
@code{exp}, @code{log}, @code{pow(a,b) (a^b)} |
|
@end table |
|
@item |
|
Symbols for special values are as the followings. Note that |
|
@code{@@i} cannot be handled by @code{deval}. |
|
@table @t |
|
@item @@i |
|
unit of imaginary number |
|
@item @@pi |
|
the number pi, |
|
the ratio of circumference to diameter |
|
@item @@e |
|
Napier's number (@t{exp}(1)) |
|
@end table |
|
\E |
@end itemize |
@end itemize |
|
|
@example |
@example |
|
|
0.86602540378443864674620506632 |
0.86602540378443864674620506632 |
[121] eval(sin(@@pi/3)-3^(1/2)/2,50); |
[121] eval(sin(@@pi/3)-3^(1/2)/2,50); |
-2.78791084448179148471 E-58 |
-2.78791084448179148471 E-58 |
|
[122] eval(1/2); |
|
1/2 |
|
[123] deval(sin(1)^2+cos(1)^2); |
|
1 |
@end example |
@end example |
|
|
@table @t |
@table @t |
@item $B;2>H(B |
\JP @item $B;2>H(B |
@fref{ctrl}, @fref{setprec}, @fref{pari}. |
\EG @item References |
|
@fref{ctrl}, @fref{setbprec setprec}. |
@end table |
@end table |
|
|
@node pari,,, $B?t$N1i;;(B |
\JP @node pari,,, $B?t$N1i;;(B |
|
\EG @node pari,,, Numbers |
@subsection @code{pari} |
@subsection @code{pari} |
@findex pari |
@findex pari |
@cindex PARI |
@cindex PARI |
|
|
@table @t |
@table @t |
@item pari(@var{func},@var{arg},@var{prec}) |
@item pari(@var{func},@var{arg},@var{prec}) |
:: @b{PARI} $B$NH!?t(B @var{func} $B$r8F$S=P$9(B. |
\JP :: @b{PARI} $B$NH!?t(B @var{func} $B$r8F$S=P$9(B. |
|
\EG :: Call @b{PARI} function @var{func}. |
@end table |
@end table |
|
|
@table @var |
@table @var |
@item return |
@item return |
@var{func} $BKh$K0[$J$k(B. |
\JP @var{func} $BKh$K0[$J$k(B. |
|
\EG Depends on @var{func}. |
@item func |
@item func |
@b{PARI} $B$NH!?tL>(B |
\JP @b{PARI} $B$NH!?tL>(B |
|
\EG Function name of @b{PARI}. |
@item arg |
@item arg |
@var{func} $B$N0z?t(B |
\JP @var{func} $B$N0z?t(B |
|
\EG Arguments of @var{func}. |
@item prec |
@item prec |
$B@0?t(B |
\JP $B@0?t(B |
|
\EG integer |
@end table |
@end table |
|
|
@itemize @bullet |
@itemize @bullet |
|
\BJP |
@item |
@item |
@b{PARI} $B$NH!?t$r8F$S=P$9(B. |
@b{PARI} $B$NH!?t$r8F$S=P$9(B. |
|
|
|
|
$BH!?tCM$NI>2A$r9bB.$K9T$&$3$H$,$G$-$k(B. @b{PARI} $B$OB>$N%W%m%0%i%`$+$i(B |
$BH!?tCM$NI>2A$r9bB.$K9T$&$3$H$,$G$-$k(B. @b{PARI} $B$OB>$N%W%m%0%i%`$+$i(B |
$B%5%V%k!<%A%s%i%$%V%i%j$H$7$FMQ$$$k$3$H$,$G$-(B, $B$^$?(B, @samp{gp} $B$H$$$&(B |
$B%5%V%k!<%A%s%i%$%V%i%j$H$7$FMQ$$$k$3$H$,$G$-(B, $B$^$?(B, @samp{gp} $B$H$$$&(B |
@b{PARI}$B%i%$%V%i%j$N%$%s%?%U%'!<%9$K$h$j(B UNIX $B$N%"%W%j%1!<%7%g%s$H$7$F(B |
@b{PARI}$B%i%$%V%i%j$N%$%s%?%U%'!<%9$K$h$j(B UNIX $B$N%"%W%j%1!<%7%g%s$H$7$F(B |
$BMxMQ$9$k$3$H$b$G$-$k(B. $B8=:_$N%P!<%8%g%s$O(B @b{1.39} $B$G$$$/$D$+$N(B ftp |
$BMxMQ$9$k$3$H$b$G$-$k(B. |
site ($B$?$H$($P(B @code{math.ucla.edu:/pub/pari}) |
|
$B$+$i(B anonymous ftp $B$G$-$k(B. |
|
@item |
@item |
$B:G8e$N0z?t(B @var{prec} $B$G7W;;@:EY$r;XDj$G$-$k(B. |
$B:G8e$N0z?t(B @var{prec} $B$G7W;;@:EY$r;XDj$G$-$k(B. |
@var{prec} $B$r>JN,$7$?>l9g(B @code{setprec()} $B$G;XDj$7$?@:EY$H$J$k(B. |
@var{prec} $B$r>JN,$7$?>l9g(B @code{setprec()} $B$G;XDj$7$?@:EY$H$J$k(B. |
Line 580 site ($B$?$H$($P(B @code{math.ucla.edu:/pub/pari}) |
|
Line 898 site ($B$?$H$($P(B @code{math.ucla.edu:/pub/pari}) |
|
$B8=;~E@$G<B9T$G$-$k(B @b{PARI} $B$NH!?t$O<!$NDL$j$G$"$k(B. $B$$$:$l$b(B |
$B8=;~E@$G<B9T$G$-$k(B @b{PARI} $B$NH!?t$O<!$NDL$j$G$"$k(B. $B$$$:$l$b(B |
1 $B0z?t$G(B @b{Asir} $B$,BP1~$G$-$k7?$N0z?t$r$H$kH!?t$G$"$k(B. |
1 $B0z?t$G(B @b{Asir} $B$,BP1~$G$-$k7?$N0z?t$r$H$kH!?t$G$"$k(B. |
$B$J$*3F!9$N5!G=$K$D$$$F$O(B @b{PARI} $B$N%^%K%e%"%k$r;2>H$N$3$H(B. |
$B$J$*3F!9$N5!G=$K$D$$$F$O(B @b{PARI} $B$N%^%K%e%"%k$r;2>H$N$3$H(B. |
|
\E |
|
\BEG |
|
@item |
|
This command connects @b{Asir} to @b{PARI} system so that several |
|
functions of @b{PARI} can be conveniently used from @b{Risa/Asir}. |
|
@item |
|
@b{PARI} @code{[Batut et al.]} is developed at Bordeaux University, and |
|
distributed as a free software. Though it has a certain facility to computer |
|
algebra, its major target is the operation of numbers (@b{bignum}, |
|
@b{bigfloat}) related to the number theory. It facilitates various |
|
function evaluations as well as arithmetic operations at a remarkable |
|
speed. It can also be used from other external programs as a library. |
|
It provides a language interface named @samp{gp} to its library, which |
|
enables a user to use @b{PARI} as a calculator which runs on UNIX. |
|
@item |
|
The last argument (optional) @var{int} specifies the precision in digits |
|
for bigfloat operation. |
|
If the precision is not explicitly specified, operation will be performed |
|
with the precision set by @code{setprec()}. |
|
@item |
|
Currently available functions of @b{PARI} system are as follows. |
|
Note these are only a part of functions in @b{PARI} system. |
|
For details of individual functions, refer to the @b{PARI} manual. |
|
(Some of them can be seen in the following example.) |
|
\E |
|
|
@code{abs}, |
@code{abs}, |
@code{adj}, |
@code{adj}, |
Line 657 site ($B$?$H$($P(B @code{math.ucla.edu:/pub/pari}) |
|
Line 1000 site ($B$?$H$($P(B @code{math.ucla.edu:/pub/pari}) |
|
@code{lngamma}, |
@code{lngamma}, |
@code{logagm}, |
@code{logagm}, |
@code{mat}, |
@code{mat}, |
@code{matinvr}, |
|
@code{matrixqz2}, |
@code{matrixqz2}, |
@code{matrixqz3}, |
@code{matrixqz3}, |
@code{matsize}, |
@code{matsize}, |
Line 714 site ($B$?$H$($P(B @code{math.ucla.edu:/pub/pari}) |
|
Line 1056 site ($B$?$H$($P(B @code{math.ucla.edu:/pub/pari}) |
|
@code{wf2}, |
@code{wf2}, |
@code{zeta} |
@code{zeta} |
|
|
|
\BJP |
@item |
@item |
@b{Asir} $B$GMQ$$$F$$$k$N$O(B @b{PARI} $B$N$[$s$N0lIt$N5!G=$G$"$k$,(B, $B:#8e(B |
@b{Asir} $B$GMQ$$$F$$$k$N$O(B @b{PARI} $B$N$[$s$N0lIt$N5!G=$G$"$k(B. |
$B$h$jB?$/$N5!G=$,MxMQ$G$-$k$h$&2~NI$9$kM=Dj$G$"$k(B. |
\E |
|
\BEG |
|
@item |
|
@b{Asir} currently uses only a very small subset of @b{PARI}. |
|
\E |
@end itemize |
@end itemize |
|
|
@example |
@example |
/* $B9TNs$N8GM-%Y%/%H%k$r5a$a$k(B. */ |
\JP /* $B9TNs$N8GM-%Y%/%H%k$r5a$a$k(B. */ |
|
\EG /* Eigen vectors of a numerical matrix */ |
[0] pari(eigen,newmat(2,2,[[1,1],[1,2]])); |
[0] pari(eigen,newmat(2,2,[[1,1],[1,2]])); |
[ -1.61803398874989484819771921990 0.61803398874989484826 ] |
[ -1.61803398874989484819771921990 0.61803398874989484826 ] |
[ 1 1 ] |
[ 1 1 ] |
/* 1 $BJQ?tB?9`<0$N:,$r5a$a$k(B. */ |
\JP /* 1 $BJQ?tB?9`<0$N:,$r5a$a$k(B. */ |
|
\EG /* Roots of a polynomial */ |
[1] pari(roots,t^2-2); |
[1] pari(roots,t^2-2); |
[ -1.41421356237309504876 1.41421356237309504876 ] |
[ -1.41421356237309504876 1.41421356237309504876 ] |
@end example |
@end example |
|
|
@table @t |
@table @t |
@item $B;2>H(B |
\JP @item $B;2>H(B |
@fref{setprec}. |
\EG @item References |
|
@fref{setbprec setprec}. |
@end table |
@end table |
|
|
@node setprec,,, $B?t$N1i;;(B |
\JP @node setbprec setprec,,, $B?t$N1i;;(B |
@subsection @code{setprec} |
\EG @node setbprec setprec,,, Numbers |
|
@subsection @code{setbprec}, @code{setprec} |
|
@findex setbprec |
@findex setprec |
@findex setprec |
@cindex PARI |
|
|
|
@table @t |
@table @t |
@item setprec([@var{n}]) |
@item setbprec([@var{n}]) |
:: @b{bigfloat} $B$N7e?t$r(B @var{n} $B7e$K@_Dj$9$k(B. |
@itemx setprec([@var{n}]) |
|
\JP :: @b{setbprec}, @b{setprec} $B$O(B @b{bigfloat} $B$N@:EY$r$=$l$>$l(B 2 $B?J(B, 10$B?J(B @var{n} $B7e$K@_Dj$9$k(B. |
|
\EG :: @b{setbprec}, @b{setprec} set the precision for @b{bigfloat} operations to @var{n} bits, @var{n} digits respectively. |
@end table |
@end table |
|
|
@table @var |
@table @var |
@item return |
@item return |
$B@0?t(B |
\JP $B@0?t(B |
|
\EG integer |
@item n |
@item n |
$B@0?t(B |
\JP $B@0?t(B |
|
\EG integer |
@end table |
@end table |
|
|
@itemize @bullet |
@itemize @bullet |
|
\BJP |
@item |
@item |
$B0z?t$,$"$k>l9g(B, @b{bigfloat} $B$N7e?t$r(B @var{n} $B7e$K@_Dj$9$k(B. |
$B0z?t$,$"$k>l9g(B, @b{bigfloat} $B$N7e?t$r(B @var{n} $B7e$K@_Dj$9$k(B. |
$B0z?t$N$"$k$J$7$K$+$+$o$i$:(B, $B0JA0$K@_Dj$5$l$F$$$?CM$rJV$9(B. |
$B0z?t$N$"$k$J$7$K$+$+$o$i$:(B, $B0JA0$K@_Dj$5$l$F$$$?CM$rJV$9(B. |
@item |
@item |
@b{bigfloat} $B$N7W;;$O(B @b{PARI} (@xref{pari}) $B$K$h$C$F9T$o$l$k(B. |
@b{bigfloat} $B$N7W;;$O(B @b{MPFR} $B%i%$%V%i%j$K$h$C$F9T$o$l$k(B. |
@item |
@item |
@b{bigfloat} $B$G$N7W;;$KBP$7M-8z$G$"$k(B. |
@b{bigfloat} $B$G$N7W;;$KBP$7M-8z$G$"$k(B. |
@b{bigfloat} $B$N(B flag $B$r(B on $B$K$9$kJ}K!$O(B, @code{ctrl} $B$r;2>H(B. |
@b{bigfloat} $B$N(B flag $B$r(B on $B$K$9$kJ}K!$O(B, @code{ctrl} $B$r;2>H(B. |
@item |
@item |
$B@_Dj$G$-$k7e?t$K>e8B$O$J$$$,(B, $B;XDj$7$?7e?t$K@_Dj$5$l$k$H$O(B |
$B@_Dj$G$-$k7e?t$K>e8B$O$J$$$,(B, $B;XDj$7$?7e?t$K@_Dj$5$l$k$H$O(B |
$B8B$i$J$$(B. $BBg$-$a$NCM$r@_Dj$9$k$N$,0BA4$G$"$k(B. |
$B8B$i$J$$(B. $BBg$-$a$NCM$r@_Dj$9$k$N$,0BA4$G$"$k(B. |
|
\E |
|
\BEG |
|
@item |
|
When an argument @var{n} is given, these functions |
|
set the precision for @b{bigfloat} operations to @var{n} bits or @var{n} digits. |
|
The return value is always the previous precision regardless of |
|
the existence of an argument. |
|
|
|
@item |
|
@b{Bigfloat} operations are done by @b{MPFR} library. |
|
@item |
|
This is effective for computations in @b{bigfloat}. |
|
Refer to @code{ctrl()} for turning on the `@b{bigfloat} flag.' |
|
@item |
|
There is no upper limit for precision digits. |
|
It sets the precision to some digits around the specified precision. |
|
Therefore, it is safe to specify a larger value. |
|
\E |
@end itemize |
@end itemize |
|
|
@example |
@example |
[1] setprec(); |
[1] setprec(); |
9 |
15 |
[2] setprec(100); |
[2] setprec(100); |
9 |
15 |
[3] setprec(100); |
[3] setprec(100); |
96 |
99 |
|
[4] setbprec(); |
|
332 |
@end example |
@end example |
|
|
@table @t |
@table @t |
@item $B;2>H(B |
\JP @item $B;2>H(B |
@fref{ctrl}, @fref{eval}, @fref{pari}. |
@fref{ctrl}, @fref{eval deval}. |
@end table |
@end table |
|
|
@node setmod,,, $B?t$N1i;;(B |
\JP @node setround,,, $B?t$N1i;;(B |
|
\EG @node setround,,, Numbers |
|
@subsection @code{setround} |
|
@findex setround |
|
|
|
@table @t |
|
@item setround([@var{mode}]) |
|
\JP :: @b{bigfloat} $B$N4]$a%b!<%I$r(B @var{mode} $B$K@_Dj$9$k(B. |
|
\EG :: Sets the rounding mode @var{mode}. |
|
@end table |
|
|
|
@table @var |
|
@item return |
|
\JP $B@0?t(B |
|
\EG integer |
|
@item mode |
|
\JP $B@0?t(B |
|
\EG integer |
|
@end table |
|
|
|
@itemize @bullet |
|
\BJP |
|
@item |
|
$B0z?t$,$"$k>l9g(B, @b{bigfloat} $B$N4]$a%b!<%I$r(B @var{mode} $B$K@_Dj$9$k(B. |
|
$B0z?t$N$"$k$J$7$K$+$+$o$i$:(B, $B0JA0$K@_Dj$5$l$F$$$?CM$rJV$9(B. |
|
$B4]$a%b!<%I$N0UL#$O<!$N$H$*$j(B. |
|
@table @code |
|
@item 0 |
|
Round to nearest |
|
@item 1 |
|
Round toward 0 |
|
@item 2 |
|
Round toward +infinity |
|
@item 3 |
|
Round toward -infinity |
|
@end table |
|
@item |
|
@b{bigfloat} $B$G$N7W;;$KBP$7M-8z$G$"$k(B. |
|
@b{bigfloat} $B$N(B flag $B$r(B on $B$K$9$kJ}K!$O(B, @code{ctrl} $B$r;2>H(B. |
|
\E |
|
\BEG |
|
@item |
|
When an argument @var{mode} is given, these functions |
|
set the rounding mode for @b{bigfloat} operations to @var{mode}. |
|
The return value is always the previous rounding mode regardless of |
|
the existence of an argument. |
|
The meanings of rounding modes are as follows |
|
@table @code |
|
@item 0 |
|
Round to nearest |
|
@item 1 |
|
Round toward 0 |
|
@item 2 |
|
Round toward +infinity |
|
@item 3 |
|
Round toward -infinity |
|
@end table |
|
|
|
@item |
|
This is effective for computations in @b{bigfloat}. |
|
Refer to @code{ctrl()} for turning on the `@b{bigfloat} flag.' |
|
\E |
|
@end itemize |
|
|
|
@example |
|
[1] setprec(); |
|
15 |
|
[2] setprec(100); |
|
15 |
|
[3] setprec(100); |
|
99 |
|
[4] setbprec(); |
|
332 |
|
@end example |
|
|
|
@table @t |
|
\JP @item $B;2>H(B |
|
@fref{ctrl}, @fref{eval deval}. |
|
@end table |
|
|
|
|
|
\JP @node setmod,,, $B?t$N1i;;(B |
|
\EG @node setmod,,, Numbers |
@subsection @code{setmod} |
@subsection @code{setmod} |
@findex setmod |
@findex setmod |
|
|
@table @t |
@table @t |
@item setmod([@var{p}]) |
@item setmod([@var{p}]) |
:: $BM-8BBN$r(B GF(@var{p}) $B$K@_Dj$9$k(B. |
\JP :: $BM-8BBN$r(B GF(@var{p}) $B$K@_Dj$9$k(B. |
|
\EG :: Sets the ground field to GF(@var{p}). |
@end table |
@end table |
|
|
@table @var |
@table @var |
@item return |
@item return |
$B@0?t(B |
\JP $B@0?t(B |
|
\EG integer |
@item n |
@item n |
2^27 $BL$K~$NAG?t(B |
\JP 2^27 $BL$K~$NAG?t(B |
|
\EG prime less than 2^27 |
@end table |
@end table |
|
|
@itemize @bullet |
@itemize @bullet |
|
\BJP |
@item |
@item |
$BM-8BBN$r(B GF(@var{p}) $B$K@_Dj$9$k(B. $B@_DjCM$rJV$9(B. |
$BM-8BBN$r(B GF(@var{p}) $B$K@_Dj$9$k(B. $B@_DjCM$rJV$9(B. |
@item |
@item |
$BM-8BBN$N85$N7?$r;}$D?t$O(B, $B$=$l<+?H$O$I$NM-8BBN$KB0$9$k$+$N>pJs$r;}$?$:(B, |
$BM-8BBN$N85$N7?$r;}$D?t$O(B, $B$=$l<+?H$O$I$NM-8BBN$KB0$9$k$+$N>pJs$r;}$?$:(B, |
$B8=:_@_Dj$5$l$F$$$kAG?t(B @var{p} $B$K$h$j(B GF(@var{p}) $B>e$G$N1i;;$,E,MQ$5$l$k(B. |
$B8=:_@_Dj$5$l$F$$$kAG?t(B @var{p} $B$K$h$j(B GF(@var{p}) $B>e$G$N1i;;$,E,MQ$5$l$k(B. |
|
@item |
|
$B0L?t$NBg$-$JM-8BBN$K4X$7$F$O(B @pxref{$BM-8BBN$K4X$9$k1i;;(B}. |
|
\E |
|
\BEG |
|
@item |
|
Sets the ground field to GF(@var{p}) and returns the value @var{p}. |
|
@item |
|
A member of a finite field does not have any information |
|
about the field and the arithmetic operations over GF(@var{p}) are applied |
|
with @var{p} set at the time. |
|
@item |
|
As for large finite fields, @pxref{Finite fields}. |
|
\E |
@end itemize |
@end itemize |
|
|
@example |
@example |
Line 816 return to toplevel |
|
Line 1291 return to toplevel |
|
@end example |
@end example |
|
|
@table @t |
@table @t |
@item $B;2>H(B |
\JP @item $B;2>H(B |
@fref{dp_mod dp_rat}, @fref{$B?t$N7?(B}. |
\EG @item References |
|
\JP @fref{dp_mod dp_rat}, @fref{$B?t$N7?(B}. |
|
\EG @fref{dp_mod dp_rat}, @fref{Types of numbers}. |
@end table |
@end table |
|
|
|
\JP @node ntoint32 int32ton,,, $B?t$N1i;;(B |
|
\EG @node ntoint32 int32ton,,, Numbers |
|
@subsection @code{ntoint32}, @code{int32ton} |
|
@findex ntoint32 |
|
@findex int32ton |
|
|
|
@table @t |
|
@item ntoint32(@var{n}) |
|
@itemx int32ton(@var{int32}) |
|
\JP :: $BHsIi@0?t$HId9f$J$7(B 32bit $B@0?t$N4V$N7?JQ49(B. |
|
\EG :: Type-conversion between a non-negative integer and an unsigned 32bit integer. |
|
@end table |
|
|
|
@table @var |
|
@item return |
|
\JP $BId9f$J$7(B 32bit $B@0?t$^$?$OHsIi@0?t(B |
|
\EG unsigned 32bit integer or non-negative integer |
|
@item n |
|
\JP 2^32 $BL$K~$NHsIi@0?t(B |
|
\EG non-negative interger less than 2^32 |
|
@item int32 |
|
\JP $BId9f$J$7(B 32bit $B@0?t(B |
|
\EG unsigned 32bit integer |
|
@end table |
|
|
|
@itemize @bullet |
|
\BJP |
|
@item $BHsIi@0?t(B ($B<1JL;R(B 1) $B$NId9f$J$7(B 32bit $B@0?t(B ($B<1JL;R(B 10) $B$X$NJQ49(B, |
|
$B$^$?$O$=$N5UJQ49$r9T$&(B. |
|
@item 32bit $B@0?t$O(B @b{OpenXM} $B$N4pK\9=@.MWAG$G$"$j(B, $B@0?t$r$=$N7?$GAw?.(B |
|
$B$9$kI,MW$,$"$k>l9g$KMQ$$$k(B. |
|
\E |
|
\BEG |
|
@item These functions do conversions between non-negative |
|
integers (the type id 1) and unsigned 32bit integers (the type id 10). |
|
@item An unsigned 32bit integer is a fundamental construct of @b{OpenXM} |
|
and one often has to send an integer to a server as an unsigned 32bit |
|
integer. These functions are used in such a case. |
|
\E |
|
@end itemize |
|
|
|
@table @t |
|
\JP @item $B;2>H(B |
|
\EG @item References |
|
\JP @fref{$BJ,;67W;;(B}, @fref{$B?t$N7?(B}. |
|
\EG @fref{Distributed computation}, @fref{Types of numbers}. |
|
@end table |