19 #ifndef __itkGenericConjugateGradientOptimizer_h 20 #define __itkGenericConjugateGradientOptimizer_h 67 )(
const DerivativeType &,
68 const DerivativeType &,
69 const ParametersType & );
91 itkGetConstMacro( CurrentIteration,
unsigned long );
92 itkGetConstMacro( CurrentValue, MeasureType );
93 itkGetConstReferenceMacro( CurrentGradient, DerivativeType );
94 itkGetConstMacro( InLineSearch,
bool );
95 itkGetConstReferenceMacro( StopCondition, StopConditionType );
96 itkGetConstMacro( CurrentStepLength,
double );
124 itkSetMacro( ValueTolerance,
double );
131 itkGetConstMacro( MaxNrOfItWithoutImprovement,
unsigned long );
136 itkGetConstReferenceMacro( BetaDefinition, BetaDefinitionType );
141 virtual ~GenericConjugateGradientOptimizer(){}
143 void PrintSelf( std::ostream & os, Indent indent )
const;
158 itkSetMacro( InLineSearch,
bool );
179 const BetaDefinitionType & name,
193 const DerivativeType & previousGradient,
194 const DerivativeType & gradient,
195 ParametersType & searchDir );
202 const ParametersType searchDir,
206 DerivativeType & g );
216 const DerivativeType & previousGradient,
217 const DerivativeType & gradient,
218 const ParametersType & previousSearchDir );
224 const DerivativeType & previousGradient,
225 const DerivativeType & gradient,
226 const ParametersType & previousSearchDir );
230 const DerivativeType & previousGradient,
231 const DerivativeType & gradient,
232 const ParametersType & previousSearchDir );
236 const DerivativeType & previousGradient,
237 const DerivativeType & gradient,
238 const ParametersType & previousSearchDir );
242 const DerivativeType & previousGradient,
243 const DerivativeType & gradient,
244 const ParametersType & previousSearchDir );
248 const DerivativeType & previousGradient,
249 const DerivativeType & gradient,
250 const ParametersType & previousSearchDir );
254 const DerivativeType & previousGradient,
255 const DerivativeType & gradient,
256 const ParametersType & previousSearchDir );
274 #endif //#ifndef __itkGenericConjugateGradientOptimizer_h GenericConjugateGradientOptimizer Self
bool m_UseDefaultMaxNrOfItWithoutImprovement
double ComputeBetaSD(const DerivativeType &previousGradient, const DerivativeType &gradient, const ParametersType &previousSearchDir)
SmartPointer< Self > Pointer
unsigned long m_MaximumNumberOfIterations
SmartPointer< const Self > ConstPointer
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
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
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
double(Self::* ComputeBetaFunctionType)(const DerivativeType &, const DerivativeType &, const ParametersType &)
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
virtual double ComputeBeta(const DerivativeType &previousGradient, const DerivativeType &gradient, const ParametersType &previousSearchDir)
Superclass::MeasureType MeasureType
ScaledSingleValuedNonLinearOptimizer Superclass
unsigned long m_MaxNrOfItWithoutImprovement
std::map< BetaDefinitionType, ComputeBetaFunctionType > BetaDefinitionMapType
unsigned long m_CurrentIteration
GenericConjugateGradientOptimizer()
double m_GradientMagnitudeTolerance