Quadrature Rules

QUADRULE is a C library which sets up a variety of quadrature rules, used to approximate the integral of a function over various domains.

QUADRULE returns the abscissas and weights for a variety of one dimensional quadrature rules for approximating the integral of a function. The best rule is generally Gauss-Legendre quadrature, but other rules offer special features, including the ability to handle certain weight functions, to approximate an integral on an infinite integration region, or to estimate the approximation error.


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


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

Related Programs:

CCN_RULE, a C program which defines one of a set of nested Clenshaw Curtis quadrature rules.

CLENSHAW_CURTIS_RULE, a C program which defines a Clenshaw Curtis quadrature rule.

KRONROD, a C library which can compute a Gauss and Gauss-Kronrod pair of quadrature rules of arbitrary order, by Robert Piessens, Maria Branders.

LAGUERRE_RULE, a C program which can compute and print a Gauss-Laguerre quadrature rule for estimating the integral of a function with density exp(-x) over the interval [0,+oo).

LEGENDRE_RULE, a C program which computes a 1D Gauss-Legendre quadrature rule.

LEGENDRE_RULE_FAST, a C program which uses a fast (order N) algorithm to compute a Gauss-Legendre quadrature rule of given order.

LINE_FELIPPA_RULE, a C library which returns the points and weights of a Felippa quadrature rule over the interior of a line segment in 1D.

LINE_NCO_RULE, a C library which computes a Newton Cotes Open (NCO) quadrature rule, using equally spaced points, over the interior of a line segment in 1D.

PATTERSON_RULE, a C program which returns the points and weights of a 1D Gauss-Patterson quadrature rule of order 1, 3, 7, 15, 31, 63, 127, 255 or 511.

POWER_RULE, a C program which constructs a power rule, that is, a product quadrature rule from identical 1D factor rules.

PRODUCT_RULE, a C program which constructs a product quadrature rule from distinct 1D factor rules.

QUADMOM, a C library which computes a Gaussian quadrature rule for a weight function rho(x) based on the Golub-Welsch procedure that only requires knowledge of the moments of rho(x).

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

QUADRATURE_RULES_TET, a dataset directory which contains triples of files defining various quadrature rules on tetrahedrons.

QUADRATURE_RULES_TRI, a dataset directory which contains quadrature rules to be applied to triangular regions.

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

SGMGA, a C library which creates sparse grids based on a mixture of 1D quadrature rules, allowing anisotropic weights for each dimension.

SPARSE_GRID_HW, a C library which creates sparse grids based on Gauss-Legendre, Gauss-Hermite, Gauss-Patterson, or a nested variation of Gauss-Hermite rules, by Florian Heiss and Viktor Winschel.

STROUD, a C library which defines quadrature rules for a variety of unusual areas, surfaces and volumes in 2D, 3D and N-dimensions.

TEST_INT, a C library which defines test integrands for 1D quadrature rules.


  1. Milton Abramowitz, Irene Stegun,
    Handbook of Mathematical Functions,
    National Bureau of Standards, 1964,
    ISBN: 0-486-61272-4,
    LC: QA47.A34.
  2. Claudio Canuto, Yousuff Hussaini, Alfio Quarteroni, Thomas Zang,
    Spectral Methods in Fluid Dynamics,
    Springer, 1993,
    ISNB13: 978-3540522058,
    LC: QA377.S676.
  3. Charles Clenshaw, Alan Curtis,
    A Method for Numerical Integration on an Automatic Computer,
    Numerische Mathematik,
    Volume 2, Number 1, December 1960, pages 197-205.
  4. Philip Davis, Philip Rabinowitz,
    Methods of Numerical Integration,
    Second Edition,
    Dover, 2007,
    ISBN: 0486453391,
    LC: QA299.3.D28.
  5. Sylvan Elhay, Jaroslav Kautsky,
    Algorithm 655: IQPACK, FORTRAN Subroutines for the Weights of Interpolatory Quadrature,
    ACM Transactions on Mathematical Software,
    Volume 13, Number 4, December 1987, pages 399-415.
  6. Hermann Engels,
    Numerical Quadrature and Cubature,
    Academic Press, 1980,
    ISBN: 012238850X,
    LC: QA299.3E5.
  7. Gwynne Evans,
    Practical Numerical Integration,
    Wiley, 1993,
    ISBN: 047193898X,
    LC: QA299.3E93.
  8. Simeon Fatunla,
    Numerical Methods for Initial Value Problems in Ordinary Differential Equations,
    Academic Press, 1988,
    ISBN: 0122499301,
    LC: QA372.F35.
  9. Walter Gautschi,
    Numerical Quadrature in the Presence of a Singularity,
    SIAM Journal on Numerical Analysis,
    Volume 4, Number 3, September 1967, pages 357-362.
  10. Alan Genz, Bradley Keister,
    Fully symmetric interpolatory rules for multiple integrals over infinite regions with Gaussian weight,
    Journal of Computational and Applied Mathematics,
    Volume 71, 1996, pages 299-309.
  11. Florian Heiss, Viktor Winschel,
    Likelihood approximation by numerical integration on sparse grids,
    Journal of Econometrics,
    Volume 144, 2008, pages 62-80.
  12. Francis Hildebrand,
    Introduction to Numerical Analysis,
    Dover, 1987,
    ISBN13: 978-0486653631,
    LC: QA300.H5.
  13. Zdenek Kopal,
    Numerical Analysis,
    John Wiley, 1955,
    LC: QA297.K6.
  14. Vladimir Krylov,
    Approximate Calculation of Integrals,
    Dover, 2006,
    ISBN: 0486445798,
    LC: QA311.K713.
  15. Prem Kythe, Michael Schaeferkotter,
    Handbook of Computational Methods for Integration,
    Chapman and Hall, 2004,
    ISBN: 1-58488-428-2,
    LC: QA299.3.K98.
  16. Leon Lapidus, John Seinfeld,
    Numerical Solution of Ordinary Differential Equations,
    Mathematics in Science and Engineering, Volume 74,
    Academic Press, 1971,
    ISBN: 0124366503,
    LC: QA3.M32.v74
  17. Thomas Patterson,
    The Optimal Addition of Points to Quadrature Formulae,
    Mathematics of Computation,
    Volume 22, Number 104, October 1968, pages 847-856.
  18. Robert Piessens, Elise deDoncker-Kapenga, Christian Ueberhuber, David Kahaner,
    QUADPACK: A Subroutine Package for Automatic Integration,
    Springer, 1983,
    ISBN: 3540125531,
    LC: QA299.3.Q36.
  19. Arthur Stroud, Don Secrest,
    Gaussian Quadrature Formulas,
    Prentice Hall, 1966,
    LC: QA299.4G3S7.
  20. Lloyd Trefethen,
    Is Gauss Quadrature Better Than Clenshaw-Curtis?,
    SIAM Review,
    Volume 50, Number 1, March 2008, pages 67-87.
  21. Joerg Waldvogel,
    Fast Construction of the Fejer and Clenshaw-Curtis Quadrature Rules,
    BIT Numerical Mathematics,
    Volume 43, Number 1, 2003, pages 1-18.
  22. Stephen Wolfram,
    The Mathematica Book,
    Fourth Edition,
    Cambridge University Press, 1999,
    ISBN: 0-521-64314-7,
    LC: QA76.95.W65.
  23. 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 19 November 2011.