18 #ifndef itkLBFGSOptimizer_h
19 #define itkLBFGSOptimizer_h
22 #include "vnl/algo/vnl_lbfgs.h"
23 #include "ITKOptimizersExport.h"
56 vnl_lbfgs * GetOptimizer();
59 virtual void StartOptimization(
void) ITK_OVERRIDE;
67 virtual
void SetTrace(
bool flag);
69 itkGetMacro(Trace,
bool);
70 itkBooleanMacro(Trace);
73 virtual
void SetMaximumNumberOfFunctionEvaluations(
unsigned int n);
75 itkGetMacro(MaximumNumberOfFunctionEvaluations,
unsigned int);
82 virtual
void SetGradientConvergenceTolerance(
double gtol);
84 itkGetMacro(GradientConvergenceTolerance,
double);
92 virtual
void SetLineSearchAccuracy(
double tol);
94 itkGetMacro(LineSearchAccuracy,
double);
100 virtual
void SetDefaultStepLength(
double stp);
102 itkGetMacro(DefaultStepLength,
double);
108 virtual const std::
string GetStopConditionDescription() const ITK_OVERRIDE;
112 virtual ~LBFGSOptimizer();
113 virtual
void PrintSelf(std::ostream & os,
Indent indent) const ITK_OVERRIDE;
118 LBFGSOptimizer(const
Self &) ITK_DELETE_FUNCTION;
119 void operator=(const
Self &) ITK_DELETE_FUNCTION;
121 bool m_OptimizerInitialized;
123 mutable std::ostringstream m_StopConditionDescription;
126 unsigned int m_MaximumNumberOfFunctionEvaluations;
127 double m_GradientConvergenceTolerance;
128 double m_LineSearchAccuracy;
129 double m_DefaultStepLength;
vnl_vector< double > InternalParametersType
This class is a base for the CostFunctions returning a single value.
Light weight base class for most itk classes.
vnl_lbfgs InternalOptimizerType
Superclass::CostFunctionAdaptorType CostFunctionAdaptorType
SmartPointer< const Self > ConstPointer
CostFunctionType::MeasureType MeasureType
This class is a base for the Optimization methods that optimize a single valued function.
Wrap of the vnl_lbfgs algorithm.
SmartPointer< Self > Pointer
Control indentation during Print() invocation.
SingleValuedNonLinearVnlOptimizer Superclass