Inference execution

The RxInfer inference API supports different types of message-passing algorithms (including hybrid algorithms combining several different types):

Whereas belief propagation computes exact inference for the random variables of interest, the variational message passing (VMP) in an approximation method that can be applied to a larger range of models.

The inference engine itself isn't aware of different algorithm types and simply does message passing between nodes, however during model specification stage user may specify different factorisation constraints around factor nodes by using where { q = ... } syntax or with the help of the @constraints macro. Different factorisation constraints lead to a different message passing update rules. See more documentation about constraints specification in the corresponding section.

Automatic inference specification on static datasets

RxInfer exports the inference function to quickly run and test you model with static datasets. See more information about the inference function on the separate documentation section.

Automatic inference specification on real-time datasets

RxInfer exports the rxinference function to quickly run and test you model with dynamic and potentially real-time datasets. See more information about the rxinference function on the separate documentation section.

Manual inference specification

While both inference and rxinference use most of the RxInfer inference engine capabilities in some situations it might be beneficial to write inference code manually. The Manual inference documentation section explains how to write your custom inference routines.