SRBA: Sparser Relative Bundle Adjustment
srba/srba_options_solver.h
00001 /* +---------------------------------------------------------------------------+
00002    |                     Mobile Robot Programming Toolkit (MRPT)               |
00003    |                          http://www.mrpt.org/                             |
00004    |                                                                           |
00005    | Copyright (c) 2005-2015, Individual contributors, see AUTHORS file        |
00006    | See: http://www.mrpt.org/Authors - All rights reserved.                   |
00007    | Released under BSD License. See details in http://www.mrpt.org/License    |
00008    +---------------------------------------------------------------------------+ */
00009 
00010 #pragma once
00011 
00012 #include <mrpt/math/CSparseMatrix.h>
00013 
00014 namespace srba {
00015 namespace options
00016 {
00017 
00024         struct solver_LM_schur_dense_cholesky
00025         {
00026             static const bool USE_SCHUR      = true;
00027             static const bool DENSE_CHOLESKY = true;
00029             struct extra_results_t
00030             {
00031                 bool hessian_valid; 
00032 
00033                 Eigen::MatrixXd  hessian;
00034 
00035                 extra_results_t() { clear(); }
00036                 void clear() { hessian_valid=false; }
00037             };
00038         };
00039 
00043         struct solver_LM_schur_sparse_cholesky
00044         {
00045             static const bool USE_SCHUR      = true;
00046             static const bool DENSE_CHOLESKY = false;
00048             struct extra_results_t
00049             {
00050                 bool hessian_valid; 
00051 
00052                 mrpt::math::CSparseMatrix  hessian;
00053 
00054                 extra_results_t() { clear(); }
00055                 void clear() { hessian_valid=false; }
00056             };
00057         };
00058 
00062         struct solver_LM_no_schur_sparse_cholesky
00063         {
00064             static const bool USE_SCHUR      = false;
00065             static const bool DENSE_CHOLESKY = false;
00067             struct extra_results_t
00068             {
00069                 bool hessian_valid; 
00070 
00071                 mrpt::math::CSparseMatrix  hessian;
00072 
00073                 extra_results_t() { clear(); }
00074                 void clear() { hessian_valid=false; }
00075             };
00076         };
00077 
00078 } } // End of namespaces
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends