# bayes_estimate 0.9.2

Bayesian estimation library. Kalman filter, Informatiom, Square root, Information root, Unscented and UD filters. Numerically and dimensionally generic implementation using nalgebra. Provides fast numerically stable estimation solutions.
Documentation

# Bayes+Estimate the Bayesian estimation library.

Bayesian estimation is a probabilistic technique for data fusion. The technique combines a concise mathematical formulation of a system with observations of that system. Probabilities are used to represent the state of a system, likelihood functions to represent their relationships. In this form Bayesian inference can be applied and further related probabilities deduced. See Wikipedia for information on probability theory, Bayes theorem, Bayesian inference.

For discrete systems the Bayesian formulation results in a naturally iterative data fusion solution. For dynamic systems there is a class of solutions, discrete filters, that combine observed outputs of the system with the system's dynamic model. An estimator computes a estimate of the systems state with each observation of the system. Linear estimators such as the Kalman Filter are commonly applied.

Bayes+Estimate is an open source library for Rust. The library implements a wide variety of numerical algorithms for Bayesian estimation of discrete systems.

The following linear estimator are implemented for linear or linearised models:

• covariance the classic extended Kalman filter.
• information representing the inverse form of state allows the additive propperties of information to be used.
• information_root square root factorised form of information for better numerics.
• ud UdU' factorised form of covariance for better numerics.
• unscented used 'unscented' transform to better deal with non linear models.

A Sampling Importance Resampleing estimator is implemeted for use where linearised models are not appropriate:

• sir a Sampling Importance Resampleing (or weighted bootstrap) estimator.

State and noise models have been logically seperated and are defined by their structures. Prediction and observation are represented by traits that define the estimation operations for different models. Estimators implement the models for their state representation and provide a numerical implementation of the operations.

The estimators operations provide consistent implementations which allow numerically stable estimators to be implemented. For linear estimators the conditioning of the estimate as a reciprocal condition number can be calculated. For the sir estimator the sample likelihood conditioning can be calculated.

The library supports no_std operation.

This work is based on my Bayes++ C++ Bayesian estimation library. See http://bayesclasses.sourceforge.net/Bayes++.html