in commons-rng-core/src/main/java/org/apache/commons/rng/core/source64/L64X256Mix.java [161:197]
public long next() {
// LXM generate.
// Old state is used for the output allowing parallel pipelining
// on processors that support multiple concurrent instructions.
long s0 = x0;
final long s = ls;
// Mix
final long z = LXMSupport.lea64(s + s0);
// LCG update
ls = M * s + la;
// XBG update
long s1 = x1;
long s2 = x2;
long s3 = x3;
final long t = s1 << 17;
s2 ^= s0;
s3 ^= s1;
s1 ^= s2;
s0 ^= s3;
s2 ^= t;
s3 = Long.rotateLeft(s3, 45);
x0 = s0;
x1 = s1;
x2 = s2;
x3 = s3;
return z;
}