30 #define DIM_TO_SOLVER(p, l) BlockSolver< BlockSolverTraits<p, l> > 32 #define ALLOC_EIGEN_SPARSE_CHOLESKY(s, p, l, blockorder) \ 34 std::cerr << "# Using EigenSparseCholesky poseDim " << p << " landMarkDim " << l << " blockordering " << blockorder << std::endl; \ 35 LinearSolverEigen< DIM_TO_SOLVER(p, l)::PoseMatrixType >* linearSolver = new LinearSolverEigen<DIM_TO_SOLVER(p, l)::PoseMatrixType>(); \ 36 linearSolver->setBlockOrdering(blockorder); \ 37 s = new DIM_TO_SOLVER(p, l)(linearSolver); \ 51 string methodName = fullSolverName.substr(0, 2);
52 string solverName = fullSolverName.substr(3);
54 if (solverName ==
"var_eigen") {
58 else if (solverName ==
"fix3_2_eigen") {
61 else if (solverName ==
"fix6_3_eigen") {
64 else if (solverName ==
"fix7_3_eigen") {
67 else if (solverName ==
"fix3_2_scalar_eigen") {
70 else if (solverName ==
"fix6_3_scalar_eigen") {
73 else if (solverName ==
"fix7_3_scalar_eigen") {
79 if (methodName ==
"gn") {
82 else if (methodName ==
"lm") {
85 else if (methodName ==
"dl") {
#define G2O_REGISTER_OPTIMIZATION_ALGORITHM(optimizername, instance)
describe the properties of a solver
#define G2O_REGISTER_OPTIMIZATION_LIBRARY(libraryname)
virtual OptimizationAlgorithm * construct()
allocate a solver operating on optimizer, re-implement for your creator
Implementation of the Levenberg Algorithm.
EigenSolverCreator(const OptimizationAlgorithmProperty &p)
static OptimizationAlgorithm * createSolver(const std::string &fullSolverName)
Implementation of the Gauss Newton Algorithm.
base for allocating an optimization algorithm
Generic interface for a sparse solver operating on a graph which solves one iteration of the lineariz...
Implementation of Powell's Dogleg Algorithm.
Generic interface for a non-linear solver operating on a graph.
base for the block solvers with some basic function interfaces
#define ALLOC_EIGEN_SPARSE_CHOLESKY(s, p, l, blockorder)