Modelica.Math.Random.Generators.Xorshift64star

Random number generator xorshift64*

Information

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).

Package Content

Name Description
nState=2 The dimension of the internal state vector
Modelica.Math.Random.Generators.Xorshift64star.initialState initialState Returns an initial state for the xorshift64* algorithm
Modelica.Math.Random.Generators.Xorshift64star.random random Returns a uniform random number with the xorshift64* algorithm

Modelica.Math.Random.Generators.Xorshift64star.initialState Modelica.Math.Random.Generators.Xorshift64star.initialState

Returns an initial state for the xorshift64* algorithm

Information

Syntax

state = Xorshift64star.initialState(localSeed, globalSeed);

Description

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.

Example

  parameter Integer localSeed;
  parameter Integer globalSeed;
  Integer state[Xorshift64star.nState];
initial equation
  state = initialState(localSeed, globalSeed);

See also

Random.Generators.Xorshift64star.random.

Extends from Modelica.Icons.Function (Icon for functions).

Inputs

NameDescription
localSeedThe local seed to be used for generating initial states
globalSeedThe global seed to be combined with the local seed

Outputs

NameDescription
state[nState]The generated initial states

Modelica.Math.Random.Generators.Xorshift64star.random Modelica.Math.Random.Generators.Xorshift64star.random

Returns a uniform random number with the xorshift64* algorithm

Information

Syntax

(r, stateOut) = Xorshift64star.random(stateIn);

Description

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.

Example

  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;

See also

Random.Generators.Xorshift64star.initialState.

Extends from Modelica.Icons.Function (Icon for functions).

Inputs

NameDescription
stateIn[nState]The internal states for the random number generator

Outputs

NameDescription
resultA random number with a uniform distribution on the interval (0,1]
stateOut[nState]The new internal states of the random number generator
Automatically generated Thu Oct 1 16:08:15 2020.