SRBA: Sparser Relative Bundle Adjustment
|
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