MUQ  0.4.3
KalmanWrapper.cpp
Go to the documentation of this file.
1 #include "AllClassWrappers.h"
2 #include <Eigen/Sparse>
3 
6 
7 #include <pybind11/pybind11.h>
8 #include <pybind11/stl.h>
9 #include <pybind11/eigen.h>
10 
11 using namespace muq::Inference::PythonBindings;
12 using namespace muq::Inference;
13 using namespace muq::Modeling;
14 namespace py = pybind11;
15 
17 {
18  py::class_<KalmanFilter, std::shared_ptr<KalmanFilter>>(m, "KalmanFilter")
19  .def_static("Analyze", static_cast<std::pair<Eigen::VectorXd,Eigen::MatrixXd> (*)
20  (std::pair<Eigen::VectorXd,Eigen::MatrixXd> const&,
21  std::shared_ptr<muq::Modeling::LinearOperator>,
22  Eigen::Ref<const Eigen::VectorXd> const&,
23  Eigen::Ref<const Eigen::MatrixXd> const&)>(&KalmanFilter::Analyze))
24  .def_static("Analyze", static_cast<std::pair<Eigen::VectorXd,Eigen::MatrixXd> (*)
25  (std::pair<Eigen::VectorXd,Eigen::MatrixXd> const&,
26  Eigen::MatrixXd const&,
27  Eigen::Ref<const Eigen::VectorXd> const&,
28  Eigen::Ref<const Eigen::MatrixXd> const&)>(&KalmanFilter::Analyze<Eigen::MatrixXd>))
29  .def_static("Analyze", static_cast<std::pair<Eigen::VectorXd,Eigen::MatrixXd> (*)
30  (std::pair<Eigen::VectorXd,Eigen::MatrixXd> const&,
31  Eigen::SparseMatrix<double> const&,
32  Eigen::Ref<const Eigen::VectorXd> const&,
33  Eigen::Ref<const Eigen::MatrixXd> const&)>(&KalmanFilter::Analyze<Eigen::SparseMatrix<double>>));
34 
35  py::class_<KalmanSmoother, std::shared_ptr<KalmanSmoother>>(m, "KalmanSmoother")
36  .def_static("Analyze", static_cast<std::pair<Eigen::VectorXd,Eigen::MatrixXd> (*)
37  (std::pair<Eigen::VectorXd,Eigen::MatrixXd> const&,
38  std::pair<Eigen::VectorXd,Eigen::MatrixXd> const&,
39  std::pair<Eigen::VectorXd,Eigen::MatrixXd> const&,
40  std::shared_ptr<muq::Modeling::LinearOperator>)>(&KalmanSmoother::Analyze))
41  .def_static("Analyze", static_cast<std::pair<Eigen::VectorXd,Eigen::MatrixXd> (*)
42  (std::pair<Eigen::VectorXd,Eigen::MatrixXd> const&,
43  std::pair<Eigen::VectorXd,Eigen::MatrixXd> const&,
44  std::pair<Eigen::VectorXd,Eigen::MatrixXd> const&,
45  Eigen::MatrixXd const&)>(&KalmanSmoother::Analyze))
46  .def_static("Analyze", static_cast<std::pair<Eigen::VectorXd,Eigen::MatrixXd> (*)
47  (std::pair<Eigen::VectorXd,Eigen::MatrixXd> const&,
48  std::pair<Eigen::VectorXd,Eigen::MatrixXd> const&,
49  std::pair<Eigen::VectorXd,Eigen::MatrixXd> const&,
50  Eigen::SparseMatrix<double> const&)>(&KalmanSmoother::Analyze));
51 }
static std::pair< Eigen::VectorXd, Eigen::MatrixXd > Analyze(std::pair< Eigen::VectorXd, Eigen::MatrixXd > const &dist, std::shared_ptr< muq::Modeling::LinearOperator > H, Eigen::Ref< const Eigen::VectorXd > const &obsMean, Eigen::Ref< const Eigen::MatrixXd > const &obsCov)
static std::pair< Eigen::VectorXd, Eigen::MatrixXd > Analyze(std::pair< Eigen::VectorXd, Eigen::MatrixXd > const &currDist_t, std::pair< Eigen::VectorXd, Eigen::MatrixXd > const &nextDist_t, std::pair< Eigen::VectorXd, Eigen::MatrixXd > const &nextDist_n, std::shared_ptr< muq::Modeling::LinearOperator > F)
void KalmanWrapper(pybind11::module &m)