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
double trustRegion() const
return the diameter of the trust region
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
int lastStep() const
return the type of the last step taken by the algorithm
Implementation of Powell's Dogleg Algorithm.
virtual SolverResult solve(int iteration, bool online=false)
Eigen::VectorXd _auxVector
auxilary vector used to perform multiplications or other stuff
virtual void printVerbose(std::ostream &os) const
int _lastStep
type of the step taken by the algorithm
base for the block solvers with some basic function interfaces