STROUD
Numerical Integration
in M Dimensions
STROUD,
a MATLAB library which
defines quadrature rules for a variety of Mdimensional regions,
including the interior of the square, cube and hypercube, the pyramid,
cone and ellipse, the hexagon, the Mdimensional 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 Ndimensional hypercube;

CN:C2, a 3dimensional pyramid;

CN:S2, a 3dimensional cone;

CN_SHELL, the region contained between two concentric
Ndimensional hypercubes;

ELP, the interior of the 2dimensional ellipse with
weight function 1/sqrt((xc)^2+y^2)/(sqrt((x+c)^2+y^2);

EN_R, all of Ndimensional space, with the weight function:
w(x) = exp (  sqrt ( sum ( 1 <= i < n ) x(i)^2 ) );

EN_R2, all of Ndimensional space, with the Hermite weight function:
w(x) = product ( 1 <= i <= n ) exp (  x(i)^2 );

GN, the interior of the Ndimensional octahedron;

H2, the interior of the 2dimensional 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 Ndimensional hypersphere;

SN_SHELL, the region contained between two concentric Ndimensional hyperspheres;

T2, the interior of the triangle;

T3, the interior of the tetrahedron;

TN, the interior of the Ndimensional simplex;

TOR3:S2, the interior of a 3dimensional torus with circular crosssection;

TOR3:C2, the interior of a 3dimensional torus with square crosssection;

U2, the "surface" of the circle;

U3, the surface of the sphere;

UN, the surface of the Ndimensional 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:
The computer code and data files described and made available on this web page
are distributed under
the GNU LGPL license.
Languages:
STROUD is available in
a C version and
a C++ version and
a FORTRAN90 version and
a MATLAB version.
Related Data and Programs:
DISK_RULE,
a MATLAB 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 MATLAB library which
defines quadrature rules for lines, triangles, quadrilaterals,
pyramids, wedges, tetrahedrons and hexahedrons.
PYRAMID_RULE,
a MATLAB program which
computes a quadrature rule for a pyramid.
SIMPLEX_GM_RULE,
a MATLAB library which
defines GrundmannMoeller 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 MATLAB library which
computes Lebedev quadrature rules
on the surface of the unit sphere in 3D.
stroud_test
TETRAHEDRON_ARBQ_RULE,
a MATLAB 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 MATLAB library which
defines ten quadrature rules, with exactness degrees 0 through 8,
over the interior of a tetrahedron in 3D.
TETRAHEDRON_NCC_RULE,
a MATLAB library which
defines NewtonCotes Closed (NCC) quadrature rules
over the interior of a tetrahedron in 3D.
TETRAHEDRON_NCO_RULE,
a MATLAB library which
defines NewtonCotes Open (NCO) quadrature rules
over the interior of a tetrahedron in 3D.
TRIANGLE_DUNAVANT_RULE,
a MATLAB library which
defines Dunavant rules for quadrature
over the interior of a triangle in 2D.
TRIANGLE_FEKETE,
a MATLAB library which
defines Fekete rules for quadrature or interpolation
over the interior of a triangle in 2D.
TRIANGLE_LYNESS_RULE,
a C++ library which
returns LynessJespersen quadrature rules
over the interior of a triangle in 2D.
TRIANGLE_NCC_RULE,
a MATLAB library which
defines NewtonCotes Closed (NCC) quadrature rules
over the interior of a triangle in 2D.
TRIANGLE_NCO_RULE,
a MATLAB library which
defines NewtonCotes Open (NCO) quadrature rules
over the interior of a triangle in 2D.
TRIANGLE_WANDZURA_RULE,
a MATLAB library which
returns quadrature rules of exactness 5, 10, 15, 20, 25 and 30
over the interior of the triangle in 2D.
Reference:

Milton Abramowitz, Irene Stegun,
Handbook of Mathematical Functions,
National Bureau of Standards, 1964,
ISBN: 0486612724,
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 329342.

SF Bockman,
Generalizing the Formula for Areas of Polygons to Moments,
American Mathematical Society Monthly,
Volume 96, Number 2, February 1989, pages 131132.

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 198203.

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 1722.

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 867890.

Gerald Folland,
How to Integrate a Polynomial Over a Sphere,
American Mathematical Monthly,
Volume 108, Number 5, May 2001, pages 446448.

Bennett Fox,
Algorithm 647:
Implementation and Relative Efficiency of Quasirandom
Sequence Generators,
ACM Transactions on Mathematical Software,
Volume 12, Number 4, December 1986, pages 362376.

Axel Grundmann, Michael Moeller,
Invariant Integration Formulas for the NSimplex
by Combinatorial Methods,
SIAM Journal on Numerical Analysis,
Volume 15, Number 2, April 1978, pages 282290.

John Harris, Horst Stocker,
Handbook of Mathematics and Computational Science,
Springer, 1998,
ISBN: 0387947469,
LC: QA40.S76.

Patrick Keast,
Moderate Degree Tetrahedral Quadrature Formulas,
Computer Methods in Applied Mechanics and Engineering,
Volume 55, Number 3, May 1986, pages 339348.

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 210218.

Frank Lether,
A Generalized Product Rule for the Circle,
SIAM Journal on Numerical Analysis,
Volume 8, Number 2, June 1971, pages 249253.

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 1932.

James Lyness, BJJ McHugh,
Integration Over Multidimensional Hypercubes,
A Progressive Procedure,
The Computer Journal,
Volume 6, 1963, pages 264270.

AD McLaren,
Optimal Numerical Integration on a Sphere,
Mathematics of Computation,
Volume 17, Number 84, October 1963, pages 361383.

Albert Nijenhuis, Herbert Wilf,
Combinatorial Algorithms for Computers and Calculators,
Second Edition,
Academic Press, 1978,
ISBN: 0125192606,
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 6673.

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 18291840.

Stephen Wolfram,
The Mathematica Book,
Fourth Edition,
Cambridge University Press, 1999,
ISBN: 0521643147,
LC: QA76.95.W65.

Dongbin Xiu,
Numerical integration formulas of degree two,
Applied Numerical Mathematics,
Volume 58, 2008, pages 15151520.

Olgierd Zienkiewicz,
The Finite Element Method,
Sixth Edition,
ButterworthHeinemann, 2005,
ISBN: 0750663200,
LC: TA640.2.Z54

Daniel Zwillinger, editor,
CRC Standard Mathematical Tables and Formulae,
30th Edition,
CRC Press, 1996,
ISBN: 0849324793,
LC: QA47.M315.
Source Code:

ball_f1_nd.m,
approximates an integral in a ball in ND;

ball_f3_nd.m,
approximates an integral in a ball in ND;

ball_monomial_nd.m,
approximates the integral of a monomial in a ball in ND;

ball_unit_07_3d.m,
approximates an integral in the unit ball in 3D;

ball_unit_14_3d.m,
approximates an integral in the unit ball in 3D;

ball_unit_15_3d.m,
approximates an integral in the unit ball in 3D;

ball_unit_f1_nd.m,
approximates an integral in the unit ball in ND;

ball_unit_f3_nd.m,
approximates an integral in the unit ball in ND;

ball_unit_volume_3d.m,
returns the volume of the unit ball in 3D;

ball_unit_volume_nd.m,
returns the volume of the unit ball in ND;

ball_volume_3d.m,
returns the volume of a ball in 3D;

ball_volume_nd.m,
returns the volume of a ball in ND;

c1_geg_monomial_integral.m
integral of a monomial with Gegenbauer weight over C1.

c1_jac_monomial_integral.m
integral of a monomial with Jacobi weight over C1.

c1_leg_monomial_integral.m
integral of a monomial with Legendre weight over C1.

circle_annulus.m,
approximates an integral inside a circular annulus in 2D;

circle_annulus_area_2d.m,
returns the area of a circular annulus in 2D;

circle_annulus_sector.m,
approximates an integral in a sector of a circular annulus in 2D;

circle_annulus_sector_area_2d.m,
returns the area of a sector of a circular annulus in 2D;

circle_area_2d.m,
returns the area of a circle in 2D;

circle_cap_area_2d.m,
computes the area of a circle cap in 2D.

circle_cum.m,
computes an integral on the circumference of a circle in 2D;

circle_rt_set.m,
sets an RTheta product quadrature rule for inside a circle in 2D;

circle_rt_size.m,
sizes an RTheta product quadrature rule for inside a circle in 2D;

circle_rt_sum.m,
applies an RTheta product quadrature rule inside a circle in 2D;

circle_sector.m,
approximates an integral in a circular sector in 2D;

circle_sector_area_2d.m,
returns the area of a circular sector in 2D;

circle_triangle_area_2d.m,
returns the area of a circular triangle in 2D;

circle_xy_set.m,
sets an XY quadrature rule for inside a circle in 2D;

circle_xy_size.m,
sizes an XY product quadrature rule for inside a circle in 2D;

circle_xy_sum.m,
applies an XY quadrature rule inside a circle in 2D;

cn_geg_00_1.m
implements the midpoint rule for region CN_GEG.

cn_geg_01_1.m
implements a precision 1 rule for region CN_GEG.

cn_geg_02_xiu.m
implements the Xiu rule for region CN_GEG.

cn_geg_03_xiu.m
implements the Xiu rule for region CN_GEG.

cn_geg_monoial_integral.m
integral of a monomial with Gegenbauer weight over CN.

cn_jac_00_1.m
implements the midpoint rule for region CN_JAC.

cn_jac_01_1.m
implements a precision 1 rule for region CN_JAC.

cn_jac_02_xiu.m
implements the Xiu rule for region CN_JAC.

cn_jac_monoial_integral.m
integral of a monomial with Jacobi weight over CN.

cn_leg_01_1.m
implements the midpoint rule for region CN_LEG.

cn_leg_02_xiu.m
implements the Xiu rule for region CN_LEG.

cn_leg_03_1.m
implements the Stroud CN:31 rule for region CN_LEG.

cn_leg_03_xiu.m
implements the Xiu rule for region CN_LEG.

cn_leg_05_1.m
implements the Stroud CN:51 rule for region CN_LEG.

cn_leg_05_2.m
implements the Stroud CN:52 rule for region CN_LEG.

cn_leg_monoial_integral.m
integral of a monomial with Legendre weight over CN.

cone_unit_3d.m,
approximates an integral inside a cone in 3D;

cone_volume_3d.m,
returns the volume of a cone in 3D;

cube_shell_nd.m,
aproximates an integral inside a cubic shell in ND;

cube_shell_volume_nd.m,
returns the volume of a cubic shell in ND;

cube_unit_3d.m,
approximates an integral inside the unit cube in 3D;

cube_unit_nd.m,
approximates an integral inside the unit cube in ND;

cube_unit_volume_nd.m,
returns the volume of the unit cube in ND;

ellipse_area_2d.m,
computes the area of an ellipse in 2D;

ellipse_circumference_2d.m,
computes the circumference of an ellipse in 2D;

ellipse_eccentricity_2d.m,
computes the eccentricity of an ellipse in 2D;

ellipsoid_volume_3d.m,
computes the volume of an ellipsoid in 3D;

en_r2_01_1.m
a precision 1 rule for EN_R2.

en_r2_02_xiu.m
a precision 2 rule for EN_R2.

en_r2_03_1.m
a precision 3 rule for EN_R2.

en_r2_03_2.m
a precision 3 rule for EN_R2.

en_r2_03_xiu.m
a precision 3 rule for EN_R2.

en_r2_05_1.m
a precision 5 rule for EN_R2.

en_r2_05_2.m
a precision 5 rule for EN_R2.

en_r2_05_3.m
a precision 5 rule for EN_R2.

en_r2_05_4.m
a precision 5 rule for EN_R2.

en_r2_05_5.m
a precision 5 rule for EN_R2.

en_r2_05_6.m
a precision 5 rule for EN_R2.

en_r2_07_1.m
a precision 7 rule for EN_R2.

en_r2_07_2.m
a precision 7 rule for EN_R2.

en_r2_07_3.m
a precision 7 rule for EN_R2.

en_r2_09_1.m
a precision 9 rule for EN_R2.

en_r2_11_1.m
a precision 11 rule for EN_R2.

en_r2_monomial_integral.m
evaluates the exact integral of a monomial in Stroud's EN_R2 region.

ep1_glg_monomial_integral.m
integral of monomial with generalized Laguerre weight on EP1.

ep1_lag_monomial_integral.m
integral of monomial with Laguerre weight on EP1.

epn_glg_001.m
implements the midpoint rule for region EPN_GLG.

epn_glg_01_1.m
implements a precision 1 rule for region EPN_GLG.

epn_glg_02_xiu.m
implements the Xiu rule for region EPN_GLG.

epn_glg_monomial_integral.m
integral of monomial with generalized Laguerre weight on EPN.

epn_lag_001.m
implements the midpoint rule for region EPN_LAG.

epn_lag_01_1.m
implements a precision 1 rule for region EPN_LAG.

epn_lag_02_xiu.m
implements the Xiu rule for region EPN_LAG.

epn_lag_monomial_integral.m
integral of monomial with Laguerre weight on EPN.

gw_02_xiu.m
implements the GolubWelsch version of the Xiu rule.

hexagon_area_2d.m,
returns the area of a regular hexagon in 2D;

hexagon_sum.m,
applies a quadrature rule for a hexagon in 2D;

hexagon_unit_area_2d.m,
returns the area of the unit hexagon in 2D;

hexagon_unit_set.m,
sets a quadrature rule for the unit hexagon in 2D;

hexagon_unit_size.m,
sizes a quadrature rule for the unit hexagon in 2D;

i4_factorial.m,
computes N! for small values of N;

i4_factorial2.m,
computes N!!, the double factorial function;

ksub_next2.m,
computes the next K subset of an N set;

legendre_set.m,
sets a GaussLegendre rule to integrate F(X)
on [1,1];

legendre_set_x1.m,
sets a GaussLegendre rule to integrate ( 1 + X ) * F(X)
on [1,1];

legendre_set_x2.m,
sets a GaussLegendre rule to integrate ( 1 + X )**2 * F(X)
on [1,1];

lens_half_area_2d.m,
returns the area of a circular half lens in 2D;

lens_half_area_h_2d.m,
returns the area of a circular half lens in 2D;

lens_half_area_w_2d.m,
returns the area of a circular half lens in 2D;

monomial_value.m,
evaluates a monomial given the exponents.

octahedron_volume_nd.m,
approximates an integral in the unit octahedron in ND;

octahedron_unit_volume_nd.m,
returns the volume of the unit octahedron in ND;

parallelipiped_volume_3d.m,
returns the volume of a parallelipiped in 3D;

parallelipiped_volume_nd.m,
returns the volume of a parallelipiped in ND;

polygon_1_2d.m,
integrates the function 1 over a polygon in 2D;

polygon_x_2d.m,
integrates the function X over a polygon in 2D;

polygon_xx_2d.m,
integrates the function X^2 over a polygon in 2D;

polygon_xy_2d.m,
integrates the function X*Y over a polygon in 2D;

polygon_y_2d.m,
integrates the function Y over a polygon in 2D;

polygon_yy_2d.m,
integrates the function Y*Y over a polygon in 2D;

pyramid_unit_o01_3d.m,
approximates an integral inside a unit pyramid in 3d.

pyramid_unit_o05_3d.m,
approximates an integral inside a unit pyramid in 3d.

pyramid_unit_o06_3d.m,
approximates an integral inside a unit pyramid in 3d.

pyramid_unit_o08_3d.m,
approximates an integral inside a unit pyramid in 3d.

pyramid_unit_o08b_3d.m,
approximates an integral inside a unit pyramid in 3d.

pyramid_unit_o09_3d.m,
approximates an integral inside a unit pyramid in 3d.

pyramid_unit_o13_3d.m,
approximates an integral inside a unit pyramid in 3d.

pyramid_unit_o18_3d.m,
approximates an integral inside a unit pyramid in 3d.

pyramid_unit_o27_3d.m,
approximates an integral inside a unit pyramid in 3d.

pyramid_unit_o48_3d.m,
approximates an integral inside a unit pyramid in 3D;

pyramid_unit_monomial_3d.m,
returns the exact integral of a monomial in a unit pyramid in 3D;

pyramid_unit_volume_3d.m,
returns the volume of a unit pyramid in 3D;

pyramid_volume_3d.m,
returns the volume of a pyramid in 3D;

qmdpt.m,
carries out product midpoint quadrature inside the unit cube in ND;

qmult_1d.m,
approximates the integral of a function over an interval in 1D;

qmult_2d.m,
approximates the integral of a function over a region with
varying Y dimensions in 2D;

qmult_3d.m,
approximates the integral of a function over a region with
varying Y and Z dimensions in 3D;

r8_asin.m,
computes the inverse sine of an angle;

r8_choose.m,
computes the binomial coefficient C(N,K).

r8_factorial.m
evaluates the factorial function.

r8_huge.m,
returns a "huge" R8;

r8_hyper_2f1.m
evaluates the hypergeometric function 2F1(A,B,C,X).

r8_mop.m
returns the Ith power of 1 as an R8 value.

r8_psi.m
evaluates the function Psi(X).

r8_swap.m,
swaps two R8s;

r8_swap3.m,
swaps three R8s;

r8_uniform_01.m,
returns a unit pseudorandom number R8;

r8ge_det.m,
computes the determinant of a matrix factored by R8GE_FA;

r8ge_fa.m,
factors a general matrix;

r8vec_even_select.m,
returns the Ith of N even spaced R8s;

r8vec_print.m,
prints an R8VEC;

rectangle_3d.m,
approximates an integral inside a rectangular block in 3D;

rectangle_sub_2d.m,
carries out composite quadrature in a rectangle in 2D;

rule_adjust.m,
maps a quadrature rule from [A,B] to [C,D];

s_len_trim.m,
returns the length of a string to the last nonblank;

simplex_nd.m,
approximates an integral in a simplex in ND;

simplex_unit_01_nd.m,
approximates an integral in the unit simplex in ND;

simplex_unit_03_nd.m,
approximates an integral in the unit simplex in ND;

simplex_unit_05_nd.m,
approximates an integral in the unit simplex in ND;

simplex_unit_05_2_nd.m,
approximates an integral in the unit simplex in ND;

simplex_unit_volume_nd.m,
returns the volume of the unit simplex in ND;

simplex_volume_nd.m,
returns the volume of a simplex in ND;

sin_power_int.m,
computes the sine power integral;

sphere_05_nd.m,
approximates an integral on the surface of a sphere in ND;

sphere_07_1_nd.m,
approximates an integral on the surface of a sphere in ND;

sphere_area_3d.m,
computes the surface area of a sphere in 3D;

sphere_area_nd.m,
computes the surface area of a sphere in ND;

sphere_cap_area_2d.m,
computes the surface area of a spherical cap in 2D;

sphere_cap_area_3d.m,
computes the surface area of a spherical cap in 3D;

sphere_cap_area_nd.m,
computes the surface area of a spherical cap in ND;

sphere_cap_volume_2d.m,
computes the volume of a spherical cap in 2D;

sphere_cap_volume_3d.m,
computes the volume of a spherical cap in 3D;

sphere_cap_volume_nd.m,
computes the volume of a spherical cap in ND;

sphere_k.m,
returns a factor useful in spherical calculations;

sphere_monomial_int_nd.m,
integrates a monomial over the surface of a sphere in ND;

sphere_shell_03_nd.m,
approximates an integral inside a spherical shell in ND;

sphere_shell_volume_nd.m,
computes the volume of a spherical shell in ND;

sphere_unit_07_3d.m,
approximates an integral on the surface of the unit sphere in 3D;

sphere_unit_11_3d.m,
approximates an integral on the surface of the unit sphere in 3D;

sphere_unit_14_3d.m,
approximates an integral on the surface of the unit sphere in 3D;

sphere_unit_15_3d.m,
approximates an integral on the surface of the unit sphere in 3D;

sphere_unit_03_nd.m,
approximates an integral on the surface of the unit sphere in ND;

sphere_unit_04_nd.m,
approximates an integral on the surface of the unit sphere in ND;

sphere_unit_05_nd.m,
approximates an integral on the surface of the unit sphere in ND;

sphere_unit_07_1_nd.m,
approximates an integral on the surface of the unit sphere in ND;

sphere_unit_07_2_nd.m,
approximates an integral on the surface of the unit sphere in ND;

sphere_unit_11_nd.m,
approximates an integral on the surface of the unit sphere in ND;

sphere_unit_area_3d.m,
computes the surface area of the unit sphere in 3D;

sphere_unit_area_nd.m,
computes the surface area of the unit sphere in ND;

sphere_unit_area_values.m,
returns some values of the area of the unit sphere in ND.

sphere_unit_monomial_nd.m,
integrates a monomial on the surface of the unit sphere in ND;

sphere_unit_volume_nd.m,
computes the volume of the unit sphere in ND.

sphere_unit_volume_values.m,
returns some values of the volume of the unit sphere in ND.

sphere_volume_2d.m,
computes the volume of a sphere in 2D;

sphere_volume_3d.m,
computes the volume of a sphere in 3D;

sphere_volume_nd.m,
computes the volume of a sphere in ND;

square_sum.m,
evaluates a quadrature rule for the square;

square_unit_set.m,
sets one of several quadrature rules for the unit square;

square_unit_size.m,
sizes one of several quadrature rules for the unit square;

square_unit_sum.m,
evaluates a quadrature rule for the unit square;

subset_gray_next.m,
generates all subsets of a set, one at a time;

tetra_07.m,
approximates an integral inside a tetrahedron in 3D;

tetra_sum.m,
evaluates a quadrature rule in a tetrahedron in 3D;

tetra_tproduct.m,
approximates an integral inside a tetrahedron in 3D;

tetra_unit_set.m,
sets one of several quadrature rules for the unit tetrahedron in 3D;

tetra_unit_size.m,
sizes one of several quadrature rules for the unit tetrahedron in 3D;

tetra_unit_sum.m,
evaluates a quadrature rules for the unit tetrahedron in 3D;

tetra_unit_volume.m,
computes the volume of the unit tetrahedron;

tetra_volume.m,
computes the volume of a tetrahedron;

timestamp.m,
prints the YMDHMS date as a timestamp;

torus_1.m,
approximates an integral on the surface of a torus in 3D;

torus_5s2.m,
approximates an integral inside a torus in 3D;

torus_6s2.m,
approximates an integral inside a torus in 3D;

torus_14s.m,
approximates an integral inside a torus in 3D;

torus_area_3d.m,
returns the area of a torus in 3D;

torus_square_5c2.m,
approximates an integral in a square torus in 3D;

torus_square_14c.m,
approximates an integral in a square torus in 3D;

torus_square_area_3d.m,
returns the area of a square torus in 3D;

torus_square_volume_3d.m,
returns the volume of a square torus in 3D;

torus_volume_3d.m,
returns the volume of a torus in 3D;

triangle_rule_adjust.m,
adjusts a quadrature rule defined for a unit triangle to be used
on a general triangle;

triangle_sub.m,
carries out a quadrature rule over subdivisions of a triangle;

triangle_sum.m,
carries out a quadrature rule in a triangle;

triangle_sum_adjusted.m,
carries out an adjusted quadrature rule in a triangle;

triangle_unit_product_set.m,
sets a product quadrature rule for the unit triangle;

triangle_unit_product_size.m,
sizes a product quadrature rule for the unit triangle;

triangle_unit_set.m,
sets any one of a set of quadrature rules for
the unit triangle;

triangle_unit_size.m,
returns the order of any one of a set of quadrature rules for
the unit triangle;

triangle_unit_sum.m,
carries out a quadrature rule in the unit triangle;

triangle_unit_volume.m,
returns the volume of the unit triangle;

triangle_volume.m,
returns the volume of a triangle;

tvec_even.m,
computes evenly spaced angles between 0 and 2*PI;

tvec_even2.m,
computes evenly spaced angles between 0 and 2*PI;

tvec_even3.m,
computes evenly spaced angles between 0 and 2*PI;

tvec_even_bracket.m,
computes evenly spaced angles between THETA1 and THETA2;

tvec_even_bracket2.m,
computes evenly spaced angles between THETA1 and THETA2;

tvec_even_bracket3.m,
computes evenly spaced angles between THETA1 and THETA2;

vec_lex_next.m,
generates all Nvectors of integers modulo a given base;
Last revised on 22 March 2019.