Module Ppl__.Inference

exception Undefined
type 'a samples = ('a * Ppl.Dist.prob) list

Helpers

val unduplicate : 'a samples -> 'a samples
val resample : 'a samples -> 'a samples Ppl.Dist.dist
val normalise : 'a samples -> 'a samples
val flatten : ('a samples * Ppl.Dist.prob) list -> 'a samples

Exact Inference

val enumerate : 'a Ppl.Dist.dist -> float -> 'a samples
val exact_inference : 'a Ppl.Dist.dist -> 'a Ppl.Dist.dist

Importance Sampling

val importance : int -> 'a Ppl.Dist.dist -> 'a samples Ppl.Dist.dist

Rejetion Sampling

type rejection_type =
| Hard
| Soft
val pp_rejection_type : Stdlib.Format.formatter -> rejection_type -> unit
val show_rejection_type : rejection_type -> string
val rejection : ?⁠n:int -> rejection_type -> 'a Ppl.Dist.dist -> 'a Ppl.Dist.dist

Sequential Monte Carlo

val smcStandard' : int -> 'a Ppl.Dist.dist -> 'a Ppl.Dist.dist
val smcMultiple' : int -> int -> 'a Ppl.Dist.dist -> 'a Ppl.Dist.dist

Metropolis Hastings

val mh' : int -> 'a Ppl.Dist.dist -> 'a Ppl.Dist.dist

Particle Independent Metropolis Hastings

val pimh' : int -> int -> 'a Ppl.Dist.dist -> 'a Ppl.Dist.dist

Particle Cascade

val cascade' : int -> 'a Ppl.Dist.dist -> 'a Ppl.Dist.dist

Common

type infer_strat =
| MH of int
| SMC of int
| PC of int
| PIMH of int
| Importance of int
| Rejection of int * rejection_type
| Prior
| Enum
| Forward
val pp_infer_strat : Stdlib.Format.formatter -> infer_strat -> unit
val infer : 'a Ppl.Dist.dist -> infer_strat -> 'a Ppl.Dist.dist
val infer_sampler : 'a Ppl.Dist.dist -> infer_strat -> unit -> 'a