Tests for Equal-Weight Quadrature Rules

INTEGRAL_TEST is a FORTRAN90 program which tests the suitability of a set of N points for quadrature in an M-dimensional hypercube.

INTEGRAL_TEST can handle both unweighted and weighted integration schemes.

The point sets we are interested in have been generated by a variety of algorithms, and are stored as datasets, of spatial dimension M = 2, 7 and 16, and point set sizes N = 10, 100, 1,000 and 10,000. The point set types include:

The test integrals are selected from the set in TEST_NINT. Each integral is to be approximated simply by averaging the integrand values at each point in the dataset, and multiplying by the volume of the integration region. (In a few cases, where the integral is not over the unit hypercube, the dataset points are suitably adjusted).

The relative error in the computed integral is determined for each of the selected problems. (Certain integrals with a base point that can be varied are computed 100 times, with randomly varying basepoint). The results for each problem, expressed as a percentage, are averaged, to produce a single "score" for the given set of points.

Here is a table of the datasets, spatial dimensions, and number of points used versus the averaged integration scores:
SetDimensionPoints UnweightedWeight AWeight D
CVT 2 10 6.527 7.327 7.217
CVT 2 100 1.512 1.082 0.879
CVT 2 1000 0.797 0.471 0.079
CVT 7 10156.461156.700156.565
CVT 7 100 24.674 24.679 24.541
CVT 7 1000 20.996 21.432 21.309
CVT 16 10116075011607601160750
CVT 16 100 76.241 76.214 76.229
CVT 16 1000 48.725 48.772 48.721
Halton 2 10 19.023 6.526 6.284
Halton 2 100 1.599 1.063 0.888
Halton 2 1000 0.169 0.508 0.043
Uniform 2 10 19.849 8.085 8.325
Uniform 2 100 2.869 1.487 1.314
Uniform 2 1000 1.140 0.455 0.087
Uniform 7 10 32.924 21.208 21.044
Uniform 7 100 12.117 22.773 22.216
Uniform 7 1000 3.101 8.172 8.672
Uniform 16 10 31.020 26.886 26.862
Uniform 16 100 14.839 33.115 32.332
Uniform 16 1000 7.973 24.000 26.003

An Important Quote:

"When good results are obtained in integrating a high-dimensional function, we should conclude first of all that an especially tractable integrand was tried and not that a generally successful method has been found. A secondary conclusion is that we might have made a very good choice in selecting an integration method to exploit whatever features of f made it tractable."
Art Owen,
Latin Supercube Sampling for Very High Dimensional Simulation,
ACM Transactions on Modeling and Computer Simulations,
Volume 8, Number 1, January 1998, pages 71-102.


integral_test input_file
for unweighted integration.
integral_test input_file weight_file
for integration with a weight file.


The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.

Related Data and Programs:

NINT_EXACTNESS, a FORTRAN90 program which demonstrates how to measure the polynomial exactness of a multidimensional quadrature rule.

PRODUCT_RULE, a FORTRAN90 program which constructs a product rule from identical 1D factor rules.

QUADRATURE_RULES, a dataset directory which contains sets of files that define quadrature rules over various 1D intervals or multidimensional hypercubes.

TESTPACK, a FORTRAN90 library which defines a set of integrands used to test multidimensional quadrature.

VORONOI_WEIGHT, a FORTRAN90 program which is given an arbitrary set of points and determines a suitable set of quadrature weights to associate with them, using Voronoi techniques.


  1. Paul Bratley, Bennett Fox, Harald Niederreiter,
    Implementation and Tests of Low-Discrepancy Sequences,
    ACM Transactions on Modeling and Computer Simulation,
    Volume 2, Number 3, pages 195-213, 1992.
  2. Paul Bratley, Bennett Fox, Harald Niederreiter,
    Algorithm 738: Programs to Generate Niederreiter's Low-Discrepancy Sequences,
    ACM Transactions on Mathematical Software,
    Volume 20, Number 4, pages 494-495, 1994.
  3. Bennett Fox,
    Algorithm 647: Implementation and Relative Efficiency of Quasirandom Sequence Generators,
    ACM Transactions on Mathematical Software,
    Volume 12, Number 4, pages 362-376, 1986.

Source Code:

Examples and Tests:

Results for cvt_02_00010.txt, with various weights:

Results for cvt_02_00100.txt, with various weights:

Results for cvt_02_01000.txt, with various weights:

Results for halton_02_00010.txt, with various weights:

Results for halton_02_00100.txt, with various weights:

Results for halton_02_01000.txt, with various weights:

Results for uniform_02_00010.txt, with various weights:

Results for uniform_02_00100.txt, with various weights:

Results for uniform_02_01000.txt, with various weights:

List of Routines:

You can go up one level to the FORTRAN90 source codes.

Last revised on 27 November 2006.