SSJ API Documentation
Stochastic Simulation in Java
Loading...
Searching...
No Matches
umontreal.ssj.hups.F2wStructure Class Reference

This class implements methods and fields needed by the classes. 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.

Package Functions

 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.
int getLog2N ()
 This method returns the product \(rw\).
int multiply (int a, int b)
 Method that multiplies two elements in \(\mathbb F_{2^w}\).

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
FilenameNum of poly.
f2wR2_W5.dat2358
f2wR2_W6.dat1618
f2wR2_W7.dat507
f2wR2_W8.dat26
f2wR2_W9.dat3
f2wR3_W4.dat369
f2wR3_W5.dat26
f2wR3_W6.dat1
f2wR4_W3.dat117
f2wR4_W4.dat1
f2wR5_W2.dat165
f2wR5_W3.dat1
f2wR6_W2.dat36
f2wR6_W3.dat1
f2wR7_W2.dat10
f2wR8_W2.dat11
f2wR9_W2.dat1
Directory LFSR_equid_sum
FilenameNum of poly.
f2wR2_W5.dat2276
f2wR2_W6.dat1121
f2wR2_W7.dat474
f2wR2_W8.dat37
f2wR2_W9.dat6
f2wR3_W4.dat381
f2wR3_W5.dat65
f2wR3_W6.dat7
f2wR4_W3.dat154
f2wR4_W4.dat2
f2wR5_W2.dat688
f2wR5_W3.dat5
f2wR6_W2.dat70
f2wR6_W3.dat1
f2wR7_W2.dat9
f2wR8_W2.dat3
f2wR9_W2.dat3

Directory LFSR_mindist_max
FilenameNum of poly.
f2wR2_W5.dat1
f2wR2_W6.dat1
f2wR2_W7.dat2
f2wR2_W8.dat2
f2wR2_W9.dat1
f2wR3_W4.dat2
f2wR3_W5.dat2
f2wR3_W6.dat1
f2wR4_W3.dat1
f2wR4_W4.dat1
f2wR5_W2.dat2
f2wR5_W3.dat1
f2wR6_W2.dat4
f2wR6_W3.dat1
f2wR7_W2.dat1
f2wR8_W2.dat1
f2wR9_W2.dat1
Directory LFSR_mindist_sum
FilenameNum of poly.
f2wR2_W5.dat1
f2wR2_W6.dat1
f2wR2_W7.dat1
f2wR2_W8.dat1
f2wR2_W9.dat1
f2wR3_W4.dat1
f2wR3_W5.dat1
f2wR3_W6.dat1
f2wR4_W3.dat1
f2wR4_W4.dat2
f2wR5_W2.dat2
f2wR5_W3.dat2
f2wR6_W2.dat1
f2wR6_W3.dat1
f2wR7_W2.dat2
f2wR8_W2.dat1
f2wR9_W2.dat2

Directory LFSR_tvalue_max
FilenameNum of poly.
f2wR2_W5.dat7
f2wR2_W6.dat1
f2wR2_W7.dat1
f2wR2_W8.dat1
f2wR2_W9.dat1
f2wR3_W4.dat1
f2wR3_W5.dat1
f2wR3_W6.dat1
f2wR4_W3.dat2
f2wR4_W4.dat1
f2wR5_W2.dat14
f2wR5_W3.dat1
f2wR6_W2.dat2
f2wR6_W3.dat1
f2wR7_W2.dat1
f2wR8_W2.dat1
f2wR9_W2.dat1
Directory LFSR_tvalue_sum
FilenameNum of poly.
f2wR2_W5.dat15
f2wR2_W6.dat1
f2wR2_W7.dat1
f2wR2_W8.dat2
f2wR2_W9.dat1
f2wR3_W4.dat1
f2wR3_W5.dat1
f2wR3_W6.dat1
f2wR4_W3.dat2
f2wR4_W4.dat1
f2wR5_W2.dat13
f2wR5_W3.dat2
f2wR6_W2.dat12
f2wR6_W3.dat1
f2wR7_W2.dat1
f2wR8_W2.dat1
f2wR9_W2.dat1

Definition at line 439 of file F2wStructure.java.

Constructor & Destructor Documentation

◆ F2wStructure() [1/2]

umontreal.ssj.hups.F2wStructure.F2wStructure ( int w,
int r,
int modQ,
int step,
int nbcoeff,
int coeff[],
int nocoeff[] )
package

Constructs a F2wStructure object that contains the parameters of a polynomial in \(\mathbb F_{2^w}[z]\), as well as a stepping parameter.

Definition at line 500 of file F2wStructure.java.

◆ F2wStructure() [2/2]

umontreal.ssj.hups.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 [191], [193] . 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.

Definition at line 524 of file F2wStructure.java.

Member Function Documentation

◆ getLog2N()

int umontreal.ssj.hups.F2wStructure.getLog2N ( )
package

This method returns the product \(rw\).

Definition at line 568 of file F2wStructure.java.

◆ multiply()

int umontreal.ssj.hups.F2wStructure.multiply ( int a,
int b )
package

Method that multiplies two elements in \(\mathbb F_{2^w}\).

Definition at line 575 of file F2wStructure.java.

◆ print()

void umontreal.ssj.hups.F2wStructure.print ( String filename)
static

Prints the content of file filename.

See the constructor above for the conditions on filename.

Definition at line 638 of file F2wStructure.java.

◆ toString()

String umontreal.ssj.hups.F2wStructure.toString ( )

This method returns a string containing the polynomial \(P(z)\) and the stepping parameter.

Definition at line 667 of file F2wStructure.java.


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