@@ -425,7 +425,7 @@ def __init__(self, mu=0, sigma=None, tau=None, sd=None, **kwargs):
425
425
self .sigma = self .sd = tt .as_tensor_variable (sigma )
426
426
self .tau = tt .as_tensor_variable (tau )
427
427
428
- self .mean = self .median = self .mode = self .mu = mu = tt .as_tensor_variable (mu )
428
+ self .mean = self .median = self .mode = self .mu = mu = tt .as_tensor_variable (floatX ( mu ) )
429
429
self .variance = 1. / self .tau
430
430
431
431
assert_negative_support (sigma , 'sigma' , 'Normal' )
@@ -572,9 +572,9 @@ def __init__(self, mu=0, sigma=None, tau=None, lower=None, upper=None,
572
572
tau , sigma = get_tau_sigma (tau = tau , sigma = sigma )
573
573
self .sigma = self .sd = tt .as_tensor_variable (sigma )
574
574
self .tau = tt .as_tensor_variable (tau )
575
- self .lower = tt .as_tensor_variable (lower ) if lower is not None else lower
576
- self .upper = tt .as_tensor_variable (upper ) if upper is not None else upper
577
- self .mu = tt .as_tensor_variable (mu )
575
+ self .lower = tt .as_tensor_variable (floatX ( lower ) ) if lower is not None else lower
576
+ self .upper = tt .as_tensor_variable (floatX ( upper ) ) if upper is not None else upper
577
+ self .mu = tt .as_tensor_variable (floatX ( mu ) )
578
578
579
579
if self .lower is None and self .upper is None :
580
580
self ._defaultval = mu
@@ -906,10 +906,10 @@ class Wald(PositiveContinuous):
906
906
def __init__ (self , mu = None , lam = None , phi = None , alpha = 0. , * args , ** kwargs ):
907
907
super ().__init__ (* args , ** kwargs )
908
908
mu , lam , phi = self .get_mu_lam_phi (mu , lam , phi )
909
- self .alpha = alpha = tt .as_tensor_variable (alpha )
910
- self .mu = mu = tt .as_tensor_variable (mu )
911
- self .lam = lam = tt .as_tensor_variable (lam )
912
- self .phi = phi = tt .as_tensor_variable (phi )
909
+ self .alpha = alpha = tt .as_tensor_variable (floatX ( alpha ) )
910
+ self .mu = mu = tt .as_tensor_variable (floatX ( mu ) )
911
+ self .lam = lam = tt .as_tensor_variable (floatX ( lam ) )
912
+ self .phi = phi = tt .as_tensor_variable (floatX ( phi ) )
913
913
914
914
self .mean = self .mu + self .alpha
915
915
self .mode = self .mu * (tt .sqrt (1. + (1.5 * self .mu / self .lam )** 2 )
@@ -1120,8 +1120,8 @@ def __init__(self, alpha=None, beta=None, mu=None, sigma=None,
1120
1120
if sd is not None :
1121
1121
sigma = sd
1122
1122
alpha , beta = self .get_alpha_beta (alpha , beta , mu , sigma )
1123
- self .alpha = alpha = tt .as_tensor_variable (alpha )
1124
- self .beta = beta = tt .as_tensor_variable (beta )
1123
+ self .alpha = alpha = tt .as_tensor_variable (floatX ( alpha ) )
1124
+ self .beta = beta = tt .as_tensor_variable (floatX ( beta ) )
1125
1125
1126
1126
self .mean = self .alpha / (self .alpha + self .beta )
1127
1127
self .variance = self .alpha * self .beta / (
@@ -1262,8 +1262,8 @@ class Kumaraswamy(UnitContinuous):
1262
1262
def __init__ (self , a , b , * args , ** kwargs ):
1263
1263
super ().__init__ (* args , ** kwargs )
1264
1264
1265
- self .a = a = tt .as_tensor_variable (a )
1266
- self .b = b = tt .as_tensor_variable (b )
1265
+ self .a = a = tt .as_tensor_variable (floatX ( a ) )
1266
+ self .b = b = tt .as_tensor_variable (floatX ( b ) )
1267
1267
1268
1268
ln_mean = tt .log (b ) + tt .gammaln (1 + 1 / a ) + tt .gammaln (b ) - tt .gammaln (1 + 1 / a + b )
1269
1269
self .mean = tt .exp (ln_mean )
@@ -1374,7 +1374,7 @@ class Exponential(PositiveContinuous):
1374
1374
1375
1375
def __init__ (self , lam , * args , ** kwargs ):
1376
1376
super ().__init__ (* args , ** kwargs )
1377
- self .lam = lam = tt .as_tensor_variable (lam )
1377
+ self .lam = lam = tt .as_tensor_variable (floatX ( lam ) )
1378
1378
self .mean = 1. / self .lam
1379
1379
self .median = self .mean * tt .log (2 )
1380
1380
self .mode = tt .zeros_like (self .lam )
@@ -1498,8 +1498,8 @@ class Laplace(Continuous):
1498
1498
1499
1499
def __init__ (self , mu , b , * args , ** kwargs ):
1500
1500
super ().__init__ (* args , ** kwargs )
1501
- self .b = b = tt .as_tensor_variable (b )
1502
- self .mean = self .median = self .mode = self .mu = mu = tt .as_tensor_variable (mu )
1501
+ self .b = b = tt .as_tensor_variable (floatX ( b ) )
1502
+ self .mean = self .median = self .mode = self .mu = mu = tt .as_tensor_variable (floatX ( mu ) )
1503
1503
1504
1504
self .variance = 2 * self .b ** 2
1505
1505
@@ -1639,7 +1639,7 @@ def __init__(self, mu=0, sigma=None, tau=None, sd=None, *args, **kwargs):
1639
1639
1640
1640
tau , sigma = get_tau_sigma (tau = tau , sigma = sigma )
1641
1641
1642
- self .mu = mu = tt .as_tensor_variable (mu )
1642
+ self .mu = mu = tt .as_tensor_variable (floatX ( mu ) )
1643
1643
self .tau = tau = tt .as_tensor_variable (tau )
1644
1644
self .sigma = self .sd = sigma = tt .as_tensor_variable (sigma )
1645
1645
@@ -1791,10 +1791,10 @@ class StudentT(Continuous):
1791
1791
1792
1792
def __init__ (self , nu , mu = 0 , lam = None , sigma = None , sd = None , * args , ** kwargs ):
1793
1793
super ().__init__ (* args , ** kwargs )
1794
+ super (StudentT , self ).__init__ (* args , ** kwargs )
1794
1795
if sd is not None :
1795
1796
sigma = sd
1796
-
1797
- self .nu = nu = tt .as_tensor_variable (nu )
1797
+ self .nu = nu = tt .as_tensor_variable (floatX (nu ))
1798
1798
lam , sigma = get_tau_sigma (tau = lam , sigma = sigma )
1799
1799
self .lam = lam = tt .as_tensor_variable (lam )
1800
1800
self .sigma = self .sd = sigma = tt .as_tensor_variable (sigma )
@@ -1923,8 +1923,8 @@ class Pareto(Continuous):
1923
1923
"""
1924
1924
1925
1925
def __init__ (self , alpha , m , transform = 'lowerbound' , * args , ** kwargs ):
1926
- self .alpha = alpha = tt .as_tensor_variable (alpha )
1927
- self .m = m = tt .as_tensor_variable (m )
1926
+ self .alpha = alpha = tt .as_tensor_variable (floatX ( alpha ) )
1927
+ self .m = m = tt .as_tensor_variable (floatX ( m ) )
1928
1928
1929
1929
self .mean = tt .switch (tt .gt (alpha , 1 ), alpha *
1930
1930
m / (alpha - 1. ), np .inf )
@@ -2061,8 +2061,8 @@ class Cauchy(Continuous):
2061
2061
2062
2062
def __init__ (self , alpha , beta , * args , ** kwargs ):
2063
2063
super ().__init__ (* args , ** kwargs )
2064
- self .median = self .mode = self .alpha = tt .as_tensor_variable (alpha )
2065
- self .beta = tt .as_tensor_variable (beta )
2064
+ self .median = self .mode = self .alpha = tt .as_tensor_variable (floatX ( alpha ) )
2065
+ self .beta = tt .as_tensor_variable (floatX ( beta ) )
2066
2066
2067
2067
assert_negative_support (beta , 'beta' , 'Cauchy' )
2068
2068
@@ -2171,8 +2171,7 @@ class HalfCauchy(PositiveContinuous):
2171
2171
def __init__ (self , beta , * args , ** kwargs ):
2172
2172
super ().__init__ (* args , ** kwargs )
2173
2173
self .mode = tt .as_tensor_variable (0 )
2174
- self .median = tt .as_tensor_variable (beta )
2175
- self .beta = tt .as_tensor_variable (beta )
2174
+ self .median = self .beta = tt .as_tensor_variable (floatX (beta ))
2176
2175
2177
2176
assert_negative_support (beta , 'beta' , 'HalfCauchy' )
2178
2177
@@ -2303,8 +2302,8 @@ def __init__(self, alpha=None, beta=None, mu=None, sigma=None,
2303
2302
sigma = sd
2304
2303
2305
2304
alpha , beta = self .get_alpha_beta (alpha , beta , mu , sigma )
2306
- self .alpha = alpha = tt .as_tensor_variable (alpha )
2307
- self .beta = beta = tt .as_tensor_variable (beta )
2305
+ self .alpha = alpha = tt .as_tensor_variable (floatX ( alpha ) )
2306
+ self .beta = beta = tt .as_tensor_variable (floatX ( beta ) )
2308
2307
self .mean = alpha / beta
2309
2308
self .mode = tt .maximum ((alpha - 1 ) / beta , 0 )
2310
2309
self .variance = alpha / beta ** 2
@@ -2438,8 +2437,8 @@ def __init__(self, alpha=None, beta=None, mu=None, sigma=None, sd=None,
2438
2437
sigma = sd
2439
2438
2440
2439
alpha , beta = InverseGamma ._get_alpha_beta (alpha , beta , mu , sigma )
2441
- self .alpha = alpha = tt .as_tensor_variable (alpha )
2442
- self .beta = beta = tt .as_tensor_variable (beta )
2440
+ self .alpha = alpha = tt .as_tensor_variable (floatX ( alpha ) )
2441
+ self .beta = beta = tt .as_tensor_variable (floatX ( beta ) )
2443
2442
2444
2443
self .mean = self ._calculate_mean ()
2445
2444
self .mode = beta / (alpha + 1. )
@@ -2567,7 +2566,7 @@ class ChiSquared(Gamma):
2567
2566
"""
2568
2567
2569
2568
def __init__ (self , nu , * args , ** kwargs ):
2570
- self .nu = nu = tt .as_tensor_variable (nu )
2569
+ self .nu = nu = tt .as_tensor_variable (floatX ( nu ) )
2571
2570
super ().__init__ (alpha = nu / 2. , beta = 0.5 , * args , ** kwargs )
2572
2571
2573
2572
def _repr_latex_ (self , name = None , dist = None ):
@@ -2625,8 +2624,8 @@ class Weibull(PositiveContinuous):
2625
2624
2626
2625
def __init__ (self , alpha , beta , * args , ** kwargs ):
2627
2626
super ().__init__ (* args , ** kwargs )
2628
- self .alpha = alpha = tt .as_tensor_variable (alpha )
2629
- self .beta = beta = tt .as_tensor_variable (beta )
2627
+ self .alpha = alpha = tt .as_tensor_variable (floatX ( alpha ) )
2628
+ self .beta = beta = tt .as_tensor_variable (floatX ( beta ) )
2630
2629
self .mean = beta * tt .exp (gammaln (1 + 1. / alpha ))
2631
2630
self .median = beta * tt .exp (gammaln (tt .log (2 )))** (1. / alpha )
2632
2631
self .variance = (beta ** 2 ) * \
@@ -2788,7 +2787,7 @@ def __init__(self, nu=1, sigma=None, lam=None, sd=None,
2788
2787
self .median = tt .as_tensor_variable (sigma )
2789
2788
self .sigma = self .sd = tt .as_tensor_variable (sigma )
2790
2789
self .lam = tt .as_tensor_variable (lam )
2791
- self .nu = nu = tt .as_tensor_variable (nu )
2790
+ self .nu = nu = tt .as_tensor_variable (floatX ( nu ) )
2792
2791
2793
2792
assert_negative_support (sigma , 'sigma' , 'HalfStudentT' )
2794
2793
assert_negative_support (lam , 'lam' , 'HalfStudentT' )
@@ -2923,9 +2922,9 @@ def __init__(self, mu=0., sigma=None, nu=None, sd=None,
2923
2922
if sd is not None :
2924
2923
sigma = sd
2925
2924
2926
- self .mu = mu = tt .as_tensor_variable (mu )
2927
- self .sigma = self .sd = sigma = tt .as_tensor_variable (sigma )
2928
- self .nu = nu = tt .as_tensor_variable (nu )
2925
+ self .mu = mu = tt .as_tensor_variable (floatX ( mu ) )
2926
+ self .sigma = self .sd = sigma = tt .as_tensor_variable (floatX ( sigma ) )
2927
+ self .nu = nu = tt .as_tensor_variable (floatX ( nu ) )
2929
2928
self .mean = mu + nu
2930
2929
self .variance = (sigma ** 2 ) + (nu ** 2 )
2931
2930
@@ -3074,8 +3073,8 @@ def __init__(self, mu=0.0, kappa=None, transform='circular',
3074
3073
if transform == 'circular' :
3075
3074
transform = transforms .Circular ()
3076
3075
super ().__init__ (transform = transform , * args , ** kwargs )
3077
- self .mean = self .median = self .mode = self .mu = mu = tt .as_tensor_variable (mu )
3078
- self .kappa = kappa = floatX ( tt .as_tensor_variable (kappa ))
3076
+ self .mean = self .median = self .mode = self .mu = mu = tt .as_tensor_variable (floatX ( mu ) )
3077
+ self .kappa = kappa = tt .as_tensor_variable ( floatX (kappa ))
3079
3078
3080
3079
assert_negative_support (kappa , 'kappa' , 'VonMises' )
3081
3080
@@ -3199,11 +3198,11 @@ def __init__(self, mu=0.0, sigma=None, tau=None, alpha=1, sd=None,
3199
3198
sigma = sd
3200
3199
3201
3200
tau , sigma = get_tau_sigma (tau = tau , sigma = sigma )
3202
- self .mu = mu = tt .as_tensor_variable (mu )
3201
+ self .mu = mu = tt .as_tensor_variable (floatX ( mu ) )
3203
3202
self .tau = tt .as_tensor_variable (tau )
3204
3203
self .sigma = self .sd = tt .as_tensor_variable (sigma )
3205
3204
3206
- self .alpha = alpha = tt .as_tensor_variable (alpha )
3205
+ self .alpha = alpha = tt .as_tensor_variable (floatX ( alpha ) )
3207
3206
3208
3207
self .mean = mu + self .sigma * (2 / np .pi )** 0.5 * alpha / (1 + alpha ** 2 )** 0.5
3209
3208
self .variance = self .sigma ** 2 * (1 - (2 * alpha ** 2 ) / ((1 + alpha ** 2 ) * np .pi ))
@@ -3329,9 +3328,9 @@ class Triangular(BoundedContinuous):
3329
3328
3330
3329
def __init__ (self , lower = 0 , upper = 1 , c = 0.5 ,
3331
3330
* args , ** kwargs ):
3332
- self .median = self .mean = self .c = c = tt .as_tensor_variable (c )
3333
- self .lower = lower = tt .as_tensor_variable (lower )
3334
- self .upper = upper = tt .as_tensor_variable (upper )
3331
+ self .median = self .mean = self .c = c = tt .as_tensor_variable (floatX ( c ) )
3332
+ self .lower = lower = tt .as_tensor_variable (floatX ( lower ) )
3333
+ self .upper = upper = tt .as_tensor_variable (floatX ( upper ) )
3335
3334
3336
3335
super ().__init__ (lower = lower , upper = upper , * args , ** kwargs )
3337
3336
@@ -3464,8 +3463,8 @@ class Gumbel(Continuous):
3464
3463
"""
3465
3464
3466
3465
def __init__ (self , mu = 0 , beta = 1.0 , ** kwargs ):
3467
- self .mu = tt .as_tensor_variable (mu )
3468
- self .beta = tt .as_tensor_variable (beta )
3466
+ self .mu = tt .as_tensor_variable (floatX ( mu ) )
3467
+ self .beta = tt .as_tensor_variable (floatX ( beta ) )
3469
3468
3470
3469
assert_negative_support (beta , 'beta' , 'Gumbel' )
3471
3470
@@ -3580,9 +3579,9 @@ def __init__(self, nu=None, sigma=None, b=None, sd=None, *args, **kwargs):
3580
3579
sigma = sd
3581
3580
3582
3581
nu , b , sigma = self .get_nu_b (nu , b , sigma )
3583
- self .nu = nu = tt .as_tensor_variable (nu )
3584
- self .sigma = self .sd = sigma = tt .as_tensor_variable (sigma )
3585
- self .b = b = tt .as_tensor_variable (b )
3582
+ self .nu = nu = tt .as_tensor_variable (floatX ( nu ) )
3583
+ self .sigma = self .sd = sigma = tt .as_tensor_variable (floatX ( sigma ) )
3584
+ self .b = b = tt .as_tensor_variable (floatX ( b ) )
3586
3585
self .mean = sigma * np .sqrt (np .pi / 2 ) * tt .exp ((- nu ** 2 / (2 * sigma ** 2 )) / 2 ) * ((1 - (- nu ** 2 / (2 * sigma ** 2 )))
3587
3586
* tt .i0 (- (- nu ** 2 / (2 * sigma ** 2 )) / 2 ) - (- nu ** 2 / (2 * sigma ** 2 )) * tt .i1 (- (- nu ** 2 / (2 * sigma ** 2 )) / 2 ))
3588
3587
self .variance = 2 * sigma ** 2 + nu ** 2 - (np .pi * sigma ** 2 / 2 ) * (tt .exp ((- nu ** 2 / (2 * sigma ** 2 )) / 2 ) * ((1 - (- nu ** 2 / (
@@ -3693,8 +3692,8 @@ class Logistic(Continuous):
3693
3692
def __init__ (self , mu = 0. , s = 1. , * args , ** kwargs ):
3694
3693
super ().__init__ (* args , ** kwargs )
3695
3694
3696
- self .mu = tt .as_tensor_variable (mu )
3697
- self .s = tt .as_tensor_variable (s )
3695
+ self .mu = tt .as_tensor_variable (floatX ( mu ) )
3696
+ self .s = tt .as_tensor_variable (floatX ( s ) )
3698
3697
3699
3698
self .mean = self .mode = mu
3700
3699
self .variance = s ** 2 * np .pi ** 2 / 3.
@@ -3826,7 +3825,7 @@ class LogitNormal(UnitContinuous):
3826
3825
def __init__ (self , mu = 0 , sigma = None , tau = None , sd = None , ** kwargs ):
3827
3826
if sd is not None :
3828
3827
sigma = sd
3829
- self .mu = mu = tt .as_tensor_variable (mu )
3828
+ self .mu = mu = tt .as_tensor_variable (floatX ( mu ) )
3830
3829
tau , sigma = get_tau_sigma (tau = tau , sigma = sigma )
3831
3830
self .sigma = self .sd = tt .as_tensor_variable (sigma )
3832
3831
self .tau = tau = tt .as_tensor_variable (tau )
0 commit comments