Exponential Integrals



Before I continue the work on $specint I would like to wait to get some response
to be sure the changes and extensions will work and are accepted.

Meanwhile I have implemented some routines for the Exponential Integrals as
simplifying functions. The only function I have found in Maxima is $expint which
can return numerical values for the Exponential integral E1 using the routine
slatec:de1.

I would like to suggest the following Maxima User functions:

expintegral_e (n z) - Exponential Integral En

expintegral_e1 (z)  - Exponential Integral E1
expintegral_ei (z)  - Exponential Integral Ei
logintegral_li (z)  - Logarithmic Integral Li

expintegral_si (z)  - Exponential Integral Si
expintegral_ci (z)  - Exponential Integral Ci

expintegral_shi (z) - Exponential Integral Shi
expintegral_chi (z) - Exponential Integral Chi

Perhaps better (shorter) names would be expint_e, expint_e1, ...

Because slatec has only a routine for the Exponential Integral E1 for a real
argument (the routine slatec:dei calls slatec:de1), I have started to implement
further numerical routines. I use the series expansion and the expansion in
continued fractions for the algorithm.

I have finished a numerical routine for the Exponential Integral En with
positive integer order and complex arg and a routine to calculate the numerical
values of the Exponential Integrals Si and Ci for real argument.

I test the numerical routines against the tables 5.1 to 5.6 of A&S which gives a
lot of numerical data with a precision of about 10 digits. I have scanned the
tables and build up test files with the data. The numerical routines reproduce
the data of A&S perfectly.

Because all Exponential Integrals can be represented as a Incomplete Gamma
function for which $specint has an algorithm to get the Laplace transform, we
might extend $specint to integrate the Exponential Integrals too.

Is the suggested extension of Exponential Integrals of interest for the project?

Dieter Kaiser