18#ifndef elxConjugateGradient_h
19#define elxConjugateGradient_h
90template <
class TElastix>
118 using Superclass1::CostFunctionType;
119 using Superclass1::CostFunctionPointer;
121 using Superclass1::ParametersType;
122 using Superclass1::DerivativeType;
158 itkGetConstMacro(StartLineSearch,
bool);
205#ifndef ITK_MANUAL_INSTANTIATION
206# include "elxConjugateGradient.hxx"
An optimizer based on the itk::GenericConjugateGradientOptimizer.
typename Superclass2::ITKBaseType ITKBaseType
elxClassNameMacro("ConjugateGradient")
itk::SmartPointer< Self > Pointer
void BeforeEachResolution() override
EventPassThroughPointer m_EventPasser
~ConjugateGradient() override=default
virtual std::string DeterminePhase() const
void AfterEachResolution() override
bool m_StopIfWolfeNotSatisfied
void StartOptimization() override
itk::ReceptorMemberCommand< Self > EventPassThroughType
bool TestConvergence(bool firstLineSearchDone) override
void AfterEachIteration() override
void BeforeRegistration() override
bool m_GenerateLineSearchIterations
virtual std::string GetLineSearchStopCondition() const
void AfterRegistration() override
bool m_WolfeIsStopCondition
void LineSearch(const ParametersType searchDir, double &step, ParametersType &x, MeasureType &f, DerivativeType &g) override
LineOptimizerPointer m_LineOptimizer
double m_SearchDirectionMagnitude
ITK_DISALLOW_COPY_AND_MOVE(ConjugateGradient)
typename EventPassThroughType::Pointer EventPassThroughPointer
void InvokeIterationEvent(const itk::EventObject &event)
itk::SmartPointer< const Self > ConstPointer
This class is the elastix base class for all Optimizers.
typename ElastixType::RegistrationBaseType RegistrationType
itk::Optimizer ITKBaseType
typename ITKBaseType::ParametersType ParametersType
A set of conjugate gradient algorithms.
NonLinearOptimizer::ScalesType ScalesType
ITK version of the MoreThuente line search algorithm.