SSJ
V. labo.

umontreal.iro.lecuyer.hups
Class StratifiedUnitCube

java.lang.Object
  extended by umontreal.iro.lecuyer.hups.PointSet
      extended by umontreal.iro.lecuyer.hups.CachedPointSet
          extended by umontreal.iro.lecuyer.hups.StratifiedUnitCube

public class StratifiedUnitCube
extends CachedPointSet

StratifiedUnitCube

This class implements a stratification of the unit cube in rectangular boxes of same size and orientation. In s dimensions, it divides the jth axis in kj≥1 equal parts of length dj = 1/kj, for j = 0,..., s - 1. This partitions the unit cube [0, 1)s into n = k0 ... ks-1 rectangular boxes of the same size. The point set is defined by generating one random point uniformly in each of those n boxes.

We number the boxes (or strata) as follows: The box determined by the interval [cjdj,(cj +1)dj) for j = 0,..., s - 1 has number i = c0 + c1k0 + ... + cs-1k0 ... ks-2. Check. Correct?? By default, the points are enumerated by order of their box number. One can also create iterators that enumerate the points by order of any given coordinate.

Although this class extends CachedPointSet, here there is no underlying point set P that is cached.


Constructor Summary
StratifiedUnitCube(int[] k, int dim)
          .
StratifiedUnitCube(int k, int dim)
          .
 
Method Summary
 void addRandomShift(int fromDim, int toDim, RandomStream stream)
          .
 void randomize(PointSetRandomization rand)
          .
 void randomize(RandomStream stream)
          .
 String toString()
          .
 
Methods inherited from class umontreal.iro.lecuyer.hups.CachedPointSet
getCoordinate, sortByCoordinate, sortMultidimBatch, sortMultidimBatchSplit, stripCoordinates
 
Methods inherited from class umontreal.iro.lecuyer.hups.PointSet
addRandomShift, addRandomShift, addRandomShift, clearRandomShift, formatPoints, formatPoints, formatPoints, formatPoints, formatPointsBase, formatPointsBase, formatPointsBase, formatPointsBase, formatPointsNumbered, formatPointsNumbered, getDimension, getNumPoints, getStream, iterator, randomize, randomize, randomize, setStream, unrandomize
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

StratifiedUnitCube

public StratifiedUnitCube(int[] k,
                          int dim)
. \begin{tabb}
 Builds a stratified points set in {\tt dim} dimensions, with {\tt k[j]} intervals in dimension {\tt j}.
 \end{tabb}
knumber of intervals in each dimension diminteger, dimension of the points set


StratifiedUnitCube

public StratifiedUnitCube(int k,
                          int dim)
. \begin{tabb}
 Same as {\tt StratifiedUnitCube (int[] k, int dim)} with all coord...
 ...}.
 This gives $n = k^s$\ strata (and points), with $s = {\tt dim}$.
 \end{tabb}

Method Detail

randomize

public void randomize(RandomStream stream)
. \begin{tabb}
 This randomization generates one point randomly in its correspondi...
 ...stratified points are defined only after this method has been called.
 \end{tabb}
streamRandom stream to generate the n×$ \tt dim$ uniforms required to randomize the points

Overrides:
randomize in class PointSet

addRandomShift

public void addRandomShift(int fromDim,
                           int toDim,
                           RandomStream stream)
. \begin{tabb}
 Random shifts and partial randomizations are irrelevant here, so t...
 ...e parameters \texttt{fromDim} and \texttt{toDim} are \emph{not used}.
 \end{tabb}

Overrides:
addRandomShift in class CachedPointSet

randomize

public void randomize(PointSetRandomization rand)
. \begin{tabb}
 Randomizes the points using stratification, regardless of what \texttt{rand} is.
 Equivalent to \texttt{randomize (rand.getStream)}.
 \end{tabb}

Overrides:
randomize in class CachedPointSet

toString

public String toString()
Description copied from class: PointSet
. \begin{tabb}
 Formats a string that contains information about the point set.
 \end{tabb}
string representation of the point set information

Overrides:
toString in class CachedPointSet

SSJ
V. labo.

To submit a bug or ask questions, send an e-mail to Pierre L'Ecuyer.