19#ifndef __itkQuasiNewtonLBFGSOptimizer_h
20#define __itkQuasiNewtonLBFGSOptimizer_h
78 typedef std::vector< ParametersType >
SType;
79 typedef std::vector< DerivativeType >
YType;
102 itkGetConstMacro( CurrentIteration,
unsigned long );
105 itkGetConstMacro( InLineSearch,
bool );
107 itkGetConstMacro( CurrentStepLength,
double );
116 1, NumericTraits< unsigned long >::max() );
129 itkSetMacro( Memory,
unsigned int );
130 itkGetConstMacro( Memory,
unsigned int );
138 void PrintSelf( std::ostream & os, Indent indent )
const override {}
158 itkSetMacro( InLineSearch,
bool );
A base class for LineSearch optimizers.
ITK version of the lbfgs algorithm ...
virtual void StopOptimization(void)
unsigned int m_PreviousPoint
LineSearchOptimizer LineSearchOptimizerType
~QuasiNewtonLBFGSOptimizer() override
LineSearchOptimizerType::Pointer LineSearchOptimizerPointer
itkGetModifiableObjectMacro(LineSearchOptimizer, LineSearchOptimizerType)
LineSearchOptimizerPointer m_LineSearchOptimizer
void operator=(const Self &)
virtual void ComputeSearchDirection(const DerivativeType &gradient, ParametersType &searchDir)
QuasiNewtonLBFGSOptimizer()
DerivativeType m_CurrentGradient
Array< double > DiagonalMatrixType
void StartOptimization(void) override
unsigned long m_MaximumNumberOfIterations
Superclass::MeasureType MeasureType
virtual void ComputeDiagonalMatrix(DiagonalMatrixType &diag_H0)
Superclass::CostFunctionType CostFunctionType
std::vector< DerivativeType > YType
virtual void StoreCurrentPoint(const ParametersType &step, const DerivativeType &grad_dif)
Superclass::ScalesType ScalesType
virtual bool TestConvergence(bool firstLineSearchDone)
unsigned long m_CurrentIteration
QuasiNewtonLBFGSOptimizer Self
ScaledSingleValuedNonLinearOptimizer Superclass
@ GradientMagnitudeTolerance
@ MaximumNumberOfIterations
Superclass::DerivativeType DerivativeType
Superclass::ScaledCostFunctionType ScaledCostFunctionType
StopConditionType m_StopCondition
MeasureType m_CurrentValue
QuasiNewtonLBFGSOptimizer(const Self &)
SmartPointer< const Self > ConstPointer
double m_CurrentStepLength
double m_GradientMagnitudeTolerance
void PrintSelf(std::ostream &os, Indent indent) const override
SmartPointer< Self > Pointer
std::vector< ParametersType > SType
virtual void ResumeOptimization(void)
virtual void LineSearch(const ParametersType searchDir, double &step, ParametersType &x, MeasureType &f, DerivativeType &g)
Superclass::ParametersType ParametersType
NonLinearOptimizer::ScalesType ScalesType
Superclass::ParametersType ParametersType
ScaledSingleValuedCostFunction ScaledCostFunctionType
Superclass::DerivativeType DerivativeType
Superclass::CostFunctionType CostFunctionType
Superclass::MeasureType MeasureType