org.omegahat.Simulation.RandomGenerators
Class CollingsPRNGState

java.lang.Object
  |
  +--org.omegahat.Simulation.RandomGenerators.CollingsPRNGState
All Implemented Interfaces:
PRNGIntegerState, PRNGState

public class CollingsPRNGState
extends java.lang.Object
implements PRNGIntegerState

Encapsulates the state of a CollingsPRNG


Field Summary
(package private)  int[] ComponentMult
          Multiplier constant for component generators
(package private)  int[] ComponentSeed
          Seed for component generators
(package private)  int[] integerState
           
(package private)  int[] integerStateHash
           
(package private)  int MixerMult
          Multiplier constant for mixing generator
(package private)  int MixerSeed
          Seed for mixing generator
(package private)  int NumGen
          Number of component generators
(package private)  java.lang.String PRNGName
          Class this State corresponds to.
 
Constructor Summary
CollingsPRNGState()
           
CollingsPRNGState(int[] intState, int[] hash)
           
 
Method Summary
(package private)  int[] getComponentMult()
           
(package private)  int[] getComponentSeed()
           
 int[] getIntegerState()
          Return an array of ints that fully captures the state of the PRNG represented by this PRNGState.
 int[] getIntegerStateHash()
          Return the hash value for the state of the PRNG represented by this PRNGState.
(package private)  int getMixerMult()
           
(package private)  int getMixerSeed()
           
(package private)  int getNumGen()
           
 java.lang.String getPRNGName()
          Returns the name of the class that can be enstantiated from this state.
 boolean hashEquals(int[] hash1, int[] hash2)
           
protected  int[] makeIntegerStateHash(int[] intState)
           
 void setIntegerState(int[] intState, int[] hash)
          Set the internal state using an array of ints provided by another PRNGIntegerState.
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

PRNGName

java.lang.String PRNGName
Class this State corresponds to.

NumGen

int NumGen
Number of component generators

MixerMult

int MixerMult
Multiplier constant for mixing generator

MixerSeed

int MixerSeed
Seed for mixing generator

ComponentMult

int[] ComponentMult
Multiplier constant for component generators

ComponentSeed

int[] ComponentSeed
Seed for component generators

integerState

int[] integerState

integerStateHash

int[] integerStateHash
Constructor Detail

CollingsPRNGState

public CollingsPRNGState()

CollingsPRNGState

public CollingsPRNGState(int[] intState,
                         int[] hash)
Method Detail

getNumGen

int getNumGen()

getMixerMult

int getMixerMult()

getMixerSeed

int getMixerSeed()

getComponentMult

int[] getComponentMult()

getComponentSeed

int[] getComponentSeed()

getPRNGName

public java.lang.String getPRNGName()
Returns the name of the class that can be enstantiated from this state.
Specified by:
getPRNGName in interface PRNGState
Following copied from interface: org.omegahat.Simulation.RandomGenerators.PRNGState
Returns:
fully qualified class name The fully qualified class name can be used to instantiate the PRNG without knowing any of its details. For example:

CollingsPRNGAdministrator admin = new CollingsPRNGAdministrator();

PRNGState state = admin.registerPRNGState();

String name = state.getPRNGName();

Class cl = Class.forName(name);

Class classes[] = new Class[1];

classes[0] = Class.forName("org.omegahat.Simulation.RandomGenerators.PRNGState");

java.lang.reflect.Constructor c = cl.getConstructor(classes);

Object[] args = new Object[1];

args[0] = state;

PRNG prng = (PRNG)

c.newInstance(args);

for(int a=1; a<10; a++)

System.out.println(prng.nextInt());


getIntegerState

public int[] getIntegerState()
Description copied from interface: PRNGIntegerState
Return an array of ints that fully captures the state of the PRNG represented by this PRNGState.
Specified by:
getIntegerState in interface PRNGIntegerState

getIntegerStateHash

public int[] getIntegerStateHash()
Description copied from interface: PRNGIntegerState
Return the hash value for the state of the PRNG represented by this PRNGState.

This hash value must be included as a parameter when the setPRNGIntegerState function is called, allowing it to verify that the state has been correctly transmitted and is has not been modified.

Specified by:
getIntegerStateHash in interface PRNGIntegerState

hashEquals

public boolean hashEquals(int[] hash1,
                          int[] hash2)

setIntegerState

public void setIntegerState(int[] intState,
                            int[] hash)
Description copied from interface: PRNGIntegerState
Set the internal state using an array of ints provided by another PRNGIntegerState. The hash parameter allows the method to check that the state provided has been correctly transmitted and has not been modified.
Specified by:
setIntegerState in interface PRNGIntegerState

makeIntegerStateHash

protected int[] makeIntegerStateHash(int[] intState)