class org.simgrid.msg.RngStream

public class RngStream

Export of RngStreams for Java

Constructors

RngStream

public RngStream()

Creates and returns a new stream without identifier. This procedure reserves space to keep the information relative to the RngStream, initializes its seed Ig , sets Bg and Cg equal to Ig , sets its antithetic and precision switches to 0. The seed Ig is equal to the initial seed of the package given by setPackageSeed if this is the first stream created, otherwise it is Z steps ahead of that of the most recently created stream.

RngStream

public RngStream(String name)

Creates and returns a new stream with identifier “name”. This procedure reserves space to keep the information relative to the RngStream, initializes its seed Ig , sets Bg and Cg equal to Ig , sets its antithetic and precision switches to 0. The seed Ig is equal to the initial seed of the package given by setPackageSeed if this is the first stream created, otherwise it is Z steps ahead of that of the most recently created stream.

Methods

advanceState

public native void advanceState(int e, int g)

Advances the state of the stream by k values, without modifying the states of other streams (as in RngStream_SetSeed), nor the values of Bg and Ig associated with this stream. If e > 0, then k = 2e + c; if e < 0, then k = -2-e + c; and if e = 0, then k = c. Note: c is allowed to take negative values. We discourage the use of this procedure.

finalize

protected void finalize()

nativeInit

public static native void nativeInit()

Class initializer, to initialize various JNI stuff

randInt

public native int randInt(int i, int j)

Returns a (pseudo)random number from the discrete uniform distribution over the integers {i, i + 1, … , j}

randU01

public native double randU01()

Returns a (pseudo)random number from the uniform distribution over the interval (0, 1), after advancing the state by one step. The returned number has 32 bits of precision in the sense that it is always a multiple of 1/(232 - 208), unless RngStream_IncreasedPrecis has been called for this stream.

resetNextSubstream

public native void resetNextSubstream()

Reinitializes the stream g to the beginning of its next substream: Ng is computed, and Cg and Bg are set to Ng .

resetStart

public native void resetStart()

Reinitializes the stream g to its initial state: Cg and Bg are set to Ig .

restartStartSubstream

public native void restartStartSubstream()

Reinitializes the stream g to the beginning of its current substream: Cg is set to Bg .

setAntithetic

public native void setAntithetic(boolean a)

If a = true the stream g will start generating antithetic variates, i.e., 1 - U instead of U , until this method is called again with a = false.

setPackageSeed

public static native boolean setPackageSeed(int[] seed)

Sets the initial seed of the package RngStreams to the six integers in the vector seed. This will be the seed (initial state) of the first stream. If this procedure is not called, the default initial seed is (12345, 12345, 12345, 12345, 12345, 12345). If it is called, the first 3 values of the seed must all be less than m1 = 4294967087, and not all 0; and the last 3 values must all be less than m2 = 4294944443, and not all 0. Returns false for invalid seeds, and true otherwise.

setSeed

public native boolean setSeed(int[] seed)

Sets the initial seed Ig of stream g to the vector seed. This vector must satisfy the same conditions as in setPackageSeed. The stream is then reset to this initial seed. The states and seeds of the other streams are not modified. As a result, after calling this procedure, the initial seeds of the streams are no longer spaced Z values apart. We discourage the use of this procedure. Returns false for invalid seeds, and true otherwise.