def zipf(self, a, size=None, dtype=int): """Returns an array of samples drawn from the Zipf distribution. .. seealso:: :func:`cupy.random.zipf` for full documentation, :meth:`numpy.random.RandomState.zipf` """ a = cupy.asarray(a) if cupy.any(a <= 1.0): raise ValueError("'a' must be a valid float > 1.0") if size is None: size = a.shape y = cupy.empty(shape=size, dtype=dtype) _kernels.zipf_kernel(a, self.rk_seed, y) self.rk_seed += numpy.prod(size) return y
def zipf(self, a, size=None, dtype=int): """Returns an array of samples drawn from the Zipf distribution. .. warning:: This function may synchronize the device. .. seealso:: - :func:`cupy.random.zipf` for full documentation - :meth:`numpy.random.RandomState.zipf` """ a = cupy.asarray(a) if cupy.any(a <= 1.0): # synchronize! raise ValueError('\'a\' must be a valid float > 1.0') if size is None: size = a.shape y = cupy.empty(shape=size, dtype=dtype) _kernels.zipf_kernel(a, self._rk_seed, y) self._update_seed(y.size) return y