27 #ifndef G2O_SOLVER_LEVENBERG_H 28 #define G2O_SOLVER_LEVENBERG_H 48 virtual SolverResult solve(
int iteration,
bool online =
false);
50 virtual void printVerbose(std::ostream& os)
const;
56 void setMaxTrialsAfterFailure(
int max_trials);
64 void setUserLambdaInit(
double lambda);
84 double computeLambdaInit()
const;
85 double computeScale()
const;
Property< double > * _userLambdaInit
double userLambdaInit()
return the lambda set by the user, if < 0 the SparseOptimizer will compute the initial lambda ...
double _goodStepLowerScale
lower bound for lambda decrease if a good LM step
double _goodStepUpperScale
upper bound for lambda decrease if a good LM step
int _levenbergIterations
the numer of levenberg iterations performed to accept the last step
Implementation of the Levenberg Algorithm.
int maxTrialsAfterFailure() const
get the number of inner iterations for Levenberg-Marquardt
Base for solvers operating on the approximated Hessian, e.g., Gauss-Newton, Levenberg.
Generic interface for a sparse solver operating on a graph which solves one iteration of the lineariz...
Property< int > * _maxTrialsAfterFailure
double currentLambda() const
return the currently used damping factor
int levenbergIteration()
return the number of levenberg iterations performed in the last round