Function: math-integ-try-linear-substitutions
math-integ-try-linear-substitutions is a byte-compiled function
defined in calcalg2.el.gz.
Signature
(math-integ-try-linear-substitutions SUB-EXPR)
Source Code
;; Defined in /usr/src/emacs/lisp/calc/calcalg2.el.gz
;;; 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) '^)
(integerp (nth 2 sub-expr))))
(math-expr-contains sub-expr math-integ-var)
(let ((res nil))
(while (and (setq sub-expr (cdr sub-expr))
(or (not (math-linear-in (car sub-expr)
math-integ-var))
(assoc (car sub-expr) math-so-far)
(progn
(setq math-so-far (cons (list (car sub-expr))
math-so-far))
(not (setq res
(math-integrate-by-substitution
math-integ-expr (car sub-expr))))))))
res))
(let ((res nil))
(while (and (setq sub-expr (cdr sub-expr))
(not (setq res (math-integ-try-linear-substitutions
(car sub-expr))))))
res))))