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