Skip to content

XorOshiro128StarStar

[Source]

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

Implements


Constructors

from_u64

[Source]

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^

Parameters

  • x: U64 val = 5489

Returns


create

[Source]

new ref create(
  x: U64 val = 5489,
  y: U64 val = 0)
: XorOshiro128StarStar 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