FullIntPermutation
Full 32-bit integer permutation over the entire signed Int domain.
Uses an invertible hash built from XOR, shifts, and odd multipliers with per-round keys. No tables are stored; encode and decode apply forward and inverse rounds respectively.
Parameters
Source of randomness for generating round keys.
Number of mixing rounds; more rounds increase dispersion.
First odd multiplicative constant used in the mixing steps.
Second odd multiplicative constant used in the mixing steps.
Functions
Decodes a previously encoded value without range checks.
Encodes a value without range checks.
Returns an iterator over encode(i) for indices in [offset, size).
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.
Returns a view of this permutation that operates on range instead of [0, size). Only valid for finite domains where range.count() == size.
FullIntPermutation
Parameters
Source of randomness for generating round keys.
Number of mixing rounds; more rounds increase dispersion.
First odd multiplicative constant used in the mixing steps.
Second odd multiplicative constant used in the mixing steps.
decodeUnchecked
Decodes a previously encoded value without range checks.
encodeUnchecked
Encodes a value without range checks.
iterator
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.