From: Barton W. <wil...@us...> - 2008-03-07 13:08:32
|
Update of /cvsroot/maxima/maxima/share/linearalgebra In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv3610/share/linearalgebra Modified Files: linalg-extra.lisp Log Message: o New function krylov_matrix Index: linalg-extra.lisp =================================================================== RCS file: /cvsroot/maxima/maxima/share/linearalgebra/linalg-extra.lisp,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- linalg-extra.lisp 1 Mar 2008 04:07:00 -0000 1.12 +++ linalg-extra.lisp 7 Mar 2008 13:08:21 -0000 1.13 @@ -177,6 +177,18 @@ (simplify `(($matrix) ,@(reverse mat))))) +(defun $krylov_matrix (v mat &optional (n 'no-value)) + ($require_matrix mat '$second '$krylov_matrix) + (if (eq n 'no-value) (setq n ($first ($matrix_size mat)))) + ($require_posinteger n '$third '$krylov_matrix) + (let ((acc v)) + (decf n 1) + (dotimes (k n) + (setq v (ncmul mat v)) + (setq acc ($addcol acc v))) + acc)) + + |