8.17.0.3
3 Engines
An engine provides a backend for performing inference. By default, Roulette automatically installs the RSDD backend.
3.1 RSDD
(require roulette/engine/rsdd) | package: roulette-lib |
procedure
(rsdd-engine [#:semiring s])
→ (engine/c (immutable-set/c any/c) s) s : semiring? = real-semiring
Performs inference over the s semiring using RSDD.
> (define engine (rsdd-engine #:semiring complex-semiring))
procedure
(bernoulli-measure f t [#:semiring s])
→ (measure/c (immutable-set/c boolean?) s) f : s t : s s : semiring? = real-semiring
Returns a measure such that
(set) gets (semiring-zero s),
(set #f) gets f,
(set #t) gets t,
and (set #f #t) gets ((semiring-plus s) f t).
> (define-measurable x (bernoulli-measure 0+1i 1 #:semiring complex-semiring)) > ((infer x #:engine engine) (set #f #t)) 1.0+1.0i
Recognizes a semiring instance. A semiring acts like a contract that recognizes elements of the semiring.
value
value
Semirings that can be used with RSDD.