osmose.engine.rng_compat

Java-compatible Xorshift random number generator.

Replicates OSMOSE Java’s XSRandom (extends java.util.Random) for bit-exact parity when both engines use fixed seeds. The Xorshift state uses 64-bit signed arithmetic matching Java’s long type.

Java source: fr.ird.osmose.util.XSRandom

Usage:

from osmose.engine.rng_compat import XorshiftRNG
rng = XorshiftRNG(seed=42)
rng.next_int(10)    # uniform int in [0, 10)
rng.next_double()   # uniform float in [0, 1)
rng.permutation(5)  # Fisher-Yates shuffle matching Java's shuffleArray

Note: seed=0 is a fixed point (all outputs are 0). Use a nonzero seed.

Classes

XorshiftRNG(seed)

Java XSRandom-compatible Xorshift PRNG.