STROUD
Numerical Integration
in M Dimensions


STROUD is a C++ library which defines quadrature rules for a variety of M-dimensional regions, including the interior of the square, cube and hypercube, the pyramid, cone and ellipse, the hexagon, the M-dimensional octahedron, the circle, sphere and hypersphere, the triangle, tetrahedron and simplex, and the surface of the circle, sphere and hypersphere.

A few other rules have been collected as well, particularly for quadrature over the interior of a triangle, which is useful in finite element calculations.

Arthur Stroud published his vast collection of quadrature formulas for multidimensional regions in 1971. In a few cases, he printed sample FORTRAN77 programs to compute these integrals. Integration regions included:

We have added a few new terms for regions:

Licensing:

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

Languages:

STROUD is available in a C version and a C++ version and a FORTRAN77 version and a FORTRAN90 version and a MATLAB version.

Related Data and Programs:

DISK_RULE, a C++ library which computes quadrature rules for the unit disk in 2D, that is, the interior of the circle of radius 1 and center (0,0).

FELIPPA, a C++ library which defines quadrature rules for lines, triangles, quadrilaterals, pyramids, wedges, tetrahedrons and hexahedrons.

PYRAMID_RULE, a C++ program which computes a quadrature rule for a pyramid.

SIMPLEX_GM_RULE, a C++ library which defines Grundmann-Moeller quadrature rules over the interior of a triangle in 2D, a tetrahedron in 3D, or over the interior of the simplex in M dimensions.

SPHERE_LEBEDEV_RULE, a C++ library which computes Lebedev quadrature rules on the surface of the unit sphere in 3D.

TETRAHEDRON_ARBQ_RULE, a C++ library which returns quadrature rules, with exactness up to total degree 15, over the interior of a tetrahedron in 3D, by Hong Xiao and Zydrunas Gimbutas.

TETRAHEDRON_KEAST_RULE, a C++ library which defines ten quadrature rules, with exactness degrees 0 through 8, over the interior of a tetrahedron in 3D.

TETRAHEDRON_NCC_RULE, a C++ library which defines Newton-Cotes Closed (NCC) quadrature rules over the interior of a tetrahedron in 3D.

TETRAHEDRON_NCO_RULE, a C++ library which defines Newton-Cotes Open (NCO) quadrature rules over the interior of a tetrahedron in 3D.

TRIANGLE_DUNAVANT_RULE, a C++ library which defines Dunavant rules for quadrature over the interior of a triangle in 2D.

TRIANGLE_FEKETE, a C++ library which defines Fekete rules for interpolation or quadrature over the interior of a triangle in 2D.

TRIANGLE_LYNESS_RULE, a C++ library which returns Lyness-Jespersen quadrature rules over the interior of a triangle in 2D.

TRIANGLE_NCC_RULE, a C++ library which defines Newton-Cotes Closed (NCC) quadrature rules over the interior of a triangle in 2D.

TRIANGLE_NCO_RULE, a C++ library which defines Newton-Cotes Open (NCO) quadrature rules over the interior of a triangle in 2D.

TRIANGLE_WANDZURA_RULE, a C++ library which returns quadrature rules of exactness 5, 10, 15, 20, 25 and 30 over the interior of the triangle in 2D.

Reference:

  1. Milton Abramowitz, Irene Stegun,
    Handbook of Mathematical Functions,
    National Bureau of Standards, 1964,
    ISBN: 0-486-61272-4,
    LC: QA47.A34.
  2. Jarle Berntsen, Terje Espelid,
    Algorithm 706: DCUTRI: an algorithm for adaptive cubature over a collection of triangles,
    ACM Transactions on Mathematical Software,
    Volume 18, Number 3, September 1992, pages 329-342.
  3. SF Bockman,
    Generalizing the Formula for Areas of Polygons to Moments,
    American Mathematical Society Monthly,
    Volume 96, Number 2, February 1989, pages 131-132.
  4. Paul Bratley, Bennett Fox, Linus Schrage,
    A Guide to Simulation,
    Second Edition,
    Springer, 1987,
    ISBN: 0387964673,
    LC: QA76.9.C65.B73.
  5. William Cody, Kenneth Hillstrom,
    Chebyshev Approximations for the Natural Logarithm of the Gamma Function, Mathematics of Computation,
    Volume 21, Number 98, April 1967, pages 198-203.
  6. Philip Davis, Philip Rabinowitz,
    Methods of Numerical Integration,
    Second Edition,
    Dover, 2007,
    ISBN: 0486453391,
    LC: QA299.3.D28.
  7. Elise deDoncker, Ian Robinson,
    Algorithm 612: Integration over a Triangle Using Nonlinear Extrapolation,
    ACM Transactions on Mathematical Software,
    Volume 10, Number 1, March 1984, pages 17-22.
  8. Hermann Engels,
    Numerical Quadrature and Cubature,
    Academic Press, 1980,
    ISBN: 012238850X,
    LC: QA299.3E5.
  9. Thomas Ericson, Victor Zinoviev,
    Codes on Euclidean Spheres,
    Elsevier, 2001,
    ISBN: 0444503293,
    LC: QA166.7E75
  10. Carlos Felippa,
    A compendium of FEM integration formulas for symbolic work,
    Engineering Computation,
    Volume 21, Number 8, 2004, pages 867-890.
  11. Gerald Folland,
    How to Integrate a Polynomial Over a Sphere,
    American Mathematical Monthly,
    Volume 108, Number 5, May 2001, pages 446-448.
  12. Bennett Fox,
    Algorithm 647: Implementation and Relative Efficiency of Quasirandom Sequence Generators,
    ACM Transactions on Mathematical Software,
    Volume 12, Number 4, December 1986, pages 362-376.
  13. Axel Grundmann, Michael Moeller,
    Invariant Integration Formulas for the N-Simplex by Combinatorial Methods,
    SIAM Journal on Numerical Analysis,
    Volume 15, Number 2, April 1978, pages 282-290.
  14. John Harris, Horst Stocker,
    Handbook of Mathematics and Computational Science,
    Springer, 1998,
    ISBN: 0-387-94746-9,
    LC: QA40.S76.
  15. Patrick Keast,
    Moderate Degree Tetrahedral Quadrature Formulas,
    Computer Methods in Applied Mechanics and Engineering,
    Volume 55, Number 3, May 1986, pages 339-348.
  16. Vladimir Krylov,
    Approximate Calculation of Integrals,
    Dover, 2006,
    ISBN: 0486445798,
    LC: QA311.K713.
  17. Dirk Laurie,
    Algorithm 584: CUBTRI, Automatic Cubature Over a Triangle,
    ACM Transactions on Mathematical Software,
    Volume 8, Number 2, 1982, pages 210-218.
  18. Frank Lether,
    A Generalized Product Rule for the Circle,
    SIAM Journal on Numerical Analysis,
    Volume 8, Number 2, June 1971, pages 249-253.
  19. James Lyness, Dennis Jespersen,
    Moderate Degree Symmetric Quadrature Rules for the Triangle,
    Journal of the Institute of Mathematics and its Applications,
    Volume 15, Number 1, February 1975, pages 19-32.
  20. James Lyness, BJJ McHugh,
    Integration Over Multidimensional Hypercubes, A Progressive Procedure,
    The Computer Journal,
    Volume 6, 1963, pages 264-270.
  21. AD McLaren,
    Optimal Numerical Integration on a Sphere,
    Mathematics of Computation,
    Volume 17, Number 84, October 1963, pages 361-383.
  22. Albert Nijenhuis, Herbert Wilf,
    Combinatorial Algorithms for Computers and Calculators,
    Second Edition,
    Academic Press, 1978,
    ISBN: 0-12-519260-6,
    LC: QA164.N54.
  23. William Peirce,
    Numerical Integration Over the Planar Annulus,
    Journal of the Society for Industrial and Applied Mathematics,
    Volume 5, Number 2, June 1957, pages 66-73.
  24. Hans Rudolf Schwarz,
    Finite Element Methods,
    Academic Press, 1988,
    ISBN: 0126330107,
    LC: TA347.F5.S3313.
  25. Gilbert Strang, George Fix,
    An Analysis of the Finite Element Method,
    Cambridge, 1973,
    ISBN: 096140888X,
    LC: TA335.S77.
  26. Arthur Stroud,
    Approximate Calculation of Multiple Integrals,
    Prentice Hall, 1971,
    ISBN: 0130438936,
    LC: QA311.S85.
  27. Arthur Stroud, Don Secrest,
    Gaussian Quadrature Formulas,
    Prentice Hall, 1966,
    LC: QA299.4G3S7.
  28. Stephen Wandzura, Hong Xiao,
    Symmetric Quadrature Rules on a Triangle,
    Computers and Mathematics with Applications,
    Volume 45, 2003, pages 1829-1840.
  29. Stephen Wolfram,
    The Mathematica Book,
    Fourth Edition,
    Cambridge University Press, 1999,
    ISBN: 0-521-64314-7,
    LC: QA76.95.W65.
  30. Dongbin Xiu,
    Numerical integration formulas of degree two,
    Applied Numerical Mathematics,
    Volume 58, 2008, pages 1515-1520.
  31. Olgierd Zienkiewicz,
    The Finite Element Method,
    Sixth Edition,
    Butterworth-Heinemann, 2005,
    ISBN: 0750663200,
    LC: TA640.2.Z54
  32. Daniel Zwillinger, editor,
    CRC Standard Mathematical Tables and Formulae,
    30th Edition,
    CRC Press, 1996,
    ISBN: 0-8493-2479-3,
    LC: QA47.M315.

Source Code:

Examples and Tests:

List of Routines:

You can go up one level to the C++ source codes.


Last revised on 12 July 2014.