@@ -5,18 +5,53 @@ if isdefined(Base, :get_extension)
5
5
using LogDensityProblemsAD
6
6
using Random
7
7
using SliceSampling
8
- using Turing: Turing
8
+ using Turing
9
+ # using Turing: Turing, Experimental
9
10
else
10
11
using .. LogDensityProblemsAD
11
12
using .. Random
12
13
using .. SliceSampling
13
- using .. Turing: Turing
14
+ using .. Turing
15
+ # using ..Turing: Turing, Experimental
14
16
end
15
17
18
+ # Required for using the slice samplers as `externalsampler`s in Turing
19
+ # begin
16
20
Turing. Inference. getparams (
17
21
:: Turing.DynamicPPL.Model ,
18
22
sample:: SliceSampling.Transition
19
23
) = sample. params
24
+ # end
25
+
26
+ # Required for using the slice samplers as `Experimental.Gibbs` samplers in Turing
27
+ # begin
28
+ Turing. Inference. getparams (
29
+ :: Turing.DynamicPPL.Model ,
30
+ state:: SliceSampling.UnivariateSliceState
31
+ ) = state. transition. params
32
+
33
+ Turing. Inference. getparams (
34
+ :: Turing.DynamicPPL.Model ,
35
+ state:: SliceSampling.GibbsState
36
+ ) = state. transition. params
37
+
38
+ Turing. Inference. getparams (
39
+ :: Turing.DynamicPPL.Model ,
40
+ state:: SliceSampling.HitAndRunState
41
+ ) = state. transition. params
42
+
43
+ Turing. Experimental. gibbs_requires_recompute_logprob (
44
+ model_dst,
45
+ :: Turing.DynamicPPL.Sampler {
46
+ <: Turing.Inference.ExternalSampler {
47
+ <: SliceSampling.AbstractSliceSampling , A, U
48
+ }
49
+ },
50
+ sampler_src,
51
+ state_dst,
52
+ state_src
53
+ ) where {A,U} = false
54
+ # end
20
55
21
56
function SliceSampling. initial_sample (
22
57
rng:: Random.AbstractRNG ,
0 commit comments