27 #ifndef G2O_OPTIMIZATION_ALGORITHM_DOGLEG_H 28 #define G2O_OPTIMIZATION_ALGORITHM_DOGLEG_H 35 class BlockSolverBase;
57 virtual SolverResult solve(
int iteration,
bool online =
false);
59 virtual void printVerbose(std::ostream& os)
const;
67 static const char* stepType2Str(
int stepType);
VectorXD _hsd
steepest decent step
VectorXD _auxVector
auxilary vector used to perform multiplications or other stuff
bool _wasPDInAllIterations
the matrix we solve was positive definite in all iterations -> if not apply damping ...
Property< double > * _userDeltaInit
Property< double > * _initialLambda
Base for solvers operating on the approximated Hessian, e.g., Gauss-Newton, Levenberg.
double _currentLambda
the damping factor to force positive definite matrix
Property< int > * _maxTrialsAfterFailure
double _delta
trust region
Property< double > * _lamdbaFactor
Implementation of Powell's Dogleg Algorithm.
VectorXD _hdl
final dogleg step
Eigen::Matrix< double, Eigen::Dynamic, 1, Eigen::ColMajor > VectorXD
double trustRegion() const
return the diameter of the trust region
int _lastStep
type of the step taken by the algorithm
base for the block solvers with some basic function interfaces
int lastStep() const
return the type of the last step taken by the algorithm