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

Diff for /OpenXM/src/asir-doc/parts/builtin/array.texi between version 1.5 and 1.10

version 1.5, 2002/08/08 05:24:37 version 1.10, 2005/02/10 04:59:21
Line 1 
Line 1 
 @comment $OpenXM: OpenXM/src/asir-doc/parts/builtin/array.texi,v 1.4 2000/11/13 00:16:36 noro Exp $  @comment $OpenXM: OpenXM/src/asir-doc/parts/builtin/array.texi,v 1.9 2003/12/18 10:26:20 ohara 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
Line 10 
Line 10 
   
 @menu  @menu
 * newvect::  * newvect::
 * newbytearray::  * ltov::
 * vtol::  * vtol::
   * newbytearray::
 * newmat::  * newmat::
 * size::  * size::
 * det invmat::  * det nd_det invmat::
   
 * qsort::  * qsort::
 @end menu  @end menu
   
Line 144  separated simply by a `blank space', while those of a 
Line 146  separated simply by a `blank space', while those of a 
 @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 242  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 259  similar to that of @code{newvect}.
Line 307  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 316  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 385  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 419  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 442  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 457  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{invmat}
 @findex det  @findex 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 488  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 496  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  is more efficient than the fraction free Gaussian algo
Line 514  is more efficient than the fraction free Gaussian algo
 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
   
Line 471  is more efficient than the fraction free Gaussian algo
Line 534  is more efficient than the fraction free Gaussian algo
 [ 1 u u^2 u^3 u^4 ]  [ 1 u u^2 u^3 u^4 ]
 [ 1 v v^2 v^3 v^4 ]  [ 1 v v^2 v^3 v^4 ]
 [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+v,1],[-x+y,1]]  [-x+z,1],[-x+v,1],[-x+y,1]]
 [96] A = newmat(3,3)$  [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;  [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;  [98] A;

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.10

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