The EXPINT function returns the value of the exponential integral En(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.
Result = EXPINT( N, X [, /DOUBLE] [, EPS=value] [, ITER=variable] [, ITMAX=value] )
Returns the exponential integral En(x).
An integer specifying the order of En(x). N can be either a scalar or an array.
The value at which En(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 En(x) for each Ni and Xi. If either N or X is a scalar and the other an array, the scalar is paired with each array element in turn.
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.
Use this keyword to specify a number close to the desired relative error. The default value is 3.0 x 10-12.
Set this keyword equal to a named variable that will contain the actual number of iterations performed.
An input integer specifying the maximum allowed number of iterations. The default value is 100000.
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
To compute the value of the exponential integral at the following X values:
; Define the parametric X values: X = [1.00, 1.05, 1.27, 1.34, 1.38, 1.50] ; Compute the exponential integral of order 1: result = EXPINT(1, X) ; Print the result: PRINT, result
0.219384 0.201873 0.141911 0.127354 0.119803 0.100020
This is the exact solution vector to six-decimal accuracy.
ITER keyword added: 5.6