SRBA: Sparser Relative Bundle Adjustment
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends
Public Types | Public Member Functions | Public Attributes | Static Public Attributes
srba::internal::solver_engine< true, false, RBA_ENGINE > Struct Template Reference

Detailed Description

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

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

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

#include <lev-marq_solvers.h>

List of all members.

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_)
bool solve (const double lambda)
void realize_relinearized ()
void realize_lambda_changed ()
bool was_ith_feature_invertible (const size_t i)
void get_extra_results (typename RBA_ENGINE::rba_options_t::solver_t::extra_results_t &out_info)

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
hessian_traits_t::TSparseBlocksHessian_Ap & HAp
hessian_traits_t::TSparseBlocksHessian_f & Hf
hessian_traits_t::TSparseBlocksHessian_Apf & HApf
Eigen::VectorXd & minus_grad
mrpt::math::CSparseMatrixsS
 Sparse Hessian.
bool sS_is_valid
 Whether the Hessian was filled in, in sS.
SparseCholeskyDecompPtr ptrCh
SchurComplement< typename
hessian_traits_t::TSparseBlocksHessian_Ap,
typename
hessian_traits_t::TSparseBlocksHessian_f,
typename
hessian_traits_t::TSparseBlocksHessian_Apf > 
schur_compl

Static Public Attributes

static const size_t POSE_DIMS = RBA_ENGINE::kf2kf_pose_t::REL_POSE_DIMS
static const size_t LM_DIMS = RBA_ENGINE::landmark_t::LM_DIMS

Constructor & Destructor Documentation

template<class RBA_ENGINE >
srba::internal::solver_engine< true, false, 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 244 of file lev-marq_solvers.h.


Member Function Documentation

template<class RBA_ENGINE >
void srba::internal::solver_engine< true, false, RBA_ENGINE >::get_extra_results ( typename RBA_ENGINE::rba_options_t::solver_t::extra_results_t &  out_info) [inline]

Here, out_info is of type srba::options::solver_LM_no_schur_sparse_cholesky::extra_results_t

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


Member Data Documentation

template<class RBA_ENGINE >
SparseCholeskyDecompPtr srba::internal::solver_engine< true, false, RBA_ENGINE >::ptrCh

Cholesky object, as a pointer to reuse it between iterations

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


The documentation for this struct was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends