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

[Source]

fun tag has_next()
: Bool val

Returns


u8

[Source]

fun ref u8()
: U8 val

Returns


u16

[Source]

fun ref u16()
: U16 val

Returns


u32

[Source]

fun ref u32()
: U32 val

Returns


u64

[Source]

fun ref u64()
: U64 val

Returns


u128

[Source]

fun ref u128()
: U128 val

Returns


ulong

[Source]

fun ref ulong()
: ULong val

Returns


usize

[Source]

fun ref usize()
: USize val

Returns


i8

[Source]

fun ref i8()
: I8 val

Returns


i16

[Source]

fun ref i16()
: I16 val

Returns


i32

[Source]

fun ref i32()
: I32 val

Returns


i64

[Source]

fun ref i64()
: I64 val

Returns


i128

[Source]

fun ref i128()
: I128 val

Returns


ilong

[Source]

fun ref ilong()
: ILong val

Returns


isize

[Source]

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)]

[Source]

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)]

[Source]

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)]

[Source]

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

[Source]

fun ref real()
: F64 val

Returns


shuffle[A: A]

[Source]

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

Parameters

Returns