kpermute

ArrayIntPermutation

Finite in-memory integer permutation backed by an IntArray lookup table.

Builds a random bijection over [0, size) by shuffling the identity mapping and precomputing the inverse. Encode and decode are O(1) array lookups.

Parameters

rng

Random generator used to create the shuffled mapping.

Constructors

Link copied to clipboard
constructor(size: Int, rng: Random)

Properties

Link copied to clipboard
open override val size: Int

Size of the permutation domain; valid inputs are [0, size).

Functions

Link copied to clipboard
open fun decode(encoded: Int): Int

Decodes a previously encoded integer back to its original value.

Link copied to clipboard
open override fun decodeUnchecked(encoded: Int): Int

Decodes a previously encoded value without range checks.

Link copied to clipboard
open fun encode(value: Int): Int

Encodes an integer in the permutation domain into its permuted value.

Link copied to clipboard
open override fun encodeUnchecked(value: Int): Int

Encodes a value without range checks.

Link copied to clipboard
open override fun iterator(offset: Int): IntIterator

Returns an iterator over encode(i) for indices in [offset, size).

open operator override fun iterator(): IntIterator

Returns an iterator over encode(i) for all i in [0, size) for finite domains, or over the full 32-bit space when size == -1.

Link copied to clipboard

Returns a view of this permutation that operates on range instead of [0, size). Only valid for finite domains where range.count() == size.

Link copied to clipboard
open override fun toString(): String

ArrayIntPermutation

constructor(size: Int, rng: Random)(source)

Parameters

rng

Random generator used to create the shuffled mapping.

decodeUnchecked

open override fun decodeUnchecked(encoded: Int): Int(source)

Decodes a previously encoded value without range checks.

encodeUnchecked

open override fun encodeUnchecked(value: Int): Int(source)

Encodes a value without range checks.

iterator

open override fun iterator(offset: Int): IntIterator(source)

Returns an iterator over encode(i) for indices in [offset, size).

For finite domains, offset is an index in 0..size. For full-domain implementations, semantics are defined by the implementation.

size

open override val size: Int(source)

toString

open override fun toString(): String(source)