abstract class Alea::PRNG

Overview

PRNG is a replacement for the default Random::PCG32 stdlib prng that implements the xoshiro algotithms to generate pseudo-random UInts in 64-bits. Performance is comparable, but quality of generated Floats is much better. Inherit this and implement #next_u, #next_f and #jump to build you own generator.

Direct Known Subclasses

Defined in:

alea/rand/rgen/prng.cr

Instance Method Summary

Instance Method Detail

def next_f32 : Float32 #

Generate a uniform-distributed random Float32 in [0, 1).


[View source]
def next_f64 : Float64 #

Generate a uniform-distributed random Float64 in [0, 1).


[View source]
def next_i32 : Int32 #

Generate a uniform-distributed random Int32 in range Int32::MIN..Int32::MAX.


[View source]
def next_i64 : Int64 #

Generate a uniform-distributed random Int64 in range Int64::MIN..Int64::MAX.


[View source]
abstract def next_u32 : UInt32 #

Must return an uniform-distributed UInt32.


[View source]
abstract def next_u64 : UInt64 #

Must return an uniform-distributed UInt64.


[View source]