Function: math-is-linear
math-is-linear is an autoloaded and byte-compiled function defined in
calc-alg.el.gz.
Signature
(math-is-linear EXPR &optional ALWAYS)
Source Code
;; Defined in /usr/src/emacs/lisp/calc/calc-alg.el.gz
(defun math-is-linear (expr &optional always)
(let ((offset nil)
(coef nil))
(if (eq (car-safe expr) '+)
(if (Math-objectp (nth 1 expr))
(setq offset (nth 1 expr)
expr (nth 2 expr))
(if (Math-objectp (nth 2 expr))
(setq offset (nth 2 expr)
expr (nth 1 expr))))
(if (eq (car-safe expr) '-)
(if (Math-objectp (nth 1 expr))
(setq offset (nth 1 expr)
expr (math-neg (nth 2 expr)))
(if (Math-objectp (nth 2 expr))
(setq offset (math-neg (nth 2 expr))
expr (nth 1 expr))))))
(setq coef (math-is-multiple expr always))
(if offset
(list offset (or (car coef) 1) (or (nth 1 coef) expr))
(if coef
(cons 0 coef)))))