simplex_gm_rule
simplex_gm_rule,
an Octave code 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.
The user chooses the index S of the rule. Rules are available
with index S = 0 on up. A rule of index S will exactly
integrate any polynomial of total degree 2*S+1 or less.
The rules are defined on the unit Mdimensional simplex. A simple
linear transformation can be used to map the vertices and weights
to an arbitrary simplex, while preserving the accuracy of the rule.
Licensing:
The computer code and data files described and made available on this web page
are distributed under
the MIT license
Languages:
simplex_gm_rule is available in
a C version and
a C++ version and
a Fortran90 version and
a MATLAB version and
an Octave version and
a Python version.
Related Data and Programs:
simplex_gm_rule_test
Reference:

Paul Bratley, Bennett Fox, Linus Schrage,
A Guide to Simulation,
Second Edition,
Springer, 1987,
ISBN: 0387964673,
LC: QA76.9.C65.B73.

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.

Pierre LEcuyer,
Random Number Generation,
in Handbook of Simulation,
edited by Jerry Banks,
Wiley, 1998,
ISBN: 0471134031,
LC: T57.62.H37.

Peter Lewis, Allen Goodman, James Miller,
A PseudoRandom Number Generator for the System/360,
IBM Systems Journal,
Volume 8, 1969, pages 136143.

Albert Nijenhuis, Herbert Wilf,
Combinatorial Algorithms for Computers and Calculators,
Second Edition,
Academic Press, 1978,
ISBN: 0125192606,
LC: QA164.N54.

ML Wolfson, HV Wright,
Algorithm 160:
Combinatorial of M Things Taken N at a Time,
Communications of the ACM,
Volume 6, Number 4, April 1963, page 161.
Source Code:

comp_next.m,
computes the compositions of the integer N into K parts.

gm_rule_set.m,
sets a GrundmannMoeller rule.

gm_rule_set_old.m,
sets a GrundmannMoeller rule. (OBSOLETE VERSION)

gm_rule_size.m,
determines the size of a GrundmannMoeller rule.

monomial_value.m,
evaluates a monomial.

r8vec_uniform_01.m,
returns a unit pseudorandom R8VEC.

simplex_unit_monomial_int.m,
integrates a monomial over a simplex.

simplex_unit_monomial_quadrature.m,
quadrature of monomials in a unit simplex.

simplex_unit_sample.m,
returns uniformly random points from a general simplex.

simplex_unit_to_general.m,
maps the unit simplex to a general simplex.

simplex_unit_volume.m,
computes the volume of the unit simplex.
Last revised on 13 October 2022.