Dagger.Lmh_inference
Lightweight Metropolis-Hastings
include Intf.S
val return : 'a -> 'a t
return x
injects a value x
as a computation
If-then-else, mostly useful for monads featuring incremental computation. Allows to efficiently bind on a boolean computation.
module Infix : Intf.Infix with type 'a t := 'a t
sample dist
builds a computation that samples from dist
. Note that dist
must be a pure computation.
samplei dist
is similar to sample
except that dist
can be an impure computation (ie computing the distribution can involve sampling from other distributions).
map_score m f
behaves similarly to m
except that the associated computation will be reweighted according to the result of evaluating f
on the value of m
.
val map_log_score : 'a t -> ('a -> Log_space.t) -> 'a t
Same as map_score
excepts that a log-space likelihood is expected.
val score : float -> unit t
score s
reweights the computation by s
.
val log_score : Log_space.t -> unit t
log_score
behaves as score
except that a log-space weight is expected.
module List_ops : Intf.Foldable with type 'a t = 'a list and type 'a m := 'a t
module Array_ops :
Intf.Foldable with type 'a t = 'a array and type 'a m := 'a t
module Seq_ops :
Intf.Foldable with type 'a t = 'a Stdlib.Seq.t and type 'a m := 'a t