diff --git a/pymc/distributions/continuous.py b/pymc/distributions/continuous.py index e2368db2ee..87d7e61c29 100644 --- a/pymc/distributions/continuous.py +++ b/pymc/distributions/continuous.py @@ -1363,6 +1363,15 @@ def logcdf(value, mu): msg="lam >= 0", ) + def icdf(value, mu): + res = -mu * pt.log(1 - value) + res = check_icdf_value(res, value) + return check_icdf_parameters( + res, + mu >= 0, + msg="mu >= 0", + ) + class Laplace(Continuous): r""" diff --git a/tests/distributions/test_continuous.py b/tests/distributions/test_continuous.py index 5c0ad13de3..3a91aaccf3 100644 --- a/tests/distributions/test_continuous.py +++ b/tests/distributions/test_continuous.py @@ -438,6 +438,11 @@ def test_exponential(self): {"lam": Rplus}, lambda value, lam: st.expon.logcdf(value, 0, 1 / lam), ) + check_icdf( + pm.Exponential, + {"lam": Rplus}, + lambda q, lam: st.expon.ppf(q, loc=0, scale=1 / lam), + ) def test_laplace(self): check_logp(