Contents

Indexes:

Compute the integral of f(x) from a to b.

b

/

[

I f(x) dx

]

/

a

f - function subprogram defining the integrand

function f(x).

a - lower limit of integration

b - upper limit of integration

epsabs - absolute accuracy requested

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

RETURN

result - 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 integral and error are

less reliable. it is assumed that the

requested accuracy has not been achieved.

abserr - estimate of the modulus of the absolute error,

which should equal or exceed abs(i-result)

neval - 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 sub-

divisions 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 detec-

ted, 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 presumed 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 lenw.lt.limit*4.

result, abserr, neval, last are set to

zero.except when limit or lenw 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.

DIMENSIONING PARAMETERS

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

b

/

[

I f(x) dx

]

/

a

f - function subprogram defining the integrand

function f(x).

a - lower limit of integration

b - upper limit of integration

epsabs - absolute accuracy requested

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

RETURN

result - 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 integral and error are

less reliable. it is assumed that the

requested accuracy has not been achieved.

abserr - estimate of the modulus of the absolute error,

which should equal or exceed abs(i-result)

neval - 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 sub-

divisions 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 detec-

ted, 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 presumed 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 lenw.lt.limit*4.

result, abserr, neval, last are set to

zero.except when limit or lenw 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.

DIMENSIONING PARAMETERS

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