19#ifndef itkLineSearchOptimizer_h
20#define itkLineSearchOptimizer_h
22#include "itkSingleValuedNonLinearOptimizer.h"
24#include "itkIntTypes.h"
50 using Superclass::MeasureType;
51 using Superclass::ParametersType;
52 using Superclass::DerivativeType;
53 using Superclass::CostFunctionType;
64 itkGetConstReferenceMacro(LineSearchDirection, ParametersType);
106 itkGetConstMacro(CurrentStepLength,
double);
117 itkSetMacro(MinimumStepLength,
double);
118 itkGetConstMacro(MinimumStepLength,
double);
119 itkSetMacro(MaximumStepLength,
double);
120 itkGetConstMacro(MaximumStepLength,
double);
121 itkSetMacro(InitialStepLengthEstimate,
double);
122 itkGetConstMacro(InitialStepLengthEstimate,
double);
128 PrintSelf(std::ostream & os, Indent indent)
const override;
A base class for LineSearch optimizers.
virtual void GetCurrentDerivative(DerivativeType &derivative) const =0
void PrintSelf(std::ostream &os, Indent indent) const override
double m_MaximumStepLength
virtual void SetCurrentStepLength(double step)
virtual MeasureType GetCurrentValue() const =0
double DirectionalDerivative(const DerivativeType &derivative) const
ParametersType m_LineSearchDirection
virtual void SetLineSearchDirection(const ParametersType &arg)
virtual void SetInitialDerivative(const DerivativeType &)
double m_MinimumStepLength
virtual void SetInitialValue(MeasureType)
double m_InitialStepLengthEstimate
~LineSearchOptimizer() override=default
ITK_DISALLOW_COPY_AND_MOVE(LineSearchOptimizer)
double m_CurrentStepLength
SmartPointer< const Self > ConstPointer
virtual void GetCurrentValueAndDerivative(MeasureType &value, DerivativeType &derivative) const =0