package umontreal.iro.lecuyer.hups;

import umontreal.iro.lecuyer.rng.RandomStream;


/**
 * This interface is used to randomize a
 * {@link umontreal.iro.lecuyer.hups.PointSet PointSet}. One can
 * implement method {@link #randomize(PointSet) randomize} in any way. This
 * method must use an internal
 * {@link umontreal.iro.lecuyer.rng.RandomStream RandomStream}. This
 * stream can be set in the constructor, but the methods
 * {@link #getStream getStream} and {@link #setStream(RandomStream) setStream} must be
 * implemented.
 * 
 * 

* The method {@link #randomize(PointSet) randomize} must be implemented using * combinations of the randomization methods from the point set such * as * {@link umontreal.iro.lecuyer.hups.PointSet#addRandomShift addRandomShift}, * {@link umontreal.iro.lecuyer.hups.DigitalNet#leftMatrixScramble leftMatrixScramble}, * {@link umontreal.iro.lecuyer.hups.DigitalNet#stripedMatrixScramble stripedMatrixScramble}, * ... * *

* If more than one {@link PointSetRandomization} is applied to the * same point set, the randomizations will concatenate if they are of * different types, but only the last of each type will remain. * */ public interface PointSetRandomization { /** * This method must randomize p. * * @param p Point set to randomize * * */ public void randomize (PointSet p); /** * Sets the internal * {@link umontreal.iro.lecuyer.rng.RandomStream RandomStream} to * stream. * * @param stream stream to use in the randomization * * */ public void setStream (RandomStream stream); /** * Returns the internal * {@link umontreal.iro.lecuyer.rng.RandomStream RandomStream}. * * @return stream used in the randomization * */ public RandomStream getStream(); }

Ads help maintain this website.