18#ifndef elxQuasiNewtonLBFGS_h
19#define elxQuasiNewtonLBFGS_h
87template <
typename TElastix>
115 using Superclass1::CostFunctionType;
116 using Superclass1::CostFunctionPointer;
118 using Superclass1::ParametersType;
119 using Superclass1::DerivativeType;
155 itkGetConstMacro(StartLineSearch,
bool);
202#ifndef ITK_MANUAL_INSTANTIATION
203# include "elxQuasiNewtonLBFGS.hxx"
typename ElastixType::RegistrationBaseType RegistrationType
itk::Optimizer ITKBaseType
typename ITKBaseType::ParametersType ParametersType
bool TestConvergence(bool firstLineSearchDone) override
itk::SmartPointer< const Self > ConstPointer
OptimizerBase< TElastix > Superclass2
virtual std::string GetLineSearchStopCondition() const
bool m_GenerateLineSearchIterations
void StartOptimization() override
QuasiNewtonLBFGSOptimizer Superclass1
EventPassThroughPointer m_EventPasser
void BeforeRegistration() override
~QuasiNewtonLBFGS() override=default
void AfterEachIteration() override
void AfterRegistration() override
void LineSearch(const ParametersType searchDir, double &step, ParametersType &x, MeasureType &f, DerivativeType &g) override
LineOptimizerPointer m_LineOptimizer
itk::SmartPointer< Self > Pointer
itkOverrideGetNameOfClassMacro(QuasiNewtonLBFGS)
ITK_DISALLOW_COPY_AND_MOVE(QuasiNewtonLBFGS)
typename EventPassThroughType::Pointer EventPassThroughPointer
bool m_WolfeIsStopCondition
bool m_StopIfWolfeNotSatisfied
void InvokeIterationEvent(const itk::EventObject &event)
void AfterEachResolution() override
virtual std::string DeterminePhase() const
typename Superclass2::ITKBaseType ITKBaseType
void BeforeEachResolution() override
elxClassNameMacro("QuasiNewtonLBFGS")
itk::ReceptorMemberCommand< Self > EventPassThroughType
double m_SearchDirectionMagnitude
LineOptimizerType::Pointer LineOptimizerPointer
itk::MoreThuenteLineSearchOptimizer LineOptimizerType
ITK version of the MoreThuente line search algorithm.
SmartPointer< Self > Pointer
ITK version of the lbfgs algorithm ...
QuasiNewtonLBFGSOptimizer()
NonLinearOptimizer::ScalesType ScalesType