emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs/lisp/calc calc-poly.el


From: Jay Belanger
Subject: [Emacs-diffs] emacs/lisp/calc calc-poly.el
Date: Sat, 24 Jan 2009 02:24:42 +0000

CVSROOT:        /cvsroot/emacs
Module name:    emacs
Changes by:     Jay Belanger <jpb>      09/01/24 02:24:42

Modified files:
        lisp/calc      : calc-poly.el 

Log message:
        (calcFunc-apart): Improve test for rational functions.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/calc/calc-poly.el?cvsroot=emacs&r1=1.26&r2=1.27

Patches:
Index: calc-poly.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/calc/calc-poly.el,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -b -r1.26 -r1.27
--- calc-poly.el        5 Jan 2009 03:20:16 -0000       1.26
+++ calc-poly.el        24 Jan 2009 02:24:41 -0000      1.27
@@ -961,22 +961,24 @@
        ((eq (car expr) '-)
         (math-sub (calcFunc-apart (nth 1 expr) var)
                   (calcFunc-apart (nth 2 expr) var)))
-       ((not (math-ratpoly-p 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))
-               (qr (math-poly-div num den))
-               (q (car qr))
-               (r (cdr qr)))
+                (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)))))))
+                               (math-div r den)))))))))
 
 
 (defun math-padded-polynomial (expr var deg)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]