Maxima can't do this integral???



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))
>