summaryrefslogtreecommitdiff
path: root/numpy/random
diff options
context:
space:
mode:
Diffstat (limited to 'numpy/random')
-rw-r--r--numpy/random/mtrand/randomkit.c8
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;
}