Skip to content

SplitMix64

[Source]

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

Implements


Constructors

from_u64

[Source]

new ref from_u64(
  x: U64 val = 5489)
: SplitMix64 ref^

Parameters

  • x: U64 val = 5489

Returns


create

[Source]

Only x is used, y is discarded.

new ref create(
  x: U64 val = 5489,
  y: U64 val = 0)
: SplitMix64 ref^

Parameters

  • x: U64 val = 5489
  • y: U64 val = 0

Returns


Public Functions

next

[Source]

fun ref next()
: U64 val

Returns


has_next

fun tag has_next()
: Bool val

Returns


u8

fun ref u8()
: U8 val

Returns


u16

fun ref u16()
: U16 val

Returns


u32

fun ref u32()
: U32 val

Returns


u64

fun ref u64()
: U64 val

Returns


u128

fun ref u128()
: U128 val

Returns


ulong

fun ref ulong()
: ULong val

Returns


usize

fun ref usize()
: USize val

Returns


i8

fun ref i8()
: I8 val

Returns


i16

fun ref i16()
: I16 val

Returns


i32

fun ref i32()
: I32 val

Returns


i64

fun ref i64()
: I64 val

Returns


i128

fun ref i128()
: I128 val

Returns


ilong

fun ref ilong()
: ILong val

Returns


isize

fun ref isize()
: ISize val

Returns


int_fp_mult[optional N: ((U8 val | U16 val | U32 val | U64 val | U128 val | ULong val | USize val) & Real[N] 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

Parameters

  • n: N

Returns

  • N

int[optional N: ((U8 val | U16 val | U32 val | U64 val | U128 val | ULong val | USize val) & Real[N] val)]

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

Parameters

  • n: N

Returns

  • N

int_unbiased[optional N: ((U8 val | U16 val | U32 val | U64 val | U128 val | ULong val | USize val) & Real[N] val)]

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

Parameters

  • n: N

Returns

  • N

real

fun ref real()
: F64 val

Returns


shuffle[A: A]

fun ref shuffle[A: A](
  array: Array[A] ref)
: None val

Parameters

Returns


Private Functions

_u64_unbiased

fun ref _u64_unbiased(
  range: U64 val)
: U64 val

Parameters

  • range: U64 val

Returns