diff options
| author | Jay Belanger | 2009-01-24 02:27:04 +0000 |
|---|---|---|
| committer | Jay Belanger | 2009-01-24 02:27:04 +0000 |
| commit | 18e50b48dbbdb0dfa5bb80bfcd7432d5aeaf180a (patch) | |
| tree | fa54a411987de7ccaec42f9c8db82d8ff0fe6861 | |
| parent | eec86b015fc70449cbcfbc988c26898ed90617e4 (diff) | |
| download | emacs-18e50b48dbbdb0dfa5bb80bfcd7432d5aeaf180a.tar.gz emacs-18e50b48dbbdb0dfa5bb80bfcd7432d5aeaf180a.zip | |
(calcFunc-apart): Improve test for rational functions.
| -rw-r--r-- | lisp/ChangeLog | 5 | ||||
| -rw-r--r-- | lisp/calc/calc-poly.el | 32 |
2 files changed, 22 insertions, 15 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 01e8e2dfdf2..5550a2ceb83 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2009-01-24 Jay Belanger <jay.p.belanger@gmail.com> | ||
| 2 | |||
| 3 | * calc/calc-poly.el (calcFunc-apart): Improve test for | ||
| 4 | rational functions. | ||
| 5 | |||
| 1 | 2009-01-23 Chong Yidong <cyd@stupidchicken.com> | 6 | 2009-01-23 Chong Yidong <cyd@stupidchicken.com> |
| 2 | 7 | ||
| 3 | * mail/rmailsum.el (rmail-summary-by-labels): Correctly handle | 8 | * mail/rmailsum.el (rmail-summary-by-labels): Correctly handle |
diff --git a/lisp/calc/calc-poly.el b/lisp/calc/calc-poly.el index 7385e42c851..2246df94414 100644 --- a/lisp/calc/calc-poly.el +++ b/lisp/calc/calc-poly.el | |||
| @@ -961,22 +961,24 @@ | |||
| 961 | ((eq (car expr) '-) | 961 | ((eq (car expr) '-) |
| 962 | (math-sub (calcFunc-apart (nth 1 expr) var) | 962 | (math-sub (calcFunc-apart (nth 1 expr) var) |
| 963 | (calcFunc-apart (nth 2 expr) var))) | 963 | (calcFunc-apart (nth 2 expr) var))) |
| 964 | ((not (math-ratpoly-p expr var)) | 964 | ((and var (not (math-ratpoly-p expr var))) |
| 965 | (math-reject-arg expr "Expected a rational function")) | 965 | (math-reject-arg expr "Expected a rational function")) |
| 966 | (t | 966 | (t |
| 967 | (let* ((calc-prefer-frac t) | 967 | (let* ((calc-prefer-frac t) |
| 968 | (rat (math-to-ratpoly expr)) | 968 | (rat (math-to-ratpoly expr)) |
| 969 | (num (car rat)) | 969 | (num (car rat)) |
| 970 | (den (cdr rat)) | 970 | (den (cdr rat))) |
| 971 | (qr (math-poly-div num den)) | 971 | (or var |
| 972 | (q (car qr)) | 972 | (setq var (math-polynomial-base den))) |
| 973 | (r (cdr qr))) | 973 | (if (not (math-ratpoly-p expr var)) |
| 974 | (or var | 974 | (math-reject-arg expr "Expected a rational function") |
| 975 | (setq var (math-polynomial-base den))) | 975 | (let* ((qr (math-poly-div num den)) |
| 976 | (math-add q (or (and var | 976 | (q (car qr)) |
| 977 | (math-expr-contains den var) | 977 | (r (cdr qr))) |
| 978 | (math-partial-fractions r den var)) | 978 | (math-add q (or (and var |
| 979 | (math-div r den))))))) | 979 | (math-expr-contains den var) |
| 980 | (math-partial-fractions r den var)) | ||
| 981 | (math-div r den))))))))) | ||
| 980 | 982 | ||
| 981 | 983 | ||
| 982 | (defun math-padded-polynomial (expr var deg) | 984 | (defun math-padded-polynomial (expr var deg) |