class

CogUtil::RandGen

Inherits Reference < Object

High-quality random number generator based on Mersenne Twister Crystal's built-in Random class already uses a high-quality algorithm, so we wrap it with OpenCog-specific functionality

Constructors

new(seed : UInt32 | Nil = nil)

Class methods

choose(array : Array(T)) : T forall T
default

Get default instance

randbool

Class methods using default generator

randbytes(size : Int32) : Bytes
randdouble(min : Float64, max : Float64) : Float64
randdouble(max : Float64) : Float64
randdouble
randfloat(min : Float64, max : Float64) : Float64
randfloat(max : Float64) : Float64
randfloat
randint(min : Int32, max : Int32) : Int32
randint(max : Int32) : Int32
randnormal(mean : Float64 = 0.0, stddev : Float64 = 1.0) : Float64
sample(array : Array(T), count : Int32) : Array(T) forall T
seed(seed : UInt32)

Seed the default generator

shuffle(array : Array(T)) : Array(T) forall T
shuffle!(array : Array(T)) : Array(T) forall T

Instance methods

choose(array : Array(T)) : T forall T

Random choice from array

randbool

Generate random boolean

randbytes(size : Int32) : Bytes

Generate random bytes

randdouble(min : Float64, max : Float64) : Float64
randdouble(max : Float64) : Float64
randdouble

Generate random double (alias for randfloat)

randfloat(min : Float64, max : Float64) : Float64

Generate random float in range [min, max)

randfloat(max : Float64) : Float64

Generate random float in range [0.0, max)

randfloat

Generate random float in range [0.0, 1.0)

randint(min : Int32, max : Int32) : Int32

Generate random integer in range [min, max)

randint(max : Int32) : Int32

Generate random integer in range [0, max)

randnormal(mean : Float64 = 0.0, stddev : Float64 = 1.0) : Float64

Generate random number from normal distribution Uses Box-Muller transform

sample(array : Array(T), count : Int32) : Array(T) forall T

Random sample from array without replacement

shuffle(array : Array(T)) : Array(T) forall T

Return shuffled copy of array

shuffle!(array : Array(T)) : Array(T) forall T

Shuffle array in place