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)))))))))