@@ -81,3 +81,58 @@ function AbstractMCMC.step_warmup(
81
81
end
82
82
return transition, state
83
83
end
84
+
85
+ # Need some extra leg work to make RepeatSampler work seamlessly with DynamicPPL models +
86
+ # samplers, instead of generic AbstractMCMC samplers.
87
+
88
+ function DynamicPPL. init_strategy (spl:: RepeatSampler{<:Sampler} )
89
+ return DynamicPPL. init_strategy (spl. sampler)
90
+ end
91
+
92
+ function AbstractMCMC. sample (
93
+ rng:: AbstractRNG ,
94
+ model:: DynamicPPL.Model ,
95
+ sampler:: RepeatSampler{<:Sampler} ,
96
+ N:: Integer ;
97
+ initial_params= DynamicPPL. init_strategy (sampler),
98
+ chain_type= MCMCChains. Chains,
99
+ progress= PROGRESS[],
100
+ kwargs... ,
101
+ )
102
+ return AbstractMCMC. mcmcsample (
103
+ rng,
104
+ model,
105
+ sampler,
106
+ N;
107
+ initial_params= initial_params,
108
+ chain_type= chain_type,
109
+ progress= progress,
110
+ kwargs... ,
111
+ )
112
+ end
113
+
114
+ function AbstractMCMC. sample (
115
+ rng:: AbstractRNG ,
116
+ model:: DynamicPPL.Model ,
117
+ sampler:: RepeatSampler{<:Sampler} ,
118
+ ensemble:: AbstractMCMC.AbstractMCMCEnsemble ,
119
+ N:: Integer ,
120
+ n_chains:: Integer ;
121
+ initial_params= fill (DynamicPPL. init_strategy (sampler), n_chains),
122
+ chain_type= MCMCChains. Chains,
123
+ progress= PROGRESS[],
124
+ kwargs... ,
125
+ )
126
+ return AbstractMCMC. mcmcsample (
127
+ rng,
128
+ model,
129
+ sampler,
130
+ ensemble,
131
+ N,
132
+ n_chains;
133
+ initial_params= initial_params,
134
+ chain_type= chain_type,
135
+ progress= progress,
136
+ kwargs... ,
137
+ )
138
+ end
0 commit comments