public static long distance()

in harry-core/src/harry/generators/PCGFastPure.java [84:109]


    public static long distance(long curState, long newState, long stream)
    {
        if (curState == newState)
            return 0;

        long curPlus = streamIncrement(stream);
        long curMult = NEXT_MULTIPLIER;

        long bit = 1L;
        long distance = 0;

        while (curState != newState)
        {
            if ((curState & bit) != (newState & bit))
            {
                curState = curState * curMult + curPlus;
                distance |= bit;
            }
            assert ((curState & bit) == (newState & bit));
            bit <<= 1;
            curPlus = (curMult + 1) * curPlus;
            curMult *= curMult;
        }

        return distance;
    }