Main MRPT website > C++ reference
MRPT logo
List of all members | Public Types | Public Member Functions | Public Attributes | Static Public Attributes
mrpt::srba::internal::solver_engine< true, true, RBA_ENGINE > Struct Template Reference

Detailed Description

template<class RBA_ENGINE>
struct mrpt::srba::internal::solver_engine< true, true, RBA_ENGINE >

SOLVER: Lev-Marq with Schur, with Sparse Cholesky (CSparse library)

Definition at line 407 of file lev-marq_solvers.h.

#include <mrpt/srba/impl/lev-marq_solvers.h>

Public Types

typedef RBA_ENGINE::hessian_traits_t hessian_traits_t
 

Public Member Functions

 solver_engine (const int verbose_level, mrpt::utils::CTimeLogger &profiler, typename hessian_traits_t::TSparseBlocksHessian_Ap &HAp_, typename hessian_traits_t::TSparseBlocksHessian_f &Hf_, typename hessian_traits_t::TSparseBlocksHessian_Apf &HApf_, Eigen::VectorXd &minus_grad_, const size_t nUnknowns_k2k_, const size_t nUnknowns_k2f_)
 Constructor. More...
 
bool solve (const double lambda)
 
void realize_lambda_changed ()
 
void realize_relinearized ()
 
bool was_ith_feature_invertible (const size_t i)
 
void get_extra_results (typename RBA_ENGINE::rba_options_type::solver_t::extra_results_t &out_info)
 Here, out_info is of type mrpt::srba::options::solver_LM_schur_dense_cholesky::extra_results_t. More...
 

Public Attributes

const int m_verbose_level
 
mrpt::utils::CTimeLoggerm_profiler
 
const size_t nUnknowns_k2k
 
const size_t nUnknowns_k2f
 
Eigen::VectorXd delta_eps
 The result of solving Ax=b will be stored here. More...
 
hessian_traits_t::TSparseBlocksHessian_Ap & HAp
 
hessian_traits_t::TSparseBlocksHessian_f & Hf
 
hessian_traits_t::TSparseBlocksHessian_Apf & HApf
 
Eigen::VectorXd & minus_grad
 
SchurComplement< typename hessian_traits_t::TSparseBlocksHessian_Ap, typename hessian_traits_t::TSparseBlocksHessian_f, typename hessian_traits_t::TSparseBlocksHessian_Apf > schur_compl
 
Eigen::MatrixXd denseH
 
Eigen::LLT< Eigen::MatrixXd, Eigen::Upper > denseChol
 
bool denseChol_is_uptodate
 
bool hessian_is_valid
 Whether the hessian was correctly evaluated at least once. More...
 

Static Public Attributes

static const size_t POSE_DIMS = RBA_ENGINE::kf2kf_pose_type::REL_POSE_DIMS
 
static const size_t LM_DIMS = RBA_ENGINE::lm_type::LM_DIMS
 

Member Typedef Documentation

template<class RBA_ENGINE >
typedef RBA_ENGINE::hessian_traits_t mrpt::srba::internal::solver_engine< true, true, RBA_ENGINE >::hessian_traits_t

Definition at line 409 of file lev-marq_solvers.h.

Constructor & Destructor Documentation

template<class RBA_ENGINE >
mrpt::srba::internal::solver_engine< true, true, RBA_ENGINE >::solver_engine ( const int  verbose_level,
mrpt::utils::CTimeLogger profiler,
typename hessian_traits_t::TSparseBlocksHessian_Ap &  HAp_,
typename hessian_traits_t::TSparseBlocksHessian_f &  Hf_,
typename hessian_traits_t::TSparseBlocksHessian_Apf &  HApf_,
Eigen::VectorXd &  minus_grad_,
const size_t  nUnknowns_k2k_,
const size_t  nUnknowns_k2f_ 
)
inline

Constructor.

Definition at line 440 of file lev-marq_solvers.h.

Member Function Documentation

template<class RBA_ENGINE >
void mrpt::srba::internal::solver_engine< true, true, RBA_ENGINE >::get_extra_results ( typename RBA_ENGINE::rba_options_type::solver_t::extra_results_t &  out_info)
inline
template<class RBA_ENGINE >
void mrpt::srba::internal::solver_engine< true, true, RBA_ENGINE >::realize_lambda_changed ( )
inline

Definition at line 565 of file lev-marq_solvers.h.

template<class RBA_ENGINE >
void mrpt::srba::internal::solver_engine< true, true, RBA_ENGINE >::realize_relinearized ( )
inline

Definition at line 569 of file lev-marq_solvers.h.

References DETAILED_PROFILING_ENTER, and DETAILED_PROFILING_LEAVE.

template<class RBA_ENGINE >
bool mrpt::srba::internal::solver_engine< true, true, RBA_ENGINE >::solve ( const double  lambda)
inline
template<class RBA_ENGINE >
bool mrpt::srba::internal::solver_engine< true, true, RBA_ENGINE >::was_ith_feature_invertible ( const size_t  i)
inline

Definition at line 576 of file lev-marq_solvers.h.

Member Data Documentation

template<class RBA_ENGINE >
Eigen::VectorXd mrpt::srba::internal::solver_engine< true, true, RBA_ENGINE >::delta_eps

The result of solving Ax=b will be stored here.

Definition at line 418 of file lev-marq_solvers.h.

template<class RBA_ENGINE >
Eigen::LLT<Eigen::MatrixXd,Eigen::Upper> mrpt::srba::internal::solver_engine< true, true, RBA_ENGINE >::denseChol

Definition at line 434 of file lev-marq_solvers.h.

template<class RBA_ENGINE >
bool mrpt::srba::internal::solver_engine< true, true, RBA_ENGINE >::denseChol_is_uptodate

Definition at line 435 of file lev-marq_solvers.h.

template<class RBA_ENGINE >
Eigen::MatrixXd mrpt::srba::internal::solver_engine< true, true, RBA_ENGINE >::denseH

Definition at line 433 of file lev-marq_solvers.h.

template<class RBA_ENGINE >
hessian_traits_t::TSparseBlocksHessian_Ap& mrpt::srba::internal::solver_engine< true, true, RBA_ENGINE >::HAp

Definition at line 419 of file lev-marq_solvers.h.

template<class RBA_ENGINE >
hessian_traits_t::TSparseBlocksHessian_Apf& mrpt::srba::internal::solver_engine< true, true, RBA_ENGINE >::HApf

Definition at line 421 of file lev-marq_solvers.h.

template<class RBA_ENGINE >
bool mrpt::srba::internal::solver_engine< true, true, RBA_ENGINE >::hessian_is_valid

Whether the hessian was correctly evaluated at least once.

Definition at line 436 of file lev-marq_solvers.h.

template<class RBA_ENGINE >
hessian_traits_t::TSparseBlocksHessian_f& mrpt::srba::internal::solver_engine< true, true, RBA_ENGINE >::Hf

Definition at line 420 of file lev-marq_solvers.h.

template<class RBA_ENGINE >
const size_t mrpt::srba::internal::solver_engine< true, true, RBA_ENGINE >::LM_DIMS = RBA_ENGINE::lm_type::LM_DIMS
static

Definition at line 412 of file lev-marq_solvers.h.

template<class RBA_ENGINE >
mrpt::utils::CTimeLogger& mrpt::srba::internal::solver_engine< true, true, RBA_ENGINE >::m_profiler

Definition at line 415 of file lev-marq_solvers.h.

template<class RBA_ENGINE >
const int mrpt::srba::internal::solver_engine< true, true, RBA_ENGINE >::m_verbose_level

Definition at line 414 of file lev-marq_solvers.h.

template<class RBA_ENGINE >
Eigen::VectorXd& mrpt::srba::internal::solver_engine< true, true, RBA_ENGINE >::minus_grad

Definition at line 422 of file lev-marq_solvers.h.

template<class RBA_ENGINE >
const size_t mrpt::srba::internal::solver_engine< true, true, RBA_ENGINE >::nUnknowns_k2f

Definition at line 416 of file lev-marq_solvers.h.

template<class RBA_ENGINE >
const size_t mrpt::srba::internal::solver_engine< true, true, RBA_ENGINE >::nUnknowns_k2k

Definition at line 416 of file lev-marq_solvers.h.

template<class RBA_ENGINE >
const size_t mrpt::srba::internal::solver_engine< true, true, RBA_ENGINE >::POSE_DIMS = RBA_ENGINE::kf2kf_pose_type::REL_POSE_DIMS
static

Definition at line 411 of file lev-marq_solvers.h.

template<class RBA_ENGINE >
SchurComplement< typename hessian_traits_t::TSparseBlocksHessian_Ap, typename hessian_traits_t::TSparseBlocksHessian_f, typename hessian_traits_t::TSparseBlocksHessian_Apf > mrpt::srba::internal::solver_engine< true, true, RBA_ENGINE >::schur_compl

Definition at line 429 of file lev-marq_solvers.h.




Page generated by Doxygen 1.8.9.1 for MRPT 1.3.0 SVN: at Sun Sep 13 03:55:12 UTC 2015