| version 1.7, 2003/04/20 08:01:28 |
version 1.11, 2009/03/24 08:00:50 |
|
|
| @comment $OpenXM: OpenXM/src/asir-doc/parts/builtin/array.texi,v 1.6 2003/04/19 15:44:58 noro Exp $ |
@comment $OpenXM: OpenXM/src/asir-doc/parts/builtin/array.texi,v 1.10 2005/02/10 04:59:21 noro Exp $ |
| \BJP |
\BJP |
| @node $BG[Ns(B,,, $BAH$_9~$_H!?t(B |
@node $BG[Ns(B,,, $BAH$_9~$_H!?t(B |
| @section $BG[Ns(B |
@section $BG[Ns(B |
|
|
| \E |
\E |
| |
|
| @menu |
@menu |
| * newvect:: |
* newvect vector vect:: |
| * newbytearray:: |
* ltov:: |
| * vtol:: |
* vtol:: |
| * newmat:: |
* newbytearray:: |
| |
* newmat matrix:: |
| * size:: |
* size:: |
| * det invmat:: |
* det nd_det invmat:: |
| |
|
| * qsort:: |
* qsort:: |
| @end menu |
@end menu |
| |
|
| \JP @node newvect,,, $BG[Ns(B |
\JP @node newvect vector vect,,, $BG[Ns(B |
| \EG @node newvect,,, Arrays |
\EG @node newvect vector vect,,, Arrays |
| @subsection @code{newvect} |
@subsection @code{newvect}, @code{vector}, @code{vect} |
| @findex newvect |
@findex newvect |
| |
@findex vector |
| |
@findex vect |
| |
|
| @table @t |
@table @t |
| @item newvect(@var{len}[,@var{list}]) |
@item newvect(@var{len}[,@var{list}]) |
| |
@item vector(@var{len}[,@var{list}]) |
| \JP :: $BD9$5(B @var{len} $B$N%Y%/%H%k$r@8@.$9$k(B. |
\JP :: $BD9$5(B @var{len} $B$N%Y%/%H%k$r@8@.$9$k(B. |
| \EG :: Creates a new vector object with its length @var{len}. |
\EG :: Creates a new vector object with its length @var{len}. |
| |
@item vect([@var{elements}]) |
| |
\JP :: @var{elements} $B$rMWAG$H$9$k%Y%/%H%k$r@8@.$9$k(B. |
| |
\EG :: Creates a new vector object by @var{elements}. |
| @end table |
@end table |
| |
|
| @table @var |
@table @var |
|
|
| @item list |
@item list |
| \JP $B%j%9%H(B |
\JP $B%j%9%H(B |
| \EG list |
\EG list |
| |
@item elements |
| |
\JP $BMWAG$NJB$S(B |
| |
\EG elements of the vector |
| @end table |
@end table |
| |
|
| @itemize @bullet |
@itemize @bullet |
| \BJP |
\BJP |
| @item |
@item |
| $BD9$5(B @var{len} $B$N%Y%/%H%k$r@8@.$9$k(B. $BBh(B 2 $B0z?t$,$J$$>l9g(B, |
@code{vect} $B$OMWAG$NJB$S$+$i%Y%/%H%k$r@8@.$9$k(B. |
| |
@item |
| |
@code{vector} $B$O(B @code{newvect} $B$NJLL>$G$"$k(B. |
| |
@item |
| |
@code{newvect} $B$OD9$5(B @var{len} $B$N%Y%/%H%k$r@8@.$9$k(B. $BBh(B 2 $B0z?t$,$J$$>l9g(B, |
| $B3F@.J,$O(B 0 $B$K=i4|2=$5$l$k(B. $BBh(B 2 $B0z?t$,$"$k>l9g(B, |
$B3F@.J,$O(B 0 $B$K=i4|2=$5$l$k(B. $BBh(B 2 $B0z?t$,$"$k>l9g(B, |
| $B%$%s%G%C%/%9$N>.$5$$@.J,$+$i(B, $B%j%9%H$N(B |
$B%$%s%G%C%/%9$N>.$5$$@.J,$+$i(B, $B%j%9%H$N(B |
| $B3FMWAG$K$h$j=i4|2=$5$l$k(B. $B3FMWAG$O(B, $B@hF,$+$i=g$K(B |
$B3FMWAG$K$h$j=i4|2=$5$l$k(B. $B3FMWAG$O(B, $B@hF,$+$i=g$K(B |
|
|
| $B$r=q$-49$($k$3$H$,$G$-$k(B. |
$B$r=q$-49$($k$3$H$,$G$-$k(B. |
| \E |
\E |
| \BEG |
\BEG |
| |
@item |
| |
@code{vect} creates a new vector object by its elements. |
| |
@item |
| |
@code{vector} is an alias of @code{newvect}. |
| @item |
@item |
| Creates a new vector object with its length @var{len} and its elements |
@code{newvect} creates a new vector object with its length @var{len} and its elements |
| all cleared to value 0. |
all cleared to value 0. |
| If the second argument, a list, is given, the vector is initialized by |
If the second argument, a list, is given, the vector is initialized by |
| the list elements. |
the list elements. |
| Line 135 separated simply by a `blank space', while those of a |
|
| Line 154 separated simply by a `blank space', while those of a |
|
| [5,6] |
[5,6] |
| [4] size(A); |
[4] size(A); |
| [5] |
[5] |
| [5] def afo(V) @{ V[0] = x; @} |
[5] length(A); |
| [6] afo(A)$ |
5 |
| [7] A; |
[6] vect(1,2,3,4,[5,6]); |
| |
[ 1 2 3 4 [5,6] ] |
| |
[7] def afo(V) @{ V[0] = x; @} |
| |
[8] afo(A)$ |
| |
[9] A; |
| [ x 2 3 4 [5,6] ] |
[ x 2 3 4 [5,6] ] |
| @end example |
@end example |
| |
|
| @table @t |
@table @t |
| \JP @item $B;2>H(B |
\JP @item $B;2>H(B |
| \EG @item References |
\EG @item References |
| @fref{newmat}, @fref{size}, @fref{vtol}. |
@fref{newmat}, @fref{size}, @fref{ltov}, @fref{vtol}. |
| @end table |
@end table |
| |
|
| |
\JP @node ltov,,, $BG[Ns(B |
| |
\EG @node ltov,,, Arrays |
| |
@subsection @code{ltov} |
| |
@findex ltov |
| |
|
| |
@table @t |
| |
@item ltov(@var{list}) |
| |
\JP :: $B%j%9%H$r%Y%/%H%k$KJQ49$9$k(B. |
| |
\EG :: Converts a list into a vector. |
| |
@end table |
| |
|
| |
@table @var |
| |
@item return |
| |
\JP $B%Y%/%H%k(B |
| |
\EG vector |
| |
@item list |
| |
\JP $B%j%9%H(B |
| |
\EG list |
| |
@end table |
| |
|
| |
@itemize @bullet |
| |
\BJP |
| |
@item |
| |
$B%j%9%H(B @var{list} $B$rF1$8D9$5$N%Y%/%H%k$KJQ49$9$k(B. |
| |
@item |
| |
$B$3$N4X?t$O(B @code{newvect(length(@var{list}), @var{list})} $B$KEy$7$$(B. |
| |
\E |
| |
\BEG |
| |
@item |
| |
Converts a list @var{list} into a vector of same length. |
| |
See also @code{newvect()}. |
| |
\E |
| |
@end itemize |
| |
|
| |
@example |
| |
[3] A=[1,2,3]; |
| |
[4] ltov(A); |
| |
[ 1 2 3 ] |
| |
@end example |
| |
|
| |
@table @t |
| |
\JP @item $B;2>H(B |
| |
\EG @item References |
| |
@fref{newvect}, @fref{vtol}. |
| |
@end table |
| |
|
| \JP @node vtol,,, $BG[Ns(B |
\JP @node vtol,,, $BG[Ns(B |
| \EG @node vtol,,, Arrays |
\EG @node vtol,,, Arrays |
| @subsection @code{vtol} |
@subsection @code{vtol} |
| Line 194 A conversion from a list to a vector is done by @code{ |
|
| Line 263 A conversion from a list to a vector is done by @code{ |
|
| @table @t |
@table @t |
| \JP @item $B;2>H(B |
\JP @item $B;2>H(B |
| \EG @item References |
\EG @item References |
| @fref{newvect}. |
@fref{newvect}, @fref{ltov}. |
| @end table |
@end table |
| |
|
| \JP @node newbytearray,,, $BG[Ns(B |
\JP @node newbytearray,,, $BG[Ns(B |
| Line 253 similar to that of @code{newvect}. |
|
| Line 322 similar to that of @code{newvect}. |
|
| @fref{newvect}. |
@fref{newvect}. |
| @end table |
@end table |
| |
|
| \JP @node newmat,,, $BG[Ns(B |
\JP @node newmat matrix,,, $BG[Ns(B |
| \EG @node newmat,,, Arrays |
\EG @node newmat matrix,,, Arrays |
| @subsection @code{newmat} |
@subsection @code{newmat}, @code{matrix} |
| @findex newmat |
@findex newmat |
| |
@findex matrix |
| |
|
| @table @t |
@table @t |
| @item newmat(@var{row},@var{col} [,[[@var{a},@var{b},...],[@var{c},@var{d},...],...]]) |
@item newmat(@var{row},@var{col} [,[[@var{a},@var{b},...],[@var{c},@var{d},...],...]]) |
| |
@item matrix(@var{row},@var{col} [,[[@var{a},@var{b},...],[@var{c},@var{d},...],...]]) |
| \JP :: @var{row} $B9T(B @var{col} $BNs$N9TNs$r@8@.$9$k(B. |
\JP :: @var{row} $B9T(B @var{col} $BNs$N9TNs$r@8@.$9$k(B. |
| \EG :: Creates a new matrix with @var{row} rows and @var{col} columns. |
\EG :: Creates a new matrix with @var{row} rows and @var{col} columns. |
| @end table |
@end table |
| Line 279 similar to that of @code{newvect}. |
|
| Line 350 similar to that of @code{newvect}. |
|
| @itemize @bullet |
@itemize @bullet |
| \BJP |
\BJP |
| @item |
@item |
| |
@code{matrix} $B$O(B @code{newmat} $B$NJLL>$G$"$k(B. |
| |
@item |
| @var{row} $B9T(B @var{col} $BNs$N9TNs$r@8@.$9$k(B. $BBh(B 3 $B0z?t$,$J$$>l9g(B, |
@var{row} $B9T(B @var{col} $BNs$N9TNs$r@8@.$9$k(B. $BBh(B 3 $B0z?t$,$J$$>l9g(B, |
| $B3F@.J,$O(B 0 $B$K=i4|2=$5$l$k(B. $BBh(B 3 $B0z?t$,$"$k>l9g(B, |
$B3F@.J,$O(B 0 $B$K=i4|2=$5$l$k(B. $BBh(B 3 $B0z?t$,$"$k>l9g(B, |
| $B%$%s%G%C%/%9$N>.$5$$@.J,$+$i(B, $B3F9T$,(B, $B%j%9%H$N(B |
$B%$%s%G%C%/%9$N>.$5$$@.J,$+$i(B, $B3F9T$,(B, $B%j%9%H$N(B |
| Line 295 similar to that of @code{newvect}. |
|
| Line 368 similar to that of @code{newvect}. |
|
| $B$r=q$-49$($k$3$H$,$G$-$k(B. |
$B$r=q$-49$($k$3$H$,$G$-$k(B. |
| \E |
\E |
| \BEG |
\BEG |
| |
@item |
| |
@code{matrix} is an alias of @code{newmat}. |
| @item |
@item |
| If the third argument, a list, is given, the newly created matrix |
If the third argument, a list, is given, the newly created matrix |
| is initialized so that each element of the list (again a list) |
is initialized so that each element of the list (again a list) |
| Line 337 return to toplevel |
|
| Line 412 return to toplevel |
|
| @table @t |
@table @t |
| \JP @item $B;2>H(B |
\JP @item $B;2>H(B |
| \EG @item References |
\EG @item References |
| @fref{newvect}, @fref{size}, @fref{det invmat}. |
@fref{newvect}, @fref{size}, @fref{det nd_det invmat}. |
| @end table |
@end table |
| |
|
| \JP @node size,,, $BG[Ns(B |
\JP @node size,,, $BG[Ns(B |
| Line 371 or a list containing row size and column size of the g |
|
| Line 446 or a list containing row size and column size of the g |
|
| @itemize @bullet |
@itemize @bullet |
| \BJP |
\BJP |
| @item |
@item |
| @var{vect} $BKt$O(B, @var{mat} $B$N%5%$%:$r%j%9%H$G=PNO$9$k(B. |
@var{vect} $B$ND9$5(B, $B$^$?$O(B @var{mat} $B$NBg$-$5$r%j%9%H$G=PNO$9$k(B. |
| @item |
@item |
| @var{list} $B$N%5%$%:$O(B @code{length()}$B$r(B, $BM-M}<0$K8=$l$kC19`<0$N?t$O(B @code{nmono()} $B$rMQ$$$k(B. |
@var{vect} $B$ND9$5$O(B @code{length()} $B$G5a$a$k$3$H$b$G$-$k(B. |
| |
@item |
| |
@var{list} $B$ND9$5$O(B @code{length()}$B$r(B, $BM-M}<0$K8=$l$kC19`<0$N?t$O(B @code{nmono()} $B$rMQ$$$k(B. |
| \E |
\E |
| \BEG |
\BEG |
| @item |
@item |
| Line 392 in a rational expression. |
|
| Line 469 in a rational expression. |
|
| [ 0 0 0 0 ] |
[ 0 0 0 0 ] |
| [1] size(A); |
[1] size(A); |
| [4] |
[4] |
| [2] B = newmat(2,3,[[1,2,3],[4,5,6]]); |
[2] length(A); |
| |
4 |
| |
[3] B = newmat(2,3,[[1,2,3],[4,5,6]]); |
| [ 1 2 3 ] |
[ 1 2 3 ] |
| [ 4 5 6 ] |
[ 4 5 6 ] |
| [3] size(B); |
[4] size(B); |
| [2,3] |
[2,3] |
| @end example |
@end example |
| |
|
| Line 405 in a rational expression. |
|
| Line 484 in a rational expression. |
|
| @fref{car cdr cons append reverse length}, @fref{nmono}. |
@fref{car cdr cons append reverse length}, @fref{nmono}. |
| @end table |
@end table |
| |
|
| \JP @node det invmat,,, $BG[Ns(B |
\JP @node det nd_det invmat,,, $BG[Ns(B |
| \EG @node det invmat,,, Arrays |
\EG @node det nd_det invmat,,, Arrays |
| @subsection @code{det},@code{invmat} |
@subsection @code{det}, @code{nd_det}, @code{invmat} |
| @findex det |
@findex det |
| |
@findex nd_det |
| @findex invmat |
@findex invmat |
| |
|
| @table @t |
@table @t |
| @item det(@var{mat}[,@var{mod}]) |
@item det(@var{mat}[,@var{mod}]) |
| |
@itemx nd_det(@var{mat}[,@var{mod}]) |
| \JP :: @var{mat} $B$N9TNs<0$r5a$a$k(B. |
\JP :: @var{mat} $B$N9TNs<0$r5a$a$k(B. |
| \EG :: Determinant of @var{mat}. |
\EG :: Determinant of @var{mat}. |
| @item invmat(@var{mat}) |
@item invmat(@var{mat}) |
| \JP :: @var{mat} $B$N9TNs<0$r5a$a$k(B. |
\JP :: @var{mat} $B$N5U9TNs$r5a$a$k(B. |
| \EG :: Inverse matrix of @var{mat}. |
\EG :: Inverse matrix of @var{mat}. |
| @end table |
@end table |
| |
|
| Line 435 in a rational expression. |
|
| Line 516 in a rational expression. |
|
| @itemize @bullet |
@itemize @bullet |
| \BJP |
\BJP |
| @item |
@item |
| @code{det} $B$O9TNs(B @var{mat} $B$N9TNs<0$r5a$a$k(B. |
@code{det} $B$*$h$S(B @code{nd_det} $B$O9TNs(B @var{mat} $B$N9TNs<0$r5a$a$k(B. |
| @code{invmat} $B$O9TNs(B @var{mat} $B$N5U9TNs$r5a$a$k(B. $B5U9TNs$O(B @code{[$BJ,Jl(B, $BJ,;R(B]} |
@code{invmat} $B$O9TNs(B @var{mat} $B$N5U9TNs$r5a$a$k(B. $B5U9TNs$O(B @code{[$BJ,Jl(B, $BJ,;R(B]} |
| $B$N7A$GJV$5$l(B, @code{$BJ,Jl(B}$B$,9TNs(B, @code{$BJ,Jl(B/$BJ,;R(B} $B$,5U9TNs$H$J$k(B. |
$B$N7A$GJV$5$l(B, @code{$BJ,Jl(B}$B$,9TNs(B, @code{$BJ,Jl(B/$BJ,;R(B} $B$,5U9TNs$H$J$k(B. |
| @item |
@item |
| Line 443 in a rational expression. |
|
| Line 524 in a rational expression. |
|
| @item |
@item |
| $BJ,?t$J$7$N%,%&%9>C5nK!$K$h$C$F$$$k$?$a(B, $BB?JQ?tB?9`<0$r@.J,$H$9$k(B |
$BJ,?t$J$7$N%,%&%9>C5nK!$K$h$C$F$$$k$?$a(B, $BB?JQ?tB?9`<0$r@.J,$H$9$k(B |
| $B9TNs$KBP$7$F$O>.9TNs<0E83+$K$h$kJ}K!$N$[$&$,8zN($,$h$$>l9g$b$"$k(B. |
$B9TNs$KBP$7$F$O>.9TNs<0E83+$K$h$kJ}K!$N$[$&$,8zN($,$h$$>l9g$b$"$k(B. |
| |
@item |
| |
@code{nd_det} $B$OM-M}?t$^$?$OM-8BBN>e$NB?9`<09TNs$N9TNs<0(B |
| |
$B7W;;@lMQ$G$"$k(B. $B%"%k%4%j%:%`$O$d$O$jJ,?t$J$7$N%,%&%9>C5nK!$@$,(B, |
| |
$B%G!<%?9=B$$*$h$S>h=|;;$N9)IW$K$h$j(B, $B0lHL$K(B @code{det} $B$h$j9bB.$K(B |
| |
$B7W;;$G$-$k(B. |
| \E |
\E |
| \BEG |
\BEG |
| @item |
@item |
| @code{det} computes the determinant of matrix @var{mat}. |
@code{det} and @code{nd_det} compute the determinant of matrix @var{mat}. |
| @code{invmat} computes the inverse matrix of matrix @var{mat}. |
@code{invmat} computes the inverse matrix of matrix @var{mat}. |
| @code{invmat} returns a list @code{[num,den]}, where @code{num} |
@code{invmat} returns a list @code{[num,den]}, where @code{num} |
| is a matrix and @code{num/den} represents the inverse matrix. |
is a matrix and @code{num/den} represents the inverse matrix. |
| Line 456 The computation is done over GF(@var{mod}) if @var{mod |
|
| Line 542 The computation is done over GF(@var{mod}) if @var{mod |
|
| The fraction free Gaussian algorithm is employed. For matrices with |
The fraction free Gaussian algorithm is employed. For matrices with |
| multi-variate polynomial entries, minor expansion algorithm sometimes |
multi-variate polynomial entries, minor expansion algorithm sometimes |
| is more efficient than the fraction free Gaussian algorithm. |
is more efficient than the fraction free Gaussian algorithm. |
| |
@item |
| |
@code{nd_det} can be used for computing the determinant of a matrix with |
| |
polynomial entries over the rationals or finite fields. The algorithm |
| |
is an improved vesion of the fraction free Gaussian algorithm |
| |
and it computes the determinant faster than @code{det}. |
| \E |
\E |
| @end itemize |
@end itemize |
| |
|