Very fast Pseudo-Random-Number-Generator using only 64 bit of state, as detailed at:
http://xoshiro.di.unimi.it/ and http://gee.cs.oswego.edu/dl/papers/oopsla14.pdf
Using XorOshiro128StarStar or XorOshiro128Plus should be prefered unless using only 64 bit of state is a requirement.
class ref SplitMix64 is Random ref
new ref from_u64( x: U64 val = 5489) : SplitMix64 ref^
Only x is used, y is discarded.
new ref create( x: U64 val = 5489, y: U64 val = 0) : SplitMix64 ref^
fun ref next() : U64 val
fun tag has_next() : Bool val
fun ref u8() : U8 val
fun ref u16() : U16 val
fun ref u32() : U32 val
fun ref u64() : U64 val
fun ref u128() : U128 val
fun ref ulong() : ULong val
fun ref usize() : USize val
fun ref i8() : I8 val
fun ref i16() : I16 val
fun ref i32() : I32 val
fun ref i64() : I64 val
fun ref i128() : I128 val
fun ref ilong() : ILong val
fun ref isize() : ISize val
fun ref int_fp_mult[optional N: ((U8 val | U16 val | U32 val | U64 val | U128 val | ULong val | USize val) & Real[N] val)]( n: N) : N
fun ref int[optional N: ((U8 val | U16 val | U32 val | U64 val | U128 val | ULong val | USize val) & Real[N] val)]( n: N) : N
fun ref int_unbiased[optional N: ((U8 val | U16 val | U32 val | U64 val | U128 val | ULong val | USize val) & Real[N] val)]( n: N) : N
fun ref real() : F64 val
fun ref shuffle[A: A]( array: Array[A] ref) : None val
fun ref _u64_unbiased( range: U64 val) : U64 val
© 2016-2018, The Pony Developers
© 2014-2015, Causality Ltd.
Licensed under the BSD 2-Clause License.
https://stdlib.ponylang.io/random-SplitMix64