This is an implementation of xoroshiro128**, as detailed at:
http://xoshiro.di.unimi.it/
This Rand implementation is slightly slower than XorOshiro128Plus but does not exhibit "mild dependencies in Hamming weights" (the lower four bits might fail linearity tests).
class ref XorOshiro128StarStar is Random ref
Use seed x to seed a SplitMix64 and use this to initialize the 128 bits of state.
new ref from_u64( x: U64 val = 5489) : XorOshiro128StarStar ref^
new ref create( x: U64 val = 5489, y: U64 val = 0) : XorOshiro128StarStar 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-XorOshiro128StarStar