File tree Expand file tree Collapse file tree 3 files changed +11
-2
lines changed
Expand file tree Collapse file tree 3 files changed +11
-2
lines changed Original file line number Diff line number Diff line change 1111
1212unhalf (μ:: Half ) = μ. parent
1313
14- basemeasure (μ:: Half ) = basemeasure (μ . parent )
14+ basemeasure (μ:: Half ) = WeightedMeasure (logtwo, basemeasure (unhalf (μ)) )
1515
1616function Base. rand (rng:: AbstractRNG , T:: Type , μ:: Half )
1717 return abs (rand (rng, T, unhalf (μ)))
1818end
19+
20+ logdensity (μ:: Half , x) = (x < 0 ) * (- Inf ) + (x > 0 ) * logdensity (unhalf (μ), x)
Original file line number Diff line number Diff line change @@ -168,7 +168,7 @@ function _half(__module__, ex)
168168 @match ex begin
169169 :($ dist) => begin
170170 halfdist = esc (Symbol (:Half , dist))
171-
171+ dist = esc (dist)
172172 quote
173173 $ halfdist (args... ) = Half ($ dist (args... ))
174174 $ halfdist (;kwargs... ) = Half ($ dist (;kwargs... ))
Original file line number Diff line number Diff line change 151151 end
152152end
153153
154+ @testset " Half" begin
155+ Normal () = ∫exp (x -> - 0.5 x^ 2 , Lebesgue (ℝ))
156+ @half Normal
157+ @test logdensity (HalfNormal (), - 0.2 ) == - Inf
158+ @test logdensity (HalfNormal (), 0.2 ) == logdensity (Normal (), 0.2 )
159+ end
160+
154161# import MeasureBase.:⋅
155162# function ⋅(μ::Normal, kernel)
156163# m = kernel(μ)
You can’t perform that action at this time.
0 commit comments