Contents

Indexes:

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

b

/

[

I f(x) dx

]

/

a

f - double precision

function subprogam defining the integrand

function f(x). the actual name for f needs to be

a - double precision

lower limit of integration

b - double precision

upper limit of integration

epsabs - double precision

absolute accoracy 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.

key - integer

key for choice of local integration rule

a gauss-kronrod pair is used with

7 - 15 points if key.lt.2,

10 - 21 points if key = 2,

15 - 31 points if key = 3,

20 - 41 points if key = 4,

25 - 51 points if key = 5,

30 - 61 points if key.gt.5.

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.

RETURN

result - approximation to the integral

ier - 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 - 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

subdivisions by increasing the value of

limit (and taking the according dimension

adjustments into account). however, if

this yield no improvement it is advised

to analyze the integrand in order to

determine the integration difficulaties.

if the position of a local difficulty can

be determined (i.e.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.

= 3 extremely bad integrand behaviour occurs

at some points of the integration

interval.

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

b

/

[

I f(x) dx

]

/

a

f - double precision

function subprogam defining the integrand

function f(x). the actual name for f needs to be

a - double precision

lower limit of integration

b - double precision

upper limit of integration

epsabs - double precision

absolute accoracy 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.

key - integer

key for choice of local integration rule

a gauss-kronrod pair is used with

7 - 15 points if key.lt.2,

10 - 21 points if key = 2,

15 - 31 points if key = 3,

20 - 41 points if key = 4,

25 - 51 points if key = 5,

30 - 61 points if key.gt.5.

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.

RETURN

result - approximation to the integral

ier - 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 - 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

subdivisions by increasing the value of

limit (and taking the according dimension

adjustments into account). however, if

this yield no improvement it is advised

to analyze the integrand in order to

determine the integration difficulaties.

if the position of a local difficulty can

be determined (i.e.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.

= 3 extremely bad integrand behaviour occurs

at some points of the integration

interval.

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