SRBA: Sparser Relative Bundle Adjustment
|
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>
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::CTimeLogger & | m_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::CSparseMatrix * | sS |
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 |
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.
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.
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.