@@ -13,14 +13,15 @@ function TuringUniform(a::Real, b::Real)
13
13
return TuringUniform {T} (T (a), T (b))
14
14
end
15
15
Distributions. logpdf (d:: TuringUniform , x:: Real ) = uniformlogpdf (d. a, d. b, x)
16
+ Distributions. logpdf (d:: TuringUniform , x:: AbstractArray ) = uniformlogpdf .(d. a, d. b, x)
16
17
Base. minimum (d:: TuringUniform ) = d. a
17
18
Base. maximum (d:: TuringUniform ) = d. b
18
19
19
20
Distributions. Uniform (a:: TrackedReal , b:: Real ) = TuringUniform {TrackedReal} (a, b)
20
21
Distributions. Uniform (a:: Real , b:: TrackedReal ) = TuringUniform {TrackedReal} (a, b)
21
22
Distributions. Uniform (a:: TrackedReal , b:: TrackedReal ) = TuringUniform {TrackedReal} (a, b)
22
23
Distributions. logpdf (d:: Uniform , x:: TrackedReal ) = uniformlogpdf (d. a, d. b, x)
23
-
24
+ Distributions . logpdf (d :: Uniform , x :: TrackedArray ) = uniformlogpdf .(d . a, d . b, x)
24
25
function uniformlogpdf (a, b, x)
25
26
c = - log (b - a)
26
27
if a <= x <= b
53
54
return l, Δ -> (da * Δ, - da * Δ, zero (T) * Δ)
54
55
else
55
56
n = T (NaN )
56
- return l , Δ -> (n, n, n)
57
+ return n , Δ -> (n, n, n)
57
58
end
58
59
end
59
60
@adjoint function Distributions. Uniform (args... )
0 commit comments