]> git.eshelyaron.com Git - emacs.git/commitdiff
(math-expand-term): Check for matrices instead of checking
authorJay Belanger <jay.p.belanger@gmail.com>
Fri, 7 Oct 2005 21:18:22 +0000 (21:18 +0000)
committerJay Belanger <jay.p.belanger@gmail.com>
Fri, 7 Oct 2005 21:18:22 +0000 (21:18 +0000)
calc-matrix-mode when deciding how to expand.

lisp/calc/calc-poly.el

index e27705de98aec679acc838a38ab4f190c8665d00..4714b2f7d389a360da5a630ef30ea7512ed5007a 100644 (file)
         (math-add-or-sub (list '/ (nth 1 (nth 1 expr)) (nth 2 expr))
                          (list '/ (nth 2 (nth 1 expr)) (nth 2 expr))
                          nil (eq (car (nth 1 expr)) '-)))
-        ((and (eq calc-matrix-mode 'matrix)
-              (eq (car-safe expr) '^)
-              (natnump (nth 2 expr))
-              (> (nth 2 expr) 1)
-              (memq (car-safe (nth 1 expr)) '(+ -)))
-         (if (= (nth 2 expr) 2)
-             (math-add-or-sub (list '* (nth 1 (nth 1 expr)) (nth 1 expr))
-                              (list '* (nth 2 (nth 1 expr)) (nth 1 expr))
-                              nil (eq (car (nth 1 expr)) '-))
-           (math-add-or-sub (list '* (nth 1 (nth 1 expr)) (list '^ (nth 1 expr) 
-                                                                (1- (nth 2 expr))))
-                            (list '* (nth 2 (nth 1 expr)) (list '^ (nth 1 expr) 
-                                                                (1- (nth 2 expr))))
-                            nil (eq (car (nth 1 expr)) '-))))
        ((and (eq (car-safe expr) '^)
              (memq (car-safe (nth 1 expr)) '(+ -))
              (integerp (nth 2 expr))
-              (if (and (eq calc-matrix-mode 'matrix)
-                       (> (nth 2 expr) 1))
+              (if (and 
+                   (or (math-known-matrixp (nth 1 (nth 1 expr)))
+                       (math-known-matrixp (nth 2 (nth 1 expr)))
+                       (and
+                        calc-matrix-mode
+                        (not (eq calc-matrix-mode 'scalar))
+                        (not (and (math-known-scalarp (nth 1 (nth 1 expr)))
+                                  (math-known-scalarp (nth 2 (nth 1 expr)))))))
+                   (> (nth 2 expr) 1))
                   (if (= (nth 2 expr) 2)
                       (math-add-or-sub (list '* (nth 1 (nth 1 expr)) (nth 1 expr))
                                        (list '* (nth 2 (nth 1 expr)) (nth 1 expr))