27 #ifndef G2O_OPTIMIZATION_ALGORITHM_DOGLEG_H 28 #define G2O_OPTIMIZATION_ALGORITHM_DOGLEG_H 34 class BlockSolverBase;
static const char * stepType2Str(int stepType)
convert the type into an integer
Eigen::VectorXd _hdl
final dogleg step
virtual ~OptimizationAlgorithmDogleg()
bool _wasPDInAllIterations
the matrix we solve was positive definite in all iterations -> if not apply damping ...
OptimizationAlgorithmDogleg(BlockSolverBase *solver)
Property< double > * _userDeltaInit
Eigen::VectorXd _hsd
steepest decent step
Property< double > * _initialLambda
Base for solvers operating on the approximated Hessian, e.g., Gauss-Newton, Levenberg.
Solver * solver()
return the underlying solver used to solve the linear system
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.
virtual SolverResult solve(int iteration, bool online=false)
virtual void printVerbose(std::ostream &os) const
double trustRegion() const
return the diameter of the trust region
Eigen::VectorXd _auxVector
auxilary vector used to perform multiplications or other stuff
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