@@ -243,7 +243,7 @@ def logp(self, value):
243
243
sd = self .sd
244
244
tau = self .tau
245
245
mu = self .mu
246
- return bound ((- tau * (value - mu )** 2 + tt .log (tau / np .pi / 2. )) / 2. ,
246
+ return bound_elemwise ((- tau * (value - mu )** 2 + tt .log (tau / np .pi / 2. )) / 2. ,
247
247
sd > 0 )
248
248
249
249
@@ -289,7 +289,7 @@ def random(self, point=None, size=None, repeat=None):
289
289
def logp (self , value ):
290
290
tau = self .tau
291
291
sd = self .sd
292
- return bound (- 0.5 * tau * value ** 2 + 0.5 * tt .log (tau * 2. / np .pi ),
292
+ return bound_elemwise (- 0.5 * tau * value ** 2 + 0.5 * tt .log (tau * 2. / np .pi ),
293
293
value >= 0 ,
294
294
tau > 0 , sd > 0 )
295
295
@@ -402,7 +402,7 @@ def logp(self, value):
402
402
lam = self .lam
403
403
alpha = self .alpha
404
404
# value *must* be iid. Otherwise this is wrong.
405
- return bound (logpow (lam / (2. * np .pi ), 0.5 )
405
+ return bound_elemwise (logpow (lam / (2. * np .pi ), 0.5 )
406
406
- logpow (value - alpha , 1.5 )
407
407
- (0.5 * lam / (value - alpha )
408
408
* ((value - alpha - mu ) / mu )** 2 ),
@@ -492,7 +492,7 @@ def logp(self, value):
492
492
alpha = self .alpha
493
493
beta = self .beta
494
494
495
- return bound (logpow (value , alpha - 1 ) + logpow (1 - value , beta - 1 )
495
+ return bound_elemwise (logpow (value , alpha - 1 ) + logpow (1 - value , beta - 1 )
496
496
- betaln (alpha , beta ),
497
497
value >= 0 , value <= 1 ,
498
498
alpha > 0 , beta > 0 )
@@ -537,7 +537,7 @@ def random(self, point=None, size=None, repeat=None):
537
537
538
538
def logp (self , value ):
539
539
lam = self .lam
540
- return bound (tt .log (lam ) - lam * value , value > 0 , lam > 0 )
540
+ return bound_elemwise (tt .log (lam ) - lam * value , value > 0 , lam > 0 )
541
541
542
542
543
543
class Laplace (Continuous ):
@@ -641,7 +641,7 @@ def random(self, point=None, size=None, repeat=None):
641
641
def logp (self , value ):
642
642
mu = self .mu
643
643
tau = self .tau
644
- return bound (- 0.5 * tau * (tt .log (value ) - mu )** 2
644
+ return bound_elemwise (- 0.5 * tau * (tt .log (value ) - mu )** 2
645
645
+ 0.5 * tt .log (tau / (2. * np .pi ))
646
646
- tt .log (value ),
647
647
tau > 0 )
@@ -702,7 +702,7 @@ def logp(self, value):
702
702
lam = self .lam
703
703
sd = self .sd
704
704
705
- return bound (gammaln ((nu + 1.0 ) / 2.0 )
705
+ return bound_elemwise (gammaln ((nu + 1.0 ) / 2.0 )
706
706
+ .5 * tt .log (lam / (nu * np .pi ))
707
707
- gammaln (nu / 2.0 )
708
708
- (nu + 1.0 ) / 2.0 * tt .log1p (lam * (value - mu )** 2 / nu ),
@@ -765,7 +765,7 @@ def random(self, point=None, size=None, repeat=None):
765
765
def logp (self , value ):
766
766
alpha = self .alpha
767
767
m = self .m
768
- return bound (tt .log (alpha ) + logpow (m , alpha )
768
+ return bound_elemwise (tt .log (alpha ) + logpow (m , alpha )
769
769
- logpow (value , alpha + 1 ),
770
770
value >= m , alpha > 0 , m > 0 )
771
771
@@ -817,7 +817,7 @@ def random(self, point=None, size=None, repeat=None):
817
817
def logp (self , value ):
818
818
alpha = self .alpha
819
819
beta = self .beta
820
- return bound (- tt .log (np .pi ) - tt .log (beta )
820
+ return bound_elemwise (- tt .log (np .pi ) - tt .log (beta )
821
821
- tt .log1p (((value - alpha ) / beta )** 2 ),
822
822
beta > 0 )
823
823
@@ -863,7 +863,7 @@ def random(self, point=None, size=None, repeat=None):
863
863
864
864
def logp (self , value ):
865
865
beta = self .beta
866
- return bound (tt .log (2 ) - tt .log (np .pi ) - tt .log (beta )
866
+ return bound_elemwise (tt .log (2 ) - tt .log (np .pi ) - tt .log (beta )
867
867
- tt .log1p ((value / beta )** 2 ),
868
868
value >= 0 , beta > 0 )
869
869
@@ -943,7 +943,7 @@ def random(self, point=None, size=None, repeat=None):
943
943
def logp (self , value ):
944
944
alpha = self .alpha
945
945
beta = self .beta
946
- return bound (
946
+ return bound_elemwise (
947
947
- gammaln (alpha ) + logpow (
948
948
beta , alpha ) - beta * value + logpow (value , alpha - 1 ),
949
949
@@ -1007,7 +1007,7 @@ def random(self, point=None, size=None, repeat=None):
1007
1007
def logp (self , value ):
1008
1008
alpha = self .alpha
1009
1009
beta = self .beta
1010
- return bound (logpow (beta , alpha ) - gammaln (alpha ) - beta / value
1010
+ return bound_elemwise (logpow (beta , alpha ) - gammaln (alpha ) - beta / value
1011
1011
+ logpow (value , - alpha - 1 ),
1012
1012
value > 0 , alpha > 0 , beta > 0 )
1013
1013
@@ -1088,7 +1088,7 @@ def _random(a, b, size=None):
1088
1088
def logp (self , value ):
1089
1089
alpha = self .alpha
1090
1090
beta = self .beta
1091
- return bound (tt .log (alpha ) - tt .log (beta )
1091
+ return bound_elemwise (tt .log (alpha ) - tt .log (beta )
1092
1092
+ (alpha - 1 ) * tt .log (value / beta )
1093
1093
- (value / beta )** alpha ,
1094
1094
value >= 0 , alpha > 0 , beta > 0 )
@@ -1131,12 +1131,12 @@ def __init__(self, distribution, lower, upper, transform='infer', *args, **kwarg
1131
1131
self .testval = 0.5 * (upper + lower )
1132
1132
1133
1133
if not np .isinf (lower ) and np .isinf (upper ):
1134
- self .transform = transforms .lowerbound (lower )
1134
+ self .transform = transforms .lowerbound_elemwise (lower )
1135
1135
if default <= lower :
1136
1136
self .testval = lower + 1
1137
1137
1138
1138
if np .isinf (lower ) and not np .isinf (upper ):
1139
- self .transform = transforms .upperbound (upper )
1139
+ self .transform = transforms .upperbound_elemwise (upper )
1140
1140
if default >= upper :
1141
1141
self .testval = upper - 1
1142
1142
@@ -1161,7 +1161,7 @@ def random(self, point=None, size=None, repeat=None):
1161
1161
size = size )
1162
1162
1163
1163
def logp (self , value ):
1164
- return bound (self .dist .logp (value ),
1164
+ return bound_elemwise (self .dist .logp (value ),
1165
1165
value >= self .lower , value <= self .upper )
1166
1166
1167
1167
@@ -1286,7 +1286,7 @@ def logp(self, value):
1286
1286
+ logpow (std_cdf ((value - mu ) / sigma - sigma / nu ), 1. ),
1287
1287
- tt .log (sigma * tt .sqrt (2 * np .pi ))
1288
1288
- 0.5 * ((value - mu ) / sigma )** 2 )
1289
- return bound (lp , sigma > 0. , nu > 0. )
1289
+ return bound_elemwise (lp , sigma > 0. , nu > 0. )
1290
1290
1291
1291
1292
1292
class VonMises (Continuous ):
@@ -1335,7 +1335,7 @@ def random(self, point=None, size=None, repeat=None):
1335
1335
def logp (self , value ):
1336
1336
mu = self .mu
1337
1337
kappa = self .kappa
1338
- return bound (kappa * tt .cos (mu - value ) - tt .log (2 * np .pi * i0 (kappa )), value >= - np .pi , value <= np .pi , kappa >= 0 )
1338
+ return bound_elemwise (kappa * tt .cos (mu - value ) - tt .log (2 * np .pi * i0 (kappa )), value >= - np .pi , value <= np .pi , kappa >= 0 )
1339
1339
1340
1340
1341
1341
class SkewNormal (Continuous ):
@@ -1401,7 +1401,7 @@ def logp(self, value):
1401
1401
sd = self .sd
1402
1402
mu = self .mu
1403
1403
alpha = self .alpha
1404
- return bound (
1404
+ return bound_elemwise (
1405
1405
tt .log (1 +
1406
1406
tt .erf (((value - mu ) * tt .sqrt (tau ) * alpha ) / tt .sqrt (2 )))
1407
1407
+ (- tau * (value - mu )** 2
0 commit comments