sandia_cubature, a FORTRAN90 code which implements quadrature rules for certain multidimensional regions and weight functions.

We consider the following integration regions:

The available rules for region EN_HER all have odd precision, ranging from 1 to 11. Some of these rules are valid for any spatial dimension N. However, many of these rules are restricted to a limited range, such as 2 <= N < 6. Some of the rules have two forms; in that case, the particular form is selectable by setting an input argument OPTION to 1 or 2. Finally, note that in multidimensional integration, the dependence of the order O (number of abscissas) on the spatial dimension N is critical. Rules for which the order is a multiple of 2^N are not practical for large values of N. The source code for each rule lists its formula for the order as a function of N.


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


sandia_cubature is available in a C++ version and a Fortran90 version and a MATLAB version.

Related Data and Programs:


sandia_rules, a FORTRAN90 library which produces 1D quadrature rules of Chebyshev, Clenshaw Curtis, Fejer 2, Gegenbauer, generalized Hermite, generalized Laguerre, Hermite, Jacobi, Laguerre, Legendre and Patterson types.

stroud, a FORTRAN90 library which defines quadrature rules for a variety of multidimensional reqions.


  1. Arthur Stroud,
    Approximate Calculation of Multiple Integrals,
    Prentice Hall, 1971,
    ISBN: 0130438936,
    LC: QA311.S85.
  2. Arthur Stroud, Don Secrest,
    Gaussian Quadrature Formulas,
    Prentice Hall, 1966,
    LC: QA299.4G3S7.
  3. Dongbin Xiu,
    Numerical integration formulas of degree two,
    Applied Numerical Mathematics,
    Volume 58, 2008, pages 1515-1520.

Source Code:

Last revised on 15 January 2023.