Poly.Smc
val return : 'a -> 'a t
module Infix : sig ... end
val sample : 'a Dagger.Dist.t -> 'a t
val samplei : 'a Dagger.Dist.t t -> 'a t
val map_log_score : 'a t -> ('a -> Dagger.Log_space.t) -> 'a t
val score : float -> unit t
val log_score : Dagger.Log_space.t -> unit t
module List_ops : sig ... end
module Array_ops : sig ... end
module Seq_ops : sig ... end
type particle_output = Smc_types.particle_output
type resampling_state = Smc_types.resampling_state
val fork : int -> unit t
val get_score : Dagger.Log_space.t t
val set_score : Dagger.Log_space.t -> unit t
val yield : particle_output -> resampling_state t
type !'a population = {
terminated : ('a * float) array;
active : (particle_output * float) array;
total_mass : float;
}
val run :
(particle_output, float, resampling_state) Dagger.Resampling.strategy ->
resampling_state ->
npart:int ->
'a t ->
Dagger.RNG.t ->
'a population Stdlib.Seq.t
val run_custom :
(particle_output, float, resampling_state) Dagger.Resampling.strategy ->
resampling_state ->
npart:int ->
(int -> 'a t) ->
Dagger.RNG.t ->
'a population Stdlib.Seq.t