Adaptive algorithms are now used widely for the numerical calculation of
multiple integrals.
These algorithms have been developed for a variety of integration regions,
including hyper-rectangles, spheres and simplicies. In this paper we describe
an algorithm for groups of integrals over a common n-dimensional
hyper-rectangular region.
The integrals
have the form
![]()
where
is an n-vector, and
is an s-vector of integrands.
The algorithm input is n,
,
, s,
,
an error tolerance tol and a limit
, on the
allowed number of evaluations of
.
The output is an s-vector of integral estimates
and an s-vector
of error estimates
. If possible, the algorithm computes
with
using at most
values of
.
The basic algorithm that we present is similar to a globally adaptive algorithm for single integrands first described by van Dooren and de Ridder [25], and improved by Genz and Malik [17], and Berntsen [2]. Implementations of the Genz and Malik modified algorithm have appeared in the NAG [1] library. Test results (Genz [15], Berntsen [3]) have shown that this algorithm may often be significantly more efficient than other algorithms for a variety of integrands when n is in the range 2-8, but the algorithm is sometimes unreliable. However, Berntsen [2, 5, 6] and Berntsen and Espelid [8] and Espelid [13] have shown how the use of problem specific rules and a more sophisticated error estimation method can increase the reliability of the original algorithm, and these ideas are incorporated into the new algorithm.
A second problem with the original algorithm is a serial organization that prevents its efficient implementation on parallel computers. Modifications to the algorithm structure at the subregion selection level that allow for good parallelization on a number of parallel computers have recently been described by Genz [16] and Berntsen [4]. By allowing for a vector integrand instead of a single integrand the performance pf the new algorithm may also be better for some large scale calculations where a large number of similar integrals, possibly differing only by the value(s) of some parameter(s), are needed over a common integration region. In this case it often happens that a significant part of the computation required for each integrand is the same for all of the integrands. These common calculations need be done only once for each integrand evaluation point, and it may often be possible to do the remaining calculations with some parallelism. Thus, the new algorithm allows for user controlled parallelism at the lowest level during the integrand evaluations and, also at the subregion level. An additional saving with the new algorithm may occur because all of the integral calculations use the same subdivision of the integration region, and so the work for finding a good subdivision is shared among all of the integral calculations.
For a vector of integrals, where the components vary continuously as functions of some parameter, the estimates produced by our algorithm will also vary continuously when the same subdivision is applied to all components. This will generally not be the case when different components are given separate treatment (see Lyness and Kaganove [20]).
In the next three sections we describe in detail the new algorithm
which incorporates
these improvements. In Section 2 the
adaptive subdivision strategy is described, including modifications that
facilitate parallelization at the subregion level and allow for
more than one integrand.
In Section 3 we describe several different
integration rules that can be selected for use with the algorithm, and
in Section 4 we describe the new error estimation method. A FORTRAN
implementation of the algorithm, called DCUHRE [10], was used for the test
results described in Section 5. Some concluding remarks are given in Section 6.