Internals

The rules do their linear and Gaussian algebra with MessagePassingRulesBase's math helpers, which the node packages share. This page lists the package's own internal names.

Products with Uninformative

StandardMessagePassingRules.UninformativeProd — Type
UninformativeProd()

The product strategy for a product with Uninformative: prod(UninformativeProd(), u, x) is x, prod(UninformativeProd(), x, u) is x, and two Uninformative() give Uninformative(). BayesBase.default_prod_rule selects it whenever either side is Uninformative, so prod(GenericProd(), …) and the engine's products use it.

The strategy is this package's own, so its prod methods cannot be ambiguous with anyone else's, as generic PreserveTypeProd{T} methods would be. Five of its default_prod_rule methods settle the overlaps with BayesBase's own rules for lazy products (LinearizedProductOf), mixtures (MixtureDistribution) and terminal arguments (TerminalProdArgument). They encode BayesBase's rules, so a new rule there can bring an ambiguity back; the lasting fix is for BayesBase to own Uninformative as a product identity, as it treats missing.

source