Skip to content

Commit 71a3ef2

Browse files
ricardoV94brandonwillard
authored andcommitted
Use _logp and _logcdf dispatcher in ZeroInflated* methods
1 parent 6ac841c commit 71a3ef2

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

pymc3/distributions/discrete.py

+7-6
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
normal_lcdf,
4141
)
4242
from pymc3.distributions.distribution import Discrete
43+
from pymc3.distributions.logp import _logcdf, _logp
4344
from pymc3.math import log1mexp, logaddexp, logsumexp, sigmoid
4445

4546
__all__ = [
@@ -1306,7 +1307,7 @@ def logp(value, psi, theta):
13061307

13071308
logp_val = at.switch(
13081309
at.gt(value, 0),
1309-
at.log(psi) + Poisson.logp(value, theta),
1310+
at.log(psi) + _logp(poisson, value, {}, theta),
13101311
logaddexp(at.log1p(-psi), at.log(psi) - theta),
13111312
)
13121313

@@ -1335,7 +1336,7 @@ def logcdf(value, psi, theta):
13351336
"""
13361337

13371338
return bound(
1338-
logaddexp(at.log1p(-psi), at.log(psi) + Poisson.logcdf(value, theta)),
1339+
logaddexp(at.log1p(-psi), at.log(psi) + _logcdf(poisson, value, {}, theta)),
13391340
0 <= value,
13401341
0 <= psi,
13411342
psi <= 1,
@@ -1436,7 +1437,7 @@ def logp(value, psi, n, p):
14361437

14371438
logp_val = at.switch(
14381439
at.gt(value, 0),
1439-
at.log(psi) + Binomial.logp(value, n, p),
1440+
at.log(psi) + _logp(binomial, value, {}, n, p),
14401441
logaddexp(at.log1p(-psi), at.log(psi) + n * at.log1p(-p)),
14411442
)
14421443

@@ -1472,7 +1473,7 @@ def logcdf(value, psi, n, p):
14721473
)
14731474

14741475
return bound(
1475-
logaddexp(at.log1p(-psi), at.log(psi) + Binomial.logcdf(value, n, p)),
1476+
logaddexp(at.log1p(-psi), at.log(psi) + _logcdf(binomial, value, {}, n, p)),
14761477
0 <= value,
14771478
value <= n,
14781479
0 <= psi,
@@ -1594,7 +1595,7 @@ def logp(value, psi, n, p):
15941595
return bound(
15951596
at.switch(
15961597
at.gt(value, 0),
1597-
at.log(psi) + NegativeBinomial.logp(value, n, p),
1598+
at.log(psi) + _logp(nbinom, value, {}, n, p),
15981599
logaddexp(at.log1p(-psi), at.log(psi) + n * at.log(p)),
15991600
),
16001601
0 <= value,
@@ -1626,7 +1627,7 @@ def logcdf(value, psi, n, p):
16261627
)
16271628

16281629
return bound(
1629-
logaddexp(at.log1p(-psi), at.log(psi) + NegativeBinomial.logcdf(value, n, p)),
1630+
logaddexp(at.log1p(-psi), at.log(psi) + _logcdf(nbinom, value, {}, n, p)),
16301631
0 <= value,
16311632
0 <= psi,
16321633
psi <= 1,

0 commit comments

Comments
 (0)