Function: calcFunc-apart
calcFunc-apart is an autoloaded and byte-compiled function defined in
calc-poly.el.gz.
Signature
(calcFunc-apart EXPR &optional VAR)
Source Code
;; Defined in /usr/src/emacs/lisp/calc/calc-poly.el.gz
(defun calcFunc-apart (expr &optional var)
(cond ((Math-primp expr) expr)
((eq (car expr) '+)
(math-add (calcFunc-apart (nth 1 expr) var)
(calcFunc-apart (nth 2 expr) var)))
((eq (car expr) '-)
(math-sub (calcFunc-apart (nth 1 expr) var)
(calcFunc-apart (nth 2 expr) var)))
((and var (not (math-ratpoly-p expr var)))
(math-reject-arg expr "Expected a rational function"))
(t
(let* ((calc-prefer-frac t)
(rat (math-to-ratpoly expr))
(num (car rat))
(den (cdr rat)))
(or var
(setq var (math-polynomial-base den)))
(if (not (math-ratpoly-p expr var))
(math-reject-arg expr "Expected a rational function")
(let* ((qr (math-poly-div num den))
(q (car qr))
(r (cdr qr)))
(math-add q (or (and var
(math-expr-contains den var)
(math-partial-fractions r den var))
(math-div r den)))))))))