Function: math-polynomial-p
math-polynomial-p is an autoloaded and byte-compiled function defined
in calc-alg.el.gz.
Signature
(math-polynomial-p EXPR VAR)
Source Code
;; Defined in /usr/src/emacs/lisp/calc/calc-alg.el.gz
;;; Check if expr is a polynomial in var; if so, return its degree.
(defun math-polynomial-p (expr var)
(cond ((equal expr var) 1)
((Math-primp expr) 0)
((memq (car expr) '(+ -))
(let ((p1 (math-polynomial-p (nth 1 expr) var))
p2)
(and p1 (setq p2 (math-polynomial-p (nth 2 expr) var))
(max p1 p2))))
((eq (car expr) '*)
(let ((p1 (math-polynomial-p (nth 1 expr) var))
p2)
(and p1 (setq p2 (math-polynomial-p (nth 2 expr) var))
(+ p1 p2))))
((eq (car expr) 'neg)
(math-polynomial-p (nth 1 expr) var))
((and (eq (car expr) '/)
(not (math-poly-depends (nth 2 expr) var)))
(math-polynomial-p (nth 1 expr) var))
((and (eq (car expr) '^)
(natnump (nth 2 expr)))
(let ((p1 (math-polynomial-p (nth 1 expr) var)))
(and p1 (* p1 (nth 2 expr)))))
((math-poly-depends expr var) nil)
(t 0)))