[*] Amend 999f3e69
This commit is contained in:
parent
999f3e69ca
commit
b88c61c16d
@ -172,7 +172,7 @@ namespace Aurora::RNG
|
||||
auto uMassiveWord = NextU32();
|
||||
auto uUpperBound = AuPageRoundUp<AuUInt32>(uRange, 2);
|
||||
AuUInt32 uNext {};
|
||||
while ((uNext = (uMassiveWord & (uUpperBound - 1))) >= uRange)
|
||||
while ((uNext = (uMassiveWord & (uUpperBound - 1))) > uRange)
|
||||
{
|
||||
uMassiveWord = NextU32();
|
||||
}
|
||||
@ -190,7 +190,7 @@ namespace Aurora::RNG
|
||||
auto uMassiveWord = NextU32();
|
||||
auto uUpperBound = AuPageRoundUp<AuUInt32>(uRange, 2);
|
||||
AuUInt32 uNext {};
|
||||
while ((uNext = (uMassiveWord & (uUpperBound - 1))) >= uRange)
|
||||
while ((uNext = (uMassiveWord & (uUpperBound - 1))) > uRange)
|
||||
{
|
||||
uMassiveWord = NextU32();
|
||||
}
|
||||
|
@ -49,21 +49,21 @@ static auline void WELL_SeedRand(WELLRand *rand, AuUInt32 seed)
|
||||
/**
|
||||
* Creates a new random number generator from a given seed.
|
||||
*/
|
||||
WELLRand &&WELL_SeedRand(AuUInt32 seed)
|
||||
WELLRand WELL_SeedRand(AuUInt32 seed)
|
||||
{
|
||||
WELLRand rand {};
|
||||
WELL_SeedRand(&rand, seed);
|
||||
return AuMove(rand);
|
||||
}
|
||||
|
||||
WELLRand &&WELL_SeedRand64(AuUInt64 seed)
|
||||
WELLRand WELL_SeedRand64(AuUInt64 seed)
|
||||
{
|
||||
WELLRand rand {};
|
||||
WELL_SeedRand64(&rand, seed);
|
||||
return AuMove(rand);
|
||||
}
|
||||
|
||||
WELLRand &&WELL_SeedRandBig64(const AuArray<AuUInt8, 64> &seed)
|
||||
WELLRand WELL_SeedRandBig64(const AuArray<AuUInt8, 64> &seed)
|
||||
{
|
||||
WELLRand rand {};
|
||||
static_assert(64 == sizeof(rand.state));
|
||||
|
@ -6,6 +6,14 @@ struct WELLRand
|
||||
int index {};
|
||||
AuFutexMutex lock;
|
||||
|
||||
inline WELLRand() = default;
|
||||
|
||||
inline WELLRand(WELLRand &&rand)
|
||||
{
|
||||
AuMemcpy(this->state, rand.state, sizeof(this->state));
|
||||
this->index = rand.index;
|
||||
}
|
||||
|
||||
inline WELLRand &operator =(WELLRand &&rand)
|
||||
{
|
||||
AuMemcpy(this->state, rand.state, sizeof(this->state));
|
||||
@ -14,8 +22,8 @@ struct WELLRand
|
||||
}
|
||||
};
|
||||
|
||||
WELLRand &&WELL_SeedRand(AuUInt32 seed);
|
||||
WELLRand &&WELL_SeedRandBig64(const AuArray<AuUInt8, 64> &seed);
|
||||
WELLRand &&WELL_SeedRand64(AuUInt64 seed);
|
||||
WELLRand WELL_SeedRand(AuUInt32 seed);
|
||||
WELLRand WELL_SeedRandBig64(const AuArray<AuUInt8, 64> &seed);
|
||||
WELLRand WELL_SeedRand64(AuUInt64 seed);
|
||||
AuUInt32 WELL_NextLong(WELLRand* rand);
|
||||
void WELL_NextBytes(WELLRand *rand, void *in, AuUInt32 length);
|
Loading…
Reference in New Issue
Block a user