27#ifndef G2O_OPTIMIZATION_ALGORITHM_DOGLEG_H
28#define G2O_OPTIMIZATION_ALGORITHM_DOGLEG_H
46 enum { STEP_UNDEFINED, STEP_SD, STEP_GN, STEP_DL };
56 virtual SolverResult solve(
int iteration,
bool online =
false);
58 virtual void printVerbose(std::ostream& os)
const;
66 static const char* stepType2Str(
int stepType);
Implementation of Powell's Dogleg Algorithm.
int lastStep() const
return the type of the last step taken by the algorithm
VectorX _hsd
steepest decent step
double _delta
trust region
Property< double > * _initialLambda
int _lastStep
type of the step taken by the algorithm
double trustRegion() const
return the diameter of the trust region
VectorX _hdl
final dogleg step
Property< int > * _maxTrialsAfterFailure
Property< double > * _lamdbaFactor
double _currentLambda
the damping factor to force positive definite matrix
std::unique_ptr< BlockSolverBase > m_solver
Property< double > * _userDeltaInit
bool _wasPDInAllIterations
Base for solvers operating on the approximated Hessian, e.g., Gauss-Newton, Levenberg.
VectorN< Eigen::Dynamic > VectorX