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

Diff for /OpenXM/src/asir-doc/parts/risa.texi between version 1.1 and 1.2

version 1.1, 1999/12/08 05:47:44 version 1.2, 1999/12/21 02:47:32
Line 1 
Line 1 
   @comment $OpenXM$
 @node Risa/Asir,,, Top  @node Risa/Asir,,, Top
 @chapter Risa/Asir  @chapter Risa/Asir
   
 @menu  @menu
   \BJP
 * Risa $B$*$h$S(B Asir::  * Risa $B$*$h$S(B Asir::
 * Asir $B$NFCD'(B::  * Asir $B$NFCD'(B::
 * $B%$%s%9%H%l!<%7%g%s(B::  * $B%$%s%9%H%l!<%7%g%s(B::
Line 11 
Line 13 
 * $B3d$j9~$_(B::  * $B3d$j9~$_(B::
 * $B%(%i!<=hM}(B::  * $B%(%i!<=hM}(B::
 * $B7W;;7k2L$*$h$SFC<l$J?t(B::  * $B7W;;7k2L$*$h$SFC<l$J?t(B::
   \E
   \BEG
   * Risa and Asir::
   * Features of Asir::
   * Installation::
   * Command line options::
   * Environment variable::
   * Starting and Terminating an Asir session::
   * Interruption::
   * Error handling::
   * Referencing results and special numbers::
   \E
 @end menu  @end menu
   
   \BJP
 @node Risa $B$*$h$S(B Asir,,, Risa/Asir  @node Risa $B$*$h$S(B Asir,,, Risa/Asir
 @section Risa $B$*$h$S(B Asir  @section Risa $B$*$h$S(B Asir
   \E
   \BEG
   @node Risa and Asir,,, Risa/Asir
   @section @b{Risa} and @b{Asir}
   \E
   
 @noindent  @noindent
   \BJP
 @b{Risa} $B$O(B, $BIY;NDL8&$G3+H/Cf$N?t<0=hM}%7%9%F%`(B/$B%i%$%V%i%j$NAm>N$G$"$k(B.  @b{Risa} $B$O(B, $BIY;NDL8&$G3+H/Cf$N?t<0=hM}%7%9%F%`(B/$B%i%$%V%i%j$NAm>N$G$"$k(B.
 @b{Risa} $B$N9=@.$O<!$NDL$j$G$"$k(B.  @b{Risa} $B$N9=@.$O<!$NDL$j$G$"$k(B.
   \E
   \BEG
   @b{Risa} is the name of whole libraries of a computer algebra system
   which is under development at FUJITSU LABORATORIES LIMITED.
   The structure of @b{Risa} is as follows.
   \E
   
 @itemize @bullet  @itemize @bullet
 @item  @item
 @code{$B4pK\1i;;It(B}  \JP @code{$B4pK\1i;;It(B}
   \EG @b{The basic algebraic engine}
   
   \BJP
 $B$3$l$O(B, @b{Risa} $B$NFbIt7A<0$KJQ49$5$l$?%*%V%8%'%/%H(B ($B?t(B, $BB?9`<0$J$I(B)  $B$3$l$O(B, @b{Risa} $B$NFbIt7A<0$KJQ49$5$l$?%*%V%8%'%/%H(B ($B?t(B, $BB?9`<0$J$I(B)
 $B$N4V$N1i;;$r<B9T$9$kItJ,$G$"$j(B, UNIX $B$N(B @samp{libc.a} $B$J$I$HF1MM$N(B, $B%i%$%V%i(B  $B$N4V$N1i;;$r<B9T$9$kItJ,$G$"$j(B, UNIX $B$N(B @samp{libc.a} $B$J$I$HF1MM$N(B, $B%i%$%V%i(B
 $B%j$H$7$FB8:_$9$k(B. $B%(%s%8%s$O(B, C $B$*$h$S(B $B%"%;%s%V%i$G5-=R$5$l(B, $B8e=R$9$k(B  $B%j$H$7$FB8:_$9$k(B. $B%(%s%8%s$O(B, C $B$*$h$S(B $B%"%;%s%V%i$G5-=R$5$l(B, $B8e=R$9$k(B
 $B8@8l%$%s%?%U%'!<%9(B @b{Asir} $B$N4pK\1i;;It$H$7$FMQ$$$i$l$F$$$k0lJ}(B,  $B8@8l%$%s%?%U%'!<%9(B @b{Asir} $B$N4pK\1i;;It$H$7$FMQ$$$i$l$F$$$k(B.
 $B?t<07W;;$rI,MW$H$9$k$5$^$6$^$J%W%m%0%i%`Cf$K%j%s%/$7$FMQ$$$k$3$H$,$G$-$k(B.  @comment $B0lJ}(B, $B?t<07W;;$rI,MW$H$9$k$5$^$6$^$J%W%m%0%i%`Cf$K%j%s%/$7$FMQ$$$k$3$H$,$G$-$k(B.
 ($BL$8x3+(B)  \E
   \BEG
   This is the part which performs basic algebraic operations,
   such as arithmetic operations, to algebraic objects, e.g., numbers and
   polynomials, which are already converted into internal forms.
   It exists, like @samp{libc.a} of UNIX, as a library of ordinary UNIX system.
   The algebraic engine is written mainly in C language and
   partly in assembler.
   It serves as the basic operation part of @b{Asir}, a standard
   language interface of @b{Risa}.
   @comment It can also be linked to various programs that need some symbolic
   @comment and algebraic computation.
   \E
   
 @item  @item
 @code{$B%a%b%j4IM}It(B}  \JP @code{$B%a%b%j4IM}It(B}
   \EG @b{Memory Manager}
   
   \BJP
 @b{Risa} $B$G$O(B, $B%a%b%j4IM}It$H$7$F(B, @code{[Boehm,Weiser]} $B$K$h$k%U%j!<(B  @b{Risa} $B$G$O(B, $B%a%b%j4IM}It$H$7$F(B, @code{[Boehm,Weiser]} $B$K$h$k%U%j!<(B
 $B%=%U%H%&%'%"(B (@code{gc-5.0alpha2}) $B$rMQ$$$F$$$k(B. $B$3$l$O%,!<%Y%8%3%l%/%7%g%s(B  $B%=%U%H%&%'%"(B (@code{gc-5.0alpha2}) $B$rMQ$$$F$$$k(B. $B$3$l$O%,!<%Y%8%3%l%/%7%g%s(B
 ($B0J2<(B GC $B$H8F$V(B) $B$r<+F0E*$K9T$&%a%b%j3d$jEv$F5!9=$r;}$A(B, @b{Risa} $B$N3F(B  ($B0J2<(B GC $B$H8F$V(B) $B$r<+F0E*$K9T$&%a%b%j3d$jEv$F5!9=$r;}$A(B, @b{Risa} $B$N3F(B
 $BItJ,$O$9$Y$F$3$l$K$h$jI,MW$J%a%b%j$rF@$F$$$k(B.  $BItJ,$O$9$Y$F$3$l$K$h$jI,MW$J%a%b%j$rF@$F$$$k(B.
   \E
   \BEG
   @b{Risa} employs, as its memory management component (the memory
   manager), a free software distributed by Boehm (@code{gc-5.0alpha2}).
   It is proposed by @code{[Boehm,Weiser]}, and developed by Boehm and
   his colleagues.
   The memory manager has a memory allocator which automatically
   reclaims garbages, i.e., allocated but unused memories,
   and refreshes them for further use.
   The algebraic engine gets all its necessary memories through the memory
   manager.
   \E
   
 @item  @item
 @b{Asir}  @b{Asir}
   
   \BJP
 @b{Asir} $B$O(B, @b{Risa} $B$N7W;;%(%s%8%s$N8@8l%$%s%?%U%'!<%9$G(B  @b{Asir} $B$O(B, @b{Risa} $B$N7W;;%(%s%8%s$N8@8l%$%s%?%U%'!<%9$G(B
 $B$"$k(B. @b{Risa} $B$G$O(B, $BHf3SE*MF0W$K%f!<%6MQ$N8@8l%$%s%?%U%'!<%9$r:n$k(B  $B$"$k(B. @b{Risa} $B$G$O(B, $BHf3SE*MF0W$K%f!<%6MQ$N8@8l%$%s%?%U%'!<%9$r:n$k(B
 $B$3$H$,$G$-$k(B. @b{Asir} $B$O$=$N0l$D$NNc$H$7$F:n$C$?$b$N$G(B, C $B8@8l$K6a(B  $B$3$H$,$G$-$k(B. @b{Asir} $B$O$=$N0l$D$NNc$H$7$F:n$C$?$b$N$G(B, C $B8@8l$K6a(B
 $B$$J8K!$r$b$D(B. $B$^$?(B, C $B$N%G%P%C%,$H$7$F9-$/MQ$$$i$l$F$$$k(B @code{dbx} $BIw(B  $B$$J8K!$r$b$D(B. $B$^$?(B, C $B$N%G%P%C%,$H$7$F9-$/MQ$$$i$l$F$$$k(B @code{dbx} $BIw(B
 $B$N%G%P%C%,$bHw$($F$$$k(B.  $B$N%G%P%C%,$bHw$($F$$$k(B.
   \E
   \BEG
   @b{Asir} is a standard language interface of @b{Risa}'s algebraic
   engine. It is one of the possible language interfaces, because
   one can develop one's own language interface easily on @b{Risa}
   system.
   @b{Asir} is an example of such language interfaces.
   @b{Asir} has very similar syntax and semantics as C language.
   Furthermore, it has a debugger that provide a subset of commands of
   @code{dbx}, a widely used debugger of C language.
   \E
 @end itemize  @end itemize
   
   \BJP
 @node Asir $B$NFCD'(B,,, Risa/Asir  @node Asir $B$NFCD'(B,,, Risa/Asir
 @section Asir $B$NFCD'(B  @section Asir $B$NFCD'(B
   \E
   \BEG
   @node Features of Asir,,, Risa/Asir
   @section Features of @b{Asir}
   \E
   
 @noindent  @noindent
   \BJP
 @b{Asir} $B$O(B, $BA0=R$NDL$j(B, $B7W;;%(%s%8%s$N8@8l%$%s%?%U%'!<%9$G$"(B  @b{Asir} $B$O(B, $BA0=R$NDL$j(B, $B7W;;%(%s%8%s$N8@8l%$%s%?%U%'!<%9$G$"(B
 $B$k(B. $BDL>o(B @b{Asir} $B$H$$$&L>A0$N<B9T2DG=%U%!%$%k$H$7$FDs6!$5$l$k(B.  $B$k(B. $BDL>o(B @b{Asir} $B$H$$$&L>A0$N<B9T2DG=%U%!%$%k$H$7$FDs6!$5$l$k(B.
 $B8=:_%5%]!<%H$5$l$F$$$k5!G=$O35$M<!$NDL$j$G$"$k(B.  $B8=:_%5%]!<%H$5$l$F$$$k5!G=$O35$M<!$NDL$j$G$"$k(B.
   \E
   \BEG
   As mentioned in the previous section, @b{Asir} is a standard language
   interface for@b{Risa}'s algebraic engine.
   Usually, it is provided as an executable file named @code{asir}.
   Main features supported for the current version of Asir is as follows.
   \E
   
 @itemize @bullet  @itemize @bullet
   \BJP
 @item  @item
 C $B8@8lIw$N%f!<%68@8l(B  C $B8@8lIw$N%f!<%68@8l(B
   
Line 88  C $B8@8lIw$N%f!<%68@8l(B
Line 171  C $B8@8lIw$N%f!<%68@8l(B
 UNIX $B>e$G$NJ,;67W;;5!G=(B (Open XM)  UNIX $B>e$G$NJ,;67W;;5!G=(B (Open XM)
 @comment @item  @comment @item
 @comment $B%R%9%H%jCV495!G=$r$b$D(B X11 $B%$%s%?%U%'!<%9(B  @comment $B%R%9%H%jCV495!G=$r$b$D(B X11 $B%$%s%?%U%'!<%9(B
   \E
   \BEG
   @item
   A C-like programming language
   
   @item
   Arithmetic operations (addition, subtraction, multiplication
   and division) on numbers, polynomials and rational expressions
   
   @item
   Operations on vectors and matrices
   
   @item
   List processing operations at the minimum
   
   @item
   Several Built-in functions (factorization, GCD computation, Groebner basis
   computation etc.)
   
   @item
   Useful user defined functions(e.g., factorization over algebraic number fields)
   
   @item
   A @code{dbx}-like debugger
   
   @item
   Plotting of implicit functions
   
   @item
   Numerical evaluation of mathematical expressions including elementary
   transcendental functions at arbitrary precision. This feature is
   in force only if @b{PARI} system (@pxref{pari}).
   
   @item
   Distributed computation over UNIX
   \E
 @end itemize  @end itemize
   
   \BJP
 @node $B%$%s%9%H%l!<%7%g%s(B,,, Risa/Asir  @node $B%$%s%9%H%l!<%7%g%s(B,,, Risa/Asir
 @section $B%$%s%9%H%l!<%7%g%s(B  @section $B%$%s%9%H%l!<%7%g%s(B
   \E
   \BEG
   @node Installation,,, Risa/Asir
   @section Installation
   \E
   
 $B0J2<$N<jB3$-$GITL@$JE@(B, $BITET9g$JE@$,$"$C$?>l9g$NLd$$9g$o$;$O(B  \JP $B0J2<$N<jB3$-$GITL@$JE@(B, $BITET9g$JE@$,$"$C$?>l9g$NLd$$9g$o$;$O(B
   \BEG
   Any questions and any comments on this manual are well come by e-mails
   to the following address.
   \E
   
 @example  @example
 noro@@para.flab.fujitsu.co.jp  noryo@@flab.fujitsu.co.jp
 @end example  @end example
   
 @noindent  @noindent
 $B08$K(B e-mail $B$G$*4j$$$7$^$9(B.  \JP $B08$K(B e-mail $B$G$*4j$$$7$^$9(B.
   
 @menu  @menu
   \BJP
 * UNIX $BHG(B::  * UNIX $BHG(B::
 * Windows $BHG(B::  * Windows $BHG(B::
   \E
   \BEG
   * UNIX version::
   * Windows version::
   \E
 @end menu  @end menu
   
   \BJP
 @node UNIX $BHG(B,,, $B%$%s%9%H%l!<%7%g%s(B  @node UNIX $BHG(B,,, $B%$%s%9%H%l!<%7%g%s(B
 @subsection UNIX $BHG(B  @subsection UNIX $BHG(B
   \E
   \BEG
   @node UNIX version,,, Installation
   @subsection UNIX version
   \E
   
 @noindent  @noindent
   \BJP
 $BI,MW$J%U%!%$%k$O(B @samp{asir.tgz} $B$G$"$k(B.  $BI,MW$J%U%!%$%k$O(B @samp{asir.tgz} $B$G$"$k(B.
 $B$3$l$i$OA4$F(B @code{gzip} $B$G05=L$7$F$"$k$N$G(B, $BF~<j8e(B @code{gzip} $B$G(B  $B$3$l$i$OA4$F(B @code{gzip} $B$G05=L$7$F$"$k$N$G(B, $BF~<j8e(B @code{gzip} $B$G(B
 $BE83+$9$k(B. $B$^$:(B, $B%$%s%9%H!<%k$9$k%G%#%l%/%H%j$r7h$a$k(B. $B%G%U%)%k%H$G$O(B  $BE83+$9$k(B. $B$^$:(B, $B%$%s%9%H!<%k$9$k%G%#%l%/%H%j$r7h$a$k(B. $B%G%U%)%k%H$G$O(B
 @samp{/usr/local/lib} $B$K(B @samp{asir} $B$H$$$&%G%#%l%/%H%j$H$7$F(B  @samp{/usr/local/lib} $B$K(B @samp{asir} $B$H$$$&%G%#%l%/%H%j$H$7$F(B
 $B%$%s%9%H!<%k$5$l$k$3$H$r2>Dj$7$F$$$k(B. $B0J2<$3$N%G%#%l%/%H%j$r%i%$%V%i%j(B  $B%$%s%9%H!<%k$5$l$k$3$H$r2>Dj$7$F$$$k(B. $B0J2<$3$N%G%#%l%/%H%j$r%i%$%V%i%j(B
 $B%G%#%l%/%H%j$H8F$V(B.  $B%G%#%l%/%H%j$H8F$V(B.
   \E
   \BEG
   A file @samp{asir.tgz} suitable for the taget machine/architecture
   is required. After getting it,
   you have to unpack it by @code{gzip}. First of all, determine
   a derectory where binaries and library files are installed.
   We call the directory the @b{library directory}.
   The following installs the files in @samp{/usr/local/lib/asir}.
   \E
   
 @example  @example
 # gzip -dc asir.tgz | ( cd /usr/local/lib; tar xf - )  # gzip -dc asir.tgz | ( cd /usr/local/lib; tar xf - )
 @end example  @end example
   
 $B8D?ME*$K;HMQ$9$k>l9g$K$O(B, @samp{$HOME}$B$J$I$KCV$$$F$b$h$$(B.  \JP $B8D?ME*$K;HMQ$9$k>l9g$K$O(B, @samp{$HOME}$B$J$I$KCV$$$F$b$h$$(B.
   \BEG
   In this case you don't have to set any environment variable.
   
   You can install them elsewhere.
   \E
 @example  @example
 % gzip -dc asir.tgz | ( cd $HOME; tar xf - )  % gzip -dc asir.tgz | ( cd $HOME; tar xf - )
 @end example  @end example
   
 @noindent  @noindent
   \BJP
 $B$3$N>l9g(B, $B%i%$%V%i%j%G%#%l%/%H%j$NL>A0$r4D6-JQ?t(B  $B$3$N>l9g(B, $B%i%$%V%i%j%G%#%l%/%H%j$NL>A0$r4D6-JQ?t(B
 @code{ASIR_LIBDIR} $B$K@_Dj$9$kI,MW$,$"$k(B.  @code{ASIR_LIBDIR} $B$K@_Dj$9$kI,MW$,$"$k(B.
   \E
   \BEG
   In this case you have to set the name of the library directory
   to the environment variable @code{ASIR_LIBDIR}.
   \E
   
 @example  @example
 % setenv ASIR_LIBDIR $HOME/asir  % setenv ASIR_LIBDIR $HOME/asir
 @end example  @end example
   
 @noindent  @noindent
   \BJP
 Asir $BK\BN$O(B, $B%i%$%V%i%j%G%#%l%/%H%j$N(B @samp{asir} $B$G$"$k(B.  Asir $BK\BN$O(B, $B%i%$%V%i%j%G%#%l%/%H%j$N(B @samp{asir} $B$G$"$k(B.
 @samp{/usr/local/bin} $B$"$k$$$O%f!<%6$N<B9T%U%!%$%k%5!<%A%Q%9(B  @samp{/usr/local/bin} $B$"$k$$$O%f!<%6$N<B9T%U%!%$%k%5!<%A%Q%9(B
 $B$N$I$3$+$K%7%s%\%j%C%/%j%s%/$r:n$k$HJXMx$G$"$k(B.  $B$N$I$3$+$K%7%s%\%j%C%/%j%s%/$r:n$k$HJXMx$G$"$k(B.
   \E
   \BEG
   @b{Asir} itself is in the library directory. It will be convenient
   to create a symbolic link to it from @samp{/usr/local/bin} or
   the user's search path.
   \E
   
 @example  @example
 # ln -s /usr/local/lib/asir/asir /usr/local/bin/asir  # ln -s /usr/local/lib/asir/asir /usr/local/bin/asir
 @end example  @end example
   
 @noindent  @noindent
 $B$3$N>uBV$G(B @samp{asir} $B$r5/F0$7$F$_$k(B.  \JP $B$3$N>uBV$G(B @samp{asir} $B$r5/F0$7$F$_$k(B.
   \BEG
   Start @samp{asir}, and @b{Asir} will immediately terminate leaving you
   a message as follows.
   \E
   
 @example  @example
 % /usr/local/bin/asir  % /usr/local/bin/asir
Line 156  See the file ASIR_INSTALL to get the correct key.
Line 328  See the file ASIR_INSTALL to get the correct key.
 @end example  @end example
   
 @noindent  @noindent
   \BJP
 $B$9$k$H(B, $B$3$N$h$&$J%a%C%;!<%8$,=P$F(B @samp{asir} $B$O=*N;$9$k(B. UNIX $BHG(B  $B$9$k$H(B, $B$3$N$h$&$J%a%C%;!<%8$,=P$F(B @samp{asir} $B$O=*N;$9$k(B. UNIX $BHG(B
 $B$G$O(B, $B%^%7%s$4$H$K(B @code{key} $B$H8F$P$l$kJ8;zNs$,I,MW$G$"$k(B.  $B$G$O(B, $B%^%7%s$4$H$K(B @code{key} $B$H8F$P$l$kJ8;zNs$,I,MW$G$"$k(B.
 @code{key} $B$rF~<j$9$k$?$a$K$O(B,  @code{key} $B$rF~<j$9$k$?$a$K$O(B,
Line 164  See the file ASIR_INSTALL to get the correct key.
Line 337  See the file ASIR_INSTALL to get the correct key.
 risa@@para.flab.fujitsu.co.jp  risa@@para.flab.fujitsu.co.jp
 @end example  @end example
   
 @noindent  
 $B08$K(B,  $B08$K(B,
   
 @example  @example
 ASIR XXXXXXXX  ASIR XXXXXXXX
 @end example  @end example
   
 @noindent  
 $B$H$$$&(B 1 $B9T$N$_$+$i$J$k(B e-mail $B$rAw$l$P$h$$(B. @code{XXXXXXXX} $B$OI=<($5$l$?(B  $B$H$$$&(B 1 $B9T$N$_$+$i$J$k(B e-mail $B$rAw$l$P$h$$(B. @code{XXXXXXXX} $B$OI=<($5$l$?(B
 @code{ID} $B$G$"$k(B. $B@^$jJV$7(B  @code{ID} $B$G$"$k(B. $B@^$jJV$7(B
   
Line 182  YYYYYYYY YYYYYYYY YYYYYYYY
Line 353  YYYYYYYY YYYYYYYY YYYYYYYY
 @noindent  @noindent
 $B$H$$$&7A$N(B 1 $B9T$N$_$+$i$J$k(B e-mail $B$,FO$/$N$G(B, $B$3$N(B 1 $B9T$r4^$`(B @samp{asir_key}  $B$H$$$&7A$N(B 1 $B9T$N$_$+$i$J$k(B e-mail $B$,FO$/$N$G(B, $B$3$N(B 1 $B9T$r4^$`(B @samp{asir_key}
 $B$J$k%U%!%$%k$r%+%l%s%H%G%#%l%/%H%j$K:n$C$F(B @samp{asir} $B$r5/F0$7$F$_$k(B.  $B$J$k%U%!%$%k$r%+%l%s%H%G%#%l%/%H%j$K:n$C$F(B @samp{asir} $B$r5/F0$7$F$_$k(B.
   \E
   
   \BEG
   For UNIX version of @b{Asir}, you need a @code{key}, a string,
   for each machine you want to run @b{Asir}.
   In order to get the @code{key}, you just need to send an e-mail
   consisting of a single line like
   
 @example  @example
   ASIR XXXXXXXX
   @end example
   
   to address
   
   @example
   risa@@para.flab.fujitsu.co.jp
   @end example
   
   @noindent
   Here, @code{XXXXXXXX} is the machine ID notified in the first message
   from @b{Asir}.
   
   After a while, an e-mail will be returned containing only one line like
   
   @example
   YYYYYYYY YYYYYYYY YYYYYYYY
   @end example
   
   @noindent
   Then, you shall create a new file in the current directory
   named @samp{asir_key} containing the returned string in one line.
   
   All after this, call again @samp{asir}.
   \E
   
   @example
 % /usr/local/bin/asir  % /usr/local/bin/asir
 This is Asir, Version 990831.  This is Asir, Version 990831.
 Copyright (C) FUJITSU LABORATORIES LIMITED.  Copyright (C) FUJITSU LABORATORIES LIMITED.
Line 192  Copyright (C) FUJITSU LABORATORIES LIMITED.
Line 397  Copyright (C) FUJITSU LABORATORIES LIMITED.
 @end example  @end example
   
 @noindent  @noindent
   \BJP
 $B$3$N$h$&$J%W%m%s%W%H$,=P$l$P(B, $BF~<j$7$?(B @code{key} $B$O$=$N%^%7%s$KBP$7$FM-8z(B  $B$3$N$h$&$J%W%m%s%W%H$,=P$l$P(B, $BF~<j$7$?(B @code{key} $B$O$=$N%^%7%s$KBP$7$FM-8z(B
 $B$G$"$k(B. @code{key} $B$r=q$$$F$*$/%U%!%$%k$K4X$7$F$O(B, $B4D6-JQ?t(B @code{ASIR_KEY}  $B$G$"$k(B. @code{key} $B$r=q$$$F$*$/%U%!%$%k$K4X$7$F$O(B, $B4D6-JQ?t(B @code{ASIR_KEY}
 $B$N@bL@$N9`$G>\$7$/=R$Y$k$,(B, $B%i%$%V%i%j%G%#%l%/%H%j$K$3$3$G:n@.$7$?(B  $B$N@bL@$N9`$G>\$7$/=R$Y$k$,(B, $B%i%$%V%i%j%G%#%l%/%H%j$K$3$3$G:n@.$7$?(B
Line 199  Copyright (C) FUJITSU LABORATORIES LIMITED.
Line 405  Copyright (C) FUJITSU LABORATORIES LIMITED.
 $B$r;HMQ$G$-$k$h$&$K$J$k(B. @samp{asir_key} $B$K$OJ#?t$N%^%7%s$KBP$9$k(B @code{key}  $B$r;HMQ$G$-$k$h$&$K$J$k(B. @samp{asir_key} $B$K$OJ#?t$N%^%7%s$KBP$9$k(B @code{key}
 $B$r=q$1$k$N$G(B, $B%i%$%V%i%j%G%#%l%/%H%j$r6&M-$7$F$$$k>l9g$G$b(B @samp{asir_key}  $B$r=q$1$k$N$G(B, $B%i%$%V%i%j%G%#%l%/%H%j$r6&M-$7$F$$$k>l9g$G$b(B @samp{asir_key}
 $B$K9T$rDI2C$7$F$$$1$P$h$$(B.  $B$K9T$rDI2C$7$F$$$1$P$h$$(B.
   \E
   \BEG
   If you get such a prompt (@samp{[0]}) from @b{Asir},
   the key you have is valid to the machine you are currently running
   @code{asir}.
   
   When the file @samp{asir_key} is located on the library directory,
   all the users of the machine can execute @samp{asir}.
   The file @samp{asir_key} can contain several lines for
   several @code{key}'s.
   This enables users to run several machines sharing the same library
   directory by simply adding lines for machines to be used.
   We shall describe about the file for @code{key}'s in detail in
   @ref{Environment variable}.
   \E
   
 @example  @example
 # cp asir_key /usr/local/lib/asir  # cp asir_key /usr/local/lib/asir
 @end example  @end example
   
   \BJP
 @node Windows $BHG(B,,, $B%$%s%9%H%l!<%7%g%s(B  @node Windows $BHG(B,,, $B%$%s%9%H%l!<%7%g%s(B
 @subsection Windows $BHG(B  @subsection Windows $BHG(B
   \E
   \BEG
   @node Windows version,,, Installation
   @subsection Windows version
   \E
   
 @noindent  @noindent
   \BJP
 $BI,MW$J%U%!%$%k$O(B @samp{asirwin.tgz} $B$G$"$k(B. $BB>$K(B, @samp{gzip.exe},  $BI,MW$J%U%!%$%k$O(B @samp{asirwin.tgz} $B$G$"$k(B. $BB>$K(B, @samp{gzip.exe},
 @samp{tar.exe} $B$,I,MW$@$,(B, asirwin.tgz $B$HF1$8%G%#%l%/%H%j$KMQ0U$7$F(B  @samp{tar.exe} $B$,I,MW$@$,(B, asirwin.tgz $B$HF1$8%G%#%l%/%H%j$KMQ0U$7$F(B
 $B$"$k(B. $B$3$l$i(B 3 $B$D$N%U%!%$%k$rF10l%G%#%l%/%H%j$K$*$-(B, DOS $B%W%m%s%W%H(B  $B$"$k(B. $B$3$l$i(B 3 $B$D$N%U%!%$%k$rF10l%G%#%l%/%H%j$K$*$-(B, DOS $B%W%m%s%W%H(B
 $B$+$i(B  $B$+$i(B
   \E
   \BEG
   The necessary file is @samp{asirwin.tgz}. To unpack it @samp{gzip.exe}
   and @samp{tar.exe} are necessary. They are in the same
   directory as @samp{asirwin.tgz} on the ftp server.
   Putting them in the same directory, execute the following:
   \E
   
 @example  @example
 C:\...> tar xzf asirwin.tgz  \JP C:\...> tar xzf asirwin.tgz
   \EG C:\...> tar xzf asirwin.tgz
 @end example  @end example
   
 @noindent  @noindent
   \BJP
 $B$r<B9T$9$l$P(B, @samp{Asir} $B$H$$$&%G%#%l%/%H%j(B (Asir $B%k!<%H%G%#%l%/%H%j(B)  $B$r<B9T$9$l$P(B, @samp{Asir} $B$H$$$&%G%#%l%/%H%j(B (Asir $B%k!<%H%G%#%l%/%H%j(B)
 $B$,$G$-$k(B. 990831 $BHG$G$O(B, GUI $B$HK\BN$,J,N%$5$l(B, $B$^$?%G%P%C%0%&%#%s%I%&$b(B  $B$,$G$-$k(B. 990831 $BHG$G$O(B, GUI $B$HK\BN$,J,N%$5$l(B, $B$^$?%G%P%C%0%&%#%s%I%&$b(B
 $BJL%W%m%;%9$H$7$F(B GUI $B$,8F$S=P$5$l$k$?$a(B, Asir $B%k!<%H%G%#%l%/%H%j$,@5$7$/(B  $BJL%W%m%;%9$H$7$F(B GUI $B$,8F$S=P$5$l$k$?$a(B, Asir $B%k!<%H%G%#%l%/%H%j$,@5$7$/(B
Line 225  C:\...> tar xzf asirwin.tgz
Line 462  C:\...> tar xzf asirwin.tgz
 $B%j(B @samp{bin} $B$K(B @samp{asirgui.exe} (GUI), @samp{engine.exe} ($BK\BN(B) $B$,(B  $B%j(B @samp{bin} $B$K(B @samp{asirgui.exe} (GUI), @samp{engine.exe} ($BK\BN(B) $B$,(B
 $BCV$+$l$F$$$k(B. @samp{asirgui.exe} $B$N=i2s$NN)$A>e$2$O(B, $B%(%/%9%W%m!<%i$+$i9T(B  $BCV$+$l$F$$$k(B. @samp{asirgui.exe} $B$N=i2s$NN)$A>e$2$O(B, $B%(%/%9%W%m!<%i$+$i9T(B
 $B$&(B. $B$3$l$K$h$j(B  $B$&(B. $B$3$l$K$h$j(B
   \E
   
   \BEG
   Then a directory @samp{Asir} (@b{Asir root directory}) is created,
   which has subdirectories named @samp{bin} and @samp{lib}. To set up it,
   invoke @samp{bin\asirgui.exe} from Explorer and
   click @code{OK}.  Then the name of @b{Asir root directory} is set to the
   following registries.
   \E
   
 @example  @example
 HKEY_LOCAL_MACHINE\SOFTWARE\FUJITSU\Asir\99.03.31\Directory  \JP HKEY_LOCAL_MACHINE\SOFTWARE\FUJITSU\Asir\99.03.31\Directory
   \EG HKEY_LOCAL_MACHINE\SOFTWARE\FUJITSU\Asir\99.03.31\Directory
 @end example  @end example
   
 @noindent  @noindent
 $B$H$$$&%l%8%9%H%j$K(B Asir $B%k!<%H%G%#%l%/%H%j$,@5$7$/EPO?$5$l$k(B.  \JP $B$H$$$&%l%8%9%H%j$K(B Asir $B%k!<%H%G%#%l%/%H%j$,@5$7$/EPO?$5$l$k(B.
   
   \BJP
 @node $B%3%^%s%I%i%$%s%*%W%7%g%s(B,,, Risa/Asir  @node $B%3%^%s%I%i%$%s%*%W%7%g%s(B,,, Risa/Asir
 @section $B%3%^%s%I%i%$%s%*%W%7%g%s(B  @section $B%3%^%s%I%i%$%s%*%W%7%g%s(B
   \E
   \BEG
   @node Command line options,,, Risa/Asir
   @section Command line options
   \E
   
 @noindent  @noindent
 $B%3%^%s%I%i%$%s%*%W%7%g%s$O<!$NDL$j(B.  \JP $B%3%^%s%I%i%$%s%*%W%7%g%s$O<!$NDL$j(B.
   \EG Command-line options for the command @samp{asir} are as follows.
   
 @table @code  @table @code
   
 @item -heap @var{number}  @item -heap @var{number}
   \BJP
 @code{Risa/Asir} $B$G$O(B, 4KB $B$N%V%m%C%/$r%a%b%j3d$jEv$F$NC10L$H$7$FMQ$$$F$$$k(B.  @code{Risa/Asir} $B$G$O(B, 4KB $B$N%V%m%C%/$r%a%b%j3d$jEv$F$NC10L$H$7$FMQ$$$F$$$k(B.
 $B%G%U%)%k%H$G$O(B, $B=i4|(B heap $B$H$7$F(B, 16 $B%V%m%C%/(B (64KB) $B3d$jEv$F$k$,(B, $B$=$l(B  $B%G%U%)%k%H$G$O(B, $B=i4|(B heap $B$H$7$F(B, 16 $B%V%m%C%/(B (64KB) $B3d$jEv$F$k$,(B, $B$=$l(B
 $B$rJQ99$9$k>l9g(B, @code{-heap} $B$rMQ$$$k(B. $BC10L$O%V%m%C%/$G$"$k(B.  $B$rJQ99$9$k>l9g(B, @code{-heap} $B$rMQ$$$k(B. $BC10L$O%V%m%C%/$G$"$k(B.
 heap $B$NBg$-$5$O(B, @code{heap()} $BH!?t$GD4$Y$k$3$H$,$G$-$k(B ($BC10L$O%P%$%H(B).  heap $B$NBg$-$5$O(B, @code{heap()} $BH!?t$GD4$Y$k$3$H$,$G$-$k(B ($BC10L$O%P%$%H(B).
   \E
   \BEG
   In @b{Risa/Asir}, 4KB is used as an unit, called block,
   for memory allocation.
   By default, 16 blocks (64KB) are allocated initially.
   This value can be changed by giving an option @code{-heap}
   a number parameter in unit block.
   Size of the heap area is obtained by a Built-in function heap(),
   the result of which is a number in Bytes.
   \E
   
 @item -adj @var{number}  @item -adj @var{number}
   \BJP
 $B$3$NCM$,Bg$-$$$[$I(B, $B;HMQ%a%b%jNL$OBg$-$/$J$k$,(B, GC $B;~4V$,>/$J$/$J(B  $B$3$NCM$,Bg$-$$$[$I(B, $B;HMQ%a%b%jNL$OBg$-$/$J$k$,(B, GC $B;~4V$,>/$J$/$J(B
 $B$k(B. @var{number} $B$H$7$F(B 1 $B0J>e$N@0?t$,;XDj$G$-$k(B. $B%G%U%)%k%H$G$O(B 3 $B$G$"(B  $B$k(B. @var{number} $B$H$7$F(B 1 $B0J>e$N@0?t$,;XDj$G$-$k(B. $B%G%U%)%k%H$G$O(B 3 $B$G$"(B
 $B$k(B. $B$3$NCM$,(B 1 $B0J2<$K$J$k$H(B GC $B$r$7$J$$@_Dj$K$J$k$N$GMWCm0U$G$"$k(B. heap  $B$k(B. $B$3$NCM$,(B 1 $B0J2<$K$J$k$H(B GC $B$r$7$J$$@_Dj$K$J$k$N$GMWCm0U$G$"$k(B. heap
 $B$r$J$k$Y$/?-$P$5$:$K(B, GC $B$r<gBN$K$7$F%a%b%j4IM}$7$?$$>l9g$K$O(B, $B$3$NCM$r(B  $B$r$J$k$Y$/?-$P$5$:$K(B, GC $B$r<gBN$K$7$F%a%b%j4IM}$7$?$$>l9g$K$O(B, $B$3$NCM$r(B
 $BBg$-$/(B ($BNc$($P(B 8) $B@_Dj$9$k(B.  $BBg$-$/(B ($BNc$($P(B 8) $B@_Dj$9$k(B.
   \E
   \BEG
   Heap area will be stretched by the memory manager,
   if the size of reclaimed memories is less than 1/@var{number}
   of currently allocated heap area.
   The default value for @var{number} is 3.
   If you do not prefer to stretch heap area by some reason, perhaps by
   restriction of available memories, but if prefer to resort to
   reclaiming garbages as far as possible,
   then a large value should be chosen for @var{number}, e.g., 8.
   \E
   
 @item -norc  @item -norc
 $B=i4|2=%U%!%$%k(B @samp{$HOME/.asirrc} $B$rFI$^$J$$(B.  \JP $B=i4|2=%U%!%$%k(B @samp{$HOME/.asirrc} $B$rFI$^$J$$(B.
   \BEG
   When this option is specified, @b{Asir} does not read the
   initial file @samp{$HOME/.asirrc}.
   \E
   
 @item -f @var{file}  @item -f @var{file}
   \BJP
 $BI8=`F~NO$NBe$o$j$K(B, @var{file} $B$+$iF~NO$rFI$_9~$s$G<B9T$9$k(B.  $BI8=`F~NO$NBe$o$j$K(B, @var{file} $B$+$iF~NO$rFI$_9~$s$G<B9T$9$k(B.
 $B%(%i!<$N:]$K$O$?$@$A$K=*N;$9$k(B.  $B%(%i!<$N:]$K$O$?$@$A$K=*N;$9$k(B.
   \E
   \BEG
   Instead of the standard input, @var{file} is used as the input.
   Upon an error, the execution immediately terminates.
   \E
   
 @item -paristack @var{number}  @item -paristack @var{number}
   \BJP
 @b{PARI} (@pxref{pari}) $B@lMQ$NNN0h$NBg$-$5$r;XDj$9$k(B. $BC10L$O%P%$%H(B. $B%G%U%)(B  @b{PARI} (@pxref{pari}) $B@lMQ$NNN0h$NBg$-$5$r;XDj$9$k(B. $BC10L$O%P%$%H(B. $B%G%U%)(B
 $B%k%H$G$O(B 1 MB.  $B%k%H$G$O(B 1 MB.
   \E
   \BEG
   This option specifies the private memory size for @code{PARI} (@pxref{pari}).
   The unit is Bytes. By default, it is set to 1 MB.
   \E
   
 @item -maxheap @var{number}  @item -maxheap @var{number}
   \BJP
 heap $BNN0h$N>e8B$r;XDj$9$k(B. $BC10L$O%P%$%H(B. $B%G%U%)%k%H$G$OL5@)8B(B. UNIX $B$N(B  heap $BNN0h$N>e8B$r;XDj$9$k(B. $BC10L$O%P%$%H(B. $B%G%U%)%k%H$G$OL5@)8B(B. UNIX $B$N(B
 $B>l9g(B, $B<B:]$K$O(B @code{limit} $B%3%^%s%I$GI=<($5$l$k(B @code{datasize} $B$NCM(B  $B>l9g(B, $B<B:]$K$O(B @code{limit} $B%3%^%s%I$GI=<($5$l$k(B @code{datasize} $B$NCM(B
 $B$K@)8B$5$l$F$$$k$?$a(B, @code{-maxheap} $B$N;XDj$,$J$/$F$b0lDjNL0J>e$K(B  $B$K@)8B$5$l$F$$$k$?$a(B, @code{-maxheap} $B$N;XDj$,$J$/$F$b0lDjNL0J>e$K(B
 heap $B$r3MF@$G$-$J$$>l9g$,$"$k$N$GCm0U(B.)  heap $B$r3MF@$G$-$J$$>l9g$,$"$k$N$GCm0U(B.)
   \E
   \BEG
   This option sets an upper limit of the heap size. The unit is Bytes.
   Note that the size is already limited by the value of @code{datasize}
   displayed by the command @code{limit} on UNIX.
   \E
 @end table  @end table
   
   \BJP
 @node $B4D6-JQ?t(B,,, Risa/Asir  @node $B4D6-JQ?t(B,,, Risa/Asir
 @section $B4D6-JQ?t(B  @section $B4D6-JQ?t(B
   \E
   \BEG
   @node Environment variable,,, Risa/Asir
   @section Environment variable
   \E
   
 @noindent  @noindent
   \BJP
 @b{Asir} $B$N<B9T$K4X$9$k$$$/$D$+$N4D6-JQ?t$,B8:_$9$k(B. UNIX $B>e$G$O4D6-JQ?t(B  @b{Asir} $B$N<B9T$K4X$9$k$$$/$D$+$N4D6-JQ?t$,B8:_$9$k(B. UNIX $B>e$G$O4D6-JQ?t(B
 $B$O(B shell $B$N%3%^%s%I%i%$%s$+$iD>@\@_Dj$9$k$+(B, shell $B$N(B rc $B%U%!%$%k$G@_Dj(B  $B$O(B shell $B$N%3%^%s%I%i%$%s$+$iD>@\@_Dj$9$k$+(B, shell $B$N(B rc $B%U%!%$%k$G@_Dj(B
 $B$9$k(B. Windows NT $B$G$O(B, [$B@_Dj(B]->[$B%7%9%F%`(B]->[$B4D6-(B] $B$G@_Dj$9$k(B. Windows 95/98  $B$9$k(B. Windows NT $B$G$O(B, [$B@_Dj(B]->[$B%7%9%F%`(B]->[$B4D6-(B] $B$G@_Dj$9$k(B. Windows 95/98
 $B$G$O(B, @samp{c:\autoexec.bat} $B$K=q$$$F(B reboot $B$9$k(B.  $B$G$O(B, @samp{c:\autoexec.bat} $B$K=q$$$F(B reboot $B$9$k(B.
   \E
   \BEG
   There exist several environment variables concerning with an execution
   of @b{Asir}. On UNIX, an environment variable is set from shells, or
   in rc files of shells. On Windows NT, it can be set from [Control Panel]
   ->[Environment]. On Windows 95/98, it can be set in @samp{c:\autoexec.bat}.
   Note that the setting takes effect after rebooting the machine on Windows
   95/98.
   \E
 @itemize @bullet  @itemize @bullet
 @item  @item
 @code{ASIR_KEY}  @code{ASIR_KEY}
   
   \BJP
 UNIX $BHG$G$O(B, @b{Asir} $B$,5/F0$5$l$?%^%7%s$KBP$9$k(B @code{key} $B$,$J$1(B  UNIX $BHG$G$O(B, @b{Asir} $B$,5/F0$5$l$?%^%7%s$KBP$9$k(B @code{key} $B$,$J$1(B
 $B$l$P$=$N%^%7%s>e$G(B @b{Asir} $B$OF0:n$7$J$$(B. @code{key} $B$O(B 16 $B?J(B 8  $B$l$P$=$N%^%7%s>e$G(B @b{Asir} $B$OF0:n$7$J$$(B. @code{key} $B$O(B 16 $B?J(B 8
 $B7e(B 3 $B%o!<%I$+$i$J$j(B,  $B7e(B 3 $B%o!<%I$+$i$J$j(B,
   \E
   \BEG
   @b{Asir} shall not work unless a @code{key} for the machine
   on which @b{Asir} is invoked is given.
   The @code{key} consists of a string which denotes 3 word hexadecimal
   number, each of which has 8 hexadecimal digits.
   In order to run @b{Asir} for several machines,
   several @code{key}'s can be written together on a same file as follows.
   \E
 @example  @example
 % cat asir_key  % cat asir_key
 cf6f236c 61a35091 dddc4529 geisha  cf6f236c 61a35091 dddc4529 geisha
Line 296  cf6f236c 61a35091 dddc4529 geisha
Line 620  cf6f236c 61a35091 dddc4529 geisha
 34b75d30 63f8df93 3e881113 nyanchu  34b75d30 63f8df93 3e881113 nyanchu
 @end example  @end example
   
   \BJP
 $B$H$$$&7A$GJ#?tBf$N%^%7%s$KBP$9$k(B @code{key} $B$r0l$D$N%U%!%$%k$K$^$H$a$F(B  $B$H$$$&7A$GJ#?tBf$N%^%7%s$KBP$9$k(B @code{key} $B$r0l$D$N%U%!%$%k$K$^$H$a$F(B
 $B=q$/$3$H$,$G$-$k(B. @code{key} $B$N8e$m$OL5;k$5$l$k$N$G(B, $B%3%a%s%H$r=q$/(B  $B=q$/$3$H$,$G$-$k(B. @code{key} $B$N8e$m$OL5;k$5$l$k$N$G(B, $B%3%a%s%H$r=q$/(B
 $B$3$H$,$G$-$k(B. @code{key} $B$r4^$`%U%!%$%k$O(B, $B0J2<$N=g$G%5!<%A$5$l$k(B.  $B$3$H$,$G$-$k(B. @code{key} $B$r4^$`%U%!%$%k$O(B, $B0J2<$N=g$G%5!<%A$5$l$k(B.
   \E
   \BEG
   The text after each @code{key} is neglected to the end-of-line.
   This is convenient to comment on the respective @code{key}.
   Files containing @code{key}'s are searched by the following order.
   \E
   
 @enumerate  @enumerate
 @item  @item
 $B4D6-JQ?t(B @code{ASIR_KEY} $B$K;XDj$5$l$?%U%!%$%k(B  \JP $B4D6-JQ?t(B @code{ASIR_KEY} $B$K;XDj$5$l$?%U%!%$%k(B
   \EG File set to environment @code{ASIR_KEY}
   
 @item  @item
 $B%+%l%s%H%G%#%l%/%H%j$N(B @samp{asir_key}  \JP $B%+%l%s%H%G%#%l%/%H%j$N(B @samp{asir_key}
   \EG File @samp{asir_key} on the current directory.
   
 @item  @item
   \BJP
 $B4D6-JQ?t(B @code{ASIR_LIBDIR} $B$G;XDj$5$l$?%G%#%l%/%H%j(B ($B;XDj$,$J$1$l$P(B  $B4D6-JQ?t(B @code{ASIR_LIBDIR} $B$G;XDj$5$l$?%G%#%l%/%H%j(B ($B;XDj$,$J$1$l$P(B
 @samp{/usr/local/lib/asir}) $B$N(B @samp{asir_key}  @samp{/usr/local/lib/asir}) $B$N(B @samp{asir_key}
   \E
   \BEG
   Files on the directory specified by environment @code{ASIR_LIBDIR}.
   (File @samp{asir_key} on @samp{/usr/local/lib/asir/},
   if environment @code{ASIR_LIBDIR} is not set.)
   \E
   
 @end enumerate  @end enumerate
   
 @item  @item
 @code{ASIR_LIBDIR}  @code{ASIR_LIBDIR}
   
   \BJP
 @b{Asir} $B$N%i%$%V%i%j%G%#%l%/%H%j(B, $B$9$J$o$A%f!<%68@8l$G=q$+$l$?%U%!%$%k(B  @b{Asir} $B$N%i%$%V%i%j%G%#%l%/%H%j(B, $B$9$J$o$A%f!<%68@8l$G=q$+$l$?%U%!%$%k(B
 $B$J$I$,$*$+$l$k%G%#%l%/%H%j(B. $B;XDj$,$J$$>l9g(B UNIX $BHG$G$O(B  $B$J$I$,$*$+$l$k%G%#%l%/%H%j(B. $B;XDj$,$J$$>l9g(B UNIX $BHG$G$O(B
 @samp{/usr/local/lib/asir}, Windows $BHG$G$O(B Asir $B%a%$%s%G%#%l%/%H%j$N2<$N(B  @samp{/usr/local/lib/asir}, Windows $BHG$G$O(B Asir $B%a%$%s%G%#%l%/%H%j$N2<$N(B
 @samp{lib} $B%G%#%l%/%H%j$,MQ$$$i$l$k(B.  @samp{lib} $B%G%#%l%/%H%j$,MQ$$$i$l$k(B.
   \E
   \BEG
   The library directory of @b{Asir}, i.e., the directory where
   , for example, files containing programs written in @b{Asir}.
   If not specified, on UNIX, @samp{/usr/local/lib/asir} is used by default.
   On Windows, @samp{lib} in @b{Asir root directory} is used by default.
   This environment will be useful in a case where @b{Asir} binaries
   are installed on a private directory of the user.
   \E
   
 @item  @item
 @code{ASIRLOADPATH}  @code{ASIRLOADPATH}
   
   \BJP
 $B%m!<%I$5$l$k%U%!%$%k$,$"$k%G%#%l%/%H%j$r(B UNIX $B$N>l9g(B ':',  $B%m!<%I$5$l$k%U%!%$%k$,$"$k%G%#%l%/%H%j$r(B UNIX $B$N>l9g(B ':',
 Windows$B$N>l9g(B ';' $B$G6h@Z$C$FJB$Y$k(B. $B%G%#%l(B  Windows$B$N>l9g(B ';' $B$G6h@Z$C$FJB$Y$k(B. $B%G%#%l(B
 $B%/%H%j$O:8$+$i=g$K%5!<%A$5$l$k(B. $B$3$N;XDj$,$J$$>l9g(B, $B$*$h$S;XDj$5$l$?(B  $B%/%H%j$O:8$+$i=g$K%5!<%A$5$l$k(B. $B$3$N;XDj$,$J$$>l9g(B, $B$*$h$S;XDj$5$l$?(B
 $B%U%!%$%k$,(B @code{ASIRLOADPATH} $B$K$J$+$C$?>l9g(B, $B%i%$%V%i%j%G%#%l%/%H%j(B  $B%U%!%$%k$,(B @code{ASIRLOADPATH} $B$K$J$+$C$?>l9g(B, $B%i%$%V%i%j%G%#%l%/%H%j(B
 $B$b%5!<%A$5$l$k(B.  $B$b%5!<%A$5$l$k(B.
   \E
   \BEG
   This environment specifies directories which contains files to be
   loaded by @b{Asir} command @code{load()}.
   Directories are separated by a `:' on UNIX, a ';' on Windows respectively.
   The search order is from the left to the right.
   After searching out all directories in @code{ASIRLOADPATH},
   or in case of no specification at all,
   the library directory will be searched.
   \E
 @item  @item
 @code{HOME}  @code{HOME}
   
   \BJP
 @var{-norc} $B%*%W%7%g%s$D$-$G5/F0$7$J$$>l9g(B, @samp{$HOME/.asirrc}$B$,$"$l$P(B,  @var{-norc} $B%*%W%7%g%s$D$-$G5/F0$7$J$$>l9g(B, @samp{$HOME/.asirrc}$B$,$"$l$P(B,
 $BM=$a$3$N%U%!%$%k$r<B9T$9$k(B. @code{HOME} $B$,@_Dj$5$l$F$$$J$$>l9g(B, UNIX $BHG(B  $BM=$a$3$N%U%!%$%k$r<B9T$9$k(B. @code{HOME} $B$,@_Dj$5$l$F$$$J$$>l9g(B, UNIX $BHG(B
 $B$G$O$J$K$bFI$^$J$$$,(B, Windows $BHG$G$O(B Asir $B%a%$%s%G%#%l%/%H%j(B  $B$G$O$J$K$bFI$^$J$$$,(B, Windows $BHG$G$O(B Asir $B%a%$%s%G%#%l%/%H%j(B
 (@code{get_rootdir()} $B$GJV$5$l$k%G%#%l%/%H%j(B) $B$N(B @samp{.asirrc} $B$rC5$7(B,  (@code{get_rootdir()} $B$GJV$5$l$k%G%#%l%/%H%j(B) $B$N(B @samp{.asirrc} $B$rC5$7(B,
 $B$"$l$P$=$l$r<B9T$9$k(B.  $B$"$l$P$=$l$r<B9T$9$k(B.
   \E
   \BEG
   If @b{Asir} is invoked without @var{-norc}, @samp{$HOME/.asirrc}, if exists,
   is executed. If @code{HOME} is not set, nothing is done on UNIX. On Windows,
   @samp{.asirrc} in @b{Asir root directory} is executed if it exists.
   \E
 @end itemize  @end itemize
   
   \BJP
 @node $B5/F0$+$i=*N;$^$G(B,,, Risa/Asir  @node $B5/F0$+$i=*N;$^$G(B,,, Risa/Asir
 @section $B5/F0$+$i=*N;$^$G(B  @section $B5/F0$+$i=*N;$^$G(B
   \E
   \BEG
   @node Starting and Terminating an Asir session,,, Risa/Asir
   @section Starting and Terminating an @b{Asir} session
   \E
   
 @noindent  @noindent
 @b{Asir} $B$r5/F0$9$k$H(B,  \JP @b{Asir} $B$r5/F0$9$k$H(B,
   \BEG
   Run @b{Asir}, then the copyright notice and the first prompt
   will appear on your screen,
   and a new @b{Asir} session will be started.
   \E
   
 @example  @example
 [0]  [0]
 @end example  @end example
   
 @noindent  @noindent
   \BJP
 $B$J$k%W%m%s%W%H$,I=<($5$l(B, $B%;%C%7%g%s$,3+;O$9$k(B. @samp{$HOME/.asirrc}  $B$J$k%W%m%s%W%H$,I=<($5$l(B, $B%;%C%7%g%s$,3+;O$9$k(B. @samp{$HOME/.asirrc}
 (Windows $BHG$N>l9g(B, @code{HOME} $B@_Dj$5$l$F$$$J$$>l9g$K$O(B @code{get_rootdir()}  (Windows $BHG$N>l9g(B, @code{HOME} $B@_Dj$5$l$F$$$J$$>l9g$K$O(B @code{get_rootdir()}
 $B$GJV$5$l$k%G%#%l%/%H%j$K$"$k(B @samp{.asirrc})  $B$GJV$5$l$k%G%#%l%/%H%j$K$"$k(B @samp{.asirrc})
 $B$,B8:_$7$F$$$k>l9g(B, $B$3$N%U%!%$%k$r(B @b{Asir} $B%f!<%68@8l$G$+$+$l$?(B  $B$,B8:_$7$F$$$k>l9g(B, $B$3$N%U%!%$%k$r(B @b{Asir} $B%f!<%68@8l$G$+$+$l$?(B
 $B%U%!%$%k$H8+$J$7(B, $B2r<a<B9T$9$k(B.  $B%U%!%$%k$H8+$J$7(B, $B2r<a<B9T$9$k(B.
   \E
   \BEG
   When initialization file @samp{$HOME/.asirrc} exists,
   @b{Asir} interpreter executes it at first taking it as a program
   file written in @b{Asir}.
   \E
   
 @noindent  @noindent
   \BJP
 $B%W%m%s%W%H$OF~NO$NHV9f$rI=$9(B. $B%;%C%7%g%s$O(B, @code{end;} $B$^$?$O(B  $B%W%m%s%W%H$OF~NO$NHV9f$rI=$9(B. $B%;%C%7%g%s$O(B, @code{end;} $B$^$?$O(B
 @code{quit;} $B$rF~NO$9$k$3$H$K$h$j=*N;$9$k(B. $BF~NO$O(B, @samp{;} $B$^$?$O(B  @code{quit;} $B$rF~NO$9$k$3$H$K$h$j=*N;$9$k(B. $BF~NO$O(B, @samp{;} $B$^$?$O(B
 @samp{$} $B$^$G$r0l6h@Z$j$H$7$FI>2A$5$l$k(B. @samp{;} $B$N$H$-7k2L$OI=<($5$l(B,  @samp{$} $B$^$G$r0l6h@Z$j$H$7$FI>2A$5$l$k(B. @samp{;} $B$N$H$-7k2L$OI=<($5$l(B,
 @samp{$} $B$N$H$-I=<($5$l$J$$(B.  @samp{$} $B$N$H$-I=<($5$l$J$$(B.
   \E
   \BEG
   The prompt indicates the sequential number of your input commands to
   @b{Asir}.
   The session will terminate when you input @code{end;} or @code{quit;}
   to @b{Asir}.
   Input commands are evaluated statement by statement.
   A statement normally ends with its terminator
   @samp{;} or @samp{$}.
   (There are some exceptions. See, syntax of @b{Asir}.)
   The result will be displayed when the command, i.e. statement,
   is terminated by a @samp{;},
   and will not when terminated by a @samp{$}.
   \E
   
 @example  @example
 % asir  % asir
Line 382  a
Line 783  a
 @end example  @end example
   
 @noindent  @noindent
   \BJP
 $B$3$NNc$G$O(B, @code{A}, @code{a}, @code{x}, @code{y} $B$J$kJ8;z$,;HMQ$5$l$F$$$k(B.  $B$3$NNc$G$O(B, @code{A}, @code{a}, @code{x}, @code{y} $B$J$kJ8;z$,;HMQ$5$l$F$$$k(B.
 @code{A} $B$O%W%m%0%i%`$K$*$1$kJQ?t$G(B, @code{a}, @code{x}, @code{y} $B$O?t3XE*(B  @code{A} $B$O%W%m%0%i%`$K$*$1$kJQ?t$G(B, @code{a}, @code{x}, @code{y} $B$O?t3XE*(B
 $B$J0UL#$G$NITDj85$G$"$k(B. $B0lHL$K%W%m%0%i%`JQ?t$OBgJ8;z$G;O$^$j(B,  $B$J0UL#$G$NITDj85$G$"$k(B. $B0lHL$K%W%m%0%i%`JQ?t$OBgJ8;z$G;O$^$j(B,
Line 390  a
Line 792  a
 $B0lJ}(B, $BITDj85$O$=$l<+?H$GCM$r;}$D$3$H$O$G$-$:(B, $B=>$C$F(B, $BITDj85$KBP$9$k(B  $B0lJ}(B, $BITDj85$O$=$l<+?H$GCM$r;}$D$3$H$O$G$-$:(B, $B=>$C$F(B, $BITDj85$KBP$9$k(B
 $BBeF~$O5v$5$l$J$$(B. $B8e$K<($9$,(B, $BITDj85$KBP$9$kBeF~$O(B, $BAH$_9~$_H!?t(B @code{subst()}  $BBeF~$O5v$5$l$J$$(B. $B8e$K<($9$,(B, $BITDj85$KBP$9$kBeF~$O(B, $BAH$_9~$_H!?t(B @code{subst()}
 $B$K$h$jL@<(E*$K9T$o$l$k(B.  $B$K$h$jL@<(E*$K9T$o$l$k(B.
   \E
   \BEG
   In the above example, names @code{A}, @code{a}, @code{x} and @code{y}
   are used to identify mathematical and programming objects.
   There, the name @code{A} denotes a program variable
   (some times called simply as a program variable.)
   while the other names, @code{a}, @code{x} and @code{y}, denote
   mathematical objects, that is, indeterminates.
   In general, program variables have names which begin with
   capital letters, while names of indeterminates begin with
   small letters.
   As you can see in the example, program variables are used to hold and
   keep objects, such as numbers and expressions, as their values,
   just like variables in C programming language.
   Whereas, indeterminates cannot have values so that assignment to
   indeterminates are illegal.
   If one wants to get a result by substituting a value for an indeterminate
   in an expression, it is achieved by the function @code{subst} as the
   value of the function.
   \E
   
   \BJP
 @node $B3d$j9~$_(B,,, Risa/Asir  @node $B3d$j9~$_(B,,, Risa/Asir
 @section $B3d$j9~$_(B  @section $B3d$j9~$_(B
   \E
   \BEG
   @node Interruption,,, Risa/Asir
   @section Interruption
   \E
   
 @noindent  @noindent
   \BJP
 $B7W;;$r<B9TCf$K3d$j9~$_$r$+$1$?$$>l9g(B, $B3d$j9~$_%-%c%i%/%?(B($BDL>o$O(B  $B7W;;$r<B9TCf$K3d$j9~$_$r$+$1$?$$>l9g(B, $B3d$j9~$_%-%c%i%/%?(B($BDL>o$O(B
 @kbd{C-c}, DOS $BHG$G$O(B @kbd{C-x}, Mac $BHG$G$O(B  @kbd{C-c}, DOS $BHG$G$O(B @kbd{C-x}, Mac $BHG$G$O(B
 @code{command+}@samp{.} ) $B$rF~NO$9$k(B.  @code{command+}@samp{.} ) $B$rF~NO$9$k(B.
   \E
   \BEG
   To interrupt the @b{Asir} execution, input an interrupt character
   from the keyboard.  A @kbd{C-c} is usually used for it.
   (Notice: @kbd{C-x} for DOS version; @code{command+}@samp{.} for Macintosh
   version.)
   \E
   
 @example  @example
 @@ (x+y)^1000;  @@ (x+y)^1000;
Line 405  a
Line 841  a
 @end example  @end example
   
 @noindent  @noindent
 $B3FA*Br;h$N0UL#$O<!$NDL$j(B.  \JP $B3FA*Br;h$N0UL#$O<!$NDL$j(B.
   \EG Here, the meaning of options are as follows.
   
 @table @code  @table @code
   \BJP
 @item q  @item q
 @b{Asir} $B$r=*N;$9$k(B. ($B3NG'$"$j(B)  @b{Asir} $B$r=*N;$9$k(B. ($B3NG'$"$j(B)
 @item t  @item t
Line 423  a
Line 861  a
 $BCfCGE@$^$G$NH!?t$N8F$S=P$7Ns$rI=<($9$k(B.  $BCfCGE@$^$G$NH!?t$N8F$S=P$7Ns$rI=<($9$k(B.
 @item ?  @item ?
 $B3FA*Br;h$N0UL#$r@bL@$9$k(B.  $B3FA*Br;h$N0UL#$r@bL@$9$k(B.
   \E
   \BEG
   @item q
   Terminates @b{Asir} session. (Confirmation requested.)
   @item t
   Returns to toplevel. (Confirmation requested.)
   @item c
   Resumes to continue the execution.
   @item d
   Enters debugging mode at the next statement of the @b{Asir} program,
   if @b{Asir} has been executing a program loaded from a file.
   Note that it will sometimes take a long time before entering
   debugging mode when @b{Asir} is executing basic functions in the
   algebraic engine, (e.g., arithmetic operation, factorization etc.)
   Detailed description about the debugger will be given in @ref{Debugger}.
   @item u
   After executing a function registered by @code{register_handler()}
   (@pxref{ox_reset register_handler}), returns to toplevel. A confirmation
   is prompted.
   @item w
   Displays the calling sequence up to the interruption.
   @item ?
   Show a brief description of options.
   \E
 @end table  @end table
   
   \BJP
 @node $B%(%i!<=hM}(B,,, Risa/Asir  @node $B%(%i!<=hM}(B,,, Risa/Asir
 @section $B%(%i!<=hM}(B  @section $B%(%i!<=hM}(B
   \E
   \BEG
   @node Error handling,,, Risa/Asir
   @section Error handling
   \E
   
 @noindent  @noindent
   \BJP
 $BAH$_9~$_H!?t$KIT@5$J7?$N0z?t$rEO$7$?>l9g$J$I$K$O<B9T$,CfCG$5$l$k$,(B,  $BAH$_9~$_H!?t$KIT@5$J7?$N0z?t$rEO$7$?>l9g$J$I$K$O<B9T$,CfCG$5$l$k$,(B,
 $B%f!<%6H!?t$NCf$G%(%i!<$,5/$-$?>l9g$K$O%H%C%W%l%Y%k$KLa$kA0$K<+F0E*$K%G%P%C%0(B  $B%f!<%6H!?t$NCf$G%(%i!<$,5/$-$?>l9g$K$O%H%C%W%l%Y%k$KLa$kA0$K<+F0E*$K%G%P%C%0(B
 $B%b!<%I$KF~$k(B. $B$3$N>uBV$G(B  $B%b!<%I$KF~$k(B. $B$3$N>uBV$G(B
Line 436  a
Line 905  a
 $BI=<($5$l$k%(%i!<%a%C%;!<%8$O$5$^$6$^$G$"$j(B, $BFbIt$NH!?tL>$K0z$-B3$$$F(B  $BI=<($5$l$k%(%i!<%a%C%;!<%8$O$5$^$6$^$G$"$j(B, $BFbIt$NH!?tL>$K0z$-B3$$$F(B
 $B%a%C%;!<%8$,I=<($5$l$k(B. $B$3$l$O(B, $B8F$S=P$5$l$?AH$_9~$_H!?t(B  $B%a%C%;!<%8$,I=<($5$l$k(B. $B$3$l$O(B, $B8F$S=P$5$l$?AH$_9~$_H!?t(B
 $B$HI,$:$7$bBP1~$O$7$J$$(B.  $B$HI,$:$7$bBP1~$O$7$J$$(B.
   \E
   \BEG
   When arguments with illegal types are given to a built-in function,
   an error will be detected and the execution will be quit.
   In many cases, when an error is detected in a built-in function,
   @b{Asir} automatically enters debugging mode before coming back
   to toplevel.
   At that time, one can examine the state of the program,
   for example, inspect argument values just before the error occurred.
   Messages reported there are various depending on cases.  They are
   reported after the internal function name.  The internal function name
   sometimes differs from the built-in function name that is specified by
   the user program.
   \E
   
 @noindent  @noindent
   \BJP
 $B$=$NB>(B, $B$5$^$6$^$J860x$K$h$jFbIt1i;;H!?t$K$*$$$F%(%i!<$,@8$:$k$3$H$,(B  $B$=$NB>(B, $B$5$^$6$^$J860x$K$h$jFbIt1i;;H!?t$K$*$$$F%(%i!<$,@8$:$k$3$H$,(B
 $B$"$k(B. UNIX $BHG$N>l9g(B, $B$3$l$O<!$N$$$:$l$+$N(B  $B$"$k(B. UNIX $BHG$N>l9g(B, $B$3$l$O<!$N$$$:$l$+$N(B
 @code{internal error} $B$H$7$FJs9p$5$l(B, $BDL>o$N%(%i!<$HF1MM$K07$C$F(B,  @code{internal error} $B$H$7$FJs9p$5$l(B, $BDL>o$N%(%i!<$HF1MM$K07$C$F(B,
 $B%G%P%C%0%b!<%I$KF~$k(B.  $B%G%P%C%0%b!<%I$KF~$k(B.
   \E
   \BEG
   In the execution of internal functions, errors may happen by various
   reasons.  The UNIX version of @b{Asir} will report those errors as one of
   the following @code{internal error}'s, and enters debugging mode just
   like normal errors.
   \E
   
 @table @code  @table @code
 @item SEGV  @item SEGV
 @itemx BUS ERROR  @itemx BUS ERROR
   
   \BJP
 $BAH$_9~$_H!?t$K$h$C$F$O(B, $B0z?t$N7?$r87L)$K%A%'%C%/$;$:$K1i;;%k!<%A%s$K0z(B  $BAH$_9~$_H!?t$K$h$C$F$O(B, $B0z?t$N7?$r87L)$K%A%'%C%/$;$:$K1i;;%k!<%A%s$K0z(B
 $B$-EO$7$F$7$^$&$b$N$bB8:_$7$F$$$k(B. $B$3$N$h$&$J>u67$K$*$$$F(B,  $B$-EO$7$F$7$^$&$b$N$bB8:_$7$F$$$k(B. $B$3$N$h$&$J>u67$K$*$$$F(B,
 $BIT@5$J%]%$%s%?(B, $B$"$k$$$O(B NULL $B%]%$%s%?$K$h$k%"%/%;%90cH?$,$"$C$?>l9g(B, $B$3$l$i(B  $BIT@5$J%]%$%s%?(B, $B$"$k$$$O(B NULL $B%]%$%s%?$K$h$k%"%/%;%90cH?$,$"$C$?>l9g(B, $B$3$l$i(B
 $B$N%(%i!<$H$J$k(B.  $B$N%(%i!<$H$J$k(B.
   \E
   \BEG
   Some of the built-in functions transmit their arguments to internal
   operation routines without strict type-checking.  In such cases,
   one of these two errors will be reported
   when an access violation caused by an illegal pointer or a NULL pointer
   is detected.
   \E
   
 @item BROKEN PIPE  @item BROKEN PIPE
   
   \BJP
 $B%W%m%;%94VDL?.$K$*$$$F(B, $BAj<j@h$N%W%m%;%9$H$N4V$N%9%H%j!<%`(B  $B%W%m%;%94VDL?.$K$*$$$F(B, $BAj<j@h$N%W%m%;%9$H$N4V$N%9%H%j!<%`(B
 $B$,4{$KB8:_$7$F$$$J$$>l9g(B ($BNc$($P4{$KAj<j@h$N%W%m%;%9$,=*N;$7$F$$$k>l9g$J$I(B)  $B$,4{$KB8:_$7$F$$$J$$>l9g(B ($BNc$($P4{$KAj<j@h$N%W%m%;%9$,=*N;$7$F$$$k>l9g$J$I(B)
 $B$K(B, $B$=$N%9%H%j!<%`$KF~=PNO$7$h$&$H$7$?>l9g$K$3$N%(%i!<$H$J$k(B.  $B$K(B, $B$=$N%9%H%j!<%`$KF~=PNO$7$h$&$H$7$?>l9g$K$3$N%(%i!<$H$J$k(B.
   \E
   \BEG
   In the process communication, this error will be reported if a process
   attempts to read from or to write onto the partner process when the
   stream to the partner process does not already exist, (e.g., terminated
   process.)
   \E
 @end table  @end table
   
 @noindent  @noindent
   \BJP
 $B$3$l$i$O<B:]$K$O(B, $BAH$_9~$_H!?t$NF~8}$K$*$$$F(B, $B0z?t$r40A4$K%A%'%C%/(B  $B$3$l$i$O<B:]$K$O(B, $BAH$_9~$_H!?t$NF~8}$K$*$$$F(B, $B0z?t$r40A4$K%A%'%C%/(B
 $B$9$k$3$H$K$h$jBgItJ,$OKI$2$k$,(B, $B<j4V$,B?$/$+$+$k$3$H$H(B, $B>l9g$K(B  $B$9$k$3$H$K$h$jBgItJ,$OKI$2$k$,(B, $B<j4V$,B?$/$+$+$k$3$H$H(B, $B>l9g$K(B
 $B$h$C$F$O8zN($rMn$9$3$H$K$b$J$k$?$a(B, $B$"$($F0z?t%A%'%C%/$O%f!<%6(B  $B$h$C$F$O8zN($rMn$9$3$H$K$b$J$k$?$a(B, $B$"$($F0z?t%A%'%C%/$O%f!<%6(B
 $BG$$;$K$7$F$"$k(B.  $BG$$;$K$7$F$"$k(B.
   \E
   \BEG
   For UNIX version, even in such a case, the process itself does not
   terminate because such an error can be caught by @code{signal()} and
   recovered.
   To remove this weak point, complete type
   checking of all arguments are indispensable at the entry of a built-in
   function, which requires an enormous amount of re-making efforts.
   \E
   
   \BJP
 @node $B7W;;7k2L$*$h$SFC<l$J?t(B,,, Risa/Asir  @node $B7W;;7k2L$*$h$SFC<l$J?t(B,,, Risa/Asir
 @section $B7W;;7k2L(B, $BFC<l$J?t(B  @section $B7W;;7k2L(B, $BFC<l$J?t(B
   \E
   \BEG
   @node Referencing results and special numbers,,, Risa/Asir
   @section Referencing results and special numbers
   \E
   
 @noindent  @noindent
 @code{@@} $B$O%(%9%1!<%WJ8;z$H$7$F;HMQ$5$l$k(B. $B8=:_<!$N$h$&$J5,Dj$,$"$k(B.  \JP @code{@@} $B$O%(%9%1!<%WJ8;z$H$7$F;HMQ$5$l$k(B. $B8=:_<!$N$h$&$J5,Dj$,$"$k(B.
   \BEG
   An @code{@@} used for an escape character; rules currently in force
   are as follows.
   \E
 @table @code  @table @code
   \BJP
 @item @@@var{n}  @item @@@var{n}
 @var{n} $BHVL\$N7W;;7k2L(B.  @var{n} $BHVL\$N7W;;7k2L(B.
 @item @@@@  @item @@@@
Line 486  a
Line 1014  a
 2 $B85BN(B GF(2) $B>e$N0lJQ?tB?9`<0$NJQ?t(B ($BITDj85(B).  2 $B85BN(B GF(2) $B>e$N0lJQ?tB?9`<0$NJQ?t(B ($BITDj85(B).
 @item @@>, @@<, @@>=, @@<=, @@==, @@&&, @@||  @item @@>, @@<, @@>=, @@<=, @@==, @@&&, @@||
 quantifier elimination $B$K$*$1$k(B, $B0l3,=R8lO@M}1i;;;R(B  quantifier elimination $B$K$*$1$k(B, $B0l3,=R8lO@M}1i;;;R(B
   \E
   \BEG
   @item @@@var{n}
   The evaluated result of @var{n}-th input command
   @item @@@@
   The evaluated result of the last command
   @item @@i
   The unit of imaginary number, square root of -1.
   @item @@pi
   The number pi,
   the ratio of a circumference of the circle and its diameter.
   @item @@e
   Napier's number, the base of natural logarithm.
   @item @@
   A generator of GF(2^m), a finite field of characteristic 2, over GF(2).
   It is a root of an irreducible univariate polynomial over GF(2)
   which is set as the defining polynomial of GF(2^m).
   @item @@>, @@<, @@>=, @@<=, @@==, @@&&, @@||
   Fist order logical operators. They are used in quantifier elimination.
   \E
 @end table  @end table
   
 @example  @example
Line 508  x^4-x^3+x^2-x+1
Line 1056  x^4-x^3+x^2-x+1
 @end example  @end example
   
 @noindent  @noindent
   \BJP
 $B%H%C%W%l%Y%k$G7W;;$5$l$?CM$O$3$N$h$&$K%R%9%H%j$H$7$F<h$j=P$72DG=$G$"$k$,(B,  $B%H%C%W%l%Y%k$G7W;;$5$l$?CM$O$3$N$h$&$K%R%9%H%j$H$7$F<h$j=P$72DG=$G$"$k$,(B,
 $B$3$N$3$H$O(B, $B%,%Y!<%8%3%l%/%?$K$H$C$F$OIiC4$r$b$?$i$92DG=@-$,$"$k(B. $BFC$K(B,  $B$3$N$3$H$O(B, $B%,%Y!<%8%3%l%/%?$K$H$C$F$OIiC4$r$b$?$i$92DG=@-$,$"$k(B. $BFC$K(B,
 $BBg$-$J<0$r%H%C%W%l%Y%k$G7W;;$7$?>l9g(B, $B$=$N8e$N(B GC $B;~4V$,5^B.$KA}Bg$9$k2D(B  $BBg$-$J<0$r%H%C%W%l%Y%k$G7W;;$7$?>l9g(B, $B$=$N8e$N(B GC $B;~4V$,5^B.$KA}Bg$9$k2D(B
 $BG=@-$,$"$k(B. $B$3$N$h$&$J>l9g(B, @code{delete_history()}  $BG=@-$,$"$k(B. $B$3$N$h$&$J>l9g(B, @code{delete_history()}
 (@pxref{delete_history,,@code{delete_history}}) $B$,M-8z$G$"$k(B.  (@pxref{delete_history,,@code{delete_history}}) $B$,M-8z$G$"$k(B.
   \E
   \BEG
   As you can see in the above example,
   results of toplevel computation can be referred to
   by @code{@@} convention.
   This is convenient for users, while it sometimes imposes a heavy
   burden to the garbage collector.
   It may happen that GC time will rapidly increase after computing
   a very large expression at the toplevel.
   In such cases @code{delete_history()}
   (@pxref{delete_history,,@code{delete_history}}) takes effect.
   \E
   
   

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

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