Internals
The helpers the rules are built on. None is public; a contributor changing the rules reads them.
The two types the rules are declared under, one per method:
FlowMessagePassingRules.FlowLinearization — Type
FlowLinearizationThe type of a FlowApproximation whose method is Linearization, the algorithm the linearisation rules are declared under.
FlowMessagePassingRules.FlowUnscented — Type
FlowUnscentedThe type of a FlowApproximation whose method is Unscented, the algorithm the unscented rules are declared under.
The linearisation rules for a message in precision form share these, one per direction:
FlowMessagePassingRules.flow_forward_precision — Function
flow_forward_precision(algo::FlowLinearization, m_in) -> MvNormalMeanPrecisionThe linearised message towards out from a normal m_in in precision form, mean-precision or weighted-mean-precision alike: mean forward(model, μ) and precision Jᵢᵀ Λ Jᵢ, with Jᵢ the inverse flow's Jacobian at the output's mean forward(model, μ). It is the covariance form's message, inverted without inverting a matrix.
FlowMessagePassingRules.flow_backward_precision — Function
flow_backward_precision(algo::FlowLinearization, m_out) -> MvNormalMeanPrecisionThe linearised message towards in from a normal m_out in precision form: mean backward(model, μ) and precision Jᵀ Λ J, with J the flow's Jacobian at the input's mean backward(model, μ). It is the covariance form's message, inverted without inverting a matrix.
The unscented rules push the sigma points through the model themselves:
FlowMessagePassingRules.flow_unscented_statistics — Function
flow_unscented_statistics(f, model, method::Unscented, μ, Σ) -> MvNormalMeanCovarianceThe normal of f(model, x) for x ~ N(μ, Σ) by the unscented transform, f being FlowMessagePassingRules.forward or FlowMessagePassingRules.backward. The sigma points are placed along the rows of the symmetric square root of (L + λ) Σ, not along a Cholesky factor as unscented_statistics places them: both are exact for an affine flow, and they differ for a nonlinear one.