version 1.1, 1999/12/08 05:47:44 |
version 1.14, 2005/03/30 10:53:28 |
|
|
|
@comment $OpenXM: OpenXM/src/asir-doc/parts/risa.texi,v 1.13 2005/03/24 23:40:50 takayama Exp $ |
@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:: |
* Installation:: |
* $B%3%^%s%I%i%$%s%*%W%7%g%s(B:: |
* $B%3%^%s%I%i%$%s%*%W%7%g%s(B:: |
* $B4D6-JQ?t(B:: |
* $B4D6-JQ?t(B:: |
* $B5/F0$+$i=*N;$^$G(B:: |
* $B5/F0$+$i=*N;$^$G(B:: |
* $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 |
@item |
\BEG |
@code{$B%a%b%j4IM}It(B} |
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 |
|
\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-6.1alpha5}) $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-6.1alpha5}). |
|
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 |
|
|
@node $B%$%s%9%H%l!<%7%g%s(B,,, Risa/Asir |
@node Installation,,, Risa/Asir |
@section $B%$%s%9%H%l!<%7%g%s(B |
@section Installation |
|
|
$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 welcome by e-mails |
|
to the following address. |
|
\E |
|
|
@example |
@example |
noro@@para.flab.fujitsu.co.jp |
noro@@math.kobe-u.ac.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 |
* UNIX $BHG(B:: |
* UNIX binary version:: |
* Windows $BHG(B:: |
* UNIX source code version:: |
|
* Windows version:: |
@end menu |
@end menu |
|
|
@node UNIX $BHG(B,,, $B%$%s%9%H%l!<%7%g%s(B |
@node UNIX binary version,,, Installation |
@subsection UNIX $BHG(B |
@subsection UNIX binary version |
|
|
@noindent |
@noindent |
$BI,MW$J%U%!%$%k$O(B @samp{asir.tgz} $B$G$"$k(B. |
\BJP |
|
$B%?!<%2%C%H(B CPU/OS $B$KBP1~$9$k(B @samp{asir.tgz} $B$,I,MW$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 target 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$l$G(B @samp{asir} $B$,5/F0$G$-$k(B. |
|
\BEG |
|
Then you can start @samp{asir}. |
|
\E |
|
|
@example |
@example |
% /usr/local/bin/asir |
% /usr/local/bin/asir |
asir_key not found. |
This is Risa/Asir, Version 20000821. |
ID for this machine is XXXXXXXX. |
Copyright (C) FUJITSU LABORATORIES LIMITED. |
See the file ASIR_INSTALL to get the correct key. |
1994-2000. All rights reserved. |
|
[0] |
@end example |
@end example |
|
|
@noindent |
@node UNIX source code version,,, Installation |
$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 |
@subsection UNIX source code version |
$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, |
|
|
|
@example |
\BEG |
risa@@para.flab.fujitsu.co.jp |
First of all you have to determine the install directory. |
@end example |
In the install directory, the following subdirectories are put: |
|
\E |
|
|
@noindent |
\BJP |
$B08$K(B, |
$B$^$:(B, $B%$%s%9%H!<%k@h$N%G%#%l%/%H%j$r7h$a$kI,MW$,$"$k(B. |
|
$B$3$3$K$O(B, $B0J2<$N%5%V%G%#%l%/%H%j$,CV$+$l$k(B. |
|
\E |
|
|
@example |
@itemize @bullet |
ASIR XXXXXXXX |
@item bin |
@end example |
|
|
|
@noindent |
\EG executables of PARI and Asir |
$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 |
\JP PARI $B$*$h$S(B Asir $B$N<B9T2DG=%U%!%$%k(B |
@code{ID} $B$G$"$k(B. $B@^$jJV$7(B |
|
|
|
|
@item lib |
|
|
|
\EG library files of PARI and Asir |
|
\JP PARI $B$*$h$S(B Asir $B$N%i%$%V%i%j(B |
|
@item include |
|
|
|
\EG header files of PARI |
|
\JP PARI $B$N%X%C%@%U%!%$%k(B |
|
@end itemize |
|
|
|
\BEG |
|
These subdirectories are created automatically if they does not exist. |
|
If you can be a root, it is recommended to set the install directory |
|
to @samp{/usr/local}. In the following the directory is denoted by TARGETDIR. |
|
\E |
|
\BJP |
|
$B$3$l$i$N%5%V%G%#%l%/%H%j$OL5$1$l$P<+F0E*$K:n$i$l$k(B. |
|
root $B8"8B$,$"$k>l9g$K$O(B, @samp{/usr/local} $B$K%$%s%9%H!<%k$9$k$3$H$r(B |
|
$B$*4+$a$9$k(B. $B0J2<(B, $B$3$N%G%#%l%/%H%j$r(B TARGETDIR $B$H=q$/(B. |
|
\E |
|
|
|
\BEG |
|
Then, install PARI library. After getting @samp{pari.tgz}, |
|
unpack and install it as follows: |
|
\E |
|
\BJP |
|
$B$^$:(B PARI $B%i%$%V%i%j$r%$%s%9%H!<%k$9$kI,MW$,$"$k(B. |
|
@samp{pari.tgz} $B$rF~<j8e(B, $BE,Ev$J%G%#%l%/%H%j$GE83+(B, $B%$%s%9%H!<%k$9$k(B. |
|
\E |
|
|
@example |
@example |
YYYYYYYY YYYYYYYY YYYYYYYY |
% gzip -dc pari.tgz | tar xvf - |
|
% cd pari |
|
% ./Configure --prefix=TARGETDIR |
|
% make all |
|
% su |
|
# make install |
|
# make install-lib-sta |
@end example |
@end example |
|
|
@noindent |
\BJP |
$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} |
make $BCf$K%(%i!<$G;_$^$C$?$i(B, $B0J2<$r<B9T$9$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 |
|
While executing 'make install', the procedure may stop due to |
|
some error. Then try the following: |
|
\E |
|
|
@example |
@example |
% /usr/local/bin/asir |
% cd Oxxx |
This is Asir, Version 990831. |
% make lib-sta |
Copyright (C) FUJITSU LABORATORIES LIMITED. |
% su |
3 March 1994. All rights reserved. |
# make install-lib-sta |
[0] |
# make install-include |
|
# exit |
|
% |
@end example |
@end example |
|
|
@noindent |
\BEG |
$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 |
In the above example, xxx denotes the name of the target operating system. |
$B$G$"$k(B. @code{key} $B$r=q$$$F$*$/%U%!%$%k$K4X$7$F$O(B, $B4D6-JQ?t(B @code{ASIR_KEY} |
Although GP is not built, the library necessary for building asir2000 |
$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 |
will be generated. |
$B%U%!%$%k(B @samp{asir_key} $B$rCV$1$P(B, $B$=$N%^%7%s>e$GA4$F$N%f!<%6$,(B @samp{asir} |
|
$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$K9T$rDI2C$7$F$$$1$P$h$$(B. |
|
|
|
|
After getting @samp{asir2000.tgz}, unpack it |
|
and install necessary files as follows. |
|
\E |
|
|
|
\BJP |
|
$B>e$NNc$G(B, xxx $B$O8=:_%?!<%2%C%H$H$J$C$F$$$k(B OS $B$NL>A0$r<($9(B. |
|
GP $B$O%$%s%9%H!<%k$5$l$J$$$,(B, asir2000 $B$N:n@.$KI,MW$J%U%!%$%k$O%$%s%9%H!<%k(B |
|
$B$5$l$k(B. |
|
|
|
@samp{asir2000.tgz} $B$rF~<j8e(B, $BE,Ev$J%G%#%l%/%H%j$G(B |
|
$B$GE83+$7(B, $B0J2<$N<j=g$G%$%s%9%H!<%k$9$k(B. |
|
\E |
|
|
@example |
@example |
# cp asir_key /usr/local/lib/asir |
% gzip -dc asir.tgz | tar xf - |
|
% cd asir2000 |
|
% ./configure --prefix=TARGETDIR --with-pari --enable-plot |
|
% make |
|
% su |
|
# make install |
|
# make install-lib |
|
# make install-doc |
|
# exit |
@end example |
@end example |
|
|
@node Windows $BHG(B,,, $B%$%s%9%H%l!<%7%g%s(B |
@node Windows version,,, Installation |
@subsection Windows $BHG(B |
@subsection Windows version |
|
|
@noindent |
@noindent |
$BI,MW$J%U%!%$%k$O(B @samp{asirwin.tgz} $B$G$"$k(B. $BB>$K(B, @samp{gzip.exe}, |
\BJP |
@samp{tar.exe} $B$,I,MW$@$,(B, asirwin.tgz $B$HF1$8%G%#%l%/%H%j$KMQ0U$7$F(B |
$BI,MW$J%U%!%$%k$O(B @samp{asirwin-ja.tgz} $B$G$"$k(B. $BB>$K(B, @samp{gzip.exe}, |
$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 |
@samp{tar.exe} $B$,I,MW$@$,(B, @samp{asirwin-ja.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, $B%3%^%s%I%W%m%s%W%H(B |
|
(DOS $B%W%m%s%W%H(B) |
$B$+$i(B |
$B$+$i(B |
|
\E |
|
\BEG |
|
The necessary file is @samp{asirwin-en.tgz}. To unpack it @samp{gzip.exe} |
|
and @samp{tar.exe} are necessary. They are in the same |
|
directory as @samp{asirwin-en.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. |
$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 |
@comment 990831 $BHG$G$O(B, GUI $B$HK\BN$,J,N%$5$l(B, $B$^$?%G%P%C%0%&%#%s%I%&$b(B |
$BEPO?$5$l$F$$$k$3$H$,I,MW$G$"$k(B. Asir $B%k!<%H%G%#%l%/%H%j$N%5%V%G%#%l%/%H(B |
@comment $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 |
$B%j(B @samp{bin} $B$K(B @samp{asirgui.exe} (GUI), @samp{engine.exe} ($BK\BN(B) $B$,(B |
@comment $BEPO?$5$l$F$$$k$3$H$,I,MW$G$"$k(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 |
Asir $B%k!<%H%G%#%l%/%H%j$N%5%V%G%#%l%/%H(B |
$B$&(B. $B$3$l$K$h$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$r%@%V%k%/%j%C%/$9$l$P(B Asir $B$,N)$A>e$,$k(B. |
|
@comment @samp{asirgui.exe} $B$N=i2s$NN)$A>e$2$O(B, $B%(%/%9%W%m!<%i$+$i9T(B |
|
@comment $B$&(B. $B$3$l$K$h$j(B |
|
\E |
|
|
@example |
\BEG |
HKEY_LOCAL_MACHINE\SOFTWARE\FUJITSU\Asir\99.03.31\Directory |
Then a directory @samp{Asir} (@b{Asir root directory}) is created, |
@end example |
which has subdirectories named @samp{bin} and @samp{lib}. |
|
Asir can be invoked by double-clicking @samp{asirgui.exe}. |
|
@comment To set up it, |
|
@comment invoke @samp{bin\asirgui.exe} from Explorer and |
|
@comment click @code{OK}. Then the name of @b{Asir root directory} is set to the |
|
@comment following registries. |
|
\E |
|
|
@noindent |
@comment @example |
$B$H$$$&%l%8%9%H%j$K(B Asir $B%k!<%H%G%#%l%/%H%j$,@5$7$/EPO?$5$l$k(B. |
@comment \JP HKEY_LOCAL_MACHINE\SOFTWARE\FUJITSU\Asir\99.03.31\Directory |
|
@comment \EG HKEY_LOCAL_MACHINE\SOFTWARE\FUJITSU\Asir\99.03.31\Directory |
|
@comment @end example |
|
|
|
@comment @noindent |
|
@comment \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 -quiet |
|
\JP $B5/F0;~$NCx:n8"I=<($r9T$o$J$$(B. |
|
\BEG Be quiet at boot time. |
|
\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} |
|
|
|
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 |
|
$B7e(B 3 $B%o!<%I$+$i$J$j(B, |
|
|
|
@example |
|
% cat asir_key |
|
cf6f236c 61a35091 dddc4529 geisha |
|
82281685 d1929945 a8bd24ca yorktown |
|
34b75d30 63f8df93 3e881113 nyanchu |
|
@end example |
|
|
|
$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$3$H$,$G$-$k(B. @code{key} $B$r4^$`%U%!%$%k$O(B, $B0J2<$N=g$G%5!<%A$5$l$k(B. |
|
|
|
@enumerate |
|
@item |
|
$B4D6-JQ?t(B @code{ASIR_KEY} $B$K;XDj$5$l$?%U%!%$%k(B |
|
|
|
@item |
|
$B%+%l%s%H%G%#%l%/%H%j$N(B @samp{asir_key} |
|
|
|
@item |
|
$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} |
|
@end enumerate |
|
|
|
@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. |
|
$B$3$N4D6-JQ?t$O(B @code{ASIRLOADPATH} $B$KE}9g$5$lGQ;_$5$l$kM=Dj(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. |
|
This environmental variable will become obsolete. |
|
\E |
|
@item |
|
@code{ASIR_CONTRIB_DIR} |
|
@* |
|
\BJP |
|
@b{Asir} $B$N(B asir-contrib $B%G%#%l%/%H%j(B, $B$9$J$o$A(B OpenXM/asir-contrib |
|
$B%W%m%8%'%/%H$G=q$+$l$?%Q%C%1!<%8$d%G!<%?$J$I$,$*$+$l$k%G%#%l%/%H%j(B. |
|
$B;XDj$,$J$$>l9g(B UNIX $BHG$G$O(B |
|
@samp{/usr/local/lib/asir-contrib}, |
|
Windows $BHG$G$O(B Asir $B%a%$%s%G%#%l%/%H%j$N2<$N(B @samp{lib-asir-contrib} |
|
$B%G%#%l%/%H%j$,MQ$$$i$l$k(B. |
|
$B$3$N4D6-JQ?t$O(B @code{ASIRLOADPATH} $B$KE}9g$5$lGQ;_$5$l$kM=Dj(B. |
|
This environmental variable will become obsolete. |
|
\E |
|
\BEG |
|
The asir-contrib library directory of @b{Asir}, i.e., the directory where |
|
packages and data developed by the OpenXM/asir-contrib project files are put. |
|
If not specified, on UNIX, @samp{/usr/local/lib/asir-contrib} |
|
is used by default. |
|
On Windows, @samp{lib-asir-contrib} 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 |
|
|
@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, |
|
|
$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}, Windows, DOS $BHG$G$O(B @kbd{C-x} $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} on Windows and DOS.) |
|
\E |
|
|
@example |
@example |
@@ (x+y)^1000; |
@@ (x+y)^1000; |
|
|
@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 |
|
|
@item d |
@item d |
$B%G%P%C%0%b!<%I$KF~$k(B. $B%G%P%C%,$K4X$7$F$O(B @xref{$B%G%P%C%,(B}. |
$B%G%P%C%0%b!<%I$KF~$k(B. $B%G%P%C%,$K4X$7$F$O(B @xref{$B%G%P%C%,(B}. |
@item u |
@item u |
@code{register_handler()} (@pxref{ox_reset register_handler}) $B$GEPO?$5$l$?(B |
@code{register_handler()} (@pxref{ox_reset ox_intr register_handler}) $B$GEPO?$5$l$?(B |
$B4X?t$r<B9T8e%H%C%W%l%Y%k$KLa$k(B. ($B3NG'$"$j(B) |
$B4X?t$r<B9T8e%H%C%W%l%Y%k$KLa$k(B. ($B3NG'$"$j(B) |
@item w |
@item w |
$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 ox_intr 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 |
|
|
$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 @@@@ |
|
|
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 1022 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 |
|
|
|
|