# expint3: The Exponential Integral and Variants In VGAM: Vector Generalized Linear and Additive Models

## Description

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

## Usage

 ```1 2 3``` ```expint(x, deriv = 0) expexpint(x, deriv = 0) expint.E1(x, deriv = 0) ```

## Arguments

 `x` Numeric. Ideally a vector of positive reals. `deriv` Integer. Either 0, 1, 2 or 3.

## 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.

## Value

Function `expint(x, deriv = n)` returns the nth derivative of Ei(x) (up to the 3rd), function `expexpint(x, deriv = n)` returns the nth derivative of exp(-x) * Ei(x) (up to the 3rd), function `expint.E1(x, deriv = n)` returns the nth derivative of E_1(x) (up to the 3rd).

## Warning

These functions have not been tested thoroughly.

## Author(s)

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.

## References

`log`, `exp`. There is also a package called expint.
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18``` ``` ## Not run: 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") ## End(Not run) ```