SSJ  3.3.1
Stochastic Simulation in Java
Public Member Functions | Static Public Member Functions | Package Functions | Package Attributes | Static Package Attributes | List of all members
F2wStructure Class Reference

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
 

Detailed Description

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.

Additional Information

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

Constructor & Destructor Documentation

◆ F2wStructure()

F2wStructure ( String  filename,
int  no 
)
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.

Member Function Documentation

◆ print()

static void print ( String  filename)
static

Prints the content of file filename.

See the constructor above for the conditions on filename.


The documentation for this class was generated from the following file: