diff options
-rw-r--r-- | numpy/random/mtrand/randomkit.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/numpy/random/mtrand/randomkit.c b/numpy/random/mtrand/randomkit.c index eddef16af..56f52c0b4 100644 --- a/numpy/random/mtrand/randomkit.c +++ b/numpy/random/mtrand/randomkit.c @@ -248,7 +248,15 @@ unsigned long rk_interval(unsigned long max, rk_state *state) #endif /* Search a random value in [0..mask] <= max */ +#if ULONG_MAX > 0xffffffffUL + if (max <= 0xffffffffUL) { + while ((value = (rk_random(state) & mask)) > max); + } else { + while ((value = (rk_ulong(state) & mask)) > max); + } +#else while ((value = (rk_ulong(state) & mask)) > max); +#endif return value; } |