Learn R Programming

VGAM (version 1.1-11)

expint: The Exponential Integral and Variants

Description

Computes the exponential integral \(Ei(x)\) for real values, as well as \(\exp(-x) \times Ei(x)\) and \(E_1(x)\) and their derivatives (up to the 3rd derivative).

Usage

expint(x, deriv = 0)
expexpint(x, deriv = 0)
expint.E1(x, deriv = 0)

Value

Function expint(x, deriv = n) returns the

\(n\)th derivative of \(Ei(x)\) (up to the 3rd), function expexpint(x, deriv = n) returns the

\(n\)th derivative of

\(\exp(-x) \times Ei(x)\) (up to the 3rd), function expint.E1(x, deriv = n) returns the \(n\)th derivative of \(E_1(x)\) (up to the 3rd).

Arguments

x

Numeric. Ideally a vector of positive reals.

deriv

Integer. Either 0, 1, 2 or 3.

Author

T. W. Yee has simply written a small wrapper function to call the NETLIB FORTRAN code. Xiangjie Xue modified the functions to calculate derivatives. Higher derivatives can actually be calculated---please let me know if you need it.

Warning

These functions have not been tested thoroughly.

Details

The exponential integral \(Ei(x)\) function is the integral of \(\exp(t) / t\) from 0 to \(x\), for positive real \(x\). The function \(E_1(x)\) is the integral of \(\exp(-t) / t\) from \(x\) to infinity, for positive real \(x\).

References

https://netlib.org/specfun/ei.

See Also

log, exp. There is also a package called expint.

Examples

Run this code
 if (FALSE) {
par(mfrow = c(2, 2))
curve(expint, 0.01, 2, xlim = c(0, 2), ylim = c(-3, 5),
      las = 1, col = "orange")
abline(v = (-3):5, h = (-4):5, lwd = 2, lty = "dotted", col = "gray")
abline(h = 0, v = 0, lty = "dashed", col = "blue")

curve(expexpint, 0.01, 2, xlim = c(0, 2), ylim = c(-3, 2),
      las = 1, col = "orange")
abline(v = (-3):2, h = (-4):5, lwd = 2, lty = "dotted", col = "gray")
abline(h = 0, v = 0, lty = "dashed", col = "blue")

curve(expint.E1, 0.01, 2, xlim = c(0, 2), ylim = c(0, 5),
      las = 1, col = "orange")
abline(v = (-3):2, h = (-4):5, lwd = 2, lty = "dotted", col = "gray")
abline(h = 0, v = 0, lty = "dashed", col = "blue")
}

Run the code above in your browser using DataLab