public long next()

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;
    }