19#ifndef __itkMoreThuenteLineSearchOptimizer_h
20#define __itkMoreThuenteLineSearchOptimizer_h
124 itkGetConstMacro( CurrentIteration,
unsigned long );
126 itkGetConstMacro( SufficientDecreaseConditionSatisfied,
bool );
127 itkGetConstMacro( CurvatureConditionSatisfied,
bool );
132 1, NumericTraits< unsigned long >::max() );
143 itkSetClampMacro( ValueTolerance,
double, 0.0, NumericTraits< double >::max() );
144 itkGetConstMacro( ValueTolerance,
double );
155 itkSetClampMacro( GradientTolerance,
double, 0.0, NumericTraits< double >::max() );
156 itkGetConstMacro( GradientTolerance,
double );
166 itkSetClampMacro( IntervalTolerance,
double, 0.0, NumericTraits< double >::max() );
167 itkGetConstMacro( IntervalTolerance,
double );
174 void PrintSelf( std::ostream & os, Indent indent )
const override;
220 double & stx,
double & fx,
double & dx,
221 double & sty,
double & fy,
double & dy,
222 double & stp,
const double & fp,
const double & dp,
224 const double & stpmin,
const double & stpmax )
const;
A base class for LineSearch optimizers.
Superclass::ParametersType ParametersType
Superclass::MeasureType MeasureType
Superclass::CostFunctionType CostFunctionType
Superclass::DerivativeType DerivativeType
ITK version of the MoreThuente line search algorithm.
double m_GradientTolerance
virtual int CheckSettings(void)
void GetCurrentValueAndDerivative(MeasureType &value, DerivativeType &derivative) const override
void SetInitialDerivative(const DerivativeType &derivative) override
Superclass::MeasureType MeasureType
~MoreThuenteLineSearchOptimizer() override
void StartOptimization(void) override
unsigned long m_MaximumNumberOfIterations
bool m_InitialValueProvided
bool m_SufficientDecreaseConditionSatisfied
unsigned long m_CurrentIteration
Superclass::CostFunctionType CostFunctionType
LineSearchOptimizer Superclass
virtual void PrepareForUnusualTermination(void)
virtual void TestConvergence(bool &stop)
void operator=(const Self &)
Superclass::DerivativeType DerivativeType
virtual void ComputeNewStepAndInterval(void)
MoreThuenteLineSearchOptimizer Self
virtual double GetCurrentDirectionalDerivative(void) const
virtual int SafeGuardedStep(double &stx, double &fx, double &dx, double &sty, double &fy, double &dy, double &stp, const double &fp, const double &dp, bool &brackt, const double &stpmin, const double &stpmax) const
virtual void UpdateIntervalMinimumAndMaximum(void)
virtual void ComputeCurrentValueAndDerivative(void)
bool m_InitialDerivativeProvided
void BoundStep(double &step) const
void PrintSelf(std::ostream &os, Indent indent) const override
SmartPointer< Self > Pointer
virtual void ForceSufficientDecreaseInIntervalWidth(void)
StopConditionType m_StopCondition
@ MaximumNumberOfIterations
@ StrongWolfeConditionsSatisfied
Superclass::ParametersType ParametersType
bool m_SafeGuardedStepFailed
virtual void InitializeLineSearch(void)
virtual void GetInitialValueAndDerivative(void)
MeasureType GetCurrentValue(void) const override
void GetCurrentDerivative(DerivativeType &derivative) const override
double m_IntervalTolerance
MoreThuenteLineSearchOptimizer(const Self &)
bool m_CurvatureConditionSatisfied
SmartPointer< const Self > ConstPointer
MoreThuenteLineSearchOptimizer()
void SetInitialValue(MeasureType value) override
virtual void StopOptimization(void)