Handler
final class Handler(autoconj:Boolean, autodiff:Boolean, autojoin:Boolean)
Event handler.
- autoconj Enable delayed sampling.
- autodiff Enable delayed expressions.
Events are triggered as code executes. Each event is handled via a call to the currently-installed event handler, which is an object of type Handler.
The events are:
| Code | Triggers |
|---|---|
x ~ p |
handleAssume |
x <~ p |
handleSimulate |
x ~> p |
handleObserve |
factor w |
handleFactor |
After x ~ p, certain operations on x may further trigger events:
| Code | Triggers |
|---|---|
x.value()/x.eval() |
handleDelaySimulate |
x <- y |
handleDelayObserve |
Finally, any manipulations of a Random x that is an interior node on the
delayed sampling M-path will require pruning of the path, which will
trigger handleDelayPrune.
Member Variables
| Name | Description |
|---|---|
| Ξ:Array<Delay> | Distribution and Random objects for move. |
| Φ:Array<Expression<Real>> | Factors for move. |
| w:Real! | Accumulated eager weight. |
| autoconj:Boolean | Enable automatic conjugacy (marginalization, conditioning, enumeration)? |
| autodiff:Boolean | Enable automatic differentiation? |
| autojoin:Boolean | Enable automatic joins? Requires automatic differentiation also. |
Member Functions
| Name | Description |
|---|---|
| handleAssume | Handle an assume event. |
| handleSimulate | Handle a simulate event. |
| handleObserve | Handle an observe event. |
| handleSimulate | Handle a simulate event. |
| handleObserve | Handle an observe event. |
| handleDelaySimulate | Handle a delayed simulation event. |
| handleDelayObserve | Handle a delayed observation event. |
| handleDelayPrune | Handle a prune event. |
| handleFactor | Handle a factor event. |
| handleFactor | Handle a factor event. |
| handleFactor | Handle a factor event. |
Member Function Details
handleAssume
function handleAssume<Value>(x:Random<Value>, p:Distribution<Value>) -> Random<Value>
Handle an assume event.
- x Random.
- p Distribution.
Returns x.
handleDelayObserve
handleDelayPrune
function handleDelayPrune<Value>(p:Distribution<Value>, x:Expression<Value>) -> Delay
Handle a prune event.
- p Distribution.
- x Child of
pon M-path.
Returns Updated distribution.
handleDelaySimulate
handleFactor
function handleFactor(φ:Real)
Handle a factor event.
@param φ Factor giving an incremental log-weight.
A factor event is triggered by the factor statement.
function handleFactor(φ:Real!)
Handle a factor event.
@param φ Factor giving an incremental log-weight.
A factor event is triggered by the factor statement.
function handleFactor<Arg>(φ:Arg)
Handle a factor event.
@param φ Factor giving an incremental log-weight.
A factor event is triggered by the factor statement.
handleObserve
function handleObserve<Value>(x:Random<Value>, p:Distribution<Value>) -> Random<Value>
Handle an observe event.
- x Random.
- p Distribution.
Returns x.
function handleObserve<Value>(x:Value, p:Distribution<Value>) -> Value
Handle an observe event.
- x Variate.
- p Distribution.
Returns x.
handleSimulate
function handleSimulate<Value>(x:Random<Value>, p:Distribution<Value>) -> Random<Value>
Handle a simulate event.
- x Random.
- p Distribution.
Returns x.
function handleSimulate<Value>(p:Distribution<Value>) -> Value
Handle a simulate event.
- p Distribution.
Returns x.