# Exponential Integrals

 Function Library Home Exponential Integrals

## Table of Available Exponential Integrals

### Exponential Integral

The exponential integral, Ei, is defined as defined as
Ei(x) = ∫-∞x ( e t / t ) dt.
Ei(x) is strictly negative for x < 0 and approaches 0 as x → -∞. The integral becomes negatively infinite at x = 0. For x > 0 the integral is evaluated using Cauchy's principle value:
Ei(x) = ∫-∞x ( e t / t ) dt = limε → 0+[ ∫-∞ ( e t / t ) dt + ∫ εx ( e t / t ) dt].
Ei(x) becomes postively infinite as x → ∞.

#### Function List

• double Exponential_Integral_Ei( double x )

This function returns Ei(x) for x ≠ 0 and if x = 0, -DBL_MAX is returned.

• long double xExponential_Integral_Ei( long double x )

This function is the same as Exponential_Integral_Ei except that the argument has type long double and returns a long double.

#### Source Code

C source code is available for these routines:
• The file, exponential_integral_Ei.c, contains the functions Exponential_Integral_Ei( ) and xExponential_Integral_Ei( ).

Dependencies: No external dependencies.

### Entire Exponential Integral

The entire exponential integral is defined as
Ein(x) = ∫-∞x ( 1 - e -t ) / t dt.
In terms of the exponential integral, Ei(x)
Ein(x) = γ + ln |x| - Ei(-x),
where γ is Euler's constant
γ = limn→∞[&Sigmam = 1 (1 / m) - ln n].
Ein(x) is strictly negative for x < 0, Ein(x) = 0 at x = 0, and strictly positive for x > 0.

#### Function List

• double Exponential_Integral_Ein( double x )

This function returns Ein(x).

#### Source Code

C source code is available for this routine:
• The file, exponential_integral_Ein.c, contains the function Exponential_Integral_Ein( ).

Dependencies: In addition to the file exponential_integral_Ein.c, the function Exponential_Integral_Ein( ) requires the following file:

### Schlömilch's Exponential Integrals

Schlömilch's exponential integral of order n, n a nonnegative integer, is defined as
En(x) = ∫1 ( e -xt / t n ) dt, where x > 0.
The Schlömilch's exponential integral of order 0 is readily integrated
E0(x) = ∫1 e -xt dt. = e -x / x.
The Schlömilch's exponential integral of order 1 is readily expressed in terms of the exponential integral Ei
E1(x) = ∫1 e -xt / t dt = -Ei(-x).
If x < 0, then the integrals diverge and if x = 0, then for n = 0 or 1, the integrals diverge and if n ≥ 2 , then the integral En(0) = 1 / (n - 1).

#### Function List

• double Exponential_Integral_En( double x, int n )

This function returns En(x) if x > 0. If x < 0, then DBL_MAX is returned. If x = 0, then if n = 0 or 1, then DBL_MAX is returned, otherwise for postive n ≥ 2 then 1 / (n - 1) is returned.
Note that the order n must be nonnegative.

#### Source Code

C source code is available for this routine:
• The file, exponential_integral_En.c, contains the function Exponential_Integral_En( ).

Dependencies: In addition to the file exponential_integral_En.c, the function Exponential_Integral_En( ) requires the following file:

### Alpha Exponential Integral of order n

The alpha exponential integral of order n is defined as
αn(x) = ∫1 tn e -xt dt
for n = 0,1,2,... and x > 0.

#### Function List

• double Exponential_Integral_Alpha_n( double x, int n )

This function returns αn(x) if x > 0 and returns DBL_MAX if x ≤ 0, where the order n is a nonnegative integer.

#### Source Code

C source code is available for this routine:

### Beta Exponential Integral of order n

The beta exponential integral of order n is defined as
βn(x) = ∫-11 tn e -xt dt
for n = 0,1,2,... and x ∈ R.

#### Function List

• double Exponential_Integral_Beta_n( double x, int n )

This function returns βn(x), where the order n is a nonnegative integer.

#### Source Code

C source code is available for this routine: