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

Diff for /OpenXM/src/asir-doc/parts/builtin/num.texi between version 1.10 and 1.13

version 1.10, 2003/12/20 20:02:28 version 1.13, 2019/03/29 01:57:46
Line 1 
Line 1 
 @comment $OpenXM: OpenXM/src/asir-doc/parts/builtin/num.texi,v 1.9 2003/12/18 10:26:20 ohara Exp $  @comment $OpenXM: OpenXM/src/asir-doc/parts/builtin/num.texi,v 1.12 2016/08/29 04:56:58 noro Exp $
 \BJP  \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
Line 22 
Line 22 
 * conj real imag::  * conj real imag::
 * eval deval::  * eval deval::
 * pari::  * pari::
 * setprec::  * setbprec setprec::
 * setmod::  * setmod::
 * lrandom::  * lrandom::
 * ntoint32 int32ton::  * ntoint32 int32ton::
   * setround::
   * inttorat::
 @end menu  @end menu
   
 \JP @node idiv irem,,, $B?t$N1i;;(B  \JP @node idiv irem,,, $B?t$N1i;;(B
Line 748  These functions works also for polynomials with comple
Line 750  These functions works also for polynomials with comple
 @code{deval} $B$OG\@:EYIbF0>.?t$r7k2L$H$7$F(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.  @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{PARI} (@ref{pari}) $B$,9T$&(B.  @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.  @code{deval} $B$K$*$$$F$O(B, $B7W;;$O(B C $B?t3X%i%$%V%i%j$N4X?t$rMQ$$$F9T$&(B.
 @item  @item
 @code{deval} $B$OJ#AG?t$O07$($J$$(B.  @code{deval} $B$OJ#AG?t$O07$($J$$(B.
Line 756  These functions works also for polynomials with comple
Line 758  These functions works also for polynomials with comple
 @code{eval} $B$K$*$$$F$O(B,  @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.
Line 791  possible.
Line 793  possible.
 double float. Rational numbers remain unchanged in results from @code{eval}.  double float. Rational numbers remain unchanged in results from @code{eval}.
 @item  @item
 In @code{eval} the computation is done  In @code{eval} the computation is done
 by @b{PARI}. (@xref{pari}.) In @code{deval} the computation is  by @b{MPFR} library. In @code{deval} the computation is
 done by the C math library.  done by the C math library.
 @item  @item
 @code{deval} cannot handle complex numbers.  @code{deval} cannot handle complex numbers.
Line 799  done by the C math library.
Line 801  done by the C math library.
 When @var{prec} is specified, computation will be performed with a  When @var{prec} is specified, computation will be performed with a
 precision of about @var{prec}-digits.  precision of about @var{prec}-digits.
 If @var{prec} is not specified, computation is performed with the  If @var{prec} is not specified, computation is performed with the
 precision set currently. (@xref{setprec}.)  precision set currently. (@xref{setbprec setprec}.)
 @item  @item
 Currently available numerical functions are listed below.  Currently available numerical functions are listed below.
 Note they are only a small part of whole @b{PARI} functions.  
   
 @table @t  @table @t
 @code{sin}, @code{cos}, @code{tan},  @code{sin}, @code{cos}, @code{tan},
Line 847  Napier's number (@t{exp}(1))
Line 848  Napier's number (@t{exp}(1))
 @table @t  @table @t
 \JP @item $B;2>H(B  \JP @item $B;2>H(B
 \EG @item References  \EG @item References
 @fref{ctrl}, @fref{setprec}, @fref{pari}.  @fref{ctrl}, @fref{setbprec setprec}.
 @end table  @end table
   
 \JP @node pari,,, $B?t$N1i;;(B  \JP @node pari,,, $B?t$N1i;;(B
Line 890  Napier's number (@t{exp}(1))
Line 891  Napier's number (@t{exp}(1))
 $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{2.0.17beta} $B$G$$$/$D$+$N(B ftp  $BMxMQ$9$k$3$H$b$G$-$k(B.
 site ($B$?$H$($P(B @code{ftp://megrez.ceremab.u-bordeaux.fr/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 914  function evaluations as well as arithmetic operations 
Line 913  function evaluations as well as arithmetic operations 
 speed.  It can also be used from other external programs as a library.  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  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.  enables a user to use @b{PARI} as a calculator which runs on UNIX.
 The current version is @b{2.0.17beta}.  It can be obtained by several ftp  
 sites. (For example, @code{ftp://megrez.ceremab.u-bordeaux.fr/pub/pari}.)  
 @item  @item
 The last argument (optional) @var{int} specifies the precision in digits  The last argument (optional) @var{int} specifies the precision in digits
 for bigfloat operation.  for bigfloat operation.
Line 1062  For details of individual functions, refer to the @b{P
Line 1059  For details of individual functions, refer to the @b{P
   
 \BJP  \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  \E
 \BEG  \BEG
 @item  @item
 @b{Asir} currently uses only a very small subset of @b{PARI}.  @b{Asir} currently uses only a very small subset of @b{PARI}.
 We will improve @b{Asir} so that it can provide more functions of  
 @b{PARI}.  
 \E  \E
 @end itemize  @end itemize
   
Line 1088  We will improve @b{Asir} so that it can provide more f
Line 1082  We will improve @b{Asir} so that it can provide more f
 @table @t  @table @t
 \JP @item $B;2>H(B  \JP @item $B;2>H(B
 \EG @item References  \EG @item References
 @fref{setprec}.  @fref{setbprec setprec}.
 @end table  @end table
   
 \JP @node setprec,,, $B?t$N1i;;(B  \JP @node setbprec setprec,,, $B?t$N1i;;(B
 \EG @node setprec,,, Numbers  \EG @node setbprec setprec,,, Numbers
 @subsection @code{setprec}  @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}])
 \JP :: @b{bigfloat} $B$N7e?t$r(B @var{n} $B7e$K@_Dj$9$k(B.  @itemx setprec([@var{n}])
 \EG :: Sets the precision for @b{bigfloat} operations to @var{n} digits.  \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
Line 1118  We will improve @b{Asir} so that it can provide more f
Line 1113  We will improve @b{Asir} so that it can provide more f
 $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} (@ref{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.
Line 1128  We will improve @b{Asir} so that it can provide more f
Line 1123  We will improve @b{Asir} so that it can provide more f
 \E  \E
 \BEG  \BEG
 @item  @item
 When an argument is given, it  When an argument @var{n} is given, these functions
 sets the precision for @b{bigfloat} operations to @var{n} digits.  set the precision for @b{bigfloat} operations to @var{n} bits or @var{n} digits.
 The return value is always the previous precision in digits regardless of  The return value is always the previous precision regardless of
 the existence of an argument.  the existence of an argument.
   
 @item  @item
 @b{Bigfloat} operations are done by @b{PARI}. (@xref{pari}.)  @b{Bigfloat} operations are done by @b{MPFR} library.
 @item  @item
 This is effective for computations in @b{bigfloat}.  This is effective for computations in @b{bigfloat}.
 Refer to @code{ctrl()} for turning on the `@b{bigfloat} flag.'  Refer to @code{ctrl()} for turning on the `@b{bigfloat} flag.'
Line 1147  Therefore, it is safe to specify a larger value.
Line 1142  Therefore, it is safe to specify a larger value.
   
 @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
 \JP @item $B;2>H(B  \JP @item $B;2>H(B
 @fref{ctrl}, @fref{eval deval}, @fref{pari}.  @fref{ctrl}, @fref{eval deval}.
 @end table  @end table
   
   \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  \JP @node setmod,,, $B?t$N1i;;(B
 \EG @node setmod,,, Numbers  \EG @node setmod,,, Numbers
 @subsection @code{setmod}  @subsection @code{setmod}
Line 1266  integer. These functions are used in such a case.
Line 1344  integer. These functions are used in such a case.
 \EG @item References  \EG @item References
 \JP @fref{$BJ,;67W;;(B}, @fref{$B?t$N7?(B}.  \JP @fref{$BJ,;67W;;(B}, @fref{$B?t$N7?(B}.
 \EG @fref{Distributed computation}, @fref{Types of numbers}.  \EG @fref{Distributed computation}, @fref{Types of numbers}.
   @end table
   
   \JP @node inttorat,,, $B?t$N1i;;(B
   \EG @node inttorat,,, Numbers
   @subsection @code{inttorat}
   @findex inttorat
   
   @table @t
   @item inttorat(@var{a},@var{m},@var{b})
   \JP :: $B@0?t(B-$BM-M}?tJQ49$r9T$&(B.
   \EG :: Perform the rational reconstruction.
   @end table
   
   @table @var
   @item return
   \JP $B%j%9%H$^$?$O(B 0
   \EG list or 0
   @item a
   @itemx m
   @itemx b
   \JP $B@0?t(B
   \EG integer
   @end table
   
   @itemize @bullet
   \BJP
   @item
   $B@0?t(B @var{a} $B$KBP$7(B, @var{xa=y} mod @var{m} $B$rK~$?$9@5@0?t(B @var{x}, $B@0?t(B @var{y}
   (@var{x}, @var{|y|} < @var{b}, @var{GCD(x,y)=1}) $B$r5a$a$k(B.
   @item
   $B$3$N$h$&$J(B @var{x}, @var{y} $B$,B8:_$9$k$J$i(B @var{[y,x]} $B$rJV$7(B, $BB8:_$7$J$$>l9g$K$O(B 0 $B$rJV$9(B.
   @item
   @var{b} $B$r(B @var{floor(sqrt(m/2))} $B$H<h$l$P(B, @var{x}, @var{y} $B$OB8:_$9$l$P0l0U$G$"$k(B.
   @var{floor(sqrt(m/2))} $B$O(B @code{isqrt(floor(m/2))} $B$G7W;;$G$-$k(B.
   @end itemize
   \E
   \BEG
   @item
   For an integer @var{a}, find a positive integer @var{x} and an intger @var{y} satisfying
   @var{xa=y} mod @var{m}, @var{x}, @var{|y|} < @var{b} and @var{GCD(x,y)=1}.
   @item
   If such @var{x}, @var{y} exist then a list @var{[y,x]} is returned. Otherwise 0 is returned.
   @item
   If @var{b} is set to @var{floor(sqrt(M/2))}, then @var{x} and @var{y} are unique if they
   exist. @var{floor(sqrt(M/2))} can be computed by @code{floor} and @code{isqrt}.
   @end itemize
   \E
   
   @example
   [2121] M=lprime(0)*lprime(1);
   9996359931312779
   [2122] B=isqrt(floor(M/2));
   70697807
   [2123] A=234234829304;
   234234829304
   [2124] inttorat(A,M,B);
   [-20335178,86975031]
   @end example
   
   @table @t
   \JP @item $B;2>H(B
   \EG @item References
   @fref{floor}, @fref{isqrt}.
 @end table  @end table

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.13

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