STROUD
Numerical Integration
in M Dimensions
STROUD
is a FORTRAN77 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:
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:
DISK_RULE,
a FORTRAN77 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).
DUNAVANT,
a FORTRAN90 library which
defines Dunavant rules for quadrature on a triangle.
FEKETE,
a FORTRAN90 library which
defines a Fekete rule for quadrature or interpolation over a triangle.
FELIPPA,
a FORTRAN90 library which
defines quadrature rules for lines, triangles, quadrilaterals,
pyramids, wedges, tetrahedrons and hexahedrons.
GM_RULE,
a FORTRAN90 library which
defines a Grundmann-Moeller rule for quadrature over a triangle, tetrahedron, or general
M-dimensional simplex.
KEAST,
a FORTRAN90 library which
defines a number of quadrature rules for a tetrahedron.
NCC_TETRAHEDRON,
a FORTRAN90 library which
defines Newton-Cotes closed quadrature rules on a tetrahedron.
NCC_TRIANGLE,
a FORTRAN90 library which
defines Newton-Cotes closed quadrature rules on a triangle.
NCO_TETRAHEDRON,
a FORTRAN90 library which
defines Newton-Cotes open quadrature rules on a tetrahedron.
NCO_TRIANGLE,
a FORTRAN90 library which
defines Newton-Cotes open quadrature rules on a triangle.
PRODUCT_RULE,
a FORTRAN90 program which
constructs a product rule
from 1D factor rules.
PYRAMID_RULE,
a FORTRAN90 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
contains triples of files defining various quadrature
rules on tetrahedrons.
QUADRATURE_RULES_TRI,
a collection of quadrature rules which
can be applied to triangular
regions.
QUADRULE,
a FORTRAN77 library which
defines quadrature rules on a
variety of intervals with different weight functions.
SPHERE_DESIGN_RULE,
a FORTRAN90 library which
returns point sets on the surface of the unit sphere, known as "designs",
which can be useful for estimating integrals on the surface.
SPHERE_LEBEDEV_RULE,
a FORTRAN77 library which
computes Lebedev quadrature rules for the unit sphere;
SPHERE_TRIANGLE_QUAD,
a FORTRAN90 library which
estimates the integral of a function over a spherical triangle.
TEST_NINT,
a FORTRAN90 library which
tests N-dimensional
quadrature routines.
TEST_TRI_INT,
a FORTRAN90 library which
tests algorithms
for quadrature over a triangle.
TESTPACK,
a FORTRAN77 library which
tests multidimensional quadrature.
WANDZURA,
a FORTRAN90 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:
Examples and Tests:
List of Routines:
-
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: 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_SECTOR_RULE approximates an integral in a circular sector.
-
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 precision 2 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 precision 2 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 precision 2 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 precision 2 rule for region EN_R2.
-
EN_R2_02_XIU_SIZE sizes the Xiu rule 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 precision 2 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.
-
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 precision 2 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 precision 2 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.
-
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.
-
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 computes the factorial of N.
-
I4_FACTORIAL2 computes the double factorial function.
-
I4VEC_SUM returns the sum of the entries of 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 a Gauss-Legendre rule 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_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_ADD adds two R8's.
-
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 evaluates log ( Gamma ( X ) ) for a real argument.
-
R8_HYPER_2F1 evaluates the hypergeometric function F(A,B,C,X).
-
R8_MOP returns the I-th power of -1 as an R8.
-
R8_PSI evaluates the function Psi(X).
-
R8_SWAP switches two R8's.
-
R8_SWAP3 swaps three R8's.
-
R8_UNIFORM_01 returns 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 an R8GE matrix.
-
R8VEC_DOT_PRODUCT finds 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.
-
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].
-
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 surface area of an implicit sphere in 3D.
-
SPHERE_AREA_ND computes the surface area of an implicit 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 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 integral on surface of the unit sphere in ND.
-
SPHERE_UNIT_04_ND approximates integral on surface of the unit sphere in ND.
-
SPHERE_UNIT_05_ND approximates integral on surface of the unit sphere in ND.
-
SPHERE_UNIT_07_3D approximates integral on surface of the unit sphere in 3D.
-
SPHERE_UNIT_07_1_ND approximates integral on surface of unit sphere in ND.
-
SPHERE_UNIT_07_2_ND approximates integral on surface of unit sphere in ND.
-
SPHERE_UNIT_11_3D approximates integral on surface of unit sphere in 3D.
-
SPHERE_UNIT_11_ND approximates integral on surface of unit sphere in ND.
-
SPHERE_UNIT_14_3D approximates integral on surface of unit sphere in 3D.
-
SPHERE_UNIT_15_3D approximates integral on surface of 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 a unit sphere in ND.
-
SPHERE_UNIT_AREA_VALUES returns some areas of the unit sphere in ND.
-
SPHERE_UNIT_MONOMIAL_ND integrate monomial on surface of 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 rules 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 in 3D.
-
TETRA_VOLUME computes the volume of a tetrahedron in 3D.
-
TIMESTAMP prints out the current YMDHMS date as a timestamp.
-
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_SUM carries out a quadrature rule in the unit triangle.
-
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 evenly spaced angles between 0 and 2*PI.
-
TVEC_EVEN2 computes evenly spaced angles between 0 and 2*PI.
-
TVEC_EVEN3 computes evenly spaced 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 between THETA1 and THETA2.
-
VEC_LEX_NEXT generates vectors in lex order.
You can go up one level to
the FORTRAN77 source codes.
Last revised on 16 June 2012.