diff --git a/numpy/random/mtrand.pyx b/numpy/random/mtrand.pyx index 55069097b234..eb5dcba9b368 100644 --- a/numpy/random/mtrand.pyx +++ b/numpy/random/mtrand.pyx @@ -3492,7 +3492,6 @@ cdef class RandomState: cdef np.ndarray ongood, onbad, onsample cdef int64_t lngood, lnbad, lnsample - # This cast to long is required to ensure that the values are inbounds ongood = np.PyArray_FROM_OTF(ngood, np.NPY_INT64, np.NPY_ALIGNED) onbad = np.PyArray_FROM_OTF(nbad, np.NPY_INT64, np.NPY_ALIGNED) onsample = np.PyArray_FROM_OTF(nsample, np.NPY_INT64, np.NPY_ALIGNED) @@ -3514,10 +3513,7 @@ cdef class RandomState: if np.any(np.less(np.add(ongood, onbad), onsample)): raise ValueError("ngood + nbad < nsample") - # Convert to int64, if necessary, to use int64 infrastructure - ongood = ongood.astype(np.int64) - onbad = onbad.astype(np.int64) - onbad = onbad.astype(np.int64) + out = discrete_broadcast_iii(&legacy_random_hypergeometric,&self._bitgen, size, self.lock, ongood, 'ngood', CONS_NON_NEGATIVE, onbad, 'nbad', CONS_NON_NEGATIVE,