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

File: [local] / OpenXM / src / asir-doc / parts / appendix.texi (download)

Revision 1.4, Fri Dec 24 04:38:04 1999 UTC (24 years, 6 months ago) by noro
Branch: MAIN
CVS Tags: RELEASE_20000124
Changes since 1.3: +4 -33 lines

Moved a description for primary decomposition in Appendix to
'Groebner basis computation'.

@comment $OpenXM: OpenXM/src/asir-doc/parts/appendix.texi,v 1.4 1999/12/24 04:38:04 noro Exp $
\BJP
@node $BIUO?(B,,, Top
@appendix $BIUO?(B
\E
\BEG
@node Appendix,,, Top
@appendix Appendix
\E

@menu
\BJP
* $BJ8K!$N>\:Y(B::
* $BE:IU$N%f!<%6Dj5AH!?t%U%!%$%k(B::
* $BF~NO%$%s%?%U%'!<%9(B::
* $BJQ99E@(B::
* $BJ88%(B::
\E
\BEG
* Details of syntax:: 
* Files of user defined functions::
* Input interfaces::
* Changes:: 
* References::
\E
@end menu

\BJP
@node $BJ8K!$N>\:Y(B,,, $BIUO?(B
@section $BJ8K!$N>\:Y(B
\E
\BEG
@node Details of syntax,,, Appendix
@section Details of syntax
\E

@example
\BJP
<$B<0(B>: 
    @samp{(}<$B<0(B>@samp{)}
    <$B<0(B> <$BFs9`1i;;;R(B> <$B<0(B>
    @samp{+} <$B<0(B>
    @samp{-} <$B<0(B>
    <$B:8JUCM(B>
    <$B:8JUCM(B> <$BBeF~1i;;;R(B> <$B<0(B>
    <$B:8JUCM(B> @samp{++}
    <$B:8JUCM(B> @samp{--}
    @samp{++} <$B:8JUCM(B>
    @samp{--} <$B:8JUCM(B>
    @samp{!} <$B<0(B>
    <$B<0(B> @samp{?} <$B<0(B> @samp{:} <$B<0(B>
    <$BH!?t(B> @samp{(} <$B<0JB$S(B> @samp{)}
    <$BH!?t(B> @samp{(} <$B<0JB$S(B> @samp{|} <$B%*%W%7%g%sJB$S(B> @samp{)}
    <$BJ8;zNs(B>
    <$B;X?t%Y%/%H%k(B>
    <$B%"%H%`(B>
    <$B%j%9%H(B>
\E
\BEG
<expression>:
    @samp{(}<expression>@samp{)}
    <expression> <binary operator> <expression>
    @samp{+} <expression>
    @samp{-} <expression>
    <left value>
    <left value> <assignment operator> <expression>
    <left value> @samp{++}
    <left value> @samp{--}
    @samp{++} <left value>
    @samp{--} <left value>
    @samp{!} <expression>
    <expression> @samp{?} <expression> @samp{:} <expression>
    <function> @samp{(} <expr list> @samp{)}
    <function> @samp{(} <expr list> @samp{|} <option list> @samp{)}
    <string>
    <exponent vector>
    <atom>
    <list>
\E
@end example
\JP (@xref{$B$5$^$6$^$J<0(B})
\EG (@xref{various expressions})

@example
\BJP
<$B:8JUCM(B>:
    <$BJQ?t(B> [@samp{[}<$B<0(B>@samp{]}]*
\E
\BEG
<left value>:
    <program variable> [@samp{[}<expression>@samp{]}]*
\E
@end example

@example
\BJP
<$BFs9`1i;;;R(B>:
    @samp{+} @samp{-} @samp{*} @samp{/} @samp{%} @samp{^}($BQQ(B) 
\E
\BEG
<binary operator>:
    @samp{+} @samp{-} @samp{*} @samp{/} @samp{%} @samp{^}(exponentiation)
    @samp{==} @samp{!=} @samp{<} @samp{>} @samp{<=} @samp{>=} @samp{&&} @samp{||}
\E
    @samp{==} @samp{!=} @samp{<} @samp{>} @samp{<=} @samp{>=} @samp{&&} @samp{||}
@end example

@example
\JP <$BBeF~1i;;;R(B>:
\EG <assignment operator>:
    @samp{=} @samp{+=} @samp{-=} @samp{*=} @samp{/=} @samp{%=} @samp{^=} 
@end example

@example
\BJP
<$B<0JB$S(B>:
    <$B6u(B>
    <$B<0(B> [@samp{,} <$B<0(B>]*
\E
\BEG
<expr list>:
    <empty>
    <expression> [@samp{,} <expression>]*
\E
@end example

@example
\BJP
<$B%*%W%7%g%s(B>:
    alphabet $B$G;O$^$kJ8;zNs(B @samp{=} <$B<0(B>
\E
\BEG
<option>:
    Character sequence beginning with an alphabetical letter @samp{=} <expression>
\E
@end example

@example
\BJP
<$B%*%W%7%g%sJB$S(B>:
    <$B%*%W%7%g%s(B>
    <$B%*%W%7%g%s(B> [@samp{,} <$B%*%W%7%g%s(B>]*
\E
\BEG
<option list>:
    <option>
    <option> [@samp{,} <option>]*
\E
@end example


@example
\BJP
<$B%j%9%H(B>:
    @samp{[} <$B<0JB$S(B> @samp{]}
\E
\BEG
<list>:
    @samp{[} <expr list> @samp{]}
\E
@end example

@example
\BJP
<$BJQ?t(B>: 
    $BBgJ8;z$G;O$^$kJ8;zNs(B (X,Y,Japan $B$J$I(B)
\E
\BEG
<program variable>:
   Sequence of alphabetical letters or numeric digits or @code{_}
   that begins with a capital alphabetical letter
   (X,Y,Japan etc.)
\E
@end example
\JP (@xref{$BJQ?t$*$h$SITDj85(B})
\EG (@xref{variables and indeterminates})

@example
\BJP
<$BH!?t(B>:
   $B>.J8;z$G;O$^$kJ8;zNs(B (fctr,gcd $B$J$I(B)
\E
\BEG
<function>:
   Sequence of alphabetical letters or numeric digits or @code{_}
   that begins with a small alphabetical letter
   (fctr,gcd etc.)
\E
@end example

@example
\BJP
<$B%"%H%`(B>:
   <$BITDj85(B>
   <$B?t(B>
\E
\BEG
<atom>:
   <indeterminate>
   <number>
\E
@end example

@example
\BJP
<$BITDj85(B>: 
   $B>.J8;z$G;O$^$kJ8;zNs(B (a,bCD,c1_2 $B$J$I(B)
\E
\BEG
<indeterminate>:
   Sequence of alphabetical letters or numeric digits or @code{_}
   that begin with a small alphabetical letter
   (a,bCD,c1_2 etc.)
\E
@end example
\JP (@xref{$BJQ?t$*$h$SITDj85(B})
\EG (@xref{variables and indeterminates})

@example
\BJP
<$B?t(B>: 
   <$BM-M}?t(B>
   <$BIbF0>.?t(B>
   <$BBe?tE*?t(B>
   <$BJ#AG?t(B>
\E
\BEG
<number>:
   <rational number>
   <floating point number>
   <algebraic number>
   <complex number>
\E
@end example
\JP (@xref{$B?t$N7?(B})
\EG (@xref{Types of numbers})

@example
\JP <$BM-M}?t(B>:
\EG <rational number>:
   0, 1, -2, 3/4
@end example

@example
\JP <$BIbF0>.?t(B>:
\EG <floating point number>:
   0.0, 1.2e10
@end example

@example
\JP <$BBe?tE*?t(B>: 
\EG <algebraic number>: 
   newalg(x^2+1), alg(0)^2+1
@end example
\JP (@xref{$BBe?tE*?t$K4X$9$k1i;;(B})
\EG (@xref{Algebraic numbers})

@example
\JP <$BJ#AG?t(B>:
\EG <complex number>:
   1+@code{@@i}, 2.3*@code{@@i}
@end example

@example
\BJP
<$BJ8;zNs(B>:
   @samp{"} $B$G0O$^$l$?J8;zNs(B 
\E
\BEG
<string>:
   character sequence enclosed by two @samp{"}'s.
\E
@end example

@example
\BJP
<$B;X?t%Y%/%H%k(B>:
   @samp{<<} <$B<0JB$S(B> @samp{>>}
\E
\BEG
<exponent vector>:
   @samp{<<} <expr list> @samp{>>}
\E
@end example
\JP (@xref{$B%0%l%V%J4pDl$N7W;;(B})
\EG (@xref{Groebner basis computation})

@example
\BJP
<$BJ8(B>:
    <$B<0(B> <$B=*C<(B>
    <$BJ#J8(B>
    @samp{break} <$B=*C<(B>
    @samp{continue} <$B=*C<(B>
    @samp{return} <$B=*C<(B>
    @samp{return} <$B<0(B> <$B=*C<(B>
    @samp{if} @samp{(} <$B<0JB$S(B> @samp{)} <$BJ8(B>
    @samp{if} @samp{(} <$B<0JB$S(B> @samp{)} <$BJ8(B> @samp{else} <$BJ8(B>
    @samp{for} @samp{(} <$B<0JB$S(B> @samp{;} <$B<0JB$S(B> @samp{;} <$B<0JB$S(B> @samp{)} <$BJ8(B>
    @samp{do} <$BJ8(B> @samp{while} @samp{(} <$B<0JB$S(B> @samp{)} <$B=*C<(B> 
    @samp{while} @samp{(} <$B<0JB$S(B> @samp{)} <$BJ8(B>
    @samp{def} <$BH!?t(B> @samp{(} <$B<0JB$S(B> @samp{)} @samp{@{} <$BJQ?t@k8@(B> <$BJ8JB$S(B> @samp{@}}
    @samp{end(quit)} <$B=*C<(B> 
\E
\BEG
<statement>:
    <expression> <terminator>
    <compound statement>
    @samp{break} <terminator>
    @samp{continue} <terminator>
    @samp{return} <terminator>
    @samp{return} <expression> <terminator>
    @samp{if} @samp{(} <expr list> @samp{)} <statement>
    @samp{if} @samp{(} <expr list> @samp{)} <statement> @samp{else} <statement>
    @samp{for} @samp{(} <expr list> @samp{;} <expr list> @samp{;} <expr list> @samp{)} <statement>
    @samp{do} <statement> @samp{while} @samp{(} <expr list> @samp{)} <terminator>
    @samp{while} @samp{(} <expr list> @samp{)} <statement>
    @samp{def} <function> @samp{(} <expr list> @samp{)} @samp{@{} <variable declaration> <stat list> @samp{@}}
    @samp{end(quit)} <terminator>
\E
@end example
\JP (@xref{$BJ8(B})
\EG (@xref{statements})

@example
\JP <$B=*C<(B>:
\EG <terminator>:
    @samp{;} @samp{$}
@end example

@example
\BJP
<$BJQ?t@k8@(B>:
    [@samp{extern} <$BJQ?t(B> [@samp{,} <$BJQ?t(B>]* <$B=*C<(B>]*
\E
\BEG
<variable declaration>:
    [@samp{extern} <program variable> [@samp{,} <program variable>]* <terminator>]*
\E
@end example

@example
\BJP
<$BJ#J8(B>:
    @samp{@{} <$BJ8JB$S(B> @samp{@}}
\E
\BEG
<compound statement>:
    @samp{@{} <stat list> @samp{@}}
\E
@end example

@example
\BJP
<$BJ8JB$S(B>:
    [<$BJ8(B>]*
\E
\BEG
<stat list>:
    [<statement>]*
\E
@end example

\BJP
@node $BE:IU$N%f!<%6Dj5AH!?t%U%!%$%k(B,,, $BIUO?(B
@section $BE:IU$N%f!<%6Dj5AH!?t%U%!%$%k(B
\E
\BEG
@node Files of user defined functions,,, Appendix
@section Files of user defined functions
\E

@noindent
\BJP
$BI8=`%i%$%V%i%j%G%#%l%/%H%j(B ($B%G%U%)%k%H$G$O(B @samp{/usr/local/lib/asir}) $B$K$O(B
$B$$$/$D$+$N%f!<%6Dj5AH!?t%U%!%$%k$,$*$+$l$F$$$k(B. $B$3$l$i$N$&$A$N<g$J$b$N$K$D$$$F(B
$B@bL@$9$k(B. 
\E
\BEG
There are several files of user defined functions under the standard
library directory. (@samp{/usr/local/lib/asir} by default.)
Here, we explain some of them.
\E

@table @samp
@item fff
\JP $BBgI8?tAGBN$*$h$SI8?t(B 2 $B$NM-8BBN>e$N0lJQ?tB?9`<00x?tJ,2r(B (@xref{$BM-8BBN$K4X$9$k1i;;(B})
\EG Univariate factorizer over large finite fields (@xref{Finite fields})
@item gr
\JP $B%0%l%V%J4pDl7W;;%Q%C%1!<%8(B.  (@xref{$B%0%l%V%J4pDl$N7W;;(B})
\EG Groebner basis package.  (@xref{Groebner basis computation})
@item sp
\JP $BBe?tE*?t$N1i;;$*$h$S0x?tJ,2r(B, $B:G>.J,2rBN(B. (@xref{$BBe?tE*?t$K4X$9$k1i;;(B})
\EG Operations over algebraic numbers and factorization, Splitting fields. (@xref{Algebraic numbers})
@item alpi
@itemx bgk
@itemx cyclic
@itemx katsura
@itemx kimura
\JP $B%0%l%V%J4pDl7W;;$K$*$$$F(B, $B%Y%s%A%^!<%/$=$NB>$GMQ$$$i$l$kNc(B. 
\EG Example polynomial sets for benchmarks of Groebner basis computation.
(@xref{katsura hkatsura cyclic hcyclic})
@item defs.h
\JP $B$$$/$D$+$N%^%/%mDj5A(B. (@xref{$B%W%j%W%m%;%C%5(B})
\EG Macro definitions. (@xref{preprocessor})
@item fctrtest
\BJP
$B@0?t>e$NB?9`<0$N0x?tJ,2r$N%F%9%H(B. REDUCE $B$N(B @samp{factor.tst} $B$*$h$S(B
$B=EJ#EY$NBg$-$$$$$/$D$+$NNc$r4^$`(B. $B$3$l$O(B, @code{load()} $B$9$k$H(B
$BD>$A$K7W;;$,;O$^$k(B. $BF~<j$7$?(B @b{Asir} $B$,@5$7$/F0:n$7$F$$$k$+$N(B
$B%F%9%H$K$b;H$&$3$H$,$G$-$k(B. 
\E
\BEG
Test program of factorization of integral polynomials.
It includes  @samp{factor.tst} of REDUCE and several examples
for large multiplicity factors.  If this file is @code{load()}'ed,
computation will begin immediately.
You may use it as a first test whether @b{Asir} at you hand runs
correctly.
\E
@item fctrdata
\BJP
@samp{fctrtest} $B$G;H$o$l$F$$$kNc$r4^$`(B, $B0x?tJ,2r%F%9%HMQ$NNc(B. 
@code{Alg[]} $B$K<}$a$i$l$F$$$kNc$O(B, @code{af()} (@xref{asq af}) $BMQ$NNc$G$"$k(B. 
\E
\BEG
This contains example polynomials for factorization.  It includes
polynomials used in @samp{fctrtest}.
Polynomials contained in vector @code{Alg[]} is for the algebraic
factorization @code{af()} (@xref{asq af}).
\E
@example
[45] load("sp")$
[84] load("fctrdata")$
[175] cputime(1)$
0msec
[176] Alg[5];
x^9-15*x^6-87*x^3-125
0msec
[177] af(Alg[5],[newalg(Alg[5])]);
[[1,1],[75*x^2+(10*#0^7-175*#0^4-470*#0)*x+(3*#0^8-45*#0^5-261*#0^2),1],
[75*x^2+(-10*#0^7+175*#0^4+395*#0)*x+(3*#0^8-45*#0^5-261*#0^2),1],
[25*x^2+(25*#0)*x+(#0^8-15*#0^5-87*#0^2),1],[x^2+(#0)*x+(#0^2),1],
[x+(-#0),1]]
3.600sec + gc : 1.040sec
@end example
@item ifplot
\BJP
$BIA2h(B (@xref{ifplot conplot plot plotover}) $B$N$?$a$NNc(B. @code{IS[]} $B$K$OM-L>$J(B
$B6J@~$NNc(B, $BJQ?t(B @code{H, D, C, S} $B$K$O%H%i%s%W$N%O!<%H(B, $B%@%$%d(B, $B%/%i%V(B, 
$B%9%Z!<%I(B ($B$i$7$-(B) $B6J@~$NNc$,F~$C$F$$$k(B. 
\E
\BEG
Examples for plotting (@xref{ifplot conplot plot plotover}).
Vector @code{IS[]} contains several famous algebraic curves.
Variables @code{H, D, C, S} contains something like the suits
(Heart, Diamond, Club, and Spade) of cards.
\E
@item num
\JP $B?t$K4X$9$k4JC1$J1i;;H!?t$NNc(B. 
\EG Examples of simple operations on numbers.
@item mat
\JP $B9TNs$K4X$9$k4JC1$J1i;;H!?t$NNc(B. 
\EG Examples of simple operations on matrices.
@item ratint
\BJP
$BM-M}H!?t$NITDj@QJ,(B. @samp{sp}, @samp{gr} $B$,I,MW(B. @code{ratint()} $B$H$$$&(B
$BH!?t$,Dj5A$5$l$F$$$k$,(B, $B$=$NJV$97k2L$O$d$dJ#;($G$"$k(B. $BNc$G@bL@$9$k(B. 
\E
\BEG
Indefinite integration of rational functions.  For this,
files @samp{sp} and @samp{gr} is necessary.  A function @code{ratint()}
is defined.  Its returns a rather complex result.
\E
@example
[0] load("gr")$
[45] load("sp")$
[84] load("ratint")$
[102] ratint(x^6/(x^5+x+1),x);
[1/2*x^2,
[[(#2)*log(-140*x+(-2737*#2^2+552*#2-131)),161*t#2^3-23*t#2^2+15*t#2-1],
[(#1)*log(-5*x+(-21*#1-4)),21*t#1^2+3*t#1+1]]]
@end example
\BJP
$B$3$NNc$G$O(B, @code{x^6/(x^5+x+1)} $B$NITDj@QJ,$N7W;;$r9T$C$F$$$k(B. 
$B7k2L$O(B 2 $B$D$NMWAG$+$i$J$k%j%9%H$G(B, $BBh(B 1 $BMWAG$OITDj@QJ,$NM-M}ItJ,(B, 
$BBh(B 2 $BMWAG$OBP?tItJ,$rI=$9(B. $BBP?tItJ,$O99$K%j%9%H$H$J$C$F$$$F(B, $B3FMWAG$O(B, 
@code{[root*log(poly),defpoly]} $B$H$$$&7A$r$7$F$$$k(B. $B$3$l$O(B, $BITDj@QJ,$K(B
$B$*$$$F$O(B, @code{defpoly} $B$NA4$F$N:,(B @code{root} $B$KBP$7$F(B @code{root*log(poly)}
$B$r:n$j$=$l$i$rB-$79g$o$;$k$H$$$&0UL#$G$"$k(B. $B$3$3$G(B @code{poly} $B$O(B
@code{root} $B$r4^$s$G$$$F(B, @code{root} $B$rF~$lBX$($k>l9g$K$O(B @code{poly}
$B$KBP$7$F$bF1$8A`:n$r9T$&$b$N$H$9$k(B. $B$3$NA`:n$r(B, $B7k2L$NBh(B 2 $BMWAG$N(B
$B3F@.J,$KBP$7$F9T$C$F(B, $BA4$F$rB-$79g$o$;$?$b$N$,BP?tItJ,$H$J$k(B. 
\E
\BEG
In this example, indefinite integral of the rational function
 @code{x^6/(x^5+x+1)} is computed.
The result is a list which comprises two elements:
The first element is the rational part of the integral;
The second part is the logarithmic part of the integral.
The logarithmic part is again a list which comprises finite number of
elements, each of which is of form @code{[root*log(poly),defpoly]}.
This pair should be interpreted to sum up
the expression @code{root*log(poly)}
through all @b{root}'s @code{root}'s of the @code{defpoly}.
Here, @code{poly} contains @code{root}, and substitution for @code{root}
is equally applied to @code{poly}.
The logarithmic part in total is obtained by applying such
interpretation to all element pairs in the second element of the
result and then summing them up all.
\E
@item primdec
\BJP
$BB?9`<0%$%G%"%k$N=`AG%$%G%"%kJ,2r$H$=$N:,4p$NAG%$%G%"%kJ,2r(B
(@pxref{primadec primedec}).
\E
\BEG
Primary ideal decomposition of polynomial ideals and prime compotision
of radicals (@pxref{primadec primedec}).
\E
@end table

\BJP
@node $BF~NO%$%s%?%U%'!<%9(B,,, $BIUO?(B
@section $BF~NO%$%s%?%U%'!<%9(B
\E
\BEG
@node Input interfaces,,, Appendix
@section Input interfaces
\E

\BJP
$B4{$K=R$Y$?$h$&$K(B, DOS $BHG(B, Windows $BHG(B, Macintosh $BHG$G$OF~NO%$%s%?%U%'!<%9$H(B
$B$7$F%3%^%s%I%i%$%sJT=8$*$h$S%R%9%H%jCV$-49$($,AH$_9~$^$l$F$$$k(B. UNIX $BHG$G$O(B
$B$3$N$h$&$J5!G=$OAH$_9~$^$l$F$$$J$$$,(B, $B0J2<$G=R$Y$k$h$&$JF~NO%$%s%?%U%'!<%9(B
$B$,MQ0U$5$l$F$$$k(B. $B$3$l$i$O(B @b{Asir} $B%P%$%J%j$H$H$b$K(B ftp $B2DG=$G$"$k(B. 
ftp server $B$K4X$7$F$O(B @xref{$BF~<jJ}K!(B}.
\E
\BEG
As already mentioned a command line editing facility and a history
substitution facility are built-in for DOS, Windows Macintosh version
of @b{Asir}. UNIX versions of @b{Asir} do not have such built-in facilites.
Instead, the following input interfaces are prepared. This are also available
from our ftp server. As for our ftp server @xref{How to get Risa/Asir}.
\E

@menu
* fep::
* asir.el::
@end menu

\JP @node fep,,, $BF~NO%$%s%?%U%'!<%9(B
\EG @node fep,,, Input interfaces
@subsection fep

@noindent
\BJP
fep $B$H$O(B, SRA $B$N2NBe;a$K$h$j3+H/$5$l$?%3%^%s%I%i%$%sJT=8(B, $B%R%9%H%jCV$-49$((B
$BMQ$NF~NO%U%m%s%H%(%s%I$G$"$k(B. $B$3$N%W%m%0%i%`$N85$G(B @samp{asir} $B$r5/F0$9$k(B
$B$3$H$K$h$j(B vi $B$"$k$$$O(B emacs $BIw$N%3%^%s%I%i%$%sJT=8$*$h$S(B csh $BIw$N%R%9%H%j(B
$BCV$-49$($,2DG=$K$J$k(B. 
\E
\BEG
Fep is a general purpose front end processor. The author is
K. Utashiro (SRA Inc.).

Under fep,
emacs- or vi-like command line editing and csh-like history substitution are
available for UNIX commands, including @samp{asir}.
\E
@example
% fep asir
...
[0] fctr(x^5-1);
[[1,1],[x-1,1],[x^4+x^3+x^2+x+1,1]]
[1] !!                              /* !!+Return                      */
\BJP
fctr(x^5-1);                        /* $BD>A0$NF~NO$,8=$l$k$FJT=8$G$-$k(B */
...                                 /* $BJT=8(B+Return                    */
\E
\BEG
fctr(x^5-1);                        /* The last input appears.        */
...                                 /* Edit+Return                    */
\E
fctr(x^5+1);
[[1,1],[x+1,1],[x^4-x^3+x^2-x+1,1]]
@end example

@noindent
\BJP
fep $B$O%U%j!<%=%U%H$G%=!<%9$,F~<j2DG=$G$"$k$,(B, $B%*%j%8%J%k$N$b$N$O(B make $B$G$-$k(B
$B5!<o(B (OS) $B$,8B$i$l$F$$$k(B. $B$$$/$D$+$N5!<o>e$GF0:n$9$k$h$&$K2f!9$,2~B$$7$?$b$N(B
$B$,(B, ftp $B$GF~<j2DG=$G$"$k(B.
\E
\BEG
Fep is a free software and the source is available. However
machines or operating systems on which the original one can run are limited.
The modified version by us running on several unsupported environments
is available from our ftp server.
\E

\JP @node asir.el,,, $BF~NO%$%s%?%U%'!<%9(B
\EG @node asir.el,,, Input interfaces
@subsection asir.el

@noindent
\BJP
@samp{asir.el} $B$O(B, @b{Asir} $B$N(B GNU Emacs $B%$%s%?%U%'!<%9$G$"$k(B ($BCx<T$O(B
$B5\Eh8w<#;a(B (@code{YVE25250@@pcvan.or.jp}).  @samp{asir.el} $B$K$*$$$F$O(B, 
$BDL>o$N(B emacs $B$G2DG=$JJT=85!G=$NB>$K(B, $B%U%!%$%kL>(B, $B%3%^%s%IL>$N(B completion
$B$,<B8=$5$l$F$$$k(B. 
\E
\BEG
@samp{asir.el} is a GNU Emacs interface for @b{Asir}.
The author is Koji Miyajima (@code{YVE25250@@pcvan.or.jp}).
In @samp{asir.el}, completion of file names and command names is
realized other than the ordinary editing functions
which are available on Emacs.
\E

@noindent
\BJP
@samp{asir.el} $B$O(B PC-VAN $B$G(B
$B4{$K8x3+$5$l$F$$$k$,(B, $B:#2s$N2~D{$KH<$&JQ99$r9T$C$?$b$N$,(B, $B$d$O$j(B ftp $B$G(B
$BF~<j2DG=$G$"$k(B. 
\E
\BEG
@samp{asir.el} is distributed on PC-VAN. The version where several
changes have been made according to the current version of @b{Asir}
is available via ftp.
\E

@noindent
\JP $B%;%C%H%"%C%W(B, $B;HMQJ}K!$O(B, @samp{asir.el} $B$N@hF,$K5-=R$5$l$F$$$k(B. 
\BEG
The way of setting up and the usage can be found at the top of
@samp{asir.el}.
\E

\BJP
@node $BJQ99E@(B,,, $BIUO?(B
@section $BJQ99E@(B
\E
\BEG
@node Changes,,, Appendix
@section Appendix
\E

@menu
* Version 990831::
* Version 950831::
* Version 940420::
@end menu

\JP @node Version 990831,,, $BJQ99E@(B
\EG @node Version 990831,,, Changes
@subsection Version 990831

\BJP
4 $BG/$V$j$NBg2~D{(B. $B@0?t$N(B 32bit $B2=B>(B, $BCf?H$O$:$$$V$sJQ$o$C$F$$$k$b$N$N(B, 
$B8+3]$1$O$=$l$[$IJQ$o$C$F$$$k$h$&$K$O8+$($J$$(B. $B$`$7$m(B, Windows $BHG$J$I$O(B, 
plot $B$,;H$($J$$$?$a(B, $BB`2=$7$F$$$k(B. 

$B5lHG$N%f!<%6$,$b$C$H$bCm0U$9$Y$-E@$O(B, $B5lHG$G:n$C$?(B bsave file $B$rFI$_9~$`(B
$B>l9g$O(B @code{bload27} $B$r;H$&I,MW$,$"$k(B, $B$H$$$&E@$G$"$k(B. 
\E

\BEG
Four years have passed since the last distribution.
Though the look and feel seem unchanged, internally there are
several changes such as 32-bit representation of bignums.
Plotting facilities are not available on Windows.

If you have files created by @code{bsave} on the older version,
you have to use @code{bload27} to read such files.
\E

\JP @node Version 950831,,, $BJQ99E@(B
\EG @node Version 950831,,, Changes
@subsection Version 950831

@menu
\BJP
* $B%G%P%C%,(B($BJQ99(B)::
* $BAH$_9~$_H!?t(B($BJQ99(B)::
* $B%0%l%V%J4pDl(B($BJQ99(B)::
* $B$=$NB>(B($BJQ99(B)::
\E
\BEG
* Debugger(Changes)::
* Built-in functions(Changes)::
* Groebner basis computation(Changes)::
* Others(Changes)::
\E
@end menu

\BJP
@node $B%G%P%C%,(B($BJQ99(B),,, Version 950831
@subsubsection $B%G%P%C%,(B
\E
\BEG
@node Debugger(Changes),,, Version 950831
@subsubsection Debugger
\E

@itemize @bullet
@item
\JP $BG$0U$N;~E@$K%G%P%C%0%b!<%I$KF~$l$k(B.
\EG One can enter the debug mode anytime.
@item
\JP @code{finish} $B%3%^%s%I$NDI2C(B. 
\EG A command @code{finish} has been appended.
@item
\BJP
@code{up}, @code{down}, @code{frame} $B%3%^%s%I$K$h$k(B, $BG$0U$N%9%?%C%/%U%l!<%`(B
$B$N;2>H(B.
\E
\EG One can examine any stack frame with @code{up}, @code{down} and @code{frame}.
@item
\JP @code{trace} $B%3%^%s%I$NDI2C(B. 
\EG A command @code{trace} has been appended.
@end itemize

\BJP
@node $BAH$_9~$_H!?t(B($BJQ99(B),,, Version 950831
@subsubsection $BAH$_9~$_H!?t(B
\E
\BEG
@node Built-in functions(Changes),,, Version 950831
@subsubsection Built-in functions
\E

@itemize @bullet
\BJP
@item
@code{sdiv()} $B$J$I$K$*$1$k(B, $B<gJQ?t$N;XDj$N%5%]!<%H(B. 
@item
@code{sdivm()} $B$J$I(B, $BM-8BBN>e$G$NB?9`<0=|;;$NDI2C(B. 
@item
@code{det()}, @code{res()} $B$J$I$K$*$1$k(B, $BM-8BBN>e$G$N7W;;$N%5%]!<%H(B
@item
@code{vtol()} ($B%Y%/%H%k$+$i%j%9%H$X$NJQ49(B) $B$NDI2C(B. 
@item
@code{map()} $B$NDI2C(B. 
\E
\BEG
@item
One can specify a main variable for @code{sdiv()} etc.
@item
Functions for polynomial division over finite fields
such as @code{sdivm()} have been appended.
@item
@code{det()}, @code{res()} can produce results over finite fields.
@item
@code{vtol()}, conversion from a vector to a list has been appended.
@item
@code{map()} has been appended.
\E
@end itemize

\BJP
@node $B%0%l%V%J4pDl(B($BJQ99(B),,, Version 950831
@subsubsection $B%0%l%V%J4pDl(B
\E
\BEG
@node Groebner basis computation(Changes),,, Version 950831
@subsubsection Groebner basis computation
\E

@itemize @bullet
\BJP
@item
$B%0%l%V%J4pDl7W;;5!G=$NAH$_9~$_H!?t2=(B. 
@item
@code{grm()}, @code{hgrm()} $B$,(B @code{gr()}, @code{hgr()} $B$KJQ99(B. 
@item
@code{gr()}, @code{hgr()} $B$K$*$$$F(B, $B9`=g=x$N;XDj$,I,MW$K$J$C$?(B. 
@item
$B9`=g=x$N;XDjJ}K!$,3HD%$5$l$?(B. 
@item
$BM-8BBN>e$N%0%l%V%J4pDl7W;;$N%5%]!<%H(B. 
@item
$B4pDlJQ49$K$h$k<-=q<0=g=x%0%l%V%J4pDl7W;;$N%5%]!<%H(B. 
@item
$B$$$/$D$+$N?7$7$$AH$_9~$_H!?t$NDs6!(B. 
\E
\BEG
@item Functions for Groebner basis computation have been implemented
as built-in functions.
@item
@code{grm()} and @code{hgrm()} have been changed to @code{gr()} and
@code{hgr()} respectively.
@item
@code{gr()} and @code{hgr()} requires explicit specification of
an ordering type.
@item
Extension of specification of a term ordering type.
@item
Groebner basis computations over finite fields.
@item
Lex order Groebner basis computation via a modular change of ordering algorithm.
@item
Several new built-in functions.
\E
@end itemize

\BJP
@node $B$=$NB>(B($BJQ99(B),,, Version 950831
@subsubsection $B$=$NB>(B
\E
\BEG
@node Others(Changes),,, Version 950831
@subsubsection Others
\E

@itemize @bullet
\BJP
@item
$BJ,;67W;;MQ%D!<%k(B, $BH!?t$NDI2C(B.
@item
$BBe?tBN>e$N(B GCD $B7W;;$K$*$1$k%b%8%e%i7W;;$N1~MQ(B.
@item
$B%$%G%"%k$N=`AGJ,2r$N%5%]!<%H(B. 
@item
Windows $B$X$N0\?"(B.
\E
\BEG
@item
Implementation of tools for distributed computation.
@item
Application of modular computation for GCD computation over algebraic number
fields.
@item
Implementation of primary decompostion of ideals.
@item
Porting to Windows.
\E
@end itemize

\JP @node Version 940420,,, $BJQ99E@(B
\EG @node Version 940420,,, Changes
@subsection Version 940420

@noindent
\JP $B:G=i$N8x3+HG(B. 
\EG The first public verion.

\BJP
@node $BJ88%(B,,, $BIUO?(B
@section $BJ88%(B
\E
\BEG
@node References,,, Appendix
@section References
\E
@table @code
@item [Batut et al.]
Batut, C., Bernardi, D., Cohen, H., Olivier, M., "User's Guide to PARI-GP",
1993.
@item [Becker,Weispfenning] 
Becker, T., Weispfenning, V., "Groebner Bases", Graduate Texts in Math. 141,
Springer-Verlag, 1993.
@item [Boehm,Weiser] 
Boehm, H., Weiser, M., "Garbage Collection in an Uncooperative
Environment", Software Practice & Experience, September 1988, 807-820.
@item [Gebauer,Moeller] 
Gebauer, R., Moeller, H. M., "An installation of Buchberger's algorithm",
J. of Symbolic Computation 6, 275-286.
@item [Giovini et al.] 
Giovini, A., Mora, T., Niesi, G., Robbiano, L., Traverso, C., 
""One sugar cube, please" OR Selection strategies in the Buchberger algorithm",
Proc. ISSAC'91, 49-54.
@item [Noro,Takeshima] 
Noro, M., Takeshima, T., "Risa/Asir -- A Computer Algebra System",
Proc. ISSAC'92, 387-396.
@item [Noro,Yokoyama] 
Noro, M., Yokoyama, K., "A Modular Method to Compute the Rational Univariate
Representation of Zero-Dimensional Ideals", 
J. Symb. Comp. 28/1 (1999), 243-263.
@item [Shimoyama,Yokoyama]
Shimoyama, T., Yokoyama, K.,
"Localization and primary decomposition of polynomial ideals",
J. Symb. Comp. 22 (1996), 247-277.
@item [Shoup]
Shoup, V., "A new polynomial factorization algorithm and its implementation",
J. Symb. Comp. 20 (1995), 364-397.
@item [Traverso]
Traverso, C., "Groebner trace algorithms", Proc. ISSAC '88(LNCS 358), 125-138.
@item [Weber]
Weber, K., "The accelerated Integer GCD Algorithm", ACM TOMS, 21, 1(1995), 111-122.
@end table