Random

The Random trait should be implemented by all random number generators. The only method you need to implement is fun ref next(): 64. Once that method has been implemented, the Random trait provides default implementations of conversions to other number types.

trait ref Random

Constructors

create

Create with the specified seed. Returned values are deterministic for a given seed.

new ref create(
  x: U64 val = seq,
  y: U64 val = seq)
: Random ref^

Parameters

  • x: U64 val = seq
  • y: U64 val = seq

Returns


Public Functions

has_next

If used as an iterator, this always has another value.

fun tag has_next()
: Bool val

Returns


next

A random integer in [0, 2^64)

fun ref next()
: U64 val

Returns


u8

A random integer in [0, 2^8)

fun ref u8()
: U8 val

Returns


u16

A random integer in [0, 2^16)

fun ref u16()
: U16 val

Returns


u32

A random integer in [0, 2^32)

fun ref u32()
: U32 val

Returns


u64

A random integer in [0, 2^64)

fun ref u64()
: U64 val

Returns


u128

A random integer in [0, 2^128)

fun ref u128()
: U128 val

Returns


ulong

A random integer in [0, ULong.max_value()]

fun ref ulong()
: ULong val

Returns


usize

A random integer in [0, USize.max_value()]

fun ref usize()
: USize val

Returns


i8

A random integer in [-2^7, 2^7)

fun ref i8()
: I8 val

Returns


i16

A random integer in [-2^15, 2^15)

fun ref i16()
: I16 val

Returns


i32

A random integer in [-2^31, 2^31)

fun ref i32()
: I32 val

Returns


i64

A random integer in [-2^63, 2^63)

fun ref i64()
: I64 val

Returns


i128

A random integer in [-2^127, 2^127)

fun ref i128()
: I128 val

Returns


ilong

A random integer in [ILong.min_value(), ILong.max_value()]

fun ref ilong()
: ILong val

Returns


isize

A random integer in [ISize.min_value(), ISize.max_value()]

fun ref isize()
: ISize val

Returns


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

A random integer in [0, 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

Parameters

  • n: N

Returns

  • N

real

A random number in [0, 1)

fun ref real()
: F64 val

Returns


shuffle[A: A]

Shuffle the elements of the array into a random order, mutating the array.

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

Parameters

Returns