Exponential Integrals



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:

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:

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: