18 #ifndef itkLBFGSBOptimizer_h
19 #define itkLBFGSBOptimizer_h
23 #include "ITKOptimizersExport.h"
99 virtual void StartOptimization(
void) ITK_OVERRIDE;
107 virtual
void SetTrace(
bool flag);
109 itkGetMacro(Trace,
bool);
110 itkBooleanMacro(Trace);
118 virtual
void SetUpperBound(const BoundValueType & value);
119 itkGetConstReferenceMacro(UpperBound,BoundValueType);
138 virtual
void SetCostFunctionConvergenceFactor(
double);
140 itkGetMacro(CostFunctionConvergenceFactor,
double);
146 virtual
void SetProjectedGradientTolerance(
double);
148 itkGetMacro(ProjectedGradientTolerance,
double);
151 virtual
void SetMaximumNumberOfIterations(
unsigned int);
153 itkGetMacro(MaximumNumberOfIterations,
unsigned int);
156 virtual
void SetMaximumNumberOfEvaluations(
unsigned int);
158 itkGetMacro(MaximumNumberOfEvaluations,
unsigned int);
161 virtual
void SetMaximumNumberOfCorrections(
unsigned int);
163 itkGetMacro(MaximumNumberOfCorrections,
unsigned int);
168 itkExceptionMacro(<<
"This optimizer does not support scales.");
172 itkGetConstReferenceMacro(CurrentIteration,
unsigned int);
175 MeasureType GetValue()
const;
179 itkGetConstReferenceMacro(InfinityNormOfProjectedGradient,
double);
182 virtual const std::string GetStopConditionDescription() const ITK_OVERRIDE;
186 virtual ~LBFGSBOptimizer() ITK_OVERRIDE;
187 virtual
void PrintSelf(std::ostream & os,
Indent indent) const ITK_OVERRIDE;
192 ITK_DISALLOW_COPY_AND_ASSIGN(LBFGSBOptimizer);
199 bool m_OptimizerInitialized;
200 double m_CostFunctionConvergenceFactor;
201 double m_ProjectedGradientTolerance;
202 unsigned int m_MaximumNumberOfIterations;
203 unsigned int m_MaximumNumberOfEvaluations;
204 unsigned int m_MaximumNumberOfCorrections;
205 unsigned int m_CurrentIteration;
206 double m_InfinityNormOfProjectedGradient;
vnl_vector< long > InternalBoundSelectionType
This class is a base for the CostFunctions returning a single value.
Light weight base class for most itk classes.
vnl_vector< double > InternalBoundValueType
Array< long > BoundSelectionType
Superclass::CostFunctionAdaptorType CostFunctionAdaptorType
Superclass::ScalesType ScalesType
Limited memory Broyden Fletcher Goldfarb Shannon minimization with simple bounds. ...
Array< double > BoundValueType
This class is a base for the Optimization methods that optimize a single valued function.
SmartPointer< Self > Pointer
SingleValuedNonLinearVnlOptimizer Superclass
LBFGSBOptimizerHelper InternalOptimizerType
Control indentation during Print() invocation.
SmartPointer< const Self > ConstPointer
Wrapper helper around vnl_lbfgsb.