Contents

Indexes:

Compute the infinite integral of f(x):

b

/

[

I f(x) dx

]

/

a

where a and/or b may be infinite.

f - function subprogram defining the integrand

function f(x).

infinity - indicating the kind of integration range involved

:pos-infinity corresponds to (bound,+infinity),

:neg-infinity to (-infinity,bound),

:infinite 2 to (-infinity,+infinity).

bound - finite bound of integration range

(has no meaning if interval is doubly-infinite)

epsabs - double precision

absolute accuracy requested

epsrel - double precision

relative accuracy requested

if epsabs.le.0

and epsrel.lt.max(50*rel.mach.acc.,0.5d-28),

the routine will end with ier = 6.

limit - dimensioning parameter for iwork

limit determines the maximum number of subintervals

in the partition of the given integration interval

(a,b), limit.ge.1.

if limit.lt.1, the routine will end with ier = 6.

RETURN

result - double precision

approximation to the integral

ier - integer

ier = 0 normal and reliable termination of the

routine. it is assumed that the requested

accuracy has been achieved.

- ier.gt.0 abnormal termination of the routine. the

estimates for result and error are less

reliable. it is assumed that the requested

accuracy has not been achieved.

abserr - double precision

estimate of the modulus of the absolute error,

which should equal or exceed abs(i-result)

neval - integer

number of integrand evaluations

last - on return, last equals the number of

subintervals produced in the subdivision process,

which determines the significant number of

elements actually in the work arrays.

ERROR MESSAGES

ier = 1 maximum number of subdivisions allowed

has been achieved. one can allow more

subdivisions by increasing the value of

limit (and taking the according dimension

adjustments into account). however, if

this yields no improvement it is advised

to analyze the integrand in order to

determine the integration difficulties. if

the position of a local difficulty can be

determined (e.g. singularity,

discontinuity within the interval) one

will probably gain from splitting up the

interval at this point and calling the

integrator on the subranges. if possible,

an appropriate special-purpose integrator

should be used, which is designed for

handling the type of difficulty involved.

= 2 the occurrence of roundoff error is

detected, which prevents the requested

tolerance from being achieved.

the error may be under-estimated.

= 3 extremely bad integrand behaviour occurs

at some points of the integration

interval.

= 4 the algorithm does not converge.

roundoff error is detected in the

extrapolation table.

it is assumed that the requested tolerance

cannot be achieved, and that the returned

result is the best which can be obtained.

= 5 the integral is probably divergent, or

slowly convergent. it must be noted that

divergence can occur with any other value

of ier.

= 6 the input is invalid, because

(epsabs.le.0 and

epsrel.lt.max(50*rel.mach.acc.,0.5d-28))

or limit.lt.1 or leniw.lt.limit*4.

result, abserr, neval, last are set to

zero. exept when limit or leniw is

invalid, iwork(1), work(limit*2+1) and

work(limit*3+1) are set to zero, work(1)

is set to a and work(limit+1) to b.

b

/

[

I f(x) dx

]

/

a

where a and/or b may be infinite.

f - function subprogram defining the integrand

function f(x).

infinity - indicating the kind of integration range involved

:pos-infinity corresponds to (bound,+infinity),

:neg-infinity to (-infinity,bound),

:infinite 2 to (-infinity,+infinity).

bound - finite bound of integration range

(has no meaning if interval is doubly-infinite)

epsabs - double precision

absolute accuracy requested

epsrel - double precision

relative accuracy requested

if epsabs.le.0

and epsrel.lt.max(50*rel.mach.acc.,0.5d-28),

the routine will end with ier = 6.

limit - dimensioning parameter for iwork

limit determines the maximum number of subintervals

in the partition of the given integration interval

(a,b), limit.ge.1.

if limit.lt.1, the routine will end with ier = 6.

RETURN

result - double precision

approximation to the integral

ier - integer

ier = 0 normal and reliable termination of the

routine. it is assumed that the requested

accuracy has been achieved.

- ier.gt.0 abnormal termination of the routine. the

estimates for result and error are less

reliable. it is assumed that the requested

accuracy has not been achieved.

abserr - double precision

estimate of the modulus of the absolute error,

which should equal or exceed abs(i-result)

neval - integer

number of integrand evaluations

last - on return, last equals the number of

subintervals produced in the subdivision process,

which determines the significant number of

elements actually in the work arrays.

ERROR MESSAGES

ier = 1 maximum number of subdivisions allowed

has been achieved. one can allow more

subdivisions by increasing the value of

limit (and taking the according dimension

adjustments into account). however, if

this yields no improvement it is advised

to analyze the integrand in order to

determine the integration difficulties. if

the position of a local difficulty can be

determined (e.g. singularity,

discontinuity within the interval) one

will probably gain from splitting up the

interval at this point and calling the

integrator on the subranges. if possible,

an appropriate special-purpose integrator

should be used, which is designed for

handling the type of difficulty involved.

= 2 the occurrence of roundoff error is

detected, which prevents the requested

tolerance from being achieved.

the error may be under-estimated.

= 3 extremely bad integrand behaviour occurs

at some points of the integration

interval.

= 4 the algorithm does not converge.

roundoff error is detected in the

extrapolation table.

it is assumed that the requested tolerance

cannot be achieved, and that the returned

result is the best which can be obtained.

= 5 the integral is probably divergent, or

slowly convergent. it must be noted that

divergence can occur with any other value

of ier.

= 6 the input is invalid, because

(epsabs.le.0 and

epsrel.lt.max(50*rel.mach.acc.,0.5d-28))

or limit.lt.1 or leniw.lt.limit*4.

result, abserr, neval, last are set to

zero. exept when limit or leniw is

invalid, iwork(1), work(limit*2+1) and

work(limit*3+1) are set to zero, work(1)

is set to a and work(limit+1) to b.