Developer API
Documentation for ForneyLab.jl's developer API.
Contents
Index
ForneyLab.@expectationPropagationRuleForneyLab.@marginalRuleForneyLab.@naiveVariationalRuleForneyLab.@structuredVariationalRuleForneyLab.@sumProductRuleForneyLab.EdgeForneyLab.InterfaceForneyLab.MarginalEntryForneyLab.MarginalRuleForneyLab.MarginalUpdateRuleForneyLab.MessageUpdateRuleForneyLab.PosteriorFactorForneyLab.ScheduleEntryForneyLab.Terminal
Extended rules registration
ForneyLab.@expectationPropagationRule — Macro@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.
ForneyLab.@marginalRule — Macro@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.
ForneyLab.@naiveVariationalRule — Macro@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.
ForneyLab.@structuredVariationalRule — Macro@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.
ForneyLab.@sumProductRule — Macro@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.
Graph (low-level)
ForneyLab.Edge — TypeAn Edge joins two interfaces (half-edges) a and b.
ForneyLab.Interface — TypeAn Interface belongs to a FactorNode and represents a half-edge. An Interface has at most one partner interface, with wich it forms an edge.
ForneyLab.Terminal — TypeDescription:
Terminal is a special type of node that is only used in the internal
graph of a CompositeFactor. A Terminal is used to terminate an Edge in the
internal graph that is linked to an interface of the CompositeFactor.
A Terminal is linked to an interface of the
CompositeFactor containing the Terminal.Interfaces:
1. outConstruction:
Terminal(id=:some_id)Scheduler (low-level)
ForneyLab.MarginalRule — TypeMarginalRule{factor_type} specifies a joint marginal update rule with respect to a node of type factor_type.
ForneyLab.MarginalEntry — TypeA MarginalEntry defines a marginal computation. The marginal_update_rule <: MarginalUpdateRule defines the rule that is used to calculate the (joint) marginal over target.
ForneyLab.MarginalUpdateRule — TypeA MarginalUpdateRule specifies how a (joint) marginal is calculated from incoming messages (and a node function).
ForneyLab.MessageUpdateRule — TypeA MessageUpdateRule specifies how a Message is calculated from the node function and the incoming messages. Use subtypes(MessageUpdateRule) to list the available rules.
ForneyLab.PosteriorFactor — TypeA PosteriorFactor specifies the subset of variables that comprise a joint factor in the posterior factorization. A PosteriorFactor can be defined by a (selection of) variable(s), or on the complete graph.
ForneyLab.ScheduleEntry — TypeA ScheduleEntry defines a message computation. The message_update_rule <: MessageUpdateRule defines the rule that is used to calculate the message coming out of interface.