SSJ
3.3.1
Stochastic Simulation in Java
|
This class implements methods and fields needed by the classes umontreal.ssj.hups.F2wNetLFSR, umontreal.ssj.hups.F2wNetPolyLCG, umontreal.ssj.hups.F2wCycleBasedLFSR and umontreal.ssj.hups.F2wCycleBasedPolyLCG. More...
Public Member Functions | |
String | toString () |
This method returns a string containing the polynomial \(P(z)\) and the stepping parameter. | |
Static Public Member Functions | |
static void | print (String filename) |
Prints the content of file filename . More... | |
Package Functions | |
void | initParamLFSR () |
F2wStructure (int w, int r, int modQ, int step, int nbcoeff, int coeff[], int nocoeff[]) | |
Constructs a F2wStructure object that contains the parameters of a polynomial in \(\mathbb F_{2^w}[z]\), as well as a stepping parameter. | |
F2wStructure (String filename, int no) | |
Constructs a polynomial in \(\mathbb F_{2^w}[z]\) after reading its parameters from file filename ; the parameters of this polynomial are stored at line number no of filename . More... | |
int | getLog2N () |
This method returns the product \(rw\). | |
int | multiply (int a, int b) |
Method that multiplies two elements in \(\mathbb F_{2^w}\). | |
void | initF2wLFSR () |
void | F2wLFSR () |
int | F2wPolyLCG () |
Package Attributes | |
int | w |
int | r |
int | numBits |
int | S |
int | state |
int | output |
double | normFactor |
double | EpsilonHalf |
Static Package Attributes | |
static final int | MBL = 140 |
This class implements methods and fields needed by the classes umontreal.ssj.hups.F2wNetLFSR, umontreal.ssj.hups.F2wNetPolyLCG, umontreal.ssj.hups.F2wCycleBasedLFSR and umontreal.ssj.hups.F2wCycleBasedPolyLCG.
It also stores the parameters of these point sets which will contain \(2^{rw}\) points (see the meaning of \(r\) and \(w\) below). The parameters can be stored as a polynomial \(P(z)\) over \(\mathbb F_{2^w}[z]\)
\[ P(z) = z^r + \sum_{i=1}^r b_i z^{r-i} \]
where \(b_i\in\mathbb F_{2^w}\) for \(i=1,…,r\). Let \(\zeta\) be the root of an irreducible polynomial \(Q(z)\in\mathbb F_2[z]\). It is well known that \(\zeta\) is a generator of the finite field \(\mathbb F_{2^w}\). The elements of \(\mathbb F_{2^w}\) are represented using the polynomial ordered basis \((1,\zeta,…,\zeta^{w-1})\).
In this class, only the non-zero coefficients of \(P(z)\) are stored. It is stored as
\[ P(z) = z^{\mathtt{r}} + \sum_{i=0}^{\mathtt{nbcoeff}} {\mathtt{coeff[}}i{\mathtt{]}} z^{{\mathtt{nocoeff[}}i{\mathtt{]}}} \]
where the coefficients in coeff[]
represent the non-zero coefficients \(b_i\) of \(P(z)\) using the polynomial basis. The finite field \(\mathbb F_{2^w}\) used is defined by the polynomial
\[ Q(z) = z^w + \sum_{i=1}^w a_i z^{w-i} \]
where \(a_i\in\mathbb F_2\), for \(i=1,…,w\). Polynomial \(Q\) is stored as the bit vector modQ
= \((a_w,…,a_1)\).
The class also stores the parameter step
that is used by the classes umontreal.ssj.hups.F2wNetLFSR, umontreal.ssj.hups.F2wNetPolyLCG, umontreal.ssj.hups.F2wCycleBasedLFSR and umontreal.ssj.hups.F2wCycleBasedPolyLCG. This parameter is such that the implementation of the recurrence will output a value at every step
iterations.
Directory LFSR_equid_max | |
Filename | Num of poly. |
f2wR2_W5.dat | 2358 |
f2wR2_W6.dat | 1618 |
f2wR2_W7.dat | 507 |
f2wR2_W8.dat | 26 |
f2wR2_W9.dat | 3 |
f2wR3_W4.dat | 369 |
f2wR3_W5.dat | 26 |
f2wR3_W6.dat | 1 |
f2wR4_W3.dat | 117 |
f2wR4_W4.dat | 1 |
f2wR5_W2.dat | 165 |
f2wR5_W3.dat | 1 |
f2wR6_W2.dat | 36 |
f2wR6_W3.dat | 1 |
f2wR7_W2.dat | 10 |
f2wR8_W2.dat | 11 |
f2wR9_W2.dat | 1 |
Directory LFSR_equid_sum | |
Filename | Num of poly. |
f2wR2_W5.dat | 2276 |
f2wR2_W6.dat | 1121 |
f2wR2_W7.dat | 474 |
f2wR2_W8.dat | 37 |
f2wR2_W9.dat | 6 |
f2wR3_W4.dat | 381 |
f2wR3_W5.dat | 65 |
f2wR3_W6.dat | 7 |
f2wR4_W3.dat | 154 |
f2wR4_W4.dat | 2 |
f2wR5_W2.dat | 688 |
f2wR5_W3.dat | 5 |
f2wR6_W2.dat | 70 |
f2wR6_W3.dat | 1 |
f2wR7_W2.dat | 9 |
f2wR8_W2.dat | 3 |
f2wR9_W2.dat | 3 |
Directory LFSR_mindist_max | |
Filename | Num of poly. |
f2wR2_W5.dat | 1 |
f2wR2_W6.dat | 1 |
f2wR2_W7.dat | 2 |
f2wR2_W8.dat | 2 |
f2wR2_W9.dat | 1 |
f2wR3_W4.dat | 2 |
f2wR3_W5.dat | 2 |
f2wR3_W6.dat | 1 |
f2wR4_W3.dat | 1 |
f2wR4_W4.dat | 1 |
f2wR5_W2.dat | 2 |
f2wR5_W3.dat | 1 |
f2wR6_W2.dat | 4 |
f2wR6_W3.dat | 1 |
f2wR7_W2.dat | 1 |
f2wR8_W2.dat | 1 |
f2wR9_W2.dat | 1 |
Directory LFSR_mindist_sum | |
Filename | Num of poly. |
f2wR2_W5.dat | 1 |
f2wR2_W6.dat | 1 |
f2wR2_W7.dat | 1 |
f2wR2_W8.dat | 1 |
f2wR2_W9.dat | 1 |
f2wR3_W4.dat | 1 |
f2wR3_W5.dat | 1 |
f2wR3_W6.dat | 1 |
f2wR4_W3.dat | 1 |
f2wR4_W4.dat | 2 |
f2wR5_W2.dat | 2 |
f2wR5_W3.dat | 2 |
f2wR6_W2.dat | 1 |
f2wR6_W3.dat | 1 |
f2wR7_W2.dat | 2 |
f2wR8_W2.dat | 1 |
f2wR9_W2.dat | 2 |
Directory LFSR_tvalue_max | |
Filename | Num of poly. |
f2wR2_W5.dat | 7 |
f2wR2_W6.dat | 1 |
f2wR2_W7.dat | 1 |
f2wR2_W8.dat | 1 |
f2wR2_W9.dat | 1 |
f2wR3_W4.dat | 1 |
f2wR3_W5.dat | 1 |
f2wR3_W6.dat | 1 |
f2wR4_W3.dat | 2 |
f2wR4_W4.dat | 1 |
f2wR5_W2.dat | 14 |
f2wR5_W3.dat | 1 |
f2wR6_W2.dat | 2 |
f2wR6_W3.dat | 1 |
f2wR7_W2.dat | 1 |
f2wR8_W2.dat | 1 |
f2wR9_W2.dat | 1 |
Directory LFSR_tvalue_sum | |
Filename | Num of poly. |
f2wR2_W5.dat | 15 |
f2wR2_W6.dat | 1 |
f2wR2_W7.dat | 1 |
f2wR2_W8.dat | 2 |
f2wR2_W9.dat | 1 |
f2wR3_W4.dat | 1 |
f2wR3_W5.dat | 1 |
f2wR3_W6.dat | 1 |
f2wR4_W3.dat | 2 |
f2wR4_W4.dat | 1 |
f2wR5_W2.dat | 13 |
f2wR5_W3.dat | 2 |
f2wR6_W2.dat | 12 |
f2wR6_W3.dat | 1 |
f2wR7_W2.dat | 1 |
f2wR8_W2.dat | 1 |
f2wR9_W2.dat | 1 |
|
package |
Constructs a polynomial in \(\mathbb F_{2^w}[z]\) after reading its parameters from file filename
; the parameters of this polynomial are stored at line number no
of filename
.
The files are kept in different directories depending on the criteria used in the searches for the parameters defining the polynomials. The different criteria for the searches and the theory behind it are described in [197], [199] . The existing files and the number of polynomials they contain are given in the following tables. The first table below contains files in subdirectory LFSR_equid_max
. The name of each file indicates the value of \(r\) and \(w\) for the polynomials. For example, file f2wR2_W5.dat
in directory LFSR_equid_max
contains the parameters of 2358 polynomials with \(r=2\) and \(w=5\). For example, to use the 5-th polynomial of file f2wR2_W5.dat
, one may call F2wStructure("f2wR2_W5.dat", 5)
. The files of parameters have been stored at the address http://simul.iro.umontreal.ca/ssj/dataF2w/Panneton/. The files should be copied in the user directory, and passed as parameter to the constructor.
|
static |
Prints the content of file filename
.
See the constructor above for the conditions on filename
.