Random number generator xorshift64*
Random number generator xorshift64*. This generator has a period of 2^64 (the period defines the number of random numbers generated before the sequence begins to repeat itself). For an overview, comparison with other random number generators, and links to articles, see Math.Random.Generators.
Extends from Modelica.Icons.Package (Icon for standard packages).
Name | Description |
---|---|
nState=2 | The dimension of the internal state vector |
initialState | Returns an initial state for the xorshift64* algorithm |
random | Returns a uniform random number with the xorshift64* algorithm |
Returns an initial state for the xorshift64* algorithm
state = Xorshift64star.initialState(localSeed, globalSeed);
Generates the initial state vector state for the Xorshift64star random number generator (= xorshift64* algorithm), from two Integer numbers given as input (arguments localSeed, globalSeed). Any Integer numbers can be given (including zero or negative number). The function returns a reasonable initial state vector with the following strategy:
If both input arguments are zero, a fixed non-zero value is used internally for localSeed. According to xorshift.pdf, the xorshift64* random number generator generates statistically random numbers from a bad seed within one iteration. To be on the safe side, actually 10 random numbers are generated and the returned state is the one from the last iteration.
parameter Integer localSeed; parameter Integer globalSeed; Integer state[Xorshift64star.nState]; initial equation state = initialState(localSeed, globalSeed);
Random.Generators.Xorshift64star.random.
Extends from Modelica.Icons.Function (Icon for functions).
Name | Description |
---|---|
localSeed | The local seed to be used for generating initial states |
globalSeed | The global seed to be combined with the local seed |
Name | Description |
---|---|
state[nState] | The generated initial states |
Returns a uniform random number with the xorshift64* algorithm
(r, stateOut) = Xorshift64star.random(stateIn);
Returns a uniform random number r in the range 0 < r ≤ 1 with the xorshift64* algorithm. Input argument stateIn is the state vector of the previous call. Output argument stateOut is the updated state vector. If the function is called with identical stateIn vectors, exactly the same random number r is returned.
parameter Integer localSeed; parameter Integer globalSeed; Real r; Integer state[Xorshift64star.nState]; initial equation state = initialState(localSeed, globalSeed); equation when sample(0,0.1) then (r, state) = random(pre(state)); end when;
Random.Generators.Xorshift64star.initialState.
Extends from Modelica.Icons.Function (Icon for functions).
Name | Description |
---|---|
stateIn[nState] | The internal states for the random number generator |
Name | Description |
---|---|
result | A random number with a uniform distribution on the interval (0,1] |
stateOut[nState] | The new internal states of the random number generator |