INNER CODE UNIT · C++
c
Xrysnow/LuaSTG-x · frameworks/Classes/RandomWELL512.cpp:44
c = state[(index + 9) & 15];
c ^= (c >> 11);
a = state[index] = b ^ c;
d = a ^ ((a << 5) & 0xDA442D24UL);
index = (index + 15) & 15;
a = state[index];
state[index] = a ^ b ^ d ^ (a << 2) ^ (b << 18) ^ (c << 28);
return state[index];
}
uint32_t RandomWELL512::getRandUInt(uint32_t hi)
{
return getRandUInt() % (hi + 1);
}
float RandomWELL512::getRandFloat()
{
return getRandUInt(1000000) / 1000000.f;