##
EXPINT

The EXPINT function returns the value of the exponential integral E_{n}(*x*).

EXPINT is based on the routine `expint`

described in section 6.3 of *Numerical Recipes in C: The Art of Scientific Computing* (Second Edition), published by Cambridge University Press, and is used by permission.

###
Syntax

*Result* = EXPINT( *N*, *X* [, /DOUBLE] [, EPS=*value*] [, ITER=*variable*] [, ITMAX=*value*] )

###
Return Value

Returns the exponential integral E_{n}(*x*).

###
Arguments

####
N

An integer specifying the order of E_{n}(*x*). *N* can be either a scalar or an array.

####
X

The value at which E_{n}(*x*) is evaluated. *X* can be either a scalar or an array.

Note: If an array is specified for both *N* and *X*, then EXPINT evaluates E_{n}(*x*) for each *N*_{i} and *X*_{i}. If either *N* or *X* is a scalar and the other an array, the scalar is paired with each array element in turn.

###
Keywords

####
DOUBLE

Set this keyword to force the computation to be done in double-precision arithmetic. Set this keyword to zero to return a single-precision result.

All internal computations are done using double-precision arithmetic.

####
EPS

Use this keyword to specify a number close to the desired relative error. The default value is 3.0 x 10^{-12}.

####
ITER

Set this keyword equal to a named variable that will contain the actual number of iterations performed.

####
ITMAX

An input integer specifying the maximum allowed number of iterations. The default value is 100000.

####
Thread Pool Keywords

This routine is written to make use of IDL's *thread pool*, which can increase execution speed on systems with multiple CPUs. The values stored in the !CPU system variable control whether IDL uses the thread pool for a given computation. In addition, you can use the thread pool keywords TPOOL_MAX_ELTS, TPOOL_MIN_ELTS, and TPOOL_NOTHREAD to override the defaults established by !CPU for a single invocation of this routine. See Thread Pool Keywords for details.

###
Examples

To compute the value of the exponential integral at the following X values:

IDL prints:

This is the exact solution vector to six-decimal accuracy.

###
Version History

Introduced: 4.0

ITER keyword added: 5.6

###
See Also

ERF