SSJ  3.3.1
Stochastic Simulation in Java
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ContainerPointSet Class Referenceabstract

This acts as a generic base class for all container classes that contain a point set and apply a specific kind of transformation to the coordinates \(u_{i,j}\) when the points are generated by the iterator. More...

Inheritance diagram for ContainerPointSet:
[legend]
Collaboration diagram for ContainerPointSet:
[legend]

Classes

class  ContainerPointSetIterator
 

Public Member Functions

PointSet getOriginalPointSet ()
 Returns the (untransformed) point set contained in this container. More...
 
int getDimension ()
 Returns the dimension of the contained point set. More...
 
int getNumPoints ()
 Returns the number of points in the contained point set. More...
 
double getCoordinate (int i, int j)
 By default, returns the untransformed coordinate \(u_{i,j}\) for the contained point set. More...
 
PointSetIterator iterator ()
 Return an iterator for this ContainerPointSet. More...
 
void randomize (PointSetRandomization rand)
 Randomizes the contained point set using rand. More...
 
void addRandomShift (int d1, int d2, RandomStream stream)
 Calls addRandomShift(d1, d2, stream) of the contained point set. More...
 
void addRandomShift (RandomStream stream)
 Calls addRandomShift(stream) of the contained point set. More...
 
void clearRandomShift ()
 Calls clearRandomShift() of the contained point set.
 
String toString ()
 
- Public Member Functions inherited from PointSet
int getDimension ()
 Returns the dimension (number of available coordinates) of the points. More...
 
int getNumPoints ()
 Returns the number of points. More...
 
abstract double getCoordinate (int i, int j)
 Returns \(u_{i,j}\), the coordinate \(j\) of the point \(i\). More...
 
PointSetIterator iterator ()
 Constructs and returns a point set iterator. More...
 
void randomize (PointSetRandomization rand)
 Randomizes this point set using the given rand. More...
 
void addRandomShift (int d1, int d2, RandomStream stream)
 By default, this method generates a random shift in the protected double[] array shift, to be used eventually for a random shift modulo 1. More...
 
void addRandomShift (RandomStream stream)
 Same as addRandomShift(0, dim, stream), where dim is the dimension of the point set. More...
 
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.
 
void clearRandomShift ()
 Erases the current random shift, if any.
 
String toString ()
 Formats a string that contains information about the point set. More...
 
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. More...
 
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 \(n\) points. More...
 
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. More...
 
String formatPoints (PointSetIterator iter, int n, int d)
 Same as invoking formatPoints(n, d), but prints the points by calling iter repeatedly. More...
 
String formatPointsBase (int b)
 Similar to formatPoints(), but the points coordinates are printed in base \(b\). More...
 
String formatPointsBase (int n, int d, int b)
 Similar to formatPoints(n, d), but the points coordinates are printed in base \(b\). More...
 
String formatPointsBase (PointSetIterator iter, int b)
 Similar to formatPoints(iter), but the points coordinates are printed in base \(b\). More...
 
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\). More...
 
String formatPointsNumbered ()
 Same as invoking formatPointsNumbered(n, d) with \(n\) and \(d\) equal to the number of points and the dimension, respectively. More...
 
String formatPointsNumbered (int n, int d)
 Same as invoking formatPoints(n,d), except that the points are numbered. More...
 

Protected Member Functions

void init (PointSet p0)
 Initializes this container point set so that it will contain the point set p0. More...
 

Protected Attributes

PointSet P
 
- Protected Attributes inherited from 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. More...
 
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. More...
 
RandomStream shiftStream
 Stream used to generate the random shifts. More...
 

Additional Inherited Members

- Static Protected Attributes inherited from 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. More...
 

Detailed Description

This acts as a generic base class for all container classes that contain a point set and apply a specific kind of transformation to the coordinates \(u_{i,j}\) when the points are generated by the iterator.

One example of such transformation is the antithetic map, applied by the container class AntitheticPointSet, where each output coordinate \(u_{i,j}\) is transformed into \(1-u_{i,j}\). Another example is RandShiftedMod1PointSet, which applies a random shift modulo 1 (the same shift) to all the points. Thus, the transformation can be deterministic in some cases, and in other cases it may implement a randomization.

The PointSetIterator implemented in this ContainerPointSet class contains itself an iterator for the contained point set and uses it to access the points and coordinates internally, instead of maintaining itself indices for the current point and current coordinate. It gets the coordinates \(u_{i,j}\) from the internal iterator, applies the appropriate transformation, and returns the transformed coordinates.

Member Function Documentation

◆ addRandomShift() [1/2]

void addRandomShift ( int  d1,
int  d2,
RandomStream  stream 
)

Calls addRandomShift(d1, d2, stream) of the contained point set.

Parameters
d1lower dimension of the random shift
d2upper dimension of the random shift
streamthe random stream

◆ addRandomShift() [2/2]

void addRandomShift ( RandomStream  stream)

Calls addRandomShift(stream) of the contained point set.

Parameters
streamthe random stream

◆ getCoordinate()

double getCoordinate ( int  i,
int  j 
)

By default, returns the untransformed coordinate \(u_{i,j}\) for the contained point set.

Returns
\(u_{i,j}\) for the contained point set

◆ getDimension()

int getDimension ( )

Returns the dimension of the contained point set.

Returns
the dimension of the contained point set

◆ getNumPoints()

int getNumPoints ( )

Returns the number of points in the contained point set.

Returns
the number of points in the contained point set

◆ getOriginalPointSet()

PointSet getOriginalPointSet ( )

Returns the (untransformed) point set contained in this container.

Returns
the point set inside this container

◆ init()

void init ( PointSet  p0)
protected

Initializes this container point set so that it will contain the point set p0.

This method must be called by the constructor of any subclass of the present abstract class.

Parameters
p0contained point set

◆ iterator()

PointSetIterator iterator ( )

Return an iterator for this ContainerPointSet.

Returns
a new ContainerPointSetIterator

◆ randomize()

void randomize ( PointSetRandomization  rand)

Randomizes the contained point set using rand.

Parameters
randPointSetRandomization to use

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