Developer API

Developer API

Documentation for ForneyLab.jl's developer API.

Contents

Index

Extended rules registration

@expectationPropagationRule registers a expectation propagation update rule by defining the rule type and the corresponding methods for the outboundType and isApplicable functions. If no name (type) for the new rule is passed, a unique name (type) will be generated. Returns the rule type.

source

@marginalRule registers a marginal update rule for a (joint) marginal by defining the rule type and the corresponding methods for the isApplicable function. If no name (type) for the new rule is passed, a unique name (type) will be generated. Returns the rule type.

source

@naiveVariationalRule registers a variational update rule for the naive (mean-field) factorization by defining the rule type and the corresponding methods for the outboundType and isApplicable functions. If no name (type) for the new rule is passed, a unique name (type) will be generated. Returns the rule type.

source

@structuredVariationalRule registers a variational update rule for the structured factorization by defining the rule type and the corresponding methods for the outboundType and isApplicable functions. If no name (type) for the new rule is passed, a unique name (type) will be generated. Returns the rule type.

source

@sumProductRule registers a sum-product update rule by defining the rule type and the corresponding methods for the outboundType and isApplicable functions. If no name (type) for the new rule is passed, a unique name (type) will be generated. Returns the rule type.

source

Graph (low-level)

ForneyLab.EdgeType.

An Edge joins two interfaces (half-edges) a and b.

source

An Interface belongs to a FactorNode and represents a half-edge. An Interface has at most one partner interface, with wich it forms an edge.

source

Description:

Terminal is a special type of node that is only used in the internal
graph of a CompositeNode. A Terminal is used to terminate an Edge in the
internal graph that is linked to an interface of the CompositeNode.

A Terminal is linked to an interface of the
CompositeNode containing the Terminal.

Interfaces:

1. out

Construction:

Terminal(id=:some_id)
source

Scheduler (low-level)

MarginalRule{factor_type} specifies a joint marginal update rule with respect to a node of type factor_type.

source

A MarginalScheduleEntry defines a marginal computation. The marginal_update_rule <: MarginalUpdateRule defines the rule that is used to calculate the (joint) marginal over target.

source

A MarginalUpdateRule specifies how a (joint) marginal is calculated from incoming messages (and a node function).

source

A MessageUpdateRule specifies how a Message is calculated from the node function and the incoming messages. Use subtypes(MessageUpdateRule) to list the available rules.

source

A RecognitionFactor specifies the subset of variables that comprise a joint factor in the recognition factorization.

source

A ScheduleEntry defines a message computation. The msg_update_rule <: MessageUpdateRule defines the rule that is used to calculate the message coming out of interface.

source