15 #ifndef __itkGenericConjugateGradientOptimizer_h
16 #define __itkGenericConjugateGradientOptimizer_h
63 )(
const DerivativeType &,
64 const DerivativeType &,
65 const ParametersType & );
87 itkGetConstMacro( CurrentIteration,
unsigned long );
88 itkGetConstMacro( CurrentValue, MeasureType );
89 itkGetConstReferenceMacro( CurrentGradient, DerivativeType );
90 itkGetConstMacro( InLineSearch,
bool );
92 itkGetConstMacro( CurrentStepLength,
double );
120 itkSetMacro( ValueTolerance,
double );
127 itkGetConstMacro( MaxNrOfItWithoutImprovement,
unsigned long );
132 itkGetConstReferenceMacro( BetaDefinition, BetaDefinitionType );
137 virtual ~GenericConjugateGradientOptimizer(){}
139 void PrintSelf( std::ostream & os, Indent indent )
const;
154 itkSetMacro( InLineSearch,
bool );
175 const BetaDefinitionType & name,
189 const DerivativeType & previousGradient,
190 const DerivativeType & gradient,
191 ParametersType & searchDir );
198 const ParametersType searchDir,
202 DerivativeType & g );
212 const DerivativeType & previousGradient,
213 const DerivativeType & gradient,
214 const ParametersType & previousSearchDir );
220 const DerivativeType & previousGradient,
221 const DerivativeType & gradient,
222 const ParametersType & previousSearchDir );
226 const DerivativeType & previousGradient,
227 const DerivativeType & gradient,
228 const ParametersType & previousSearchDir );
232 const DerivativeType & previousGradient,
233 const DerivativeType & gradient,
234 const ParametersType & previousSearchDir );
238 const DerivativeType & previousGradient,
239 const DerivativeType & gradient,
240 const ParametersType & previousSearchDir );
244 const DerivativeType & previousGradient,
245 const DerivativeType & gradient,
246 const ParametersType & previousSearchDir );
250 const DerivativeType & previousGradient,
251 const DerivativeType & gradient,
252 const ParametersType & previousSearchDir );
270 #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
SmartPointer< Self > Pointer
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
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
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