# EXACTNESS Exactness of Quadrature Rules

EXACTNESS is a FORTRAN90 library which investigates the exactness of quadrature rules that estimate the integral of a function with a density, such as 1, exp(-x) or exp(-x^2), over an interval such as [-1,+1], [0,+oo) or (-oo,+oo).

A 1D quadrature rule estimates I(f), the integral of a function f(x) over an interval [a,b] with density rho(x):

```        I(f) = integral ( a < x < b ) f(x) rho(x) dx
```
by a n-point quadrature rule of weights w and points x:
```        Q(f) = sum ( 1 <= i <= n ) w(i) f(x(i))
```

Most quadrature rules come in a family of various sizes. A quadrature rule of size n is said to have exactness p if it is true that the quadrature estimate is exactly equal to the exact integral for every monomial (and hence, polynomial) whose degree is p or less.

This program allows the user to specify a quadrature rule, a size n, and a degree p_max. It then computes and compares the exact integral and quadrature estimate for monomials of degree 0 through p_max, so that the user can analyze the results.

Common densities include:

• Chebyshev Type 1 density 1/sqrt(1-x^2), over [-1,+1],
• Chebyshev Type 2 density sqrt(1-x^2), over [-1,+1].
• Gegenbauer density (1-x^2)^(lambda-1/2), over [-1,+1].
• Hermite (physicist) density 1/sqrt(pi) exp(-x^2), over (-oo,+oo).
• Hermite (probabilist) density 1/sqrt(2*pi) exp(-x^2/2), over (-oo,+oo).
• Hermite (unit) density 1, over (-oo,+oo).
• Jacobi density (1-x)^alpha*(1+x)^beta, over [-1,+1].
• Laguerre (standard) density exp(-1), over [0,+oo).
• Laguerre (unit) density 1, over [0,+oo).
• Legendre density 1, over [-1,+1].

Common quadrature rules include:

• Clenshaw-Curtis quadrature for Legendre density, exactness = n - 1;
• Fejer Type 1 quadrature for Legendre density, exactness = n - 1;
• Fejer Type 2 quadrature for Legendre density, exactness = n - 1;
• Gauss-Chebyshev Type 1 quadrature, exactness = 2 * n - 1;
• Gauss-Chebyshev Type 2 quadrature, exactness = 2 * n - 1;
• Gauss-Gegenbauer quadrature, exactness = 2 * n - 1;
• Gauss-Hermite quadrature, exactness = 2 * n - 1;
• Gauss-Laguerre quadrature, exactness = 2 * n - 1;
• Gauss-Legendre quadrature, exactness = 2 * n - 1;

### Licensing:

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

### Languages:

EXACTNESS 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 Data and Programs:

CUBE_EXACTNESS, a FORTRAN90 library which investigates the polynomial exactness of quadrature rules over the interior of a cube in 3D.

EXACTNESS_2D, a FORTRAN90 library which investigates the exactness of 2D quadrature rules that estimate the integral of a function f(x,y) over a 2D domain.

HERMITE_EXACTNESS, a FORTRAN90 program which tests the monomial exactness of Gauss-Hermite quadrature rules for estimating the integral of a function with density exp(-x^2) over the interval (-oo,+oo).

LAGUERRE_EXACTNESS, a FORTRAN90 program which tests the monomial exactness of Gauss-Laguerre quadrature rules for estimating the integral of a function with density exp(-x) over the interval [0,+oo).

LEGENDRE_EXACTNESS, a FORTRAN90 program which tests the monomial exactness of Gauss-Legendre quadrature rules for estimating the integral of a function with density 1 over the interval [-1,+1].

WEDGE_EXACTNESS, a FORTRAN90 program which investigates the monomial exactness of a quadrature rule over the interior of the unit wedge in 3D.

### Reference:

1. Philip Davis, Philip Rabinowitz,
Methods of Numerical Integration,
Second Edition,
Dover, 2007,
ISBN: 0486453391,
LC: QA299.3.D28.

### List of Routines:

• CHEBYSHEV1_EXACTNESS: monomial exactness for the Chebyshev1 integral.
• CHEBYSHEV1_INTEGRAL evaluates the Chebyshev type 1 integral of a monomial.
• CHEBYSHEV2_EXACTNESS: monomial exactness for the Chebyshev2 integral.
• CHEBYSHEV2_INTEGRAL evaluates a monomial Chebyshev type 2 integral.
• GEGENBAUER_EXACTNESS: monomial exactness for the Gegenbauer integral.
• GEGENBAUER_INTEGRAL evaluates a monomial integral with Gegenbauer weight.
• HERMITE_EXACTNESS: monomial exactness for the Hermite integral.
• HERMITE_INTEGRAL evaluates a monomial Hermite integral.
• LAGUERRE_EXACTNESS: monomial exactness for the Laguerre integral.
• LAGUERRE_INTEGRAL evaluates a monomial Laguerre integral.
• LEGENDRE_EXACTNESS: monomial exactness for the Legendre integral.
• LEGENDRE_INTEGRAL evaluates a monomial Legendre integral.
• R8_FACTORIAL computes the factorial of N.
• R8_FACTORIAL2 computes the double factorial function.
• TIMESTAMP prints the current YMDHMS date as a time stamp.

You can go up one level to the FORTRAN90 source codes.

Last revised on 14 January 2016.