Hi Robert,
Reverting the patch in the current CVS (something I had to do manually
for some reason) "fixes" the problem.
Thanks
David
On Sun, 2009-08-09 at 10:31 -0600, Robert Dodier wrote:
> 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))
>