### G-2015-28

# A general software tool for constructing rank-1 lattice rules

## Pierre L'Ecuyer and David Munger

We introduce a new software tool and library named Lattice Builder, written in C++, that implements a variety of construction algorithms for good rank-1 lattice rules. It supports exhaustive and random searches, as well as
component-by-component (CBC) and random CBC constructions, for any number of points, and for various measures of (non)uniformity of the points. The measures currently implemented are all shift-invariant and represent the worst-case integration error for certain classes of integrands. They include for example the weighted `\(\mathcal P_\alpha\)`

square discrepancy, the `\(\mathcal R_\alpha\)`

criterion, and figures of merit based on the spectral
test, with projection-dependent weights. Each of these measures can be computed as a finite sum. For the `\(\mathcal P_\alpha\)`

and `\(\mathcal R_\alpha\)`

criteria, efficient specializations of the CBC algorithm are provided for projection-dependent, order-dependent and product weights. For numbers of points that are integer powers of a prime base, the construction of embedded rank-1 lattice rules is supported through any of the above
algorithms, and also through a fast CBC algorithm, with a variety of possibilities for the normalization of the merit values of individual embedded levels and for their combination into a single merit value. The library is extensible, thanks to the decomposition of the algorithms into decoupled components, which makes it easy to implement new types of weights, new search domains, new figures of merit, etc.

Published **April 2015**
,
31 pages