Matrix-exponentiation operator: Difference between revisions

Content added Content deleted
No edit summary
(→‎{{header|Scheme}}: Fixed scheme implementation)
Line 1,918: Line 1,918:
(define (matrix-expo mat exp)
(define (matrix-expo mat exp)
(cond ((= exp 1) mat)
(cond ((= exp 1) mat)
((even? exp) (square-matrix (matrix-expo mat (halve exp))))
((even? exp) (square-matrix (matrix-expo mat (/ exp 2))))
(else (multiply-matrix mat (matrix-expo mat (dec exp))))))
(else (multiply-matrix mat (matrix-expo mat (- exp 1))))))
</lang>
</lang>