SSJ
V. labo.

umontreal.iro.lecuyer.hups
Class DigitalSequence

java.lang.Object
  extended by umontreal.iro.lecuyer.hups.PointSet
      extended by umontreal.iro.lecuyer.hups.DigitalNet
          extended by umontreal.iro.lecuyer.hups.DigitalSequence
Direct Known Subclasses:
FaureSequence

public abstract class DigitalSequence
extends DigitalNet

This abstract class describes methods specific to digital sequences. Concrete classes must implement the extendSequence method that increases the number of points of the digital sequence. Calling the methods toNet or toNetShiftCj will transform the digital sequence into a digital net, which has a fixed number of points n.


Constructor Summary
DigitalSequence()
           
 
Method Summary
abstract  void extendSequence(int k)
          Increases the number of points to n = bk from now on.
 PointSetIterator iteratorShift()
          Similar to iterator, except that the first coordinate of the points is i/n, the second coordinate is obtained via the generating matrix C0, the next one via C1, and so on.
 PointSetIterator iteratorShiftNoGray()
          This iterator shifts all coordinates of each point one position to the right and sets the first coordinate of point i to i/n, so that the points enumerated with this iterator have one more dimension.
 DigitalNet toNet()
          Transforms this digital sequence into a digital net without changing the coordinates of the points.
 DigitalNet toNetShiftCj()
          Transforms this digital sequence into a digital net by adding one dimension and shifting all coordinates by one position.
 
Methods inherited from class umontreal.iro.lecuyer.hups.DigitalNet
addRandomShift, addRandomShift, clearRandomShift, eraseOriginalGeneratorMatrices, getCoordinate, getCoordinateNoGray, iBinomialMatrixScramble, iBinomialMatrixScrambleFaurePermut, iBinomialMatrixScrambleFaurePermutAll, iBinomialMatrixScrambleFaurePermutDiag, iterator, iteratorNoGray, leftMatrixScramble, leftMatrixScrambleDiag, leftMatrixScrambleFaurePermut, leftMatrixScrambleFaurePermutAll, leftMatrixScrambleFaurePermutDiag, printGeneratorMatrices, resetGeneratorMatrices, rightMatrixScramble, stripedMatrixScramble, stripedMatrixScrambleFaurePermutAll, toString, unrandomize
 
Methods inherited from class umontreal.iro.lecuyer.hups.PointSet
addRandomShift, addRandomShift, formatPoints, formatPoints, formatPoints, formatPoints, formatPointsBase, formatPointsBase, formatPointsBase, formatPointsBase, formatPointsNumbered, formatPointsNumbered, getDimension, getNumPoints, getStream, randomize, randomize, randomize, randomize, randomize, setStream
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

DigitalSequence

public DigitalSequence()
Method Detail

extendSequence

public abstract void extendSequence(int k)
Increases the number of points to n = bk from now on.

Parameters:
k - there will be b^k points

toNet

public DigitalNet toNet()
Transforms this digital sequence into a digital net without changing the coordinates of the points. Returns the digital net.


toNetShiftCj

public DigitalNet toNetShiftCj()
Transforms this digital sequence into a digital net by adding one dimension and shifting all coordinates by one position. The first coordinate of point i is i/n, where n is the total number of points. Thus if the coordinates of a point of the digital sequence were (x0, x1, x2,…, xs-1), then the coordinates of the point of the digital net will be (i/n, x0, x1,…, xs-1). In other words, for the digital net, C0 is the reflected identity and for j >= 1, the Cj used is the Cj-1 of the digital sequence. If the digital sequence uses a digital shift, then the digital net will include the digital shift with one more dimension also. Returns the digital net.


iteratorShift

public PointSetIterator iteratorShift()
Similar to iterator, except that the first coordinate of the points is i/n, the second coordinate is obtained via the generating matrix C0, the next one via C1, and so on. Thus, this iterator shifts all coordinates of each point one position to the right and sets the first coordinate of point i to i/n, so that the points enumerated with this iterator have one more dimension. A digital shift, if present, will have one more dimension also. This iterator uses the Gray code.


iteratorShiftNoGray

public PointSetIterator iteratorShiftNoGray()
This iterator shifts all coordinates of each point one position to the right and sets the first coordinate of point i to i/n, so that the points enumerated with this iterator have one more dimension. This iterator does not use the Gray code; the points are enumerated in the order of their first coordinate before randomization. A digital shift, if present, will have one more dimension also.


SSJ
V. labo.

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