18 #ifndef itkLBFGSBOptimizer_h
19 #define itkLBFGSBOptimizer_h
23 #include "ITKOptimizersExport.h"
101 StartOptimization()
override;
113 itkGetMacro(Trace,
bool);
114 itkBooleanMacro(Trace);
146 SetCostFunctionConvergenceFactor(
double);
148 itkGetMacro(CostFunctionConvergenceFactor,
double);
155 SetProjectedGradientTolerance(
double);
157 itkGetMacro(ProjectedGradientTolerance,
double);
161 SetMaximumNumberOfIterations(
unsigned int);
163 itkGetMacro(MaximumNumberOfIterations,
unsigned int);
167 SetMaximumNumberOfEvaluations(
unsigned int);
169 itkGetMacro(MaximumNumberOfEvaluations,
unsigned int);
173 SetMaximumNumberOfCorrections(
unsigned int);
175 itkGetMacro(MaximumNumberOfCorrections,
unsigned int);
181 itkExceptionMacro(<<
"This optimizer does not support scales.");
185 itkGetConstReferenceMacro(CurrentIteration,
unsigned int);
193 itkGetConstReferenceMacro(InfinityNormOfProjectedGradient,
double);
197 GetStopConditionDescription()
const override;
203 PrintSelf(std::ostream & os,
Indent indent)
const override;
212 bool m_Trace{
false };
213 bool m_OptimizerInitialized{
false };
214 double m_CostFunctionConvergenceFactor{ 1
e+7 };
215 double m_ProjectedGradientTolerance{ 1
e-5 };
216 unsigned int m_MaximumNumberOfIterations{ 500 };
217 unsigned int m_MaximumNumberOfEvaluations{ 500 };
218 unsigned int m_MaximumNumberOfCorrections{ 5 };
219 unsigned int m_CurrentIteration{ 0 };
220 double m_InfinityNormOfProjectedGradient{ 0.0 };