BASE: Fix genrand to generate both 0s and 1s when max equals one.
previously was only generating 0s.
This commit is contained in:
parent
7793773809
commit
7d191366e1
1 changed files with 6 additions and 2 deletions
|
@ -65,7 +65,9 @@ Random::~Random()
|
|||
uint32_t
|
||||
Random::genrand(uint32_t max)
|
||||
{
|
||||
int log = ceilLog2(max);
|
||||
if (max == 0)
|
||||
return 0;
|
||||
int log = ceilLog2(max) + 1;
|
||||
int shift = (sizeof(uint32_t) * 8 - log);
|
||||
uint32_t random;
|
||||
|
||||
|
@ -79,7 +81,9 @@ Random::genrand(uint32_t max)
|
|||
uint64_t
|
||||
Random::genrand(uint64_t max)
|
||||
{
|
||||
int log = ceilLog2(max);
|
||||
if (max == 0)
|
||||
return 0;
|
||||
int log = ceilLog2(max) + 1;
|
||||
int shift = (sizeof(uint64_t) * 8 - log);
|
||||
uint64_t random;
|
||||
|
||||
|
|
Loading…
Reference in a new issue