7. Random generator library

The random library implements basic random routines.

All functions and symbols are in “random” module, use require to get access to it.

require random

7.1. Constants

LCG_RAND_MAX = 32767

maximum possible output of random number generator

LCG_RAND_MAX_BIG = 1073741823

maximum possible output of random_big_int

7.2. Seed and basic generators

random_seed(seed: int) : auto()

constructs seed vector out of single integer seed

Arguments
  • seed : int

random_seed2D(seed: int4&; co: int2; cf: int = 0) : auto()

constructs seed vector out of 2d screen coordinates and frame counter cf

Arguments
  • seed : int4&

  • co : int2

  • cf : int

random_int(seed: int4&) : auto()

random integer 0..32767 (LCG_RAND_MAX)

Arguments
  • seed : int4&

random_big_int(seed: int4&) : auto()

random integer 0..32768*32768-1 (LCG_RAND_MAX_BIG)

Arguments
  • seed : int4&

random_uint(seed: int4&) : auto()

random integer 0..32768*32768-1 (LCG_RAND_MAX_BIG)

Arguments
  • seed : int4&

random_int4(seed: int4&) : auto()

random int4, each component is 0..32767 (LCG_RAND_MAX)

Arguments
  • seed : int4&

random_float(seed: int4&) : auto()

random float 0..1

Arguments
  • seed : int4&

random_float4(seed: int4&) : auto()

random float4, each component is 0..1

Arguments
  • seed : int4&

7.3. Random iterators

each_random_uint(rnd_seed: int = 13) : iterator<uint>()

infinite generator of random uints initialized with rnd_seed

Arguments
  • rnd_seed : int

7.4. Specific distributions

random_unit_vector(seed: int4&) : auto()

random float3 unit vector (length=1.)

Arguments
  • seed : int4&

random_in_unit_sphere(seed: int4&) : auto()

random float3 unit vector (length=1) which happens to be inside a sphere R=1

Arguments
  • seed : int4&

random_in_unit_disk(seed: int4&) : auto()

random float3 unit vector (length=1) which happens to be inside a disk R=1, Z=0

Arguments
  • seed : int4&