lattice_rule, an Octave code which approximates integrals in multiple dimensions using lattice rules.
The lattice rules are defined on the unit square, or in higher dimensions, on the unit hypercube.
Lattice rules are more suitable to integrands that are periodic, with period 1, in all variables. However, there are techniques that may be used when the integrand does not satisfy this requirement.
The performance of a lattice rule depends heavily on the choice of the generator vectors. Once the spatial dimension and the number of points have been chosen, there are techniques for finding a good generator vector.
The simplest lattice rules are called "rank 1" rules, and use a lattice generated by multiples of a single generator vector. More elaborate rules can be generated by using more generator vectors, up to the maximum, which is the dimension of the space.
The computer code and data files described and made available on this web page are distributed under the MIT license
lattice_rule is available in a C++ version and a Fortran90 version and a MATLAB version and an Octave version.
alpert_rule, an Octave code which sets up an Alpert quadrature rule for functions which are regular, log(x) singular, or 1/sqrt(x) singular.
faure, an Octave code which computes elements of a faure quasirandom sequence.
halton, an Octave code which computes elements of a halton quasirandom sequence.
hammersley, an Octave code which computes elements of a hammersley quasirandom sequence.
latin_center, an Octave code which computes elements of a latin hypercube dataset, choosing center points.
latin_edge, an Octave code which computes elements of a latin hypercube dataset, choosing edge points.
latin_random, an Octave code which computes elements of a latin hypercube dataset, choosing points at random.
niederreiter2, an Octave code which computes elements of a niederreiter quasirandom sequence with base 2.
power_rule, an Octave code which constructs a power rule, that is, a product quadrature rule from identical 1d factor rules.
quadrule, an Octave code which defines a number of quadrature rules.
sobol, an Octave code which computes elements of a sobol quasirandom sequence.
stroud, an Octave code which contains quadrature rules for a variety of unusual areas, surfaces and volumes in 2d, 3d and n-dimensions.