Bayes++是一个开源的C++类库。这些类表示并实现了用于离散系统的贝叶斯滤波的各种数值算法。该库中的类提供测试和一致的数值方法,并且用层次明确的结构表明了各种滤波算法和系统模型类型。
接下来,我们就从namespace入手说明库中各个模块的作用。Bayes++库下面最重要也是包含类最多一个名称空间是Bayesian_filter,包含了各类模型和滤波器的相关类。从类的继承关系入手,先对Bayesian_filter::Bayes_base进行说明,继承自该基类的类主要有以下几部分:
- 第一部分Bayesian_filter::Bayes_filter_base主要是主要包含Functional_filter等6个子类
2. 第二部Bayesian_filter::Importance_resamper子类主要是重要性重采用的相关类
3. 第三部分是Bayesian_filter::Iterated_terminator是迭代终止相关类
4. 第四部分Bayesian_filter::Observe_function是关于量测的相关类
5. 第五部分是Bayesian_filter::Observe_model_base
6. Bayesian_filter::Predict_model_base
Bayesian_filter::Bayes_base对应的实现函数为bayesFlt.hpp,此类是一个抽象的多态基本表示,主要提供接口有:类型,内部错误处理和销毁。
我们第二个要介绍的namespace是Bayesian_filter_matrix,此类是要是矩阵运算相关的模板类。
第三个名称空间Bayesian_filter_matix::detail,其下主要包含了一些运算符重载函数和一些模板类。
第四个名称空间Bayesian_filter_matrix::LAPACK.
第五个名称空间Bayesian_filter_matrix::LAPACK::rawLAPACK.