39 static const size_t XRAND_MAX = (RAND_MAX+1)*(RAND_MAX+1) - 1;
53 size_t rand(
size_t min_inclusive,
size_t max_exclusive)
55 const size_t range = (max_exclusive-min_inclusive);
57 if(range == 0 || range > XRAND_MAX)
63 const size_t inv_range = XRAND_MAX / range;
74 while(x >= range * inv_range);
#define WARN_IF_ERR(expression)
static const size_t XRAND_MAX
#define ENSURE(expr)
ensure the expression <expr> evaluates to non-zero.
const Status INVALID_PARAM
size_t rand(size_t min_inclusive, size_t max_exclusive)
return random integer in [min, max).