QUADRULE\
Quadrature Rules {#quadrule-quadrature-rules align=”center”}
================
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.
Licensing: {#licensing align=”center”}
The computer code and data files described and made available on this
web page are distributed under the GNU LGPL
license.
Languages: {#languages align=”center”}
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.
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.
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.
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_NCC_RULE, a C++
library which computes a Newton Cotes Closed (NCC) quadrature rule for
the line, that is, for an interval of the form [A,B], using equally
spaced points which include the endpoints.
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.
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_TEST, a
MATLAB program which reads the definition of a multidimensional
quadrature rule from three files, applies the rule to a number of test
integrals, and prints the results.
TEST_INT, a C++ library which
defines test integrands for 1D quadrature rules.
Source Code: {#source-code align=”center”}
Examples and Tests: {#examples-and-tests align=”center”}
List of Routines: {#list-of-routines align=”center”}
- CHEBYSHEV_SET sets abscissas and weights for Chebyshev
quadrature.
- CHEBYSHEV1_COMPUTE computes a Gauss-Chebyshev type 1 quadrature
rule.
- CHEBYSHEV1_INTEGRAL evaluates a monomial Chebyshev type 1
integral.
- CHEBYSHEV1_SET sets a Chebyshev Type 1 quadrature rule.
- CHEBYSHEV2_COMPUTE computes a Gauss-Chebyshev type 2 quadrature
rule.
- CHEBYSHEV2_INTEGRAL evaluates a monomial Chebyshev type 2
integral.
- CHEBYSHEV2_SET sets a Chebyshev Type 2 quadrature rule.
- CHEBYSHEV3_COMPUTE computes a Gauss-Chebyshev type 3 quadrature
rule.
- CHEBYSHEV3_INTEGRAL evaluates a monomial Chebyshev type 3
integral.
- CHEBYSHEV3_SET sets a Chebyshev Type 3 quadrature rule.
- CLENSHAW_CURTIS_COMPUTE computes a Clenshaw Curtis quadrature
rule.
- CLENSHAW_CURTIS_SET sets a Clenshaw-Curtis quadrature rule.
- FEJER1_COMPUTE computes a Fejer type 1 quadrature rule.
- FEJER1_SET sets abscissas and weights for Fejer type 1
quadrature.
- FEJER2_COMPUTE computes a Fejer type 2 quadrature rule.
- FEJER2_SET sets abscissas and weights for Fejer type 2
quadrature.
- GEGENBAUER_INTEGRAL evaluates the integral of a monomial with
Gegenbauer weight.
- GEGENBAUER_SS_COMPUTE computes a Gauss-Gegenbauer quadrature
rule.
- GEGENBAUER_SS_RECUR: value and derivative of a Gegenbauer
polynomial.
- GEGENBAUER_SS_ROOT improves a root of a Gegenbauer polynomial.
- GEN_HERMITE_DR_COMPUTE computes a generalized Gauss-Hermite
rule.
- GEN_HERMITE_EK_COMPUTE computes a generalized Gauss-Hermite
quadrature rule.
- GEN_HERMITE_INTEGRAL evaluates a monomial generalized Hermite
integral.
- GEN_LAGUERRE_EK_COMPUTE: generalized Gauss-Laguerre
quadrature rule.
- GEN_LAGUERRE_INTEGRAL evaluates a monomial generalized
Laguerre integral.
- GEN_LAGUERRE_SS_COMPUTE computes a generalized Gauss-Laguerre
quadrature rule.
- GEN_LAGUERRE_SS_RECUR evaluates a generalized Laguerre
polynomial.
- GEN_LAGUERRE_SS_ROOT improves a root of a generalized
Laguerre polynomial.
- HERMITE_EK_COMPUTE computes a Gauss-Hermite quadrature rule.
- HERMITE_GK16_SET sets a Hermite Genz-Keister 16 rule.
- HERMITE_GK18_SET sets a Hermite Genz-Keister 18 rule.
- HERMITE_GK22_SET sets a Hermite Genz-Keister 22 rule.
- HERMITE_GK24_SET sets a Hermite Genz-Keister 24 rule.
- HERMITE_INTEGRAL evaluates a monomial Hermite integral.
- HERMITE_PROBABILIST_SET: probabilist Hermite quadrature.
- HERMITE_SET sets abscissas and weights for Hermite quadrature.
- HERMITE_1_SET sets abscissas and weights for Hermite
quadrature.
- HERMITE_SS_COMPUTE computes a Gauss-Hermite quadrature rule.
- HERMITE_SS_RECUR finds the value and derivative of a Hermite
polynomial.
- HERMITE_SS_ROOT improves an approximate root of a Hermite
polynomial.
- I4_FACTORIAL2 computes the double factorial function.
- I4_MIN returns the smaller of two I4’s.
- I4_POWER returns the value of I\^J.
- IMTQLX diagonalizes a symmetric tridiagonal matrix.
- JACOBI_EK_COMPUTE: Elhay-Kautsky method for Gauss-Jacobi
quadrature rule.
- JACOBI_INTEGRAL evaluates the integral of a monomial with
Jacobi weight.
- JACOBI_SS_COMPUTE computes a Gauss-Jacobi quadrature rule.
- JACOBI_SS_RECUR finds the value and derivative of a Jacobi
polynomial.
- JACOBI_SS_ROOT improves an approximate root of a Jacobi
polynomial.
- KRONROD_SET sets abscissas and weights for Gauss-Kronrod
quadrature.
- LAGUERRE_EK_COMPUTE: Laguerre quadrature rule by the
Elhay-Kautsky method.
- LAGUERRE_INTEGRAL evaluates a monomial Laguerre integral.
- LAGUERRE_SET sets abscissas and weights for Laguerre
quadrature.
- LAGUERRE_1_SET sets abscissas and weights for Laguerre
quadrature.
- LAGUERRE_SS_COMPUTE computes a Gauss-Laguerre quadrature rule.
- LAGUERRE_SS_RECUR evaluates a Laguerre polynomial.
- LAGUERRE_SS_ROOT improves a root of a Laguerre polynomial.
- LAGUERRE_SUM carries out Laguerre quadrature over [ A, +oo ).
- LEGENDRE_DR_COMPUTE: Gauss-Legendre quadrature by
Davis-Rabinowitz method.
- LEGENDRE_EK_COMPUTE: Legendre quadrature rule by the
Elhay-Kautsky method.
- LEGENDRE_INTEGRAL evaluates a monomial Legendre integral.
- LEGENDRE_RECUR finds the value and derivative of a Legendre
polynomial.
- LEGENDRE_SET sets abscissas and weights for Gauss-Legendre
quadrature.
- LOBATTO_COMPUTE computes a Lobatto quadrature rule.
- LOBATTO_SET sets abscissas and weights for Lobatto quadrature.
- NC_COMPUTE_WEIGHTS computes weights for a Newton-Cotes
quadrature rule.
- NCC_COMPUTE computes a Newton-Cotes closed quadrature rule.
- NCC_SET sets abscissas and weights for closed Newton-Cotes
quadrature.
- NCO_COMPUTE computes a Newton-Cotes Open quadrature rule.
- NCO_SET sets abscissas and weights for open Newton-Cotes
quadrature.
- NCOH_COMPUTE computes a Newton-Cotes “open half” quadrature
rule.
- NCOH_SET sets abscissas and weights for Newton-Cotes “open
half” rules.
- PATTERSON_SET sets abscissas and weights for Gauss-Patterson
quadrature.
- PSI_VALUES returns some values of the Psi or Digamma function.
- R8_ABS returns the absolute value of an R8.
- R8_EPSILON returns the R8 roundoff unit.
- R8_FACTORIAL computes the factorial of N.
- R8_FACTORIAL2 computes the double factorial function.
- R8_GAMMA evaluates Gamma(X) for a real argument.
- R8_GAMMA_LOG calculates the natural logarithm of GAMMA ( X )
for positive X.
- R8_HUGE returns a “huge” R8.
- R8_HYPER_2F1 evaluates the hypergeometric function
2F1(A,B,C,X).
- R8_MAX returns the maximum of two R8’s.
- R8_PSI evaluates the function Psi(X).
- R8_SIGN returns the sign of an R8.
- R8VEC_COPY copies an R8VEC.
- R8VEC_DOT_PRODUCT computes the dot product of a pair of
R8VEC’s.
- R8VEC_LINSPACE creates a vector of linearly spaced values.
- R8VEC_LINSPACE_NEW creates a vector of linearly spaced values.
- R8VEC_PRINT prints an R8VEC.
- R8VEC_REVERSE reverses the elements of an R8VEC.
- RADAU_COMPUTE computes a Radau quadrature rule.
- RADAU_SET sets abscissas and weights for Radau quadrature.
- TIMESTAMP prints the current YMDHMS date as a time stamp.
You can go up one level to the C++ source codes.
Last revised on 21 June 2015.