The FORTRAN implementation of the algorithm, DCUHRE, has been tested for efficiency and reliability, using the testing technique described in [20]. The testing technique is based on the use of a selection of test families of integrands. Each integrand in a test family has a particular feature ( a peak, for example), some random parameters (the location of the peak) and a difficulty parameter (the sharpness of the peak). In each experiment the difficulty parameter is fixed, and the random parameters are varied, and we let the integration routine approximate the integral for each set of random parameters. In the technical report [9] we report on how DCUHRE (original name ADMINT) performs on 8 different test families for different dimensions. In that report we also give comparative test results for the routines ADAPT[17] and KROBOV (see Cranley and Patterson [11] and [15]). The tests were done with 2,3,4,5,6,7,8,10,12 and 15 dimensional integrals and took approximately 260 hours of CPU on an Alliant FX/8 (one processor).
We have selected some 2 dimensional test results of DCUHRE and ADAPT from that
report, which we give here. For these results, the test integrand families
were:

The parameters
and
are picked randomly from [0,1].
and
are first picked randomly from [0,1]
and then scaled according to
![]()
In the experiments reported here we have chosen
The region of integration for all test families is the unit square
.
MAXVLS, the maximum allowed number of integrand evaluations, was set equal
to 200,000 in all experiments.
For each test family the test results are based on 200 samples of the random
variables.
In the figures 1, 2 and 3 we plot the test results for test family 1.
In each of these three figures we plot the requested error, for values
and
, against the average
numbers of function evaluations (Fig. 1), the average numbers of correct digits
in the computed approximations of the integrals (Fig. 2)
and the number of failures out of 200 (Fig. 3). A failure is a case where
the code reports success and but
the actual error is greater than the requested error.
In the figures 4 and 5 we present similar plots for test family 2. For test family 2 no failures were reported for any of the sampled functions and the different codes.
We plot the results for ADAPT and all three possible 2-dimensional choices
of DCUHRE, where
the number behind DCUHRE in the plots indicates which of the available
2-dimensional integration rules that has been applied.
DCUHRE-1 uses the degree 13 rule, DCUHRE-3 the degree 9 rule
and DCUHRE-4 the degree 7 rule.
Figure 1. Average numbers of function evaluations for test family 1 ( Product peak).
Figure 2. Average numbers of correct digits for test family 1 ( Product peak).
Figure 3. Numbers of failures out of 200 samples for test family 1 (
Product peak).
Figure 4. Average numbers of function evaluations for test family
2 ( Oscillatory).
Figure 5. Average numbers of correct digits for test family 2
( Oscillatory).
Note that for none of these 2000 sampled functions did any of the codes report
an unsuccessful run.
The results for test family 1 show the improved reliability (Fig. 3) of DCUHRE
compared
to ADAPT. From Figure 1 it is also clear that we have to pay
for this improved reliability and the relative increase in cost is greatest
in those cases where it is most important, namely, when we want only a few digits of accuracy.
The results for test family 2 show that in cases where ADAPT is reliable enough, there may not be an additional cost, or the additional cost may be very small, by introducing the error estimating procedures described in section 4. We also see in Figure 4 that on oscillatory problems there may be a substantial gain in efficiency by moving from a low degree rule to a higher degree rule and this gain is greater when we require more digits of accuracy.