MINOR: tools: add statistical_prng_range() to get a random number over a range

This is simply a multiply and shift from statistical_prng() but it's made
easily accessible.
This commit is contained in:
Willy Tarreau 2021-04-17 15:49:34 +02:00
parent 635cced32f
commit 84ebfabf7f

View File

@ -1073,6 +1073,14 @@ static inline unsigned int statistical_prng()
return statistical_prng_state = x;
}
/* returns a random number between 0 and <range> - 1 that is evenly distributed
* over the range.
*/
static inline uint statistical_prng_range(uint range)
{
return mul32hi(statistical_prng(), range);
}
/* Update array <fp> with the character transition <prev> to <curr>. If <prev>
* is zero, it's assumed that <curr> is the first character. If <curr> is zero
* its assumed to mark the end. Both may be zero. <fp> is a 1024-entries array