MUQ  0.4.3
KalmanSmoother.h
Go to the documentation of this file.
1 #ifndef KALMANSMOOTHER_H
2 #define KALMANSMOOTHER_H
3 
5 
6 namespace muq
7 {
8 namespace Inference
9 {
10 
15  {
16 
17  public:
18 
25  static std::pair<Eigen::VectorXd, Eigen::MatrixXd> Analyze(std::pair<Eigen::VectorXd, Eigen::MatrixXd> const& currDist_t,
26  std::pair<Eigen::VectorXd, Eigen::MatrixXd> const& nextDist_t,
27  std::pair<Eigen::VectorXd, Eigen::MatrixXd> const& nextDist_n,
28  std::shared_ptr<muq::Modeling::LinearOperator> F);
29 
33  template<typename MatrixType>
34  static std::pair<Eigen::VectorXd, Eigen::MatrixXd> Analyze(std::pair<Eigen::VectorXd, Eigen::MatrixXd> const& currDist_t,
35  std::pair<Eigen::VectorXd, Eigen::MatrixXd> const& nextDist_t,
36  std::pair<Eigen::VectorXd, Eigen::MatrixXd> const& nextDist_n,
37  MatrixType const& F)
38  {
39  return Analyze(currDist_t, nextDist_t, nextDist_n, muq::Modeling::LinearOperator::Create(F));
40  };
41 
42 
43  private:
44 
45  static Eigen::MatrixXd ComputeC( Eigen::MatrixXd const& currDist_t_cov,
46  Eigen::MatrixXd const& nextDist_t_cov,
47  std::shared_ptr<muq::Modeling::LinearOperator> const& F);
48 
49 
50  }; // class KalmanSmoother
51 
52 }// namespace Inference
53 }// namespace muq
54 
55 
56 #endif
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, MatrixType const &F)
static Eigen::MatrixXd ComputeC(Eigen::MatrixXd const &currDist_t_cov, Eigen::MatrixXd const &nextDist_t_cov, std::shared_ptr< muq::Modeling::LinearOperator > const &F)
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)