impureRandom

Impure random number generator (with hidden state vector)

Information

This information is part of the Modelica Standard Library maintained by the Modelica Association.

Syntax

r = impureRandom(id);

Description

Returns a uniform random number in the range 0 < random ≤ 1 with the xorshift1024* algorithm. The dummy input Integer argument id must be the output argument of a call to function initializeImpureRandom, in order that the sorting order is correct (so that impureRandom is always called after initializeImpureRandom). For every call of impureRandom(id), a different random number is returned, so the function is impure.

Example

  parameter Integer seed;
  Real r;
  function random = impureRandom (final id=id);
protected 
  Integer id;
equation
  // Initialize the random number generator
  when initial() then
    id = initializeImpureRandom(seed, time);
  end when;

  // Use the random number generator
  when sample(0,0.001) then
     r = random();
  end when;

See also

initializeImpureRandom, Random.Generators

Note

This function is impure!

Syntax

y = impureRandom(id)

Inputs (1)

id

Type: Integer

Description: Identification number from initializeImpureRandom(..) function (is needed for correct sorting)

Outputs (1)

y

Type: Real

Description: A random number with a uniform distribution on the interval (0,1]