18 #ifndef itkLBFGSBOptimizer_h
19 #define itkLBFGSBOptimizer_h
23 #include "ITKOptimizersExport.h"
102 StartOptimization()
override;
114 itkGetMacro(Trace,
bool);
115 itkBooleanMacro(Trace);
147 SetCostFunctionConvergenceFactor(
double);
149 itkGetMacro(CostFunctionConvergenceFactor,
double);
156 SetProjectedGradientTolerance(
double);
158 itkGetMacro(ProjectedGradientTolerance,
double);
162 SetMaximumNumberOfIterations(
unsigned int);
164 itkGetMacro(MaximumNumberOfIterations,
unsigned int);
168 SetMaximumNumberOfEvaluations(
unsigned int);
170 itkGetMacro(MaximumNumberOfEvaluations,
unsigned int);
174 SetMaximumNumberOfCorrections(
unsigned int);
176 itkGetMacro(MaximumNumberOfCorrections,
unsigned int);
182 itkExceptionMacro(
"This optimizer does not support scales.");
186 itkGetConstReferenceMacro(CurrentIteration,
unsigned int);
194 itkGetConstReferenceMacro(InfinityNormOfProjectedGradient,
double);
198 GetStopConditionDescription()
const override;
211 PrintSelf(std::ostream & os,
Indent indent)
const override;
220 bool m_Trace{
false };
221 bool m_OptimizerInitialized{
false };
222 double m_CostFunctionConvergenceFactor{ 1
e+7 };
223 double m_ProjectedGradientTolerance{ 1
e-5 };
224 unsigned int m_MaximumNumberOfIterations{ 500 };
225 unsigned int m_MaximumNumberOfEvaluations{ 500 };
226 unsigned int m_MaximumNumberOfCorrections{ 5 };
227 unsigned int m_CurrentIteration{ 0 };
228 double m_InfinityNormOfProjectedGradient{ 0.0 };