STROUD
Numerical Integration
in M Dimensions
STROUD
is a MATLAB library which
implements multidimensional quadrature rules of Arthur Stroud.
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:
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 FORTRAN77 version and
a FORTRAN90 version and
a MATLAB version.
Related Data and Programs:
DUNAVANT,
a MATLAB library which
defines Dunavant rules for quadrature on a triangle.
FEKETE,
a MATLAB library which
defines Fekete rules for quadrature or interpolation on a triangle.
FELIPPA,
a MATLAB library which
defines quadrature rules for lines, triangles, quadrilaterals,
pyramids, wedges, tetrahedrons and hexahedrons.
GM_RULE,
a MATLAB library which
defines a Grundmann-Moeller
rule for quadrature over a triangle, tetrahedron, or general
M-dimensional simplex.
KEAST,
a MATLAB library which
defines quadrature rules for a tetrahedron.
LYNESS_RULE,
a MATLAB library which
returns Lyness-Jespersen quadrature rules for the triangle.
NCC_TETRAHEDRON,
a MATLAB library which
defines Newton-Cotes closed quadrature
rules on a tetrahedron.
NCC_TRIANGLE,
a MATLAB library which
defines Newton-Cotes closed quadrature rules on a triangle.
NCO_TETRAHEDRON,
a MATLAB library which
defines Newton-Cotes open quadrature rules on a tetrahedron.
NCO_TRIANGLE,
a MATLAB library which
defines Newton-Cotes open quadrature rules on a triangle.
NINT_EXACTNESS,
a MATLAB program which
demonstrates how to measure the
polynomial exactness of a multidimensional quadrature rule.
NINTLIB,
a MATLAB library which
numerically estimates integrals in multiple dimensions.
PRODUCT_RULE,
a MATLAB program which
can create a multidimensional quadrature rule as a product of
one dimensional rules.
PYRAMID_RULE,
a MATLAB program which
computes a quadrature rule for a pyramid.
QUADRATURE_RULES,
a dataset directory which
contains sets of files that define quadrature
rules over various 1D intervals or multidimensional hypercubes.
QUADRATURE_RULES_TET,
a dataset directory which
defines various quadrature
rules on tetrahedrons.
QUADRATURE_RULES_TRI,
a dataset directory which
contains quadrature rules which
can be applied to triangular regions.
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.
QUADRULE,
a MATLAB library which
defines quadrature rules on a
variety of intervals with different weight functions.
QUADRULE_FAST
a MATLAB library which
defines efficient versions of a few 1D quadrature rules.
SPHERE_LEBEDEV_RULE,
a dataset directory which
contains sets of points on a sphere which can be used for
quadrature rules of a known precision;
TEST_NINT,
a MATLAB library which
contains functions that can be used to test N-dimensional
quadrature routines.
TEST_TRI_INT,
a MATLAB library which
can be used to test algorithms
for quadrature over a triangle.
TETRAHEDRONS,
a dataset directory which
contains examples of tetrahedrons;
TRIANGULATION,
a MATLAB library which
works with triangulations and
includes some quadrature rules on triangles.
WANDZURA,
a MATLAB library which
defines Wandzura rules for quadrature on a triangle.
Reference:
-
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:
-
arc_sine.m,
computes the inverse sine of an angle;
-
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 R-Theta product quadrature rule for inside a circle in 2D;
-
circle_rt_size.m,
sizes an R-Theta product quadrature rule for inside a circle in 2D;
-
circle_rt_sum.m,
applies an R-Theta 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:3-1 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:5-1 rule for region CN_LEG.
-
cn_leg_05_2.m
implements the Stroud CN:5-2 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 Golub-Welsch 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 Gauss-Legendre rule to integrate F(X)
on [-1,1];
-
legendre_set_x1.m,
sets a Gauss-Legendre rule to integrate ( 1 + X ) * F(X)
on [-1,1];
-
legendre_set_x2.m,
sets a Gauss-Legendre 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_choose.m,
computes the binomial coefficient C(N,K).
-
r8_epsilon.m,
returns the R8 machine precision;
-
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 I-th 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 I-th 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 N-vectors of integers modulo a given base;
Examples and Tests:
-
stroud_test.m,
runs all the tests.
-
stroud_test_output.txt,
the output file.
-
stroud_test01.m,
tests BALL_F1_ND and BALL_F3_ND.
-
stroud_test02.m,
tests SPHERE_UNIT_MONOMIAL_ND.
-
stroud_test03.m,
tests BALL_UNIT_07_3D, BALL_UNIT_14_3D and BALL_UNIT_15_3D.
-
stroud_test04.m,
tests BALL_UNIT_F1_ND, BALL_UNIT_F3_ND.
-
stroud_test045.m,
tests BALL_UNIT_VOLUME_3D, BALL_UNIT_VOLUME_ND.
-
stroud_test05.m,
tests BALL_UNIT_VOLUME_ND.
-
stroud_test052.m,
tests BALL_VOLUME_3D, BALL_VOLUME_ND.
-
stroud_test054.m,
tests BALL_VOLUME_ND.
-
stroud_test07.m,
tests CIRCLE_ANNULUS.
-
stroud_test08.m,
tests CIRCLE_ANNULUS, CIRCLE_RT_SET, and CIRCLE_RT_SUM.
-
stroud_test085.m,
tests CIRCLE_ANNULUS_AREA_2D.
-
stroud_test09.m,
tests CIRCLE_ANNULUS_SECTOR, CIRCLE_RT_SET, and CIRCLE_RT_SUM.
-
stroud_test10.m,
tests CIRCLE_CUM.
-
stroud_test11.m,
tests LENS_HALF_AREA_2D, CIRCLE_SECTOR_AREA_2D and CIRCLE_TRIANGLE_AREA_2D.
-
stroud_test12.m,
tests LENS_HALF_AREA_2D, LENS_H_HALF_AREA_2D, LENS_W_HALF_AREA_2D.
-
stroud_test13.m,
tests CIRCLE_SECTOR and CIRCLE_SECTOR_AREA_2D.
-
stroud_test14.m,
tests CIRCLE_SECTOR, CIRCLE_RT_SET and CIRCLE_RT_SUM.
-
stroud_test15.m,
tests CIRCLE_RT_SET and CIRCLE_RT_SUM.
-
stroud_test16.m,
tests CIRCLE_XY_SET and CIRCLE_XY_SUM.
-
stroud_test163.m,
tests the CN_GEG rules for the unit hypercube
with the Gegenbauer weight.
-
cn_geg_test.m,
tests the CN_GEG rules for the unit hypercube
with the Gegenbauer weight and a particular monomial.
-
stroud_test165.m,
tests the CN_JAC rules for the unit hypercube
with the Jacobi weight.
-
cn_jac_test.m,
tests the CN_JAC rules for the unit hypercube
with the Jacobi weight and a particular monomial.
-
stroud_test167.m,
tests the CN_LEG rules for the unit hypercube
with the Legendre weight.
-
cn_leg_test.m,
tests the CN_LEG rules for the unit hypercube
with the Legendre weight and a particular monomial.
-
stroud_test17.m,
tests CONE_UNIT_3D and CONE_VOLUME_3D.
-
stroud_test18.m,
tests CUBE_SHELL_ND.
-
stroud_test19.m,
tests CUBE_UNIT_3D, CUBE_UNIT_ND, QMULT_3D and RECTANGLE_3D.
-
stroud_test20.m,
tests CUBE_UNIT_ND.
-
stroud_test205.m,
tests ELLIPSE_AREA_2D, ELLIPSE_CIRCUMFERENCE_2D and ELLIPSE_ECCENTRICITY_2D.
-
stroud_test207.m,
tests EN_R2 rules for various monomials.
-
en_r2_test.m,
tests EN_R2 rules for a particular monomial.
-
stroud_test2075.m,
tests EPN_GLG rules for various monomials.
-
epn_glg_test.m,
tests EPN_GLG rules for a particular monomial.
-
stroud_test208.m,
tests EPN_LAG rules for various monomials.
-
epn_lag_test.m,
tests EPN_LAG rules for a particular monomial.
-
stroud_test21.m,
tests HEXAGON_UNIT_SET and HEXAGON_SUM.
-
stroud_test215.m,
tests LENS_HALF_2D.
-
stroud_test22.m,
tests OCTAHEDRON_UNIT_ND.
-
stroud_test23.m,
tests PARALLELIPIPED_VOLUME_ND.
-
stroud_test24.m,
tests POLYGON_1_2D, POLYGON_X_2D, POLYGON_Y_2D, POLYGON_XX_2D,
POLYGON_XY_2D and POLYGON_YY_2D.
-
stroud_test25.m,
tests PYRAMID_UNIT_O**_3D and PYRAMID_UNIT_VOLUME_3D.
-
stroud_test255.m,
tests PYRAMID_UNIT_MONOMIAL_3D.
-
stroud_test26.m,
tests QMULT_1D.
-
stroud_test27.m,
tests SIMPLEX_ND.
-
stroud_test28.m,
tests SIMPLEX_VOLUME_ND.
-
stroud_test29.m,
tests SIMPLEX_UNIT_01_ND, SIMPLEX_UNIT_03_ND,
SIMPLEX_UNIT_05_ND and SIMPLE_UNIT_05_2_ND.
-
stroud_test30.m,
tests SPHERE_UNIT_07_3D, SPHERE_UNIT_11_3D, SPHERE_UNIT_14_3D
and SPHERE_UNIT_15_3D.
-
stroud_test31.m,
tests SPHERE_UNIT_03_ND, SPHERE_UNIT_04_ND, SPHERE_UNIT_05_ND,
SPHERE_UNIT_07_1_ND, SPHERE_UNIT_07_2_ND and SPHERE_UNIT_11_ND.
-
stroud_test32.m,
tests SPHERE_05_ND and SPHERE_07_1_ND.
-
stroud_test322.m,
tests SPHERE_CAP_AREA_3D and SPHERE_CAP_AREA_ND.
-
stroud_test324.m,
tests SPHERE_CAP_VOLUME_2D and SPHERE_CAP_VOLUME_ND.
-
stroud_test326.m,
tests SPHERE_CAP_VOLUME_3D and SPHERE_CAP_VOLUME_ND.
-
stroud_test33.m,
tests SPHERE_CAP_AREA_ND.
-
stroud_test335.m,
tests SPHERE_SHELL_03_ND.
-
stroud_test34.m,
tests SPHERE_UNIT_AREA_ND.
-
stroud_test345.m,
tests SPHERE_UNIT_VOLUME_ND, SPHERE_UNIT_VOLUME_VALUES.
-
stroud_test35.m,
tests SQUARE_UNIT_SET and RECTANGLE_SUB_2D.
-
stroud_test36.m,
tests SQUARE_UNIT_SET and SQUARE_SUM.
-
stroud_test37.m,
tests SQUARE_UNIT_SET and SQUARE_SUM.
-
stroud_test38.m,
tests TETRA_07 and TETRA_TPRODUCT.
-
stroud_test39.m,
tests TETRA_UNIT_SET and TETRA_UNIT_SUM.
-
stroud_test40.m,
tests TETRA_UNIT_SET and TETRA_SUM.
-
stroud_test41.m,
tests TRIANGLE_UNIT_SET and TRIANGLE_SUB.
-
stroud_test42.m,
tests TRIANGLE_UNIT_SET and TRIANGLE_UNIT_SUM.
-
stroud_test425.m,
tests TRIANGLE_UNIT_SET.
-
stroud_test43.m,
tests TRIANGLE_UNIT_PRODUCT_SET and TRIANGLE_UNIT_SUM.
-
stroud_test44.m,
tests TRIANGLE_UNIT_SET and TRIANGLE_SUM.
-
stroud_test45.m,
tests TORUS_1.
-
stroud_test46.m,
tests TORUS_5S2, TORUS_6S2 and TORUS_14S.
-
stroud_test47.m,
tests TORUS_SQUARE_5C2 and TORUS_SQUARE_14C.
-
stroud_test48.m,
tests TVEC_EVEN, TVEC_EVEN2, TVEC_EVEN3.
-
stroud_test49.m,
tests TVEC_EVEN_BRACKET, TVEC_EVEN_BRACKET2, TVEC_EVEN_BRACKET3.
-
f_1_2d.m,
returns the function 1 in 2D.
-
f_x_2d.m,
returns the function X in 2D.
-
f_r_2d.m,
returns the function R in 2D.
-
fl_18.m,
returns the lower limit of integration as a function of X.
-
fl_28.m,
returns the lower limit of integration as a function of X and Y.
-
fu_18.m,
returns the upper limit of integration as a function of X.
-
fu_28.m,
returns the upper limit of integration as a function of X and Y.
-
function_1d.m,
evaluates the current 1D function.
-
function_1d_name.m,
returns the name of the current 1D function.
-
function_1d_num.m,
returns the number of 1D functions.
-
function_1d_set.m,
sets or gets the current 1D function.
-
function_2d.m,
evaluates the current 2D function.
-
function_2d_name.m,
returns the name of the current 2D function.
-
function_2d_num.m,
returns the number of 2D functions.
-
function_2d_set.m,
sets or gets the current 2D function.
-
function_3d.m,
evaluates the current 3D function.
-
function_3d_name.m,
returns the name of the current 3D function.
-
function_3d_num.m,
returns the number of 3D functions.
-
function_3d_set.m,
sets or gets the current 3D function.
-
func_nd.m,
evaluates the current ND function.
-
function_nd_name.m,
returns the name of the current ND function.
-
function_nd_num.m,
returns the number of ND functions.
-
funcset.m,
sets or gets the index of the current ND function.
-
mono_000_3d.m,
evaluates the monomial F(X,Y,Z)=1.
-
mono_111_3d.m,
evaluates the monomial F(X,Y,Z)=X*Y*Z.
-
mono_202_3d.m,
evaluates the monomial F(X,Y,Z)=X^2*Z^2.
-
mono_422_3d.m,
evaluates the monomial F(X,Y,Z)=X^4*Y^2*Z^2.
-
setsim.m,
returns the vertices of a simplex in ND.
You can go up one level to
the MATLAB source codes.
Last revised on 03 March 2010.