changeset 66770:2a1202853ff4

(math-pow-fancy): Further expand product of square matrices. (math-check-known-square-matrixp): Do a more extensive check for square matrices.
author Jay Belanger <jay.p.belanger@gmail.com>
date Wed, 09 Nov 2005 19:27:29 +0000
parents c57e0cf19ef5
children 19d0e5968971
files lisp/calc/calc-arith.el
diffstat 1 files changed, 9 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/calc/calc-arith.el	Wed Nov 09 10:45:07 2005 +0000
+++ b/lisp/calc/calc-arith.el	Wed Nov 09 19:27:29 2005 +0000
@@ -374,6 +374,13 @@
          t)
         ((eq (car-safe a) '^)
          (math-check-known-square-matrixp (nth 1 a)))
+        ((or
+          (eq (car-safe a) '*)
+          (eq (car-safe a) '+)
+          (eq (car-safe a) '-))
+         (and
+          (math-check-known-square-matrixp (nth 1 a))
+          (math-check-known-square-matrixp (nth 2 a))))
         (t
          (let ((decl (if (eq (car a) 'var)
                          (or (assq (nth 2 a) math-decls-cache)
@@ -1960,7 +1967,8 @@
                   (if (and (= b -1)
                            (math-known-square-matrixp (nth 1 a))
                            (math-known-square-matrixp (nth 2 a)))
-                      (list '* (list '^ (nth 2 a) -1) (list '^ (nth 1 a) -1))
+                      (math-mul (math-pow-fancy (nth 2 a) -1) 
+                                (math-pow-fancy (nth 1 a) -1))
                     (list '^ a b)))
 		 ((and (eq (car-safe a) '*)
 		       (or (math-known-num-integerp b)