27#ifndef G2O_OPTIMIZATION_ALGORITHM_GAUSS_NEWTON_H
28#define G2O_OPTIMIZATION_ALGORITHM_GAUSS_NEWTON_H
30#include "optimization_algorithm_with_hessian.h"
37 template<
class t_type>
59 for (
uint04 i = 0; i < iterations; i++)
77 if (iteration == 0 && !online)
Implementation of the Gauss Newton Algorithm.
OptimizationAlgorithmGaussNewton()
construct the Gauss Newton algorithm, which use the given Solver for solving the linearized system.
void optimize(uint04 iterations, bool online, IndexScratch &scratch)
Runs the Gauss-Newton optimization for the given number of iterations.
virtual OptimizationAlgorithm::SolverResult solve(int iteration, bool online, IndexScratch &scratch)
Performs a single Gauss-Newton iteration.
OptimizationAlgorithmWithHessian()
bool init(bool online=false)
Initializes the solver, detecting whether Schur complement should be used.
t_solver solver
The underlying solver instance.
SparseOptimizer & optimizer()
Returns a mutable reference to the underlying sparse optimizer.
SolverResult
Result codes returned by the solver after each iteration.
@ Fail
Iteration failed (e.g., singular matrix).
@ OK
Iteration succeeded, continue.
void update(const g_type *update)
update the estimate of the active vertices
void computeActiveErrors()
computes the error vectors of all edges in the activeSet, and caches them
The primary namespace for the NDEVR SDK.
uint32_t uint04
-Defines an alias representing a 4 byte, unsigned integer -Can represent exact integer values 0 throu...
Scratch buffers for block index assignments during structure building.