diff --git a/src/numba_stats/expon.py b/src/numba_stats/expon.py index b28b3c5..d43578e 100644 --- a/src/numba_stats/expon.py +++ b/src/numba_stats/expon.py @@ -62,8 +62,7 @@ def _ppf(p, loc, scale): @_rvs_jit(2) def _rvs(loc, scale, size, random_state): _seed(random_state) - p = np.random.uniform(0, 1, size) - return _ppf(p, loc, scale) + return loc + np.random.exponential(scale, size) _generate_wrappers(globals()) diff --git a/src/numba_stats/laplace.py b/src/numba_stats/laplace.py index 220bb61..d340848 100644 --- a/src/numba_stats/laplace.py +++ b/src/numba_stats/laplace.py @@ -60,8 +60,7 @@ def _ppf(p, loc, scale): @_rvs_jit(2) def _rvs(loc, scale, size, random_state): _seed(random_state) - p = np.random.uniform(0, 1, size) - return _ppf(p, loc, scale) + return np.random.laplace(loc, scale, size) _generate_wrappers(globals()) diff --git a/src/numba_stats/lognorm.py b/src/numba_stats/lognorm.py index 36663fc..3b8d84d 100644 --- a/src/numba_stats/lognorm.py +++ b/src/numba_stats/lognorm.py @@ -61,8 +61,7 @@ def _ppf(p, s, loc, scale): @_rvs_jit(3, cache=False) def _rvs(s, loc, scale, size, random_state): _seed(random_state) - p = np.random.uniform(0, 1, size) - return _ppf(p, s, loc, scale) + return loc + scale * np.random.lognormal(0, s, size) _generate_wrappers(globals()) diff --git a/src/numba_stats/t.py b/src/numba_stats/t.py index 3e16c6d..9f3ce9e 100644 --- a/src/numba_stats/t.py +++ b/src/numba_stats/t.py @@ -61,11 +61,10 @@ def _ppf(p, df, loc, scale): return scale * r + loc -@_rvs_jit(3, cache=False) +@_rvs_jit(3) def _rvs(df, loc, scale, size, random_state): _seed(random_state) - p = np.random.uniform(0, 1, size) - return _ppf(p, df, loc, scale) + return loc + scale * np.random.standard_t(df, size) _generate_wrappers(globals()) diff --git a/src/numba_stats/uniform.py b/src/numba_stats/uniform.py index 0494520..ecfcc7d 100644 --- a/src/numba_stats/uniform.py +++ b/src/numba_stats/uniform.py @@ -55,8 +55,7 @@ def _ppf(p, a, w): @_rvs_jit(2) def _rvs(a, w, size, random_state): _seed(random_state) - p = np.random.uniform(0, 1, size) - return _ppf(p, a, w) + return np.random.uniform(a, a + w, size) _generate_wrappers(globals())