Internal API
Documentation for ForneyLab.jl
's internal API.
Contents
Index
ForneyLab.@composite
ForneyLab.@expectationPropagationRule
ForneyLab.@marginalRule
ForneyLab.@naiveVariationalRule
ForneyLab.@structuredVariationalRule
ForneyLab.@sumProductRule
ForneyLab.Edge
ForneyLab.Interface
ForneyLab.MarginalRule
ForneyLab.MarginalScheduleEntry
ForneyLab.MarginalUpdateRule
ForneyLab.MessageUpdateRule
ForneyLab.RecognitionFactor
ForneyLab.ScheduleEntry
ForneyLab.Terminal
Extended factor nodes
ForneyLab.@composite
— Macro.The @composite
macro allows for defining custom (composite) nodes. Composite nodes allow for implementating of custom update rules that may be computationally more efficient or convenient. A composite node can be defined with or without an internal model. For detailed usage instructions we refer to the composite_nodes
demo.
Extended rules
@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 functions. 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
— Type.An Edge joins two interfaces (half-edges) a
and b
.
ForneyLab.Interface
— Type.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.
ForneyLab.Terminal
— Type.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)
Scheduler (low-level)
ForneyLab.MarginalRule
— Type.MarginalRule{factortype} specifies a joint marginal update rule with respect to a node of type `factortype`.
ForneyLab.MarginalScheduleEntry
— Type.A MarginalScheduleEntry
defines a marginal computation. The marginal_update_rule <: MarginalUpdateRule
defines the rule that is used to calculate the (joint) marginal over target
.
ForneyLab.MarginalUpdateRule
— Type.A MarginalUpdateRule specifies how a (joint) marginal is calculated from incoming messages (and a node function).
ForneyLab.MessageUpdateRule
— Type.A MessageUpdateRule specifies how a Message is calculated from the node function and the incoming messages. Use subtypes(MessageUpdateRule)
to list the available rules.
ForneyLab.RecognitionFactor
— Type.A RecognitionFactor specifies the subset of variables that comprise a joint factor in the recognition factorization.
ForneyLab.ScheduleEntry
— Type.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
.