expintegral_ei() bug on convergence



2012/4/2 ???? <yasuaki.honda at gmail.com>

> Dear all,
>
> It seems that the Maxima function expintegral_ei() behaves unexpectedly for
> some complex arguments. (There should be some bugs in the implementation).
>
> Specifically, considering a line log(20.0)/2+%i*t on the complex plane and
> t gets
> increasing, such as t=30, 40, 50.
> the values can
> (%i22) expintegral_ei(log(20.0)/2+30*%i);
> (%o22) 3.116181583331404*%i-.1466880831183789
>
> (%i23) expintegral_ei(log(20.0)/2+40*%i);
> (%o23) 3.205076248461513*%i+.1490949857975915
>
> (%i24) expintegral_ei(log(20.0)/2+50*%i);
> (%o24) 1766.649087960532-1098.205534849491*%i
>
> So, (%o24) indicates that somewhere betwee log(20.0)/2+40*%i and
> log(20.0)/2+50*%i,
> there is a point where expintegral_ei() starts unstable ( not converge).
> This function,
> however, should converge for these values. (See below for the values
> obtained using
> mpmath in python).
>
> Thanks for reporting this.  It looks like it's really an issue with
expintegral_e.  Maxima compute expintegral_ei(z) using expintegral_e(1,-z),
and the expIntegral_e appears to have problems because it's using a
series.  I think if the continued fraction is used instead, the problem
goes away.

I'll look into it.

Ray