SANDIA_CUBATURE\
Numerical Integration\
in M Dimensions {#sandia_cubature-numerical-integration-in-m-dimensions align=”center”}
======================
SANDIA_CUBATURE is a C++ library which implements quadrature rules
for certain multidimensional regions and weight functions.
We consider the following integration regions:
- CN_GEG, the N dimensional hypercube [-1,+1]\^N, with the
Gegenbauer weight function:\
w(alpha;x) = product ( 1 <= i <= n ) ( 1 - x(i)\^2 )\^alpha;
- CN_JAC, the N dimensional hypercube [-1,+1]\^N, with the Beta
or Jacobi weight function:\
w(alpha,beta;x) = product ( 1 <= i <= n ) ( 1 - x(i)
)\^alpha * ( 1 + x(i) )\^beta;
- CN_LEG, the N dimensional hypercube [-1,+1]\^N, with the
Legendre weight function:\
w(x) = 1;
- EN_HER, the N-dimensional product space (-oo,+oo)\^N, with the
Hermite weight function:\
w(x) = product ( 1 <= i <= n ) exp ( - x(i)\^2 );
- EPN_GLG, the positive product space [0,+oo)\^N, with the
generalized Laguerre weight function:\
w(alpha;x) = product ( 1 <= i <= n ) x(i)\^alpha exp ( - x(i)
);
- EPN_LAG, the positive product space [0,+oo)\^N, with the
exponential or Laguerre weight function:\
w(x) = product ( 1 <= i <= n ) exp ( - x(i) );
The available rules for region EN_HER all have odd precision,
ranging from 1 to 11. Some of these rules are valid for any spatial
dimension N. However, many of these rules are restricted to a
limited range, such as 2 <= N < 6. Some of the rules have two
forms; in that case, the particular form is selectable by setting an
input argument OPTION to 1 or 2. Finally, note that in
multidimensional integration, the dependence of the order O (number
of abscissas) on the spatial dimension N is critical. Rules for
which the order is a multiple of 2\^N are not practical for large
values of N. The source code for each rule lists its formula for the
order as a function of N.
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”}
SANDIA_CUBATURE is available in a C++
version and a
FORTRAN90 version and
a MATLAB version.
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.
STROUD, a C++ library which defines
quadrature rules for a variety of multidimensional reqions.
Reference: {#reference align=”center”}
- Arthur Stroud,\
Approximate Calculation of Multiple Integrals,\
Prentice Hall, 1971,\
ISBN: 0130438936,\
LC: QA311.S85.
- Arthur Stroud, Don Secrest,\
Gaussian Quadrature Formulas,\
Prentice Hall, 1966,\
LC: QA299.4G3S7.
- Dongbin Xiu,\
Numerical integration formulas of degree two,\
Applied Numerical Mathematics,\
Volume 58, 2008, pages 1515-1520.
Source Code: {#source-code align=”center”}
Examples and Tests: {#examples-and-tests align=”center”}
List of Routines: {#list-of-routines align=”center”}
- C1_GEG_MONOMIAL_INTEGRAL: integral of monomial with
Gegenbauer weight on C1.
- C1_JAC_MONOMIAL_INTEGRAL: integral of a monomial with Jacobi
weight over C1.
- C1_LEG_MONOMIAL_INTEGRAL: integral of monomial with Legendre
weight on C1.
- CN_GEG_01_1 implements a precision 1 rule for region CN_GEG.
- CN_GEG_01_1_SIZE sizes a precision 1 rule for region
CN_GEG.
- CN_GEG_02_XIU implements the Xiu precision 2 rule for region
CN_GEG.
- CN_GEG_02_XIU_SIZE sizes the Xiu precision 2 rule for region
CN_GEG.
- CN_GEG_03_XIU implements the Xiu precision 3 rule for region
CN_GEG.
- CN_GEG_03_XIU_SIZE sizes the Xiu precision 3 rule for region
CN_GEG.
- CN_GEG_MONOMIAL_INTEGRAL: integral of monomial with
Gegenbauer weight on CN.
- CN_JAC_01_1 implements a precision 1 rule for region CN_JAC.
- CN_JAC_01_1_SIZE sizes a precision 1 rule for region
CN_JAC.
- CN_JAC_02_XIU implements the Xiu precision 2 rule for region
CN_JAC.
- CN_JAC_02_XIU_SIZE sizes the Xiu precision 2 rule for region
CN_JAC.
- CN_JAC_MONOMIAL_INTEGRAL: integral of a monomial with Jacobi
weight over CN.
- CN_LEG_01_1 implements the midpoint rule for region CN_LEG.
- CN_LEG_01_1_SIZE sizes the midpoint rule for region CN_LEG.
- CN_LEG_02_XIU implements the Xiu precision 2 rule for region
CN_LEG.
- CN_LEG_02_XIU_SIZE sizes the Xiu precision 2 rule for region
CN_LEG.
- CN_LEG_03_1 implements the Stroud rule CN:3-1 for region
CN_LEG.
- CN_LEG_03_1_SIZE sizes the Stroud rule CN:3-1 for region
CN_LEG.
- CN_LEG_03_XIU implements the Xiu precision 3 rule for region
CN_LEG.
- CN_LEG_03_XIU_SIZE sizes the Xiu precision 3 rule for region
CN_LEG.
- CN_LEG_05_1 implements the Stroud rule CN:5-1 for region
CN_LEG.
- CN_LEG_05_1_SIZE sizes the Stroud rule CN:5-1 for region
CN_LEG.
- CN_LEG_05_2 implements the Stroud rule CN:5-2 for region
CN_LEG.
- CN_LEG_05_2_SIZE sizes the Stroud rule CN:5-2 for region
CN_LEG.
- CN_LEG_MONOMIAL_INTEGRAL: integral of monomial with Legendre
weight on CN.
- EN_HER_01_1 implements the Stroud rule 1.1 for region
EN_HER.
- EN_HER_01_1_SIZE sizes the Stroud rule 1.1 for region
EN_HER.
- EN_HER_02_XIU implements the Xiu precision 2 rule for region
EN_HER.
- EN_HER_02_XIU_SIZE sizes the Xiu precision 2 rule for region
EN_HER.
- EN_HER_03_1 implements the Stroud rule 3.1 for region
EN_HER.
- EN_HER_03_1_SIZE sizes the Stroud rule 3.1 for region
EN_HER.
- EN_HER_03_XIU implements the Xiu precision 3 rule for region
EN_HER.
- EN_HER_03_XIU_SIZE sizes the Xiu precision 3 rule for region
EN_HER.
- EN_HER_05_1 implements the Stroud rule 5.1 for region
EN_HER.
- EN_HER_05_1_SIZE sizes the Stroud rule 5.1 for region
EN_HER.
- EN_HER_05_2 implements the Stroud rule 5.2 for region
EN_HER.
- EN_HER_05_2_SIZE sizes the Stroud rule 5.2 for region
EN_HER.
- EN_HER_MONOMIAL_INTEGRAL evaluates monomial integrals in
EN_HER.
- EP1_GLG_MONOMIAL_INTEGRAL: integral of monomial with GLG
weight on EP1.
- EP1_LAG_MONOMIAL_INTEGRAL: integral of monomial with Laguerre
weight on EP1.
- EPN_GLG_01_1 implements a precision 1 rule for region
EPN_GLG.
- EPN_GLG_01_1_SIZE sizes a precision 1 rule for region
EPN_GLG.
- EPN_GLG_02_XIU implements the Xiu precision 2 rule for region
EPN_GLG.
- EPN_GLG_02_XIU_SIZE sizes the Xiu precision 2 rule for
region EPN_GLG.
- EPN_GLG_MONOMIAL_INTEGRAL: integral of monomial with GLG
weight on EPN.
- EPN_LAG_01_1 implements a precision 1 rule for region
EPN_LAG.
- EPN_LAG_01_1_SIZE sizes a precision 1 rule for region
EPN_LAG.
- EPN_LAG_02_XIU implements the Xiu precision 2 rule for region
EPN_LAG.
- EPN_LAG_02_XIU_SIZE sizes the Xiu precision 2 rule for
region EPN_LAG.
- EPN_LAG_MONOMIAL_INTEGRAL: integral of monomial with Laguerre
weight on EPN.
- GW_02_XIU implements the Golub-Welsch version of the Xiu rule.
- GW_02_XIU_SIZE sizes the Golub Welsch version of the Xiu
rule.
- MONOMIAL_VALUE evaluates a monomial.
You can go up one level to the C++ source codes.
Last revised on 05 March 2010.