m^n binary exponentiation of matrices

db4
prunedtree 2009-06-04 20:42:29 -07:00
parent b73716d8cb
commit 1c89045f0e
1 changed files with 8 additions and 3 deletions

9
basis/math/matrices/matrices.factor Executable file → Normal file
View File

@ -1,7 +1,7 @@
! Copyright (C) 2005, 2009 Slava Pestov. ! Copyright (C) 2005, 2009 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: arrays kernel math math.order math.vectors USING: accessors arrays columns kernel math math.bits
sequences sequences.private accessors columns ; math.order math.vectors sequences sequences.private ;
IN: math.matrices IN: math.matrices
! Matrices ! Matrices
@ -61,3 +61,8 @@ PRIVATE>
: cross-zip ( seq1 seq2 -- seq1xseq2 ) : cross-zip ( seq1 seq2 -- seq1xseq2 )
[ [ 2array ] with map ] curry map ; [ [ 2array ] with map ] curry map ;
: m^n ( m n -- n )
make-bits over first length identity-matrix
[ [ dupd m. ] when [ dup m. ] dip ] reduce nip ;