**quad_rule**,
a FORTRAN90 code which
sets up a variety of
quadrature rules, used to approximate the integral of a function
over various domains in 1D.

The code 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.

**quad_rule** is available in
a C version and
a C++ version and
a Fortran90 version and
a MATLAB version and
an Octave version and
a Python version.

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

CLENSHAW_CURTIS_RULE, a FORTRAN90 code which defines a Clenshaw Curtis quadrature rule.

INTLIB, a FORTRAN90 code which contains a variety of routines for numerical estimation of integrals in 1D.

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

LINE_NCO_RULE, a FORTRAN90 code 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 FORTRAN90 code 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.

PATTERSON_RULE_COMPUTE, a FORTRAN90 code which computes the points and weights of a 1D Gauss-Patterson quadrature rule of order 1, 3, 7, 15, 31, 63, 127, 255 or 511.

QUADMOM, a FORTRAN90 code 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).

QUADPACK, a FORTRAN90 code which contains a variety of routines for numerical estimation of integrals in 1D.

STROUD, a FORTRAN90 code which contains quadrature rules for a variety of unusual areas, surfaces and volumes in 2D, 3D and N-dimensions.

TEST_INT, a FORTRAN90 code which contains a number of functions that may be used as test integrands for quadrature rules in 1D.

TOMS655,
a FORTRAN90 code which
computes the weights for interpolatory quadrature rule;

this library is commonly called **IQPACK**.

This is a version of ACM TOMS algorithm 655.

TRUNCATED_NORMAL_RULE, a FORTRAN90 code which computes a quadrature rule for a normal distribution that has been truncated to [A,+oo), (-oo,B] or [A,B].

- quad_rule.f90, the source code;
- quad_rule.sh, compiles the source code;