summaryrefslogtreecommitdiff
path: root/numpy/random/common.pyx
diff options
context:
space:
mode:
authorKevin Sheppard <kevin.k.sheppard@gmail.com>2019-06-06 14:46:55 +0100
committerKevin Sheppard <kevin.k.sheppard@gmail.com>2019-06-06 16:59:32 +0100
commit5ccf87dd2da092c2e6936ed2fe6d680fcf88aa85 (patch)
tree591b6598b2c982a51937fed1dc538e8acd172f24 /numpy/random/common.pyx
parent2d4975e75c210202293b894bf98faf12f4697a31 (diff)
downloadnumpy-5ccf87dd2da092c2e6936ed2fe6d680fcf88aa85.tar.gz
MAINT: Update PCG jump sizes
Update pcg jump sizes Wrap advance when too large
Diffstat (limited to 'numpy/random/common.pyx')
-rw-r--r--numpy/random/common.pyx10
1 files changed, 10 insertions, 0 deletions
diff --git a/numpy/random/common.pyx b/numpy/random/common.pyx
index 0fd2d154a..f1af4986b 100644
--- a/numpy/random/common.pyx
+++ b/numpy/random/common.pyx
@@ -182,6 +182,16 @@ cdef double kahan_sum(double *darr, np.npy_intp n):
sum = t
return sum
+
+cdef object wrap_int(object val, object bits):
+ """Wraparound to place an integer into the interval [0, 2**bits)"""
+ upper = int(2)**int(bits)
+ if not 0<= val < upper:
+ divisor = val // upper
+ val = val - upper * divisor
+ return val
+
+
cdef np.ndarray int_to_array(object value, object name, object bits, object uint_size):
"""Convert a large integer to an array of unsigned integers"""
len = bits // uint_size