| version 1.4, 2000/11/13 00:16:36 | version 1.6, 2003/04/19 15:44:58 | 
|  |  | 
| @comment $OpenXM: OpenXM/src/asir-doc/parts/builtin/array.texi,v 1.3 2000/02/05 12:01:09 takayama Exp $ | @comment $OpenXM: OpenXM/src/asir-doc/parts/builtin/array.texi,v 1.5 2002/08/08 05:24:37 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 | 
|  |  | 
| * vtol:: | * vtol:: | 
| * newmat:: | * newmat:: | 
| * size:: | * size:: | 
| * det:: | * det invmat:: | 
| * qsort:: | * qsort:: | 
| @end menu | @end menu | 
|  |  | 
| 
| Line 259  similar to that of @code{newvect}. |  | 
| Line 259  similar to that of @code{newvect}. |  | 
| @findex newmat | @findex newmat | 
|  |  | 
| @table @t | @table @t | 
| @item newmat(@var{row},@var{col} [,@var{[[a,b,}...@var{],[c,d,}...@var{],}...@var{]}]) | @item newmat(@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 268  similar to that of @code{newvect}. |  | 
| Line 268  similar to that of @code{newvect}. |  | 
| @item return | @item return | 
| \JP $B9TNs(B | \JP $B9TNs(B | 
| \EG matrix | \EG matrix | 
| @item row,col | @item row col | 
| \JP $B<+A3?t(B | \JP $B<+A3?t(B | 
| \EG non-negative integer | \EG non-negative integer | 
| @item a,b,c,d | @item a b c d | 
| \JP $BG$0U(B | \JP $BG$0U(B | 
| \EG arbitrary | \EG arbitrary | 
| @end table | @end table | 
| 
| Line 337  return to toplevel |  | 
| Line 337  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}. | @fref{newvect}, @fref{size}, @fref{det invmat}. | 
| @end table | @end table | 
|  |  | 
| \JP @node size,,, $BG[Ns(B | \JP @node size,,, $BG[Ns(B | 
| 
| Line 405  in a rational expression. |  | 
| Line 405  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,,, $BG[Ns(B | \JP @node det invmat,,, $BG[Ns(B | 
| \EG @node det,,, Arrays | \EG @node det invmat,,, Arrays | 
| @subsection @code{det} | @subsection @code{det},@code{invmat} | 
| @findex det | @findex det | 
|  | @findex invmat | 
|  |  | 
| @table @t | @table @t | 
| @item det(@var{mat}[,@var{mod}]) | @item 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}) | 
|  | \JP :: @var{mat} $B$N9TNs<0$r5a$a$k(B. | 
|  | \EG :: Inverse matrix of @var{mat}. | 
| @end table | @end table | 
|  |  | 
| @table @var | @table @var | 
| @item return | @item return | 
| \JP $B<0(B | \JP @code{det}: $B<0(B, @code{invmat}: $B%j%9%H(B | 
| \EG expression | \EG @code{det}: expression, @code{invmat}: list | 
| @item mat | @item mat | 
| \JP $B9TNs(B | \JP $B9TNs(B | 
| \EG matrix | \EG matrix | 
| 
| Line 431  in a rational expression. |  | 
| Line 435  in a rational expression. |  | 
| @itemize @bullet | @itemize @bullet | 
| \BJP | \BJP | 
| @item | @item | 
| $B9TNs(B @var{mat} $B$N9TNs<0$r5a$a$k(B. | @code{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]} | 
|  | $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 | 
| $B0z?t(B @var{mod} $B$,$"$k;~(B, GF(@var{mod}) $B>e$G$N9TNs<0$r5a$a$k(B. | $B0z?t(B @var{mod} $B$,$"$k;~(B, GF(@var{mod}) $B>e$G$N9TNs<0$r5a$a$k(B. | 
| @item | @item | 
| 
| Line 440  in a rational expression. |  | 
| Line 446  in a rational expression. |  | 
| \E | \E | 
| \BEG | \BEG | 
| @item | @item | 
| Determinant of matrix @var{mat}. | @code{det} computes the determinant 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} | 
|  | is a matrix and @code{num/den} represents the inverse matrix. | 
| @item | @item | 
| The computation is done over GF(@var{mod}) if @var{mod} is specitied. | The computation is done over GF(@var{mod}) if @var{mod} is specitied. | 
| @item | @item | 
| 
| Line 464  is more efficient than the fraction free Gaussian algo |  | 
| Line 473  is more efficient than the fraction free Gaussian algo |  | 
| [95] fctr(det(A)); | [95] fctr(det(A)); | 
| [[1,1],[u-v,1],[-z+v,1],[-z+u,1],[-y+u,1],[y-v,1],[-y+z,1],[-x+u,1],[-x+z,1], | [[1,1],[u-v,1],[-z+v,1],[-z+u,1],[-y+u,1],[y-v,1],[-y+z,1],[-x+u,1],[-x+z,1], | 
| [-x+v,1],[-x+y,1]] | [-x+v,1],[-x+y,1]] | 
|  | [96] A = newmat(3,3)$ | 
|  | [97] for(I=0;I<3;I++)for(J=0,B=A[I],W=V[I];J<3;J++)B[J]=W^J; | 
|  | [98] A; | 
|  | [ 1 x x^2 ] | 
|  | [ 1 y y^2 ] | 
|  | [ 1 z z^2 ] | 
|  | [99] invmat(A); | 
|  | [[ -z*y^2+z^2*y z*x^2-z^2*x -y*x^2+y^2*x ] | 
|  | [ y^2-z^2 -x^2+z^2 x^2-y^2 ] | 
|  | [ -y+z x-z -x+y ],(-y+z)*x^2+(y^2-z^2)*x-z*y^2+z^2*y] | 
|  | [100] A*B[0]; | 
|  | [ (-y+z)*x^2+(y^2-z^2)*x-z*y^2+z^2*y 0 0 ] | 
|  | [ 0 (-y+z)*x^2+(y^2-z^2)*x-z*y^2+z^2*y 0 ] | 
|  | [ 0 0 (-y+z)*x^2+(y^2-z^2)*x-z*y^2+z^2*y ] | 
|  | [101] map(red,A*B[0]/B[1]); | 
|  | [ 1 0 0 ] | 
|  | [ 0 1 0 ] | 
|  | [ 0 0 1 ] | 
| @end example | @end example | 
|  |  | 
| @table @t | @table @t |