# RxInfer

Julia package for automatic Bayesian inference on a factor graph with reactive message passing.

Given a probabilistic model, RxInfer allows for an efficient message-passing based Bayesian inference. It uses the model structure to generate an algorithm that consists of a sequence of local computations on a Forney-style factor graph (FFG) representation of the model. RxInfer.jl has been designed with a focus on efficiency, scalability and maximum performance for running inference with message passing.

## Package Features

• User friendly syntax for specification of probabilistic models.
• Automatic generation of message passing algorithms including
• Support for hybrid models combining discrete and continuous latent variables.
• Support for hybrid distinct message passing inference algorithm under a unified paradigm.
• Factorisation and functional form constraints specification.
• Evaluation of Bethe free energy as a model performance measure.
• Schedule-free reactive message passing API.
• High performance.
• Scalability for large models with millions of parameters and observations.
• Inference procedure is differentiable.
• Easy to extend with custom nodes and message update rules.

## Ecosystem

The RxInfer unites 3 core packages into one powerful reactive message passing-based Bayesian inference framework:

## How to get started?

Head to the Getting started section to get up and running with RxInfer. Alternatively, explore various examples in the documentation.