|
|
◆ deiint_r()
| void deiint_r |
( |
double |
eps, |
|
|
double * |
result, |
|
|
int * |
neval, |
|
|
int * |
info, |
|
|
double * |
xx, |
|
|
double |
yy, |
|
|
int * |
irev |
|
) |
| |
Infinite interval automatic quadrature (double exponential (DE) formula) (reverse communication version)
- Purpose
- This routine computes the integral of f(x) over [-∞, +∞], satisfying the requested accuracy. The integrand f(x) is computed and provided by the user in accordance with irev.
The result is obtained by the automatic integration applying the double exponential (DE) formula.
The double exponential (DE) formulas (see defint) for infinite interval [-∞, +∞] is obtained by using the following transformation function. φ(t) = sinh((π/2)sinh(t))
This formula is suitable for the slowly decaying functions.
- Parameters
-
| [in] | eps | Absolute accuracy requested.
max(|eps|, 1.0e-32) is used as the tolerance. |
| [out] | result | Approximation to integral of f(x) over [-inf, +inf]. |
| [out] | neval | Number of integrand evaluations. |
| [out] | info | = 0: Successful exit
= 1: Slow decay on negative side
= 2: Slow decay on positive side
= 3: Both of above
= 4: Insufficient mesh refinement |
| [out] | xx | irev = 1 to 5: xx contains the abscissa where the function value should be evaluated and given in the next call. |
| [in] | yy | irev = 1 to 5: The function value f(xx) should be given in yy in the next call. |
| [in,out] | irev | Control variable for reverse communication.
[in] Before first call, irev should be initialized to zero. On succeeding calls, irev should not be altered.
[out] If irev is not zero, complete the following tasks and call this routine again without changing irev.
= 0: Computation finished.
= 1 to 5: User should set the function value at xx in yy. Do not alter any variables other than yy. |
- Reference
- Masatake Mori "FORTRAN77 Numerical Calculation Programming (augmented edition)" Iwanami Shoten, 1987. (Japanese book)
|