Lattice rule generating vectors

This page contains some generating vectors for rank-1 lattice rules. They were constructed using the component-by-component algorithms (a.k.a. CBC algorithms) by minimizing as much as possible the shift-averaged worst case errors in weighted unanchored Sobolev spaces.

Here is a (biased) selection of milestone papers:

  1. I. H. Sloan and H. Wozniakowski, When are quasi-Monte Carlo algorithms efficient for high dimensional integrals?, J. Complexity, 14, 1 - 33 (1998).
  2. I. H. Sloan, F. Y. Kuo, and S. Joe, Constructing randomly shifted lattice rules in weighted Sobolev spaces, SIAM J. Numer. Anal., 40, 1650 - 1665 (2002).
  3. F. Y. Kuo, Component-by-component constructions achieve the optimal rate of convergence for multivariate integration in weighted Korobov and Sobolev spaces, J. Complexity, 19, 301 - 320 (2003).
  4. D. Nuyens and R. Cools, Fast algorithms for component-by-component construction of rank-1 lattice rules in shift-invariant reproducing kernel Hilbert spaces, Math. Comp., 75, 903 - 920 (2006).
  5. R. Cools, F. Y. Kuo, D. Nuyens, Constructing embedded lattice rules for multivariate integration, SIAM J. Sci. Comput., 28, 2162 - 2188 (2006). Link to article.

For various choices of weights, we provide generating vectors for fixed lattice rules (i.e., the number of points n is fixed) as well as embedded/extensible lattice rules (i.e., the number of points n can be chosen from a range). Let z = (z1, z2, ..., zd) denote the generating vector. For a fixed lattice rule with n points, we have the simple formula
the j-th component of the i-th point = frac( i/n * zj )
for i = 0,1,...,n-1 and j = 1,2,...,d, where frac(.) means taking the fractional part, e.g., frac(1.8) = 0.8. For an extensible lattice rule, it is also fine to use the above simple formula provided that the TOTAL NUMBER OF POINTS IS AN EXACT POWER OF 2. Otherwise a more complicated radical inverse or gray code ordering should be used. Note that all these lattice rules are designed to be used with random shifts.

See [5, Section 2.2] for an overview of different types of weights, see [5, Section 5.1] for a discussion on using lattice points as an extensible sequence, and see [5, Section 5.2] regarding error estimation using random shifts.

A collection of generating vectors

Each file in the table below contains two columns: the dimension and the corresponding component of the generating vector. The files are named in one of the following two forms:

lattice-2xxxx-n.d
lattice-3xxxx-n1-n2.d
The first denotes a fixed lattice rule with n points, while the second denotes an extensible lattice rule with n taking any value between n1 and n2. The xxxx is a code distinguishing different choices of weights. The value d specifies the number of available components in the file.

In theory, the CBC algorithm can be used to construct generating vectors up to any dimension. However, it has been observed that the components start to repeat from some dimension onward for product-type weights, hence leading to a practical limit on the value of d. This side effect of the CBC algorithm is yet to be fully understood.

RECOMMENDATIONS: If you are unsure which lattice rules to try, you may begin with the following four extensible lattice rules:

  1. lattice-32001-1024-1048576.3600 (order-2 weights)
  2. lattice-33002-1024-1048576.9125 (order-3 weights)
  3. lattice-38005-1024-1048576.5000 (equal product weights)
  4. lattice-39101-1024-1048576.3600 (decaying product weights)
The error for an extensible lattice rule is at most 1.6 times that of a fixed lattice rule.

Weights Fixed lattice rules Extensible lattice rules
Order 2 lattice-22001-1024.3600 lattice-32001-1024-1048576.3600
lattice-22001-2048.3600
lattice-22001-4096.3600
lattice-22001-8192.3600
lattice-22001-16384.3600
lattice-22001-32768.3600
lattice-22001-65536.3600
lattice-22001-131072.3600
lattice-22001-262144.3600
lattice-22001-524288.3600
lattice-22001-1048576.3600
Order 3: Γ1 = Γ2 = Γ3 = 1 lattice-23001-1024.9125 lattice-33001-1024-1048576.9125
lattice-23001-2048.9125
lattice-23001-4096.9125
lattice-23001-8192.9125
lattice-23001-16384.9125
lattice-23001-32768.9125
lattice-23001-65536.9125
lattice-23001-131072.9125
lattice-23001-262144.9125
lattice-23001-524288.9125
lattice-23001-1048576.9125
Order 3: Γ1 = Γ2 = 1, Γ3 = 0.5 lattice-23002-1024.9125 lattice-33002-1024-1048576.9125
lattice-23002-2048.9125
lattice-23002-4096.9125
lattice-23002-8192.9125
lattice-23002-16384.9125
lattice-23002-32768.9125
lattice-23002-65536.9125
lattice-23002-131072.9125
lattice-23002-262144.9125
lattice-23002-524288.9125
lattice-23002-1048576.9125
Order 3: Γ1 = Γ2 = 1, Γ3 = 0.3 lattice-23003-1024.9125 lattice-33003-1024-1048576.9125
lattice-23003-2048.9125
lattice-23003-4096.9125
lattice-23003-8192.9125
lattice-23003-16384.9125
lattice-23003-32768.9125
lattice-23003-65536.9125
lattice-23003-131072.9125
lattice-23003-262144.9125
lattice-23003-524288.9125
lattice-23003-1048576.9125
Order 3: Γ1 = Γ2 = 1, Γ3 = 0.1 lattice-23004-1024.9125 lattice-33004-1024-1048576.9125
lattice-23004-2048.9125
lattice-23004-4096.9125
lattice-23004-8192.9125
lattice-23004-16384.9125
lattice-23004-32768.9125
lattice-23004-65536.9125
lattice-23004-131072.9125
lattice-23004-262144.9125
lattice-23004-524288.9125
lattice-23004-1048576.9125
Order 3: Γ1 = Γ2 = 1, Γ3 = 0.05 lattice-23005-1024.9125 lattice-33005-1024-1048576.9125
lattice-23005-2048.9125
lattice-23005-4096.9125
lattice-23005-8192.9125
lattice-23005-16384.9125
lattice-23005-32768.9125
lattice-23005-65536.9125
lattice-23005-131072.9125
lattice-23005-262144.9125
lattice-23005-524288.9125
lattice-23005-1048576.9125
Order 3: Γ1 = Γ2 = 1, Γ3 = 0.01 lattice-23006-1024.9125 lattice-33006-1024-1048576.9125
lattice-23006-2048.9125
lattice-23006-4096.9125
lattice-23006-8192.9125
lattice-23006-16384.9125
lattice-23006-32768.9125
lattice-23006-65536.9125
lattice-23006-131072.9125
lattice-23006-262144.9125
lattice-23006-524288.9125
lattice-23006-1048576.9125
Product: γj = 1 lattice-28001-1024.300 lattice-38001-1024-1048576.300
lattice-28001-2048.300
lattice-28001-4096.300
lattice-28001-8192.300
lattice-28001-16384.300
lattice-28001-32768.300
lattice-28001-65536.300
lattice-28001-131072.300
lattice-28001-262144.300
lattice-28001-524288.300
lattice-28001-1048576.300
Product: γj = 0.5 lattice-28002-1024.550 lattice-38002-1024-1048576.550
lattice-28002-2048.550
lattice-28002-4096.550
lattice-28002-8192.550
lattice-28002-16384.550
lattice-28002-32768.550
lattice-28002-65536.550
lattice-28002-131072.550
lattice-28002-262144.550
lattice-28002-524288.550
lattice-28002-1048576.550
Product: γj = 0.3 lattice-28003-1024.900 lattice-38003-1024-1048576.900
lattice-28003-2048.900
lattice-28003-4096.900
lattice-28003-8192.900
lattice-28003-16384.900
lattice-28003-32768.900
lattice-28003-65536.900
lattice-28003-131072.900
lattice-28003-262144.900
lattice-28003-524288.900
lattice-28003-1048576.900
Product: γj = 0.1 lattice-28004-1024.2600 lattice-38004-1024-1048576.2600
lattice-28004-2048.2600
lattice-28004-4096.2600
lattice-28004-8192.2600
lattice-28004-16384.2600
lattice-28004-32768.2600
lattice-28004-65536.2600
lattice-28004-131072.2600
lattice-28004-262144.2600
lattice-28004-524288.2600
lattice-28004-1048576.2600
Product: γj = 0.05 lattice-28005-1024.5000 lattice-38005-1024-1048576.5000
lattice-28005-2048.5000
lattice-28005-4096.5000
lattice-28005-8192.5000
lattice-28005-16384.5000
lattice-28005-32768.5000
lattice-28005-65536.5000
lattice-28005-131072.5000
lattice-28005-262144.5000
lattice-28005-524288.5000
lattice-28005-1048576.5000
Product: γj = 0.01 lattice-28006-1024.9125 lattice-38006-1024-1048576.9125
lattice-28006-2048.9125
lattice-28006-4096.9125
lattice-28006-8192.9125
lattice-28006-16384.9125
lattice-28006-32768.9125
lattice-28006-65536.9125
lattice-28006-131072.9125
lattice-28006-262144.9125
lattice-28006-524288.9125
lattice-28006-1048576.9125
Product: γj = 0.9j lattice-29001-1024.200 lattice-39001-1024-1048576.200
lattice-29001-2048.200
lattice-29001-4096.200
lattice-29001-8192.200
lattice-29001-16384.200
lattice-29001-32768.200
lattice-29001-65536.200
lattice-29001-131072.200
lattice-29001-262144.200
lattice-29001-524288.200
lattice-29001-1048576.200
Product: γj = 0.75j lattice-29002-1024.90 lattice-39002-1024-1048576.90
lattice-29002-2048.90
lattice-29002-4096.90
lattice-29002-8192.90
lattice-29002-16384.90
lattice-29002-32768.90
lattice-29002-65536.90
lattice-29002-131072.90
lattice-29002-262144.90
lattice-29002-524288.90
lattice-29002-1048576.90
Product: γj = 0.5j lattice-29003-1024.70 lattice-39003-1024-1048576.70
lattice-29003-2048.70
lattice-29003-4096.70
lattice-29003-8192.70
lattice-29003-16384.70
lattice-29003-32768.70
lattice-29003-65536.70
lattice-29003-131072.70
lattice-29003-262144.70
lattice-29003-524288.70
lattice-29003-1048576.70
Product: γj = 1/j lattice-29101-1024.3600 lattice-39101-1024-1048576.3600
lattice-29101-2048.3600
lattice-29101-4096.3600
lattice-29101-8192.3600
lattice-29101-16384.3600
lattice-29101-32768.3600
lattice-29101-65536.3600
lattice-29101-131072.3600
lattice-29101-262144.3600
lattice-29101-524288.3600
lattice-29101-1048576.3600
Product: γj = 1/j2 lattice-29102-1024.3600 lattice-39102-1024-1048576.3600
lattice-29102-2048.3600
lattice-29102-4096.3600
lattice-29102-8192.3600
lattice-29102-16384.3600
lattice-29102-32768.3600
lattice-29102-65536.3600
lattice-29102-131072.3600
lattice-29102-262144.3600
lattice-29102-524288.3600
lattice-29102-1048576.3600

Questions or comments?

We are always keen to hear from you regarding your experience with these generating vectors. Please email Frances Kuo <f.kuo@unsw.edu.au>.

Last updated: 20 December 2007