Skip to content

Commit f0c1aaf

Browse files
authored
update 3-arg logdensity (#10)
* update 3-arg logdensity * small warning update * add test * bump version * drop unused code
1 parent a0d2f1a commit f0c1aaf

File tree

5 files changed

+16
-22
lines changed

5 files changed

+16
-22
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "MeasureBase"
22
uuid = "fa1605e6-acd5-459c-a1e6-7e635759db14"
33
authors = ["Chad Scherrer <[email protected]> and contributors"]
4-
version = "0.3.5"
4+
version = "0.3.6"
55

66
[deps]
77
ConcreteStructs = "2569d6c7-a4a2-43d3-a901-331e8e4be471"

src/MeasureBase.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
module MeasureBase
22

3+
const logtwo = log(2.0)
34

45
using Random
56

src/density.jl

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -107,21 +107,22 @@ function logdensity(μ::AbstractMeasure, ν::AbstractMeasure, x)
107107
α = basemeasure(μ)
108108
β = basemeasure(ν)
109109

110-
ℓμ = @trysupport logdensity(μ, x)
111-
ℓν = @trysupport logdensity(ν, x)
112-
113-
if α==μ && β==ν
110+
if α===μ && β===ν
114111
@warn """
115112
No method found for logdensity(μ, ν, x) where
116-
μ == $μ
117-
ν == $ν
113+
typeof(μ) == $(typeof(μ))
114+
typeof(ν) == $(typeof(ν))
118115
119-
Assuming logdensity of 0.0
116+
Returning NaN. If this is incorrect, please add a method
117+
logdensity(μ::$(typeof(μ)), ν::$(typeof(ν)), x)
120118
"""
121-
return ℓμ - ℓν
119+
return NaN
122120
end
123-
124-
ℓμ - ℓν + logdensity(α, β, x)
121+
122+
ℓμ = logdensity(μ, x)
123+
ℓν = logdensity(ν, x)
124+
125+
return ℓμ - ℓν + logdensity(α, β, x)
125126
end
126127

127128
logdensity(::Lebesgue, ::Lebesgue, x) = 0.0

src/utils.jl

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,6 @@ constructor(::T) where {T} = constructor(T)
2525

2626
constructor(::Type{T}) where {T} = constructorof(T)
2727

28-
macro trysupport(ex)
29-
ex = esc(ex)
30-
quote
31-
try
32-
return $ex
33-
catch
34-
return -Inf
35-
end
36-
end
37-
end
38-
3928
export testvalue
4029
testvalue::AbstractMeasure) = testvalue(basemeasure(μ))
4130

test/runtests.jl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,9 @@ end
156156
@half Normal
157157
@test logdensity(HalfNormal(), -0.2) == -Inf
158158
@test logdensity(HalfNormal(), 0.2) == logdensity(Normal(), 0.2)
159+
160+
@half Lebesgue
161+
@test basemeasure(HalfLebesgue(ℝ)) == 2 * Lebesgue(ℝ)
159162
end
160163

161164
# import MeasureBase.:⋅

0 commit comments

Comments
 (0)