LatNet Builder Manual
2.0.1-11
Software Package for Constructing Highly Uniform Point Sets
|
LatNet Builder supports the construction of highly uniform point sets of two types :
LatNet Builder also supports the construction of interlaced digital nets and polynomial lattice rules.
A rank-1 ordinary lattice rule [18] is a point set \(P_n\) in dimension \(s\) which can be written:
\[ P_n = \left\{\boldsymbol x_i = (i \boldsymbol a / n) \mod 1 : i = 0, \dots, n - 1\right\}. \]
where \(\boldsymbol a = (a_1, \dots, a_s)\) is an integer generating vector. In LatNet Builder, we only consider fully projection-regular [17] lattice rules, that is lattice rules for which all the points never superpose on each other in lower-dimensional projections. This happens if and only if the coordinates of \(\boldsymbol a\) are coprimes with \(n\). In this case, for each coordinate \(j \in \{1, \dots, s\}\), the \(\{x_{i,j}, 0 \leq i < n\}\) are all distinct and form a permutation of the multiples of \(\frac1n\).
For simplicity, in this documentation, the term ordinary lattice rule will always refer to fully projection-regular rank-1 ordinary lattice rules.
The following definition is from [6].
Recall that \(\mathbb F_2[z]\) is the ring of polynomials over \(\mathbb F_2\), the field with two element, and \(\mathbb L_2\) is the ring of formal Laurent series over \(\mathbb F_2\). For a series \(v(z) = \sum_{l = w}^{\infty} x_l z^{-l} \in \mathbb L_2\), with \(x_w \neq 0\), we note \(\deg(v) = - w \) where \(\deg(0) = - \infty\) by convention.
For \(k \in \mathbb N\), define the mapping \( {\nu}_k: \mathbb L_2 \rightarrow \mathbb R \) by:
\[ {\nu}_k\left(\sum_{l = w}^{\infty} x_l z^{-l}\right) = \sum_{l = \max(w, 1)}^{\infty} x_l 2^{-l}. \]
Define the vectorized mapping \( {\nu}_k: \mathbb L_2^s \rightarrow \mathbb R^s \) by applying \({\nu}_k\) separately to each coordinate.
For a polynomial modulus \(Q \in \mathbb F_2[z]\) of degree \(k\) and a polynomial generating vector \( \boldsymbol a \in \mathbb F_2[z]^s \), let \(n = 2^k\). The rank-1 polynomial lattice rule associated with this modulus and this generating vector is the point set \(P_n\) which can be written:
\[ P_n = \left\{\boldsymbol x_i = {\nu}_k\left(\frac{h \boldsymbol a}{Q}\right): h \in \mathbb{F}_2[z], \deg(h) < k \right\}. \]
In LatNet Builder, we only consider fully projection-regular [17] lattice rules, that is lattice rules for which all the points never superpose on each other in lower-dimensional projections. This happens if and only if the coordinates of \(\boldsymbol a\) are coprime with \(Q\). In this case, for each coordinate \(j \in \{1, \dots, s\}\), the \(\{x_{i,j}, 0 \leq i < n\}\) are all distinct and form a permutation of the multiples of \(\frac1n\).
For simplicity, in this documentation, the term polynomial lattice rule will always refer to fully projection-regular rank-1 polynomial lattice rules.
The following definition is from [6].
Let \(\mathbb{F}_2\) be the finite field with 2 elements (denoted 0 and 1). For a given dimension \(s \geq 1\), a positive integer \(k\), let \(M_1, \dots, M_s\) be \(r \times k\) matrices over \(\mathbb{F}_2\). The digital net associated with these matrices is the point set \(P_n = \{\boldsymbol x_0, \dots, \boldsymbol x_{2^k-1} \}\) in dimension \(s\) defined as follows:
For each \(0 \leq i \leq 2^k-1\), let \( \boldsymbol i = (a_0, \dots, a_{k-1})\) be the digits (in \(\mathbb{F}_2\)) of the 2-adic expansion \(i = \sum_{j=0}^{k-1} a_j 2^j\). For each coordinate \(l\), let \( \boldsymbol y_l= M_l \times \boldsymbol i = (y_{i, l, 1}, \dots,y_{i, l, r})\). Write \(\boldsymbol x_i = (x_{i, 1}, \dots, x_{i, s})\). Then:
\[ x_{i, l} = \sum_{j=1}^{r} y_{i, l, j}2^{-j}. \]
In LatNet Builder, we only consider fully projection-regular [17] digital nets, that is digital nets for which all the points never superpose on each other in lower-dimensional projections. This happens if and only if the generating matrices \(M_1, \dots, M_s\) are full-rank. In this case, for each coordinate \(j \in \{1, \dots, s\}\), the \(\{x_{i,j}, 0 \leq i < n\}\) are all distinct and form a permutation of the multiples of \(\frac1n\). In this documentation, the term digital net will always refer to fully projection-regular digital nets in base 2.
Three constructions methods are supported by LatNet Builder:
A popular technique for constructing digital nets is the Sobol' construction. The generating matrices of Sobol' nets are defined as follows [14] :
To construct the \(j\)-th generating matrix, choose a primitive polynomial of degree \(e_j\) over the field \(\mathbb F_2\):
\[ Q_j(z) = z^{e_j} + a_{1, j} z^{e_j - 1} + \dots + a_{e_j - 1, j} z + 1. \]
Define the sequence of positive integers \(\{m_{1,j}, m_{2,j}, \dots\}\) by the recurrence relation:
\[ m_{r, j} = 2 a_{1,j} m_{r-1, j} \oplus 2^2 a_{2,j} m_{r-2, j} \oplus \dots \oplus 2^{e_j - 1} a_{e_j-1, j} m_{r-e_j \oplus 1, j} \oplus 2^{e_j} m_{r - e_j, j} \oplus m_{r-e_j,j}, \]
where \(\oplus\) is the bitwise exclusive-or operator.
The \(\{m_{1,j}, m_{2,j}, \dots\}\) are called the direction numbers for coordinate \(j\). The initial values \(m_{1,j}, \dots, m_{e_j,j}\) can be chosen freely provided that each \(m_{r,j}\), \( 1 \leq r \leq e_j\) is odd and less than \(2^r\). As a consequence, all the direction numbers \(m_{r,j}\) are odd and less than \(2^r\). We can write \(m_{r,j} = \sum_{l = 1} m_{r,j,l} 2^{r-l} \). Then, for any positive integer \(k\), the \(j\)-th generating matrix \(M_{j}\) of size \(k\) can be written:
\[ M_{j} = \begin{bmatrix} 1 & m_{2,j,1} & m_{3,j,1} & \cdots & m_{k,j,1} \\ 0 & 1 & m_{3,j,1} & \cdots & m_{k,j,2} \\ 0 & 0 & 1 & \cdots & m_{k,j,3} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & 0 & \cdots & 1 \end{bmatrix}. \]
The first coordinate is a special case for which all the \(m_{r,1}\) equal 1. The corresponding matrix is therefore the identity matrix.
Note that as the Sobol' matrices are upper triangular with ones on the main diagonal, they are full-rank and consequently a Sobol' net is always fully projection-regular.
In LatNet Builder, the list of the first 21200 primitive polynomials is available. These polynomials are the ones used in [14]. The following table summarizes the degree \(e_j\) of the primitive polynomials (equal to the number of initial direction numbers) as a function of \(j\):
\(j\) | \(e_j\) |
---|---|
1 | N.A. |
2 | 1 |
3 | 2 |
4-5 | 3 |
6-7 | 4 |
8-13 | 5 |
14-19 | 6 |
20-37 | 7 |
38-53 | 8 |
54-101 | 9 |
102-161 | 10 |
162-337 | 11 |
338-481 | 12 |
482-1111 | 13 |
1112-1867 | 14 |
1868-3667 | 15 |
3668-5715 | 16 |
5716-13425 | 17 |
13426-21201 | 18 |
Polynomial lattice rules were defined above. It turns out that polynomial lattice rules can also be viewed as digital nets. The generating matrices of a polynomial lattice rule with polynomial modulus \(Q\) and polynomial generating vector \(\boldsymbol a \in \mathbb F_2[z]\) can be computed as follows [6] :
For \( 1 \leq j \leq s \), consider the expansions:
\[ \frac{a_j(z)}{Q} = \sum_{l = w_j}^{+\infty} u_{l}^{(j)} z^{-l} \in \mathbb L_2[z] \]
where \( w_{j} \leq 1 \).
Define the \(k \times k\) matrices \(M_{1}, \dots, M_s \) over \(\mathbb F_2\) where the elements \(m_{l, r + 1}^{(j)}\) of the matrix \(M_j\) are given by:
\[ m_{l, r + 1}^{(j)} = u_{r+l}^{(j)} \in \mathbb F_2, \]
for \( 1 \leq j \leq s \), \( 1 \leq l \leq k\) and \(0 \leq r \leq k - 1 \).
Then, the digital net corresponding to these matrices coincides with the polynomial lattice rule defined by the generating vector \(\boldsymbol a\). Provided that all the components of the generating vector are coprime with the modulus, these generating matrices are full-rank and the digital net is fully projection-regular.
LatNet Builder also supports the construction of random generating matrices. To ensure the fully projection-regular property, all the generating matrices constructed by the random generator are full-rank. It is not possible to explore exhaustively the space of all generating matrices as it is often really huge. Only the random variants of the exploration methods are available with the explicit construction.
LatNet Builder supports the construction of interlaced polynomial lattice rules and interlaced digital nets.
We adapt the definition of interlaced polynomial lattice rules from Definition 4. in [10] to the interlaced digital nets case.
Let \(s\) and \(d\) be positive integers. \(s\) is the dimension of the point set, \(d\) is called the interlacing factor and \(ds\) is called the number of components.
Let \(\bar{P}_n \{\boldsymbol z_i, 0 \leq i < n \}\) be a digital net in dimension \(ds\). For \( 0 \leq i < n\), note \(\boldsymbol z_i = (z_{i,1}, \dots, z_{i,ds})\).
Define the digit interlacing function \(D_d: [0,1)^d \rightarrow [0,1)\) by:
\[ D_d(z_1, \dots, z_d) = \sum_{a = 1}^{\infty} \sum_{r = 1}^d z_{r,a} 2^{-r-(a-1)d}, \]
where we denote the 2-adic expansion of \(z_l\) by \(z_l = z_{l,1} 2^{-1} + z_{l,2} 2^{-2} + \dots\) for \(1 \leq l \leq d\) and where we assume that the expansion is unique in the sense that infinitely many digits are different from 1.
Then define \(\boldsymbol x_i = (D_d(z_{i,1}, \dots, z_{i,d}), \dots, D_d(z_{i,(s-1)d + 1}, \dots, z_{i,sd}) )\) for \(0 \leq i < n\).
Then the point set \(P_n = \{\boldsymbol x_i, 0 \leq i < n \}\) is the interlaced digital net associated with the digital net \(\bar{P}_n\). \(\bar{P}_n\) is called the underlying net and its components the interlaced components.
An interlaced polynomial lattice rule is simply an interlaced digital net whose underlying net is a polynomial lattice rule.
The construction of interlaced digital nets boils down to the construction of digital nets in higher dimension. This is the point of view adopted by LatNet Builder for all the interlacing functionalities.