13 namespace mrpt {
namespace srba {
20 template <
class KF2KF_POSE_TYPE,
class LM_TYPE,
class OBS_TYPE,
class RBA_OPTIONS>
21 template <
class SPARSEBLOCKHESSIAN>
25 const size_t nUnknowns = H.getColCount();
26 for (
size_t i=0;i<nUnknowns;i++)
28 typename SPARSEBLOCKHESSIAN::col_t & col = H.getCol(i);
32 typename SPARSEBLOCKHESSIAN::TEntry & entry = it->second;
36 typename SPARSEBLOCKHESSIAN::matrix_t Hij;
43 const typename SPARSEBLOCKHESSIAN::symbolic_t::THessianSymbolicInfoEntry & sym_k = *itJ;
45 if (*sym_k.J1_valid && *sym_k.J2_valid)
48 RBA_OPTIONS::obs_noise_matrix_t::template accum_JtJ(Hij, *sym_k.J1, *sym_k.J2, sym_k.obs_idx, this->parameters.obs_noise );
54 RBA_OPTIONS::obs_noise_matrix_t::template scale_H(Hij, this->parameters.obs_noise );
size_t sparse_hessian_update_numeric(SPARSEBLOCKHESSIAN &H) const
Rebuild the Hessian symbolic information from the internal pointers to blocks of Jacobians.
const Scalar * const_iterator
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.