ReactiveMP.jl
Julia package for reactive message passing Bayesian inference engine on a factor graph.
This package exports only an inference engine, for the full ecosystem with convenient model and constraints specification we refer user to the RxInfer.jl
package and its documentation.
Ideas and principles behind ReactiveMP.jl
ReactiveMP.jl
is a particular implementation of message passing on factor graphs, which does not create any specific message passing schedule in advance, but rather reacts on changes in the data source (hence reactive in the name of the package). The detailed explanation of the ideas and principles behind the Reactive Message Passing can be found in PhD disseration of Dmitry Bagaev titled Reactive Probabilistic Programming for Scalable Bayesian Inference (link2, link3).
Examples and tutorials
The ReactiveMP.jl
package is intended for advanced users with a deep understanding of message passing principles. Accesible tutorials and examples are available in the RxInfer documentation.
Table of Contents
- Messages implementation
- Marginal implementation
- Rules implementation
- Nodes implementation
- Helper utilities
- Algebra common utilities
- Contribution guidelines
- Extensions and interaction with the Julia ecosystem
- Using methods from ReactiveMP
Index
ReactiveMP.AND
ReactiveMP.AbstractFormConstraint
ReactiveMP.AbstractMessage
ReactiveMP.AbstractPipelineStage
ReactiveMP.AdditiveCouplingLayer
ReactiveMP.AddonDebug
ReactiveMP.AsyncPipelineStage
ReactiveMP.BIFM
ReactiveMP.BIFMHelper
ReactiveMP.BIFMMeta
ReactiveMP.CVI
ReactiveMP.CVIApproximationDeltaFnRuleLayout
ReactiveMP.CVIProjection
ReactiveMP.CompanionMatrix
ReactiveMP.CompiledFlowModel
ReactiveMP.CompositeFormConstraint
ReactiveMP.CompositePipelineStage
ReactiveMP.ContinuousTransition
ReactiveMP.ContinuousTransitionMeta
ReactiveMP.DefaultFunctionalDependencies
ReactiveMP.DeferredMessage
ReactiveMP.DeltaFnDefaultKnownInverseRuleLayout
ReactiveMP.DeltaFnDefaultRuleLayout
ReactiveMP.DeltaMeta
ReactiveMP.Deterministic
ReactiveMP.DiscontinuePipelineStage
ReactiveMP.EmptyPipelineStage
ReactiveMP.EqualityChain
ReactiveMP.EqualityNode
ReactiveMP.FactorNode
ReactiveMP.FactorNodeLocalMarginal
ReactiveMP.FlowMeta
ReactiveMP.FlowModel
ReactiveMP.FormConstraintCheckEach
ReactiveMP.FormConstraintCheckLast
ReactiveMP.FormConstraintCheckPickDefault
ReactiveMP.ForwardDiffGrad
ReactiveMP.GammaShapeLikelihood
ReactiveMP.IMPLY
ReactiveMP.ImportanceSamplingApproximation
ReactiveMP.IndexedNodeInterface
ReactiveMP.InputLayer
ReactiveMP.Linearization
ReactiveMP.LoggerPipelineStage
ReactiveMP.ManyOf
ReactiveMP.Marginal
ReactiveMP.Message
ReactiveMP.NOT
ReactiveMP.NodeFunctionRuleFallback
ReactiveMP.NodeInterface
ReactiveMP.OR
ReactiveMP.PermutationLayer
ReactiveMP.PermutationMatrix
ReactiveMP.PlanarFlow
ReactiveMP.PredefinedNodeFunctionalForm
ReactiveMP.ProdCVI
ReactiveMP.RadialFlow
ReactiveMP.RequireEverythingFunctionalDependencies
ReactiveMP.RequireMarginalFunctionalDependencies
ReactiveMP.RequireMessageFunctionalDependencies
ReactiveMP.ScheduleOnPipelineStage
ReactiveMP.SkipIndexIterator
ReactiveMP.StandardBasisVector
ReactiveMP.Stochastic
ReactiveMP.UT
ReactiveMP.UndefinedNodeFunctionalForm
ReactiveMP.Unscented
ReactiveMP.UnscentedTransform
ReactiveMP.UnspecifiedFormConstraint
ReactiveMP.WrappedFormConstraint
ReactiveMP.MacroHelpers.bottom_type
ReactiveMP.MacroHelpers.ensure_symbol
ReactiveMP.MacroHelpers.proxy_type
ReactiveMP.MacroHelpers.upper_type
ReactiveMP.alias_interface
ReactiveMP.apply_pipeline_stage
ReactiveMP.ar_slice
ReactiveMP.ar_unit
ReactiveMP.as_marginal
ReactiveMP.as_message
ReactiveMP.as_node_symbol
ReactiveMP.besselmod
ReactiveMP.call_rule_is_node_required
ReactiveMP.call_rule_macro_parse_fn_args
ReactiveMP.call_rule_make_node
ReactiveMP.collect_factorisation
ReactiveMP.collect_meta
ReactiveMP.collect_pipeline
ReactiveMP.compile
ReactiveMP.constrain_form
ReactiveMP.constrain_form
ReactiveMP.ctcompanion_matrix
ReactiveMP.cvi_setup!
ReactiveMP.cvi_update!
ReactiveMP.default_form_check_strategy
ReactiveMP.default_meta
ReactiveMP.default_prod_constraint
ReactiveMP.diageye
ReactiveMP.getaddons
ReactiveMP.getaddons
ReactiveMP.getdata
ReactiveMP.getdata
ReactiveMP.getvariable
ReactiveMP.inputinterfaces
ReactiveMP.interfaces
ReactiveMP.is_clamped
ReactiveMP.is_clamped
ReactiveMP.is_initial
ReactiveMP.is_initial
ReactiveMP.is_predefined_node
ReactiveMP.isdeterministic
ReactiveMP.isstochastic
ReactiveMP.local_linearization
ReactiveMP.log_approximate
ReactiveMP.marginalrule
ReactiveMP.messagein
ReactiveMP.messageout
ReactiveMP.messages_prod_fn
ReactiveMP.mul_inplace!
ReactiveMP.mul_trace
ReactiveMP.multiply_messages
ReactiveMP.name
ReactiveMP.negate_inplace!
ReactiveMP.nodefunction
ReactiveMP.powerset
ReactiveMP.prepare_context
ReactiveMP.preprocess_form_constraints
ReactiveMP.rank1update
ReactiveMP.rule
ReactiveMP.rule_macro_check_fn_args
ReactiveMP.rule_macro_parse_fn_args
ReactiveMP.rule_macro_parse_on_tag
ReactiveMP.schedule_updates
ReactiveMP.sdtype
ReactiveMP.sigma_points_weights
ReactiveMP.skipindex
ReactiveMP.smoothRTS
ReactiveMP.tag
ReactiveMP.to_marginal
ReactiveMP.v_a_vT
ReactiveMP.@call_marginalrule
ReactiveMP.@call_rule
ReactiveMP.@marginalrule
ReactiveMP.@node
ReactiveMP.@rule
ReactiveMP.@test_marginalrules
ReactiveMP.@test_rules
ReactiveMP.MacroHelpers.@proxy_methods