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);
113 virtual
void SetLowerBound(const BoundValueType & value);
114 itkGetConstReferenceMacro(LowerBound,BoundValueType);
118 virtual
void SetUpperBound(const BoundValueType & value);
119 itkGetConstReferenceMacro(UpperBound,BoundValueType);
128 virtual
void SetBoundSelection(const BoundSelectionType & select);
129 itkGetConstReferenceMacro(BoundSelection,BoundSelectionType);
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);
179 itkGetConstReferenceMacro(InfinityNormOfProjectedGradient,
double);
182 virtual const std::string GetStopConditionDescription()
const ITK_OVERRIDE;
187 virtual void PrintSelf(std::ostream & os,
Indent indent)
const ITK_OVERRIDE;
193 void operator=(const Self &) ITK_DELETE_FUNCTION;
200 bool m_OptimizerInitialized;
201 double m_CostFunctionConvergenceFactor;
202 double m_ProjectedGradientTolerance;
203 unsigned int m_MaximumNumberOfIterations;
204 unsigned int m_MaximumNumberOfEvaluations;
205 unsigned int m_MaximumNumberOfCorrections;
206 unsigned int m_CurrentIteration;
207 double m_InfinityNormOfProjectedGradient;
209 InternalOptimizerType * m_VnlOptimizer;
210 BoundValueType m_LowerBound;
211 BoundValueType m_UpperBound;
212 BoundSelectionType m_BoundSelection;
vnl_vector< long > InternalBoundSelectionType
This class is a base for the CostFunctions returning a single value.
vnl_vector< double > InternalBoundValueType
Array< long > BoundSelectionType
Superclass::CostFunctionAdaptorType CostFunctionAdaptorType
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes...
Superclass::ScalesType ScalesType
Limited memory Broyden Fletcher Goldfarb Shannon minimization with simple bounds. ...
Array< double > BoundValueType
CostFunctionType::MeasureType MeasureType
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.