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&