From: Jay Belanger Date: Sun, 7 Nov 2004 23:33:29 +0000 (+0000) Subject: (math-linear-subst-tried): New variable. X-Git-Tag: ttn-vms-21-2-B4~4116 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=4710da05cb3e569a3701b06b83a16a63cc3ac24c;p=emacs.git (math-linear-subst-tried): New variable. (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. --- diff --git a/lisp/calc/calcalg2.el b/lisp/calc/calcalg2.el index 2a463009e58..7e8484ea79f 100644 --- a/lisp/calc/calcalg2.el +++ b/lisp/calc/calcalg2.el @@ -738,8 +738,12 @@ (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) @@ -977,7 +981,7 @@ ;; 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)) @@ -1189,6 +1193,7 @@ ;;; 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) '^)