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

This abstract class provides the basic structures for storing and manipulating a point set defined by a set of cycles. More...

Inheritance diagram for umontreal.ssj.hups.CycleBasedPointSet:
umontreal.ssj.hups.PointSet umontreal.ssj.hups.CycleBasedPointSetBase2 umontreal.ssj.hups.LCGPointSet umontreal.ssj.hups.CycleBasedLFSR umontreal.ssj.hups.F2wCycleBasedLFSR umontreal.ssj.hups.F2wCycleBasedPolyLCG

Classes

class  CycleBasedPointSetIterator

Public Member Functions

double getCoordinate (int i, int j)
 Returns \(u_{i,j}\), the coordinate \(j\) of the point \(i\).
void addRandomShift (int d1, int d2, RandomStream stream)
 Same as the same method in PointSet.
void clearRandomShift ()
 Erases the current random shift, if any.
int getDimension ()
 Returns the dimension (number of available coordinates) of the points.
PointSetIterator iterator ()
 Constructs and returns a point set iterator.
String toString ()
 Formats a string that contains information about the point set.
String formatPoints ()
 Same as invoking formatPoints(n, d) with \(n\) and \(d\) equal to the number of points and the dimension of this object, respectively.
Public Member Functions inherited from umontreal.ssj.hups.PointSet
int getNumPoints ()
 Returns the number of points.
void randomize (PointSetRandomization rand)
 Randomizes this point set using the given rand.
void addRandomShift (RandomStream stream)
 Same as addRandomShift(0, dim, stream), where dim is the dimension of the point set.
void addRandomShift (int d1, int d2)
 Refreshes the random shift (generates new uniform values for the random shift coordinates) for coordinates d1 to d2-1, using the saved shiftStream.
void addRandomShift ()
 Same as addRandomShift(0, dim), where dim is the dimension of the point set.
String formatPoints (int n, int d)
 Formats a string that displays the same information as returned by toString, together with the first \(d\) coordinates of the first.
String formatPoints (PointSetIterator iter)
 Same as invoking formatPoints(iter, n, d) with \(n\) and \(d\) equal to the number of points and the dimension, respectively.
String formatPoints (PointSetIterator iter, int n, int d)
 Same as invoking formatPoints(n, d), but prints the points by calling iter repeatedly.
String formatPointsBase (int b)
 Similar to formatPoints(), but the points coordinates are printed in base \(b\).
String formatPointsBase (int n, int d, int b)
 Similar to formatPoints(n, d), but the points coordinates are printed in base \(b\).
String formatPointsBase (PointSetIterator iter, int b)
 Similar to formatPoints(iter), but the points coordinates are printed in base.
String formatPointsBase (PointSetIterator iter, int n, int d, int b)
 Similar to formatPoints(iter, n, d), but the points coordinates are printed in base \(b\).
String formatPointsNumbered ()
 Same as invoking formatPointsNumbered(n, d) with \(n\) and \(d\) equal to the number of points and the dimension, respectively.
String formatPointsNumbered (int n, int d)
 Same as invoking formatPoints(n,d), except that the points are numbered.

Protected Member Functions

void addCycle (AbstractList c)
 Adds the cycle c to the list of all cycles.

Additional Inherited Members

Static Public Member Functions inherited from umontreal.ssj.hups.PointSet
static int getMaxBits ()
 Returns the maximum number of usable bits.
Protected Attributes inherited from umontreal.ssj.hups.PointSet
double EpsilonHalf = 1.0 / Num.TWOEXP[55]
 To avoid 0 for nextCoordinate when random shifting, we add this to each coordinate.
int dim = 0
 Dimension of the points.
int numPoints = 0
 Number of points.
int dimShift = 0
 Current dimension of the shift.
int capacityShift = 0
 Number of array elements in the shift vector, always >= dimShift.
double[] shift
 This is the shift vector as a double[] array, which contains the current random shift in case we apply a random shift modulo 1.
RandomStream shiftStream
 Stream used to generate the random shifts.
Static Protected Attributes inherited from umontreal.ssj.hups.PointSet
static final int MAXBITS = 31
 Since Java has no unsigned type, the 32nd bit cannot be used efficiently, so we have only 31 bits.

Detailed Description

This abstract class provides the basic structures for storing and manipulating a point set defined by a set of cycles.

The \(s\)-dimensional points are all the vectors of \(s\) successive values found in any of the cycles, from any starting point. Since this is defined for any positive integer \(s\), the points effectively have an infinite number of dimensions. The number of points, \(n\), is the sum of lengths of all the cycles. The cycles of the point set are simply stored as a list of arrays, where each array contains the successive values for a given cycle. By default, the values are stored in double.

This structure is convenient for implementing recurrence-based point sets, where the point set in \(s\) dimensions is defined as the set of all vectors of \(s\) successive values of a periodic recurrence, from all its possible initial states.

Definition at line 51 of file CycleBasedPointSet.java.

Member Function Documentation

◆ addCycle()

void umontreal.ssj.hups.CycleBasedPointSet.addCycle ( AbstractList c)
protected

Adds the cycle c to the list of all cycles.

This method is used by subclass constructors to fill up the list of cycles.

Definition at line 115 of file CycleBasedPointSet.java.

◆ addRandomShift()

void umontreal.ssj.hups.CycleBasedPointSet.addRandomShift ( int d1,
int d2,
RandomStream stream )

Same as the same method in PointSet.

Parameters
streamStream used to generate random numbers

Reimplemented from umontreal.ssj.hups.PointSet.

Reimplemented in umontreal.ssj.hups.CycleBasedPointSetBase2.

Definition at line 79 of file CycleBasedPointSet.java.

◆ clearRandomShift()

void umontreal.ssj.hups.CycleBasedPointSet.clearRandomShift ( )

Erases the current random shift, if any.

Reimplemented from umontreal.ssj.hups.PointSet.

Reimplemented in umontreal.ssj.hups.CycleBasedPointSetBase2.

Definition at line 106 of file CycleBasedPointSet.java.

◆ formatPoints()

String umontreal.ssj.hups.CycleBasedPointSet.formatPoints ( )

Same as invoking formatPoints(n, d) with \(n\) and \(d\) equal to the number of points and the dimension of this object, respectively.

Returns
string representation of all the points in the point set
Exceptions
UnsupportedOperationExceptionif the number of points or dimension of the point set is infinite

Reimplemented from umontreal.ssj.hups.PointSet.

Reimplemented in umontreal.ssj.hups.CycleBasedPointSetBase2.

Definition at line 136 of file CycleBasedPointSet.java.

◆ getCoordinate()

double umontreal.ssj.hups.CycleBasedPointSet.getCoordinate ( int i,
int j )

Returns \(u_{i,j}\), the coordinate \(j\) of the point \(i\).

When the points are randomized (e.g., a random shift is added), the values returned by this method should incorporate the randomizations. Richard: La méthode getCoordinate de certaines classes ne tient pas compte du random shift, contrairement à l’itérateur de la même classe. Faut-il que toutes les getCoordinate implémentent le random shift quand il existe? Oui.

Parameters
iindex of the point to look for
jindex of the coordinate to look for
Returns
the value of \(u_{i,j}\)

Reimplemented from umontreal.ssj.hups.PointSet.

Reimplemented in umontreal.ssj.hups.CycleBasedPointSetBase2.

Definition at line 59 of file CycleBasedPointSet.java.

◆ getDimension()

int umontreal.ssj.hups.CycleBasedPointSet.getDimension ( )

Returns the dimension (number of available coordinates) of the points.

If the dimension is actually infinite, Integer.MAX_VALUE is returned.

Returns
the dimension of the point set or Integer.MAX_VALUE if it is infinite

Reimplemented from umontreal.ssj.hups.PointSet.

Definition at line 123 of file CycleBasedPointSet.java.

◆ iterator()

PointSetIterator umontreal.ssj.hups.CycleBasedPointSet.iterator ( )

Constructs and returns a point set iterator.

The default implementation returns an iterator that uses the method getCoordinate(i,j) to iterate over the points and coordinates, but subclasses can reimplement it for better efficiency.

Returns
point set iterator for the point set

Reimplemented from umontreal.ssj.hups.PointSet.

Reimplemented in umontreal.ssj.hups.CycleBasedPointSetBase2.

Definition at line 127 of file CycleBasedPointSet.java.

◆ toString()

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

Formats a string that contains information about the point set.

Returns
string representation of the point set information

Reimplemented from umontreal.ssj.hups.PointSet.

Reimplemented in umontreal.ssj.hups.CycleBasedLFSR, umontreal.ssj.hups.F2wCycleBasedLFSR, umontreal.ssj.hups.F2wCycleBasedPolyLCG, and umontreal.ssj.hups.LCGPointSet.

Definition at line 131 of file CycleBasedPointSet.java.


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