On 8/7/09, Raymond Toy <toy.raymond at gmail.com> wrote:
> I can confirm David's result. It appears to be something with the CVS
> version since others with earlier versions of maxima get the correct answer.
It appears to be due to this patch for src/limit.lisp (r1.72, 2009-06-06).
With this patch, I get a noun expression, without it,
I get k^2/(k^2 + kappa^2). (In either case, I get an asksign for
kappa but not for k.)
I guess limit is called from the integration code.
I don't know anything more about it.
FWIW
Robert Dodier
PS. Here is the log message.
----------------------------
revision 1.72
date: 2009/06/06 15:24:32; author: dgildea; state: Exp; lines: +2 -6
src/expintegral.lisp:
o throw errorsw when simplication routines called from limit
fixes limit(x*expintegral_ei(x),x,0) --> Error - ID: 2801821
src/limit.lisp:
o try-lhospital-quit: try lhospital with both combinations of num/den
tests/rtest16.mac:
o add limit(x*expintegral_ei(x),x,0) --> Error - ID: 2801821
----------------------------
PPS. Here is the patch.
Index: src/limit.lisp
===================================================================
RCS file: /cvsroot/maxima/maxima/src/limit.lisp,v
retrieving revision 1.71
retrieving revision 1.72
diff -u -r1.71 -r1.72
--- src/limit.lisp 5 Jun 2009 22:02:56 -0000 1.71
+++ src/limit.lisp 6 Jun 2009 15:24:32 -0000 1.72
@@ -1269,7 +1269,8 @@
(t ans))))
(defun try-lhospital-quit (n d ind)
- (let ((ans (lhospital-catch n d ind)))
+ (let ((ans (or (lhospital-catch n d ind)
+ (lhospital-catch (m^ d -1) (m^ n -1) ind))))
(cond ((null ans) (throw 'limit t))
((not (free-infp ans)) (simpinf ans))
((not (free-epsilonp ans)) (simpab ans))
@@ -1379,11 +1380,6 @@
t)
(t nil))))
((or (oscip num) (oscip denom)))
- ((or (polyinx num var ())
- (polyinx denom var ())))
- ((or (polyinx (m^ num -1) var ())
- (polyinx (m^ denom -1) var ()))
- (psetq num (m^ denom -1) denom (m^ num -1)))
((frac num)
(psetq num (m^ denom -1) denom (m^ num -1))))
(cons num denom))