Developer API
Documentation for ForneyLab.jl
's developer API.
Contents
Index
ForneyLab.@expectationPropagationRule
ForneyLab.@marginalRule
ForneyLab.@naiveVariationalRule
ForneyLab.@structuredVariationalRule
ForneyLab.@sumProductRule
ForneyLab.Edge
ForneyLab.Interface
ForneyLab.MarginalEntry
ForneyLab.MarginalRule
ForneyLab.MarginalUpdateRule
ForneyLab.MessageUpdateRule
ForneyLab.PosteriorFactor
ForneyLab.ScheduleEntry
ForneyLab.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. out
Construction:
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
.