Package Modelica.​Math.​Random.​Generators.​Xorshift1024star
Random number generator xorshift1024*

Information

Random number generator xorshift1024*. This generator has a period of 2^1024 (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 Contents

NameDescription
initialStateReturns an initial state for the xorshift1024* algorithm
randomReturns a uniform random number with the xorshift1024* algorithm

Package Constants

TypeNameValueDescription
IntegernState33The dimension of the internal state vector

Function Modelica.​Math.​Random.​Generators.​Xorshift1024star.​initialState
Returns an initial state for the xorshift1024* algorithm

Information

Syntax

state = Xorshift1024star.initialState(localSeed, globalSeed);

Description

Generates an initial state vector for the Xorshift1024star random number generator (= xorshift1024* 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:

The Xorshift64star random number generator is used to fill the internal state vector with 64 bit random numbers.

Example

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

See also

Random.Generators.Xorshift1024star.random.

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

Inputs

TypeNameDescription
IntegerlocalSeedThe local seed to be used for generating initial states
IntegerglobalSeedThe global seed to be combined with the local seed

Outputs

TypeNameDescription
Integerstate[nState]The generated initial states

Function Modelica.​Math.​Random.​Generators.​Xorshift1024star.​random
Returns a uniform random number with the xorshift1024* algorithm

Information

Syntax

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

Description

Returns a uniform random number in the range 0 < random ≤ 1 with the xorshift1024* 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[Xorshift1024star.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.Xorshift1024star.initialState.

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

Inputs

TypeNameDescription
IntegerstateIn[nState]The internal states for the random number generator

Outputs

TypeNameDescription
RealresultA random number with a uniform distribution on the interval (0,1]
IntegerstateOut[nState]The new internal states of the random number generator