## `Ei` -- the exponential integral function

#### Introduction

`Ei``(x)` represents the exponential integral int(exp(-x*t)/t, t=1..infinity).

#### Call(s)

`Ei(x)`

#### Parameters

`x` | - | an arithmetical expression

#### Returns

an arithmetical expression.

### Overloadable:

`x`

#### Side Effects

When called with a floating point argument, the function is sensitive to the environment variable `DIGITS` which determines the numerical working precision.

#### Related Functions

`Ci`, `exp`, `igamma`, `int`, `Si`

#### Details

- If `x` is a floating point number, then `Ei``(x)` returns the numerical value of the exponential integral. The special values Ei(infinity)=0 and Ei(-infinity)=-infinity are implemented. For all other arguments, `Ei` returns a symbolic function call.
- `Ei``(x)` is equivalent to `igamma``(0,x)` for real arguments `x>0`.
- The float attribute of `Ei` is a kernel function, i.e., floating point evaluation is fast.

#### Example 1

We demonstrate some calls with exact and symbolic input data:

    >> Ei(1), Ei(sqrt(2)), Ei(x + 1), Ei(infinity), Ei(-infinity)

                                1/2
                     Ei(1), Ei(2   ), Ei(x + 1), 0, -infinity

Floating point values are computed for floating point arguments:

    >> Ei(-1000.0), Ei(1.0), Ei(12.3), Ei(2.0 + 10.0*I)

          - 1.972045137e431 - 3.141592654 I, 0.2193839344,

             0.0000003439533949, 0.003675663008 + 0.01234609005 I

#### Example 2

`Ei` is singular at the origin:

    >> Ei(0)

          Error: singularity [Ei]

The negative real axis is a branch cut of `Ei`. A jump of height I*2*PI occurs when crossing this cut:

    >> Ei(-1.0), Ei(-1.0 + 10^(-10)*I), Ei(-1.0 - 10^(-10)*I)

          - 1.895117816 - 3.141592654 I, - 1.895117816 - 3.141592653 I,

             - 1.895117816 + 3.141592653 I

#### Example 3

The functions `diff`, `float`, `limit`, and `series` handle expressions involving `Ei`:

    >> diff(Ei(x), x, x, x), float(ln(3 + Ei(sqrt(PI))))

                    exp(-x)   2 exp(-x)   2 exp(-x)
                  - ------- - --------- - ---------, 1.120796995
                       x          2           3
                                 x           x

    >> limit(Ei(2*x^2/(1+x)), x = infinity)

                                         0

    >> series(Ei(x), x = 0, 3),
       series(Ei(x), x = infinity, 3),
       series(Ei(x), x = -infinity, 3)

                                   2
                                  x       3
          - (ln(x) + EULER) + x - -- + O(x ),
                                  4

             exp(-x)   exp(-x)    / exp(-x) \
             ------- - ------- + O| ------- |,
                x         2       |    3    |
                         x        \   x     /

             exp(-x)   exp(-x)    /   exp(-x) \
             ------- - ------- + O| - ------- |
                x         2       |      3    |
                         x        \     x     /

#### Background

- The function `Ei``(x)+ln(x)` is an entire function. `Ei` has a logarithmic singularity at the origin and a branch cut along the negative real axis. The values on the negative real axis coincide with the limit ``from above'':

      Ei(x)=limit(Ei(x+eps*I), eps=0, Right).

- `Ei``(x)` coincides with Ei(1,x) from the following family of functions:

      Ei(n,x) = int(exp(-x*t)/t^n, t=1..infinity).

  These functions are related to the incomplete gamma function `igamma` by Ei(n,x) = x^(n-1)*igamma(1-n, x). Note that float evaluation of `igamma` is presently implemented only for real x>0, whereas `Ei` can be evaluated for any complex x<>0.
- The special function ei(x)=int(exp(t)/t, t=-infinity..x) for real x (to be understood as a Cauchy Principal Value integral for x>0) is related to the implemented exponential integral `Ei` by ei(x) = -Re(Ei(-x)), i.e.:

      ei(x) = -Ei(-x) for x<0 and ei(x) = -Ei(-x) + I*PI for x>0.

- Reference: M. Abramowitz and I. Stegun, ``Handbook of Mathematical Functions'', Dover Publications Inc., New York (1965).

#### Changes

- used to be called `eint`

Do you have questions or comments?
Copyright © SciFace Software GmbH & Co. KG 2000