16 #ifndef __itkGenericConjugateGradientOptimizer_h
17 #define __itkGenericConjugateGradientOptimizer_h
85 itkGetConstMacro(CurrentIteration,
unsigned long);
88 itkGetConstMacro(InLineSearch,
bool);
90 itkGetConstMacro(CurrentStepLength,
double);
118 itkSetMacro(ValueTolerance,
double);
124 itkGetConstMacro(MaxNrOfItWithoutImprovement,
unsigned long);
132 virtual ~GenericConjugateGradientOptimizer(){};
134 void PrintSelf( std::ostream & os, Indent indent )
const;
149 itkSetMacro(InLineSearch,
bool);
262 #endif //#ifndef __itkGenericConjugateGradientOptimizer_h
GenericConjugateGradientOptimizer Self
bool m_UseDefaultMaxNrOfItWithoutImprovement
double ComputeBetaSD(const DerivativeType &previousGradient, const DerivativeType &gradient, const ParametersType &previousSearchDir)
unsigned long m_MaximumNumberOfIterations
bool m_PreviousGradientAndSearchDirValid
Superclass::ParametersType ParametersType
LineSearchOptimizer LineSearchOptimizerType
A set of conjugate gradient algorithms.
virtual void SetBetaDefinition(const BetaDefinitionType &arg)
virtual void StartOptimization(void)
BetaDefinitionMapType m_BetaDefinitionMap
MeasureType m_CurrentValue
StopConditionType m_StopCondition
Superclass::ScaledCostFunctionType ScaledCostFunctionType
SmartPointer< Self > Pointer
double ComputeBetaDY(const DerivativeType &previousGradient, const DerivativeType &gradient, const ParametersType &previousSearchDir)
virtual void AddBetaDefinition(const BetaDefinitionType &name, ComputeBetaFunctionType function)
Superclass::MeasureType MeasureType
Superclass::DerivativeType DerivativeType
double ComputeBetaDYHS(const DerivativeType &previousGradient, const DerivativeType &gradient, const ParametersType &previousSearchDir)
DerivativeType m_CurrentGradient
virtual void StopOptimization(void)
BetaDefinitionType m_BetaDefinition
SmartPointer< Self > Pointer
double ComputeBetaPR(const DerivativeType &previousGradient, const DerivativeType &gradient, const ParametersType &previousSearchDir)
double ComputeBetaHS(const DerivativeType &previousGradient, const DerivativeType &gradient, const ParametersType &previousSearchDir)
Superclass::CostFunctionType CostFunctionType
virtual void SetMaxNrOfItWithoutImprovement(unsigned long arg)
LineSearchOptimizerType::Pointer LineSearchOptimizerPointer
Superclass::CostFunctionType CostFunctionType
virtual void ComputeSearchDirection(const DerivativeType &previousGradient, const DerivativeType &gradient, ParametersType &searchDir)
ScaledSingleValuedCostFunction ScaledCostFunctionType
virtual void ResumeOptimization(void)
NonLinearOptimizer::ScalesType ScalesType
std::string BetaDefinitionType
void operator=(const Self &)
A base class for LineSearch optimizers.
void PrintSelf(std::ostream &os, Indent indent) const
LineSearchOptimizerPointer m_LineSearchOptimizer
Superclass::DerivativeType DerivativeType
virtual bool TestConvergence(bool firstLineSearchDone)
double ComputeBetaFR(const DerivativeType &previousGradient, const DerivativeType &gradient, const ParametersType &previousSearchDir)
Superclass::ParametersType ParametersType
Superclass::ScalesType ScalesType
virtual void LineSearch(const ParametersType searchDir, double &step, ParametersType &x, MeasureType &f, DerivativeType &g)
double m_CurrentStepLength
SmartPointer< const Self > ConstPointer
virtual double ComputeBeta(const DerivativeType &previousGradient, const DerivativeType &gradient, const ParametersType &previousSearchDir)
Superclass::MeasureType MeasureType
ScaledSingleValuedNonLinearOptimizer Superclass
double(Self::* ComputeBetaFunctionType)(const DerivativeType &, const DerivativeType &, const ParametersType &)
unsigned long m_MaxNrOfItWithoutImprovement
std::map< BetaDefinitionType, ComputeBetaFunctionType > BetaDefinitionMapType
unsigned long m_CurrentIteration
GenericConjugateGradientOptimizer()
double m_GradientMagnitudeTolerance