Function: calcFunc-nrat
calcFunc-nrat is an autoloaded and byte-compiled function defined in
calc-poly.el.gz.
Signature
(calcFunc-nrat EXPR)
Source Code
;; Defined in /usr/src/emacs/lisp/calc/calc-poly.el.gz
;;; Merge all quotients and expand/simplify the numerator
(defun calcFunc-nrat (expr)
(if (math-any-floats expr)
(setq expr (calcFunc-pfrac expr)))
(if (or (math-vectorp expr)
(assq (car-safe expr) calc-tweak-eqn-table))
(cons (car expr) (mapcar 'calcFunc-nrat (cdr expr)))
(let* ((calc-prefer-frac t)
(res (math-to-ratpoly expr))
(num (math-simplify (math-sort-terms (calcFunc-expand (car res)))))
(den (math-simplify (math-sort-terms (calcFunc-expand (cdr res)))))
(g (math-poly-gcd num den)))
(or (eq g 1)
(let ((num2 (math-poly-div num g))
(den2 (math-poly-div den g)))
(and (eq (cdr num2) 0) (eq (cdr den2) 0)
(setq num (car num2) den (car den2)))))
(math-simplify (math-div num den)))))