STROUD\
Numerical Integration\
in M Dimensions {#stroud-numerical-integration-in-m-dimensions align=”center”}
======================
STROUD is a C++ library which defines quadrature rules for a variety
of M-dimensional regions, including the interior of the square, cube and
hypercube, the pyramid, cone and ellipse, the hexagon, the M-dimensional
octahedron, the circle, sphere and hypersphere, the triangle,
tetrahedron and simplex, and the surface of the circle, sphere and
hypersphere.
A few other rules have been collected as well, particularly for
quadrature over the interior of a triangle, which is useful in finite
element calculations.
Arthur Stroud published his vast collection of quadrature formulas for
multidimensional regions in 1971. In a few cases, he printed sample
FORTRAN77 programs to compute these integrals. Integration regions
included:
- C2, the interior of the square;
- C3, the interior of the cube;
- CN, the interior of the N-dimensional hypercube;
- CN:C2, a 3-dimensional pyramid;
- CN:S2, a 3-dimensional cone;
- CN_SHELL, the region contained between two concentric
N-dimensional hypercubes;
- ELP, the interior of the 2-dimensional ellipse with weight
function 1/sqrt((x-c)\^2+y\^2)/(sqrt((x+c)\^2+y\^2);
- EN_R, all of N-dimensional space, with the weight function:\
w(x) = exp ( - sqrt ( sum ( 1 <= i < n ) x(i)\^2 ) );
- EN_R2, all of N-dimensional space, with the Hermite weight
function: w(x) = product ( 1 <= i <= n ) exp ( - x(i)\^2 );
- GN, the interior of the N-dimensional octahedron;
- H2, the interior of the 2-dimensional hexagon;
- PAR, the first parabolic region;
- PAR2, the second parabolic region;
- PAR3, the third parabolic region;
- S2, the interior of the circle;
- S3, the interior of the sphere;
- SN, the interior of the N-dimensional hypersphere;
- SN_SHELL, the region contained between two concentric
N-dimensional hyperspheres;
- T2, the interior of the triangle;
- T3, the interior of the tetrahedron;
- TN, the interior of the N-dimensional simplex;
- TOR3:S2, the interior of a 3-dimensional torus with circular
cross-section;
- TOR3:C2, the interior of a 3-dimensional torus with square
cross-section;
- U2, the “surface” of the circle;
- U3, the surface of the sphere;
- UN, the surface of the N-dimensional sphere;
We have added a few new terms for 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;
- EPN_GLG, the positive 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 space [0,+oo)\^N, with the exponential
or Laguerre weight function:\
w(x) = product ( 1 <= i <= n ) exp ( - x(i) );
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”}
STROUD is available in a C version
and a C++ version and a FORTRAN77
version and a FORTRAN90
version and a MATLAB
version.
DISK_RULE, a C++ library
which computes quadrature rules for the unit disk in 2D, that is, the
interior of the circle of radius 1 and center (0,0).
FELIPPA, a C++ library which
defines quadrature rules for lines, triangles, quadrilaterals, pyramids,
wedges, tetrahedrons and hexahedrons.
PYRAMID_RULE, a C++
program which computes a quadrature rule for a pyramid.
SIMPLEX_GM_RULE,
a C++ library which defines Grundmann-Moeller quadrature rules over the
interior of a triangle in 2D, a tetrahedron in 3D, or over the interior
of the simplex in M dimensions.
SPHERE_LEBEDEV_RULE,
a C++ library which computes Lebedev quadrature rules on the surface of
the unit sphere in 3D.
TETRAHEDRON_ARBQ_RULE,
a C++ library which returns quadrature rules, with exactness up to total
degree 15, over the interior of a tetrahedron in 3D, by Hong Xiao and
Zydrunas Gimbutas.
TETRAHEDRON_KEAST_RULE,
a C++ library which defines ten quadrature rules, with exactness degrees
0 through 8, over the interior of a tetrahedron in 3D.
TETRAHEDRON_NCC_RULE,
a C++ library which defines Newton-Cotes Closed (NCC) quadrature rules
over the interior of a tetrahedron in 3D.
TETRAHEDRON_NCO_RULE,
a C++ library which defines Newton-Cotes Open (NCO) quadrature rules
over the interior of a tetrahedron in 3D.
TRIANGLE_DUNAVANT_RULE,
a C++ library which defines Dunavant rules for quadrature over the
interior of a triangle in 2D.
TRIANGLE_FEKETE,
a C++ library which defines Fekete rules for interpolation or quadrature
over the interior of a triangle in 2D.
TRIANGLE_LYNESS_RULE,
a C++ library which returns Lyness-Jespersen quadrature rules over the
interior of a triangle in 2D.
TRIANGLE_NCC_RULE,
a C++ library which defines Newton-Cotes Closed (NCC) quadrature rules
over the interior of a triangle in 2D.
TRIANGLE_NCO_RULE,
a C++ library which defines Newton-Cotes Open (NCO) quadrature rules
over the interior of a triangle in 2D.
TRIANGLE_WANDZURA_RULE,
a C++ library which returns quadrature rules of exactness 5, 10, 15, 20,
25 and 30 over the interior of the triangle in 2D.
Reference: {#reference align=”center”}
- Milton Abramowitz, Irene Stegun,\
Handbook of Mathematical Functions,\
National Bureau of Standards, 1964,\
ISBN: 0-486-61272-4,\
LC: QA47.A34.
- Jarle Berntsen, Terje Espelid,\
Algorithm 706: DCUTRI: an algorithm for adaptive cubature over a
collection of triangles,\
ACM Transactions on Mathematical Software,\
Volume 18, Number 3, September 1992, pages 329-342.
- SF Bockman,\
Generalizing the Formula for Areas of Polygons to Moments,\
American Mathematical Society Monthly,\
Volume 96, Number 2, February 1989, pages 131-132.
- Paul Bratley, Bennett Fox, Linus Schrage,\
A Guide to Simulation,\
Second Edition,\
Springer, 1987,\
ISBN: 0387964673,\
LC: QA76.9.C65.B73.
- William Cody, Kenneth Hillstrom,\
Chebyshev Approximations for the Natural Logarithm of the Gamma
Function, Mathematics of Computation,\
Volume 21, Number 98, April 1967, pages 198-203.
- Philip Davis, Philip Rabinowitz,\
Methods of Numerical Integration,\
Second Edition,\
Dover, 2007,\
ISBN: 0486453391,\
LC: QA299.3.D28.
- Elise deDoncker, Ian Robinson,\
Algorithm 612: Integration over a Triangle Using Nonlinear
Extrapolation,\
ACM Transactions on Mathematical Software,\
Volume 10, Number 1, March 1984, pages 17-22.
- Hermann Engels,\
Numerical Quadrature and Cubature,\
Academic Press, 1980,\
ISBN: 012238850X,\
LC: QA299.3E5.
- Thomas Ericson, Victor Zinoviev,\
Codes on Euclidean Spheres,\
Elsevier, 2001,\
ISBN: 0444503293,\
LC: QA166.7E75
- Carlos Felippa,\
A compendium of FEM integration formulas for symbolic work,\
Engineering Computation,\
Volume 21, Number 8, 2004, pages 867-890.
- Gerald Folland,\
How to Integrate a Polynomial Over a Sphere,\
American Mathematical Monthly,\
Volume 108, Number 5, May 2001, pages 446-448.
- Bennett Fox,\
Algorithm 647: Implementation and Relative Efficiency of Quasirandom
Sequence Generators,\
ACM Transactions on Mathematical Software,\
Volume 12, Number 4, December 1986, pages 362-376.
- Axel Grundmann, Michael Moeller,\
Invariant Integration Formulas for the N-Simplex by Combinatorial
Methods,\
SIAM Journal on Numerical Analysis,\
Volume 15, Number 2, April 1978, pages 282-290.
- John Harris, Horst Stocker,\
Handbook of Mathematics and Computational Science,\
Springer, 1998,\
ISBN: 0-387-94746-9,\
LC: QA40.S76.
- Patrick Keast,\
Moderate Degree Tetrahedral Quadrature Formulas,\
Computer Methods in Applied Mechanics and Engineering,\
Volume 55, Number 3, May 1986, pages 339-348.
- Vladimir Krylov,\
Approximate Calculation of Integrals,\
Dover, 2006,\
ISBN: 0486445798,\
LC: QA311.K713.
- Dirk Laurie,\
Algorithm 584: CUBTRI, Automatic Cubature Over a Triangle,\
ACM Transactions on Mathematical Software,\
Volume 8, Number 2, 1982, pages 210-218.
- Frank Lether,\
A Generalized Product Rule for the Circle,\
SIAM Journal on Numerical Analysis,\
Volume 8, Number 2, June 1971, pages 249-253.
- James Lyness, Dennis Jespersen,\
Moderate Degree Symmetric Quadrature Rules for the Triangle,\
Journal of the Institute of Mathematics and its Applications,\
Volume 15, Number 1, February 1975, pages 19-32.
- James Lyness, BJJ McHugh,\
Integration Over Multidimensional Hypercubes, A Progressive
Procedure,\
The Computer Journal,\
Volume 6, 1963, pages 264-270.
- AD McLaren,\
Optimal Numerical Integration on a Sphere,\
Mathematics of Computation,\
Volume 17, Number 84, October 1963, pages 361-383.
- Albert Nijenhuis, Herbert Wilf,\
Combinatorial Algorithms for Computers and Calculators,\
Second Edition,\
Academic Press, 1978,\
ISBN: 0-12-519260-6,\
LC: QA164.N54.
- William Peirce,\
Numerical Integration Over the Planar Annulus,\
Journal of the Society for Industrial and Applied Mathematics,\
Volume 5, Number 2, June 1957, pages 66-73.
- Hans Rudolf Schwarz,\
Finite Element Methods,\
Academic Press, 1988,\
ISBN: 0126330107,\
LC: TA347.F5.S3313.
- Gilbert Strang, George Fix,\
An Analysis of the Finite Element Method,\
Cambridge, 1973,\
ISBN: 096140888X,\
LC: TA335.S77.
- 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.
- Stephen Wandzura, Hong Xiao,\
Symmetric Quadrature Rules on a Triangle,\
Computers and Mathematics with Applications,\
Volume 45, 2003, pages 1829-1840.
- Stephen Wolfram,\
The Mathematica Book,\
Fourth Edition,\
Cambridge University Press, 1999,\
ISBN: 0-521-64314-7,\
LC: QA76.95.W65.
- Dongbin Xiu,\
Numerical integration formulas of degree two,\
Applied Numerical Mathematics,\
Volume 58, 2008, pages 1515-1520.
- Olgierd Zienkiewicz,\
The Finite Element Method,\
Sixth Edition,\
Butterworth-Heinemann, 2005,\
ISBN: 0750663200,\
LC: TA640.2.Z54
- Daniel Zwillinger, editor,\
CRC Standard Mathematical Tables and Formulae,\
30th Edition,\
CRC Press, 1996,\
ISBN: 0-8493-2479-3,\
LC: QA47.M315.
Source Code: {#source-code align=”center”}
Examples and Tests: {#examples-and-tests align=”center”}
List of Routines: {#list-of-routines align=”center”}
- ARC_SINE computes the arc sine function, with argument
truncation.
- BALL_F1_ND approximates an integral inside a ball in ND.
- BALL_F3_ND approximates an integral inside a ball in ND.
- BALL_MONOMIAL_ND integrates a monomial on a ball in ND.
- BALL_UNIT_07_3D approximates an integral inside the unit ball
in 3D.
- BALL_UNIT_14_3D approximates an integral inside the unit ball
in 3D.
- BALL_UNIT_15_3D approximates an integral inside the unit ball
in 3D.
- BALL_UNIT_F1_ND approximates an integral inside the unit ball
in ND.
- BALL_UNIT_F3_ND approximates an integral inside the unit ball
in ND.
- BALL_UNIT_VOLUME_3D computes the volume of the unit ball in
3D.
- BALL_UNIT_VOLUME_ND computes the volume of the unit ball in
ND.
- BALL_VOLUME_3D computes the volume of a ball in 3D.
- BALL_VOLUME_ND computes the volume of a ball in ND.
- 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.
- CIRCLE_ANNULUS approximates an integral in an annulus.
- CIRCLE_ANNULUS_AREA_2D returns the area of a circular annulus
in 2D.
- CIRCLE_ANNULUS_SECTOR approximates an integral in a circular
annulus sector.
- CIRCLE_ANNULUS_SECTOR_AREA_2D returns the area of a circular
annulus sector in 2D.
- CIRCLE_AREA_2D returns the area of a circle in 2D.
- CIRCLE_CAP_AREA_2D computes the area of a circle cap in 2D.
- CIRCLE_CUM approximates an integral on the circumference of a
circle in 2D.
- CIRCLE_RT_SET sets an R, THETA product quadrature rule in the
unit circle.
- CIRCLE_RT_SIZE sizes an R, THETA product quadrature rule in
the unit circle.
- CIRCLE_RT_SUM applies an R, THETA product quadrature rule
inside a circle.
- CIRCLE_SECTOR approximates an integral in a circular sector.
- CIRCLE_SECTOR_AREA_2D returns the area of a circular sector
in 2D.
- CIRCLE_TRIANGLE_AREA_2D returns the area of a circle triangle
in 2D.
- CIRCLE_XY_SET sets an XY quadrature rule inside the unit
circle in 2D.
- CIRCLE_XY_SIZE sizes an XY quadrature rule inside the unit
circle in 2D.
- CIRCLE_XY_SUM applies an XY quadrature rule inside a circle in
2D.
- CN_GEG_00_1 implements the midpoint rule for region CN_GEG.
- CN_GEG_00_1_SIZE sizes the midpoint rule for region CN_GEG.
- 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 rule for region CN_GEG.
- CN_GEG_02_XIU_SIZE sizes the Xiu 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_00_1 implements the midpoint rule for region CN_JAC.
- CN_JAC_00_1_SIZE sizes the midpoint rule for region CN_JAC.
- 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 rule for region CN_JAC.
- CN_JAC_02_XIU_SIZE sizes the Xiu 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 rule for region CN_LEG.
- CN_LEG_02_XIU_SIZE sizes the Xiu 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.
- CONE_UNIT_3D approximates an integral inside the unit cone in
3D.
- CONE_VOLUME_3D returns the volume of a cone in 3D.
- CUBE_SHELL_ND approximates an integral inside a cubic shell in
N dimensions.
- CUBE_SHELL_VOLUME_ND computes the volume of a cubic shell in
ND.
- CUBE_UNIT_3D approximates an integral inside the unit cube in
3D.
- CUBE_UNIT_ND approximates an integral inside the unit cube in
ND.
- CUBE_UNIT_VOLUME_ND returns the volume of the unit cube in
ND.
- ELLIPSE_AREA_2D returns the area of an ellipse in 2D.
- ELLIPSE_CIRCUMFERENCE_2D returns the circumference of an
ellipse in 2D.
- ELLIPSE_ECCENTRICITY_2D returns the eccentricity of an ellipse
in 2D.
- ELLIPSOID_VOLUME_3D returns the volume of an ellipsoid in 3d.
- EN_R2_01_1 implements the Stroud rule 1.1 for region EN_R2.
- EN_R2_01_1_SIZE sizes the Stroud rule 1.1 for region EN_R2.
- EN_R2_02_XIU implements the Xiu rule for region EN_R2.
- EN_R2_02_XIU_SIZE sizes the Xiu for region EN_R2.
- EN_R2_03_1 implements the Stroud rule 3.1 for region EN_R2.
- EN_R2_03_1_SIZE sizes the Stroud rule 3.1 for region EN_R2.
- EN_R2_03_2 implements the Stroud rule 3.2 for region EN_R2.
- EN_R2_03_2_SIZE sizes the Stroud rule 3.2 for region EN_R2.
- EN_R2_03_XIU implements the Xiu precision 3 rule for region
EN_R2.
- EN_R2_03_XIU_SIZE sizes the Xiu precision 3 rule for region
EN_R2.
- EN_R2_05_1 implements the Stroud rule 5.1 for region EN_R2.
- EN_R2_05_1_SIZE sizes the Stroud rule 5.1 for region EN_R2.
- EN_R2_05_2 implements the Stroud rule 5.2 for region EN_R2.
- EN_R2_05_2_SIZE sizes the Stroud rule 5.2 for region EN_R2.
- EN_R2_05_3 implements the Stroud rule 5.3 for region EN_R2.
- EN_R2_05_3_SIZE sizes the Stroud rule 5.3 for region EN_R2.
- EN_R2_05_4 implements the Stroud rule 5.4 for region EN_R2.
- EN_R2_05_4_SIZE sizes the Stroud rule 5.4 for region EN_R2.
- EN_R2_05_5 implements the Stroud rule 5.5 for region EN_R2.
- EN_R2_05_5_SIZE sizes the Stroud rule 5.5 for region EN_R2.
- EN_R2_05_6 implements the Stroud rule 5.6 for region EN_R2.
- EN_R2_05_6_SIZE sizes the Stroud rule 5.6 for region EN_R2.
- EN_R2_07_1 implements the Stroud rule 7.1 for region EN_R2.
- EN_R2_07_1_SIZE sizes the Stroud rule 7.1 for region EN_R2.
- EN_R2_07_2 implements the Stroud rule 7.2 for region EN_R2.
- EN_R2_07_2_SIZE sizes the Stroud rule 7.2 for region EN_R2.
- EN_R2_07_3 implements the Stroud rule 7.3 for region EN_R2.
- EN_R2_07_3_SIZE sizes the Stroud rule 7.3 for region EN_R2.
- EN_R2_09_1 implements the Stroud rule 9.1 for region EN_R2.
- EN_R2_09_1_SIZE sizes the Stroud rule 9.1 for region EN_R2.
- EN_R2_11_1 implements the Stroud rule 11.1 for region EN_R2.
- EN_R2_11_1_SIZE sizes the Stroud rule 11.1 for region
EN_R2.
- EN_R2_MONOMIAL_INTEGRAL evaluates monomial integrals in
EN_R2.
- 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_00_1 implements the “midpoint rule” for region
EPN_GLG.
- EPN_GLG_00_1_SIZE sizes the midpoint rule for region
EPN_GLG.
- 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 rule for region EPN_GLG.
- EPN_GLG_02_XIU_SIZE sizes the Xiu rule for region EPN_GLG.
- EPN_GLG_MONOMIAL_INTEGRAL: integral of monomial with GLG
weight on EPN.
- EPN_LAG_00_1 implements the “midpoint rule” for region
EPN_LAG.
- EPN_LAG_00_1_SIZE sizes the midpoint rule for region
EPN_LAG.
- 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 rule for region EPN_LAG.
- EPN_LAG_02_XIU_SIZE sizes the Xiu rule for region EPN_LAG.
- EPN_LAG_MONOMIAL_INTEGRAL: integral of monomial with Laguerre
weight on EPN.
- HEXAGON_AREA_2D returns the area of a regular hexagon in 2D.
- HEXAGON_SUM applies a quadrature rule inside a hexagon in 2D.
- HEXAGON_UNIT_AREA_2D returns the area of the unit regular
hexagon in 2D.
- HEXAGON_UNIT_SET sets a quadrature rule inside the unit
hexagon in 2D.
- HEXAGON_UNIT_SIZE sizes a quadrature rule inside the unit
hexagon in 2D.
- I4_FACTORIAL returns N!.
- I4_FACTORIAL2 computes the double factorial function.
- I4_MAX returns the maximum of two I4’s.
- I4_MIN returns the minimum of two I4’s.
- I4_POWER returns the value of I\^J.
- I4VEC_SUM sums the entries of an I4VEC.
- I4VEC_ZERO zeroes an I4VEC.
- KSUB_NEXT2 generates the subsets of size K from a set of
size N.
- LEGENDRE_SET sets abscissas and weights for Gauss-Legendre
quadrature.
- LEGENDRE_SET_X1 sets a Gauss-Legendre rule for ( 1 + X ) *
F(X) on [-1,1].
- LEGENDRE_SET_X2 sets Gauss-Legendre rules for ( 1 + X
)\^2*F(X) on [-1,1].
- LENS_HALF_2D approximates an integral in a circular half lens
in 2D.
- LENS_HALF_AREA_2D returns the area of a circular half lens in
2D.
- LENS_HALF_H_AREA_2D returns the area of a circular half lens
in 2D.
- LENS_HALF_W_AREA_2D returns the area of a circular half lens
in 2D.
- MONOMIAL_VALUE evaluates a monomial.
- OCTAHEDRON_UNIT_ND approximates integrals in the unit
octahedron in ND.
- OCTAHEDRON_UNIT_VOLUME_ND returns the volume of the unit
octahedron in ND.
- PARALLELIPIPED_VOLUME_3D returns the volume of a
parallelipiped in 3D.
- PARALLELIPIPED_VOLUME_ND returns the volume of a
parallelipiped in ND.
- POLYGON_1_2D integrates the function 1 over a polygon in 2D.
- POLYGON_X_2D integrates the function X over a polygon in 2D.
- POLYGON_XX_2D integrates the function X*X over a polygon in
2D.
- POLYGON_XY_2D integrates the function X*Y over a polygon in
2D.
- POLYGON_Y_2D integrates the function Y over a polygon in 2D.
- POLYGON_YY_2D integrates the function Y*Y over a polygon in
2D.
- PYRAMID_UNIT_O01_3D approximates an integral inside the unit
pyramid in 3D.
- PYRAMID_UNIT_O05_3D approximates an integral inside the unit
pyramid in 3D.
- PYRAMID_UNIT_O06_3D approximates an integral inside the unit
pyramid in 3D.
- PYRAMID_UNIT_O08_3D approximates an integral inside the unit
pyramid in 3D.
- PYRAMID_UNIT_O08B_3D approximates an integral inside the unit
pyramid in 3D.
- PYRAMID_UNIT_O09_3D approximates an integral inside the unit
pyramid in 3D.
- PYRAMID_UNIT_O13_3D approximates an integral inside the unit
pyramid in 3D.
- PYRAMID_UNIT_O18_3D approximates an integral inside the unit
pyramid in 3D.
- PYRAMID_UNIT_O27_3D approximates an integral inside the unit
pyramid in 3D.
- PYRAMID_UNIT_O48_3D approximates an integral inside the unit
pyramid in 3D.
- PYRAMID_UNIT_MONOMIAL_3D: monomial integral in a unit pyramid
in 3D.
- PYRAMID_UNIT_VOLUME_3D: volume of a unit pyramid with square
base in 3D.
- PYRAMID_VOLUME_3D returns the volume of a pyramid with square
base in 3D.
- QMDPT carries out product midpoint quadrature for the unit cube
in ND.
- QMULT_1D approximates an integral over an interval in 1D.
- QMULT_2D approximates an integral with varying Y dimension in
2D.
- QMULT_3D approximates an integral with varying Y and Z
dimension in 3D.
- R8_ABS returns the absolute value of an R8.
- R8_CHOOSE computes the binomial coefficient C(N,K) as an R8.
- R8_EPSILON returns the R8 roundoff unit.
- R8_FACTORIAL computes the factorial of N.
- 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_MIN returns the minimum of two R8’s.
- R8_MOP returns the I-th power of -1 as an R8 value.
- R8_PSI evaluates the function Psi(X).
- R8_SWAP switches two R8’s.
- R8_SWAP3 swaps three R8’s.
- R8_UNIFORM_01 is a unit pseudorandom R8.
- R8GE_DET computes the determinant of a matrix factored by
R8GE_FA or R8GE_TRF.
- R8GE_FA performs a LINPACK-style PLU factorization of a R8GE
matrix.
- R8VEC_DOT_PRODUCT computes the dot product of a pair of
R8VEC’s.
- R8VEC_EVEN_SELECT returns the I-th of N evenly spaced values
in [ XLO, XHI ].
- R8VEC_MIRROR_NEXT steps through all sign variations of an
R8VEC.
- R8VEC_PRINT prints an R8VEC.
- R8VEC_ZERO zeroes an R8VEC.
- RECTANGLE_3D approximates an integral inside a rectangular
block in 3D.
- RECTANGLE_SUB_2D carries out a composite quadrature over a
rectangle in 2D.
- RULE_ADJUST maps a quadrature rule from [A,B] to [C,D].
- S_LEN_TRIM returns the length of a string to the last
nonblank.
- SIMPLEX_ND approximates an integral inside a simplex in ND.
- SIMPLEX_UNIT_01_ND approximates an integral inside the unit
simplex in ND.
- SIMPLEX_UNIT_03_ND approximates an integral inside the unit
simplex in ND.
- SIMPLEX_UNIT_05_ND approximates an integral inside the unit
simplex in ND.
- SIMPLEX_UNIT_05_2_ND approximates an integral inside the
unit simplex in ND.
- SIMPLEX_UNIT_VOLUME_ND returns the volume of the unit simplex
in ND.
- SIMPLEX_VOLUME_ND returns the volume of a simplex in ND.
- SIN_POWER_INT evaluates the sine power integral.
- SPHERE_05_ND approximates an integral on the surface of a
sphere in ND.
- SPHERE_07_1_ND approximates an integral on the surface of a
sphere in ND.
- SPHERE_AREA_3D computes the area of a sphere in 3D.
- SPHERE_AREA_ND computes the area of a sphere in ND.
- SPHERE_CAP_AREA_2D computes the surface area of a spherical
cap in 2D.
- SPHERE_CAP_AREA_3D computes the surface area of a spherical
cap in 3D.
- SPHERE_CAP_AREA_ND computes the area of a spherical cap in
ND.
- SPHERE_CAP_VOLUME_2D computes the volume of a spherical cap
in 2D.
- SPHERE_CAP_VOLUME_3D computes the volume of a spherical cap
in 3D.
- SPHERE_CAP_VOLUME_ND computes the volume of a spherical cap
in ND.
- SPHERE_K computes a factor useful for spherical computations.
- SPHERE_MONOMIAL_INT_ND integrates a monomial on the surface
of a sphere in ND.
- SPHERE_SHELL_03_ND approximates an integral inside a
spherical shell in ND.
- SPHERE_SHELL_VOLUME_ND computes the volume of a spherical
shell in ND.
- SPHERE_UNIT_03_ND approximates an integral on the surface of
the unit sphere in ND.
- SPHERE_UNIT_04_ND approximates an integral on the surface of
the unit sphere in ND.
- SPHERE_UNIT_05_ND approximates an integral on the surface of
the unit sphere in ND.
- SPHERE_UNIT_07_3D approximates an integral on the surface of
the unit sphere in 3D.
- SPHERE_UNIT_07_1_ND approximates an integral on the surface
of the unit sphere in ND.
- SPHERE_UNIT_07_2_ND approximates an integral on the surface
of the unit sphere in ND.
- SPHERE_UNIT_11_3D approximates an integral on the surface of
the unit sphere in 3D.
- SPHERE_UNIT_11_ND approximates an integral on the surface of
the unit sphere in ND.
- SPHERE_UNIT_14_3D approximates an integral on the surface of
the unit sphere in 3D.
- SPHERE_UNIT_15_3D approximates an integral on the surface of
the unit sphere in 3D.
- SPHERE_UNIT_AREA_3D computes the surface area of the unit
sphere in 3D.
- SPHERE_UNIT_AREA_ND computes the surface area of the unit
sphere in ND.
- SPHERE_UNIT_AREA_VALUES returns some areas of the unit sphere
in ND.
- SPHERE_UNIT_MONOMIAL_ND integrates a monomial on the surface
of the unit sphere in ND.
- SPHERE_UNIT_VOLUME_ND computes the volume of a unit sphere in
ND.
- SPHERE_UNIT_VOLUME_VALUES returns some volumes of the unit
sphere in ND.
- SPHERE_VOLUME_2D computes the volume of an implicit sphere in
2D.
- SPHERE_VOLUME_3D computes the volume of an implicit sphere in
3D.
- SPHERE_VOLUME_ND computes the volume of an implicit sphere in
ND.
- SQUARE_SUM carries out a quadrature rule over a square.
- SQUARE_UNIT_SET sets quadrature weights and abscissas in the
unit square.
- SQUARE_UNIT_SIZE sizes a quadrature rule in the unit square.
- SQUARE_UNIT_SUM carries out a quadrature rule over the unit
square.
- SUBSET_GRAY_NEXT generates all subsets of a set of order N,
one at a time.
- TETRA_07 approximates an integral inside a tetrahedron in 3D.
- TETRA_SUM carries out a quadrature rule in a tetrahedron in 3D.
- TETRA_TPRODUCT approximates an integral in a tetrahedron in 3D.
- TETRA_UNIT_SET sets quadrature weights and abscissas in the
unit tetrahedron.
- TETRA_UNIT_SIZE sizes quadrature weights and abscissas in the
unit tetrahedron.
- TETRA_UNIT_SUM carries out a quadrature rule in the unit
tetrahedron in 3D.
- TETRA_UNIT_VOLUME returns the volume of the unit tetrahedron.
- TETRA_VOLUME computes the volume of a tetrahedron.
- TIMESTAMP prints the current YMDHMS date as a time stamp.
- TORUS_1 approximates an integral on the surface of a torus in
3D.
- TORUS_14S approximates an integral inside a torus in 3D.
- TORUS_5S2 approximates an integral inside a torus in 3D.
- TORUS_6S2 approximates an integral inside a torus in 3D.
- TORUS_AREA_3D returns the area of a torus in 3D.
- TORUS_SQUARE_14C approximates an integral in a “square” torus
in 3D.
- TORUS_SQUARE_5C2 approximates an integral in a “square” torus
in 3D.
- TORUS_SQUARE_AREA_3D returns the area of a square torus in
3D.
- TORUS_SQUARE_VOLUME_3D returns the volume of a square torus
in 3D.
- TORUS_VOLUME_3D returns the volume of a torus in 3D.
- TRIANGLE_RULE_ADJUST adjusts a unit quadrature rule to an
arbitrary triangle.
- TRIANGLE_SUB carries out quadrature over subdivisions of a
triangular region.
- TRIANGLE_SUM carries out a unit quadrature rule in an arbitrary
triangle.
- TRIANGLE_SUM_ADJUSTED carries out an adjusted quadrature rule
in a triangle.
- TRIANGLE_UNIT_PRODUCT_SET sets a product rule on the unit
triangle.
- TRIANGLE_UNIT_PRODUCT_SIZE sizes a product rule on the unit
triangle.
- TRIANGLE_UNIT_SET sets a quadrature rule in the unit triangle.
- TRIANGLE_UNIT_SIZE returns the “size” of a unit triangle
quadrature rule.
- TRIANGLE_UNIT_VOLUME returns the “volume” of the unit triangle
in 2D.
- TRIANGLE_VOLUME returns the “volume” of a triangle in 2D.
- TVEC_EVEN computes an evenly spaced set of angles between 0 and
2*PI.
- TVEC_EVEN2 computes evenly spaced angles between 0 and 2*PI.
- TVEC_EVEN3 computes an evenly spaced set of angles between 0
and 2*PI.
- TVEC_EVEN_BRACKET computes evenly spaced angles between THETA1
and THETA2.
- TVEC_EVEN_BRACKET2 computes evenly spaced angles from THETA1
to THETA2.
- TVEC_EVEN_BRACKET3 computes evenly spaced angles from THETA1
to THETA2.
- VEC_LEX_NEXT generates vectors in lex order.
You can go up one level to the C++ source codes.
Last revised on 12 July 2014.