Quadrature Rules

**QUADRULE**,
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 FORTRAN90 version and
a MATLAB version and
a Python version.

ALPERT_RULE, a C library which can set up an Alpert quadrature rule for functions which are regular, log(x) singular, or 1/sqrt(x) singular.

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.

- quadrule.c, the source code;
- quadrule.sh, compiles the source code;
- quadrule.h, the include file;