LATTICE is a C++ library 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 GNU LGPL license.
CLENSHAW_CURTIS is a C++ library which can set up a Clenshaw Curtis quadrature grid in multiple dimensions.
FAURE is a C++ library which computes elements of a Faure quasirandom sequence.
GRID is a C++ library which computes elements of a grid dataset.
HALTON is a C++ library which computes elements of a Halton quasirandom sequence.
HAMMERSLEY is a C++ library which computes elements of a Hammersley quasirandom sequence.
HEX_GRID is a C++ library which computes elements of a hexagonal grid dataset.
IHS is a C++ library which computes elements of an improved distributed Latin hypercube dataset.
LATIN_CENTER is a C++ library which computes elements of a Latin Hypercube dataset, choosing center points.
LATIN_EDGE is a C++ library which computes elements of a Latin Hypercube dataset, choosing edge points.
LATIN_RANDOM is a C++ library which computes elements of a Latin Hypercube dataset, choosing points at random.
LATTICE is available in a C++ version and a FORTRAN90 version and a MATLAB version.
LCVT is a C++ library which computes a latinized Centroidal Voronoi Tessellation.
NIEDERREITER2 is a C++ library which computes elements of a Niederreiter quasirandom sequence with base 2.
NINT_EXACTNESS is a C++ program which measures the polynomial exactness of a multidimensional quadrature rule.
NINTLIB is a C++ library which contains routines for numerical estimation of integrals in multiple dimensions.
PRODUCT_RULE is a C++ program which can create a multidimensional quadrature rule as a product of one dimensional rules.
QUADRATURE_RULES is a dataset directory which contains sets of files that define quadrature rules over various 1D intervals or multidimensional hypercubes.
QUADRULE is a C++ library which defines a number of quadrature rules.
SOBOL is a C++ library which computes elements of a Sobol quasirandom sequence.
STROUD is a C++ library which contains quadrature rules for a variety of unusual areas, surfaces and volumes in 2D, 3D and N-dimensions.
TEST_NINT is a C++ library which defines test functioins for multi-dimensional quadrature routines.
UNIFORM is a C++ library which computes elements of a uniform pseudorandom sequence.
You can go up one level to the C++ source codes.