simplex_integrals, a C++ code which returns the exact value of the integral of any monomial over the interior of the unit simplex in M dimensions.
The interior of the unit simplex in M dimensions is defined by
0 <= X(1:M) sum ( 1 <= I <= M ) X(I) <= 1
The integrands are all of the form
f(x) = product ( 1 <= I <= M) X(I)^E(I)where the exponents are nonnegative integers.
The computer code and data files described and made available on this web page are distributed under the MIT license
simplex_integrals is available in a C version and a C++ version and a FORTRAN90 version and a MATLAB version and a Python version.
BALL_INTEGRALS, a C++ code which returns the exact value of the integral of any monomial over the interior of the unit ball in 3D.
CIRCLE_INTEGRALS, a C++ code which returns the exact value of the integral of any monomial over the surface of the unit circle in 2D.
CUBE_INTEGRALS, a C++ code which returns the exact value of the integral of any monomial over the interior of the unit cube in 3D.
DISK01_INTEGRALS, a C++ code which returns the exact value of the integral of any monomial over the interior of the unit disk in 2D.
HYPERBALL_INTEGRALS, a C++ code which returns the exact value of the integral of any monomial over the interior of the unit hyperball in M dimensions.
HYPERCUBE_INTEGRALS, a C++ code which returns the exact value of the integral of any monomial over the interior of the unit hypercube in M dimensions.
HYPERSPHERE_INTEGRALS, a C++ code which returns the exact value of the integral of any monomial over the surface of the unit hypersphere in M dimensions.
LINE_INTEGRALS, a C++ code which returns the exact value of the integral of any monomial over the length of the unit line in 1D.
POLYGON_INTEGRALS, a C++ code which returns the exact value of the integral of any monomial over the interior of a polygon in 2D.
PYRAMID_INTEGRALS, a C++ code which returns the exact value of the integral of any monomial over the interior of the unit pyramid in 3D.
SPHERE_INTEGRALS, a C++ code which returns the exact value of the integral of any monomial over the surface of the unit sphere in 3D.
SIMPLEX_GM_RULE, a C++ code 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.
SIMPLEX_GRID, a C++ code which generates a regular grid of points over the interior of an arbitrary simplex in M dimensions.
SIMPLEX_MONTE_CARLO, a C++ code which uses the Monte Carlo method to estimate the integral of a function over the interior of the unit simplex in M dimensions.
SQUARE_INTEGRALS, a C++ code which returns the exact value of the integral of any monomial over the interior of the unit square in 2D.
TETRAHEDRON_INTEGRALS, a C++ code which returns the exact value of the integral of any monomial over the interior of the unit tetrahedron in 3D.
TRIANGLE_INTEGRALS, a C++ code which returns the exact value of the integral of any monomial over the interior of the unit triangle in 2D.
WEDGE_INTEGRALS, a C++ code which returns the exact value of the integral of any monomial over the interior of the unit wedge in 3D.