Hello Ray,
again thank you very much for your report.
The Exponential Integrals were a first work of me. Thus, I have seen there could
be done a lot much better. (Today I have implemented the noun, verb, alias and
reversealias property and improved the checks for the special values 0 and 1).
The value of expintegral_e(3,0.5) -> .2216043642751785 is definitly correct. I
have checked it again with the value from functions.wolfram.com.
When I transform the function to a representation in terms of expintegral_ei and
do the numerically calculation I can verify the result:
(%i36) ratsimp(expintegral_e(3,1/2));
(%o36) (sqrt(%e)*(2*log(2)+log(-1/2)-2*expintegral_ei(-1/2)-log(-2))+4)
/(16*sqrt(%e))
(%i37) %,numer;
(%o37) 0.22160436427518
With CMUL and ECL we get an additional complex term. I think I have to look to
the code to find all the places where we have explicit to declare the variables
to be a float or complex value.
One point is, that I have not written different real and complex routines for
double float precision. For GCL and CLISP this seems to be no problem. One
routine works fine for both cases.
I am working on the problem.
Dieter Kaiser
Von: raymond.toy at ericsson.com [mailto:raymond.toy at ericsson.com]
Anyway, I've updated the code once again (but didn't get your
rtest_expintegral.mac change today). I removed the binary directories
and rebuilt from scratch. Now the errors are different. Clisp passes
all the tests, as does gcl. CMUCL and Ecl fail quite a few.
I won't list them all. I think if I can understand one of the failures,
the rest will be obvious. So, one cmucl failure is rtest_expintegral
problem 43:
********************** Problem 43 ***************
Input:
ev(test_value(%, expintegral_e(3, 0.5), 15), numer)
Result:
.3926990816987241
With expintexpand:erf, we have ratsimp(expintegral_e(3,1/2)) ->
(sqrt(%e)*(2*log(2)+log(-1/2)-2*expintegral_ei(-1/2)-log(-2))+4)/(16*sqrt(%e));
Numerically evaluating, we get .2216043642751784 - .3926990816987241 %i.
But expintegral_e(3,0.5) -> .2216043642751785.
More investigation needed....
Ray