]> git.eshelyaron.com Git - emacs.git/commitdiff
(math-linear-subst-tried): New variable.
authorJay Belanger <jay.p.belanger@gmail.com>
Sun, 7 Nov 2004 23:33:29 +0000 (23:33 +0000)
committerJay Belanger <jay.p.belanger@gmail.com>
Sun, 7 Nov 2004 23:33:29 +0000 (23:33 +0000)
(math-do-integral):  Set `math-linear-subst-tried' to nil.

(math-do-integral-methods):  Use `math-linear-subst-tried' to
determine what type of substitution to try.

(math-integ-try-linear-substituion):  Set `math-linear-subst-tried' to
t.

lisp/calc/calcalg2.el

index 2a463009e58d9f57654e03f30b3bbf5d44c5402a..7e8484ea79fe3b8d4b0c08ae2a561eea0c4cb886 100644 (file)
                        (setcar (cdr cur-record) 'cancelled)))
               (math-replace-integral-parts (car expr)))))))
 
+(defvar math-linear-subst-tried t
+  "Non-nil means that a linear substitution has been tried.")
+
 (defun math-do-integral (expr)
-  (let (t1 t2)
+  (let ((math-linear-subst-tried nil)
+        t1 t2)
     (or (cond ((not (math-expr-contains expr math-integ-var))
               (math-mul expr math-integ-var))
              ((equal expr math-integ-var)
 
     ;; Integration by substitution, for various likely sub-expressions.
     ;; (In first pass, we look only for sub-exprs that are linear in X.)
-    (or (if math-enable-subst
+    (or (if math-linear-subst-tried
            (math-integ-try-substitutions expr)
          (math-integ-try-linear-substitutions expr))
 
 
 ;;; Look for substitutions of the form u = a x + b.
 (defun math-integ-try-linear-substitutions (sub-expr)
+  (setq math-linear-subst-tried t)
   (and (not (Math-primp sub-expr))
        (or (and (not (memq (car sub-expr) '(+ - * / neg)))
                (not (and (eq (car sub-expr) '^)