RandomGenerator

interface RandomGenerator

An interface that is implemented by random number generator algorithms.

Types

Link copied to clipboard
object Companion

Functions

Link copied to clipboard
abstract fun fillBytes(array: ByteArray, fromIndex: Int = 0, toIndex: Int = array.size)

Fills a subrange with the specified byte array starting from fromIndex inclusive and ending toIndex exclusive with random bytes.

Link copied to clipboard
abstract fun fork(): RandomGenerator

Create a new generator that is independent of current generator (operations on new generator do not affect this one and vise versa). The statistical properties of new generator should be the same as for this one. For pseudo-random generator, the fork is keeping the same sequence of numbers for given call order for each run.

Link copied to clipboard
abstract fun nextBoolean(): Boolean

Gets the next random Boolean value.

Link copied to clipboard
open fun nextBytes(size: Int): ByteArray

Creates a byte array of the specified size, filled with random bytes.

Link copied to clipboard
abstract fun nextDouble(): Double

Gets the next random Double value uniformly distributed between 0 (inclusive) and 1 (exclusive).

Link copied to clipboard
open fun nextDoubleBuffer(size: Int): DoubleBuffer

A chunk of doubles of given size.

Link copied to clipboard
abstract fun nextInt(): Int

Gets the next random Int from the random number generator.

abstract fun nextInt(until: Int): Int

Gets the next random non-negative Int from the random number generator less than the specified until bound.

Link copied to clipboard
abstract fun nextLong(): Long

Gets the next random Long from the random number generator.

abstract fun nextLong(until: Long): Long

Gets the next random non-negative Long from the random number generator less than the specified until bound.

Inheritors

Link copied to clipboard
Link copied to clipboard

Extensions

Link copied to clipboard
fun RandomGenerator.asUniformRandomProvider(): UniformRandomProvider

Represent this RandomGenerator as commons-rng UniformRandomProvider preserving and mirroring its current state. Getting new value from one of those changes the state of another.

Link copied to clipboard
fun <R> RandomGenerator.chain(generator: suspend RandomGenerator.() -> R): RandomChain<R>

Create a generic random chain with provided generator

Sources

Link copied to clipboard