18#ifndef elxConjugateGradientFRPR_h
19#define elxConjugateGradientFRPR_h
22#include "itkFRPROptimizer.h"
73template <
class TElastix>
75 :
public itk::FRPROptimizer
98 using Superclass1::CostFunctionType;
99 using Superclass1::CostFunctionPointer;
101 using typename Superclass1::ParametersType;
133 itkGetConstMacro(LineOptimizing,
bool);
134 itkGetConstMacro(LineBracketing,
bool);
137 itkGetConstReferenceMacro(CurrentDerivativeMagnitude,
double);
140 itkGetConstReferenceMacro(CurrentStepLength,
double);
143 itkGetConstReferenceMacro(CurrentSearchDirectionMagnitude,
double);
160 itkSetMacro(LineOptimizing,
bool);
161 itkSetMacro(LineBracketing,
bool);
184 LineBracket(
double * ax,
double * bx,
double * cx,
double * fa,
double * fb,
double * fc)
override;
203 double * extVal)
override;
224#ifndef ITK_MANUAL_INSTANTIATION
225# include "elxConjugateGradientFRPR.hxx"
The ConjugateGradientFRPR class.
itk::FRPROptimizer Superclass1
void BeforeRegistration() override
ITK_DISALLOW_COPY_AND_MOVE(ConjugateGradientFRPR)
void AfterEachResolution() override
virtual void GetValueAndDerivative(ParametersType p, double *val, ParametersType *xi)
void BracketedLineOptimize(double ax, double bx, double cx, double fa, double fb, double fc, double *extX, double *extVal) override
void LineBracket(double *ax, double *bx, double *cx, double *fa, double *fb, double *fc) override
void AfterEachIteration() override
typename Superclass2::ITKBaseType ITKBaseType
double m_CurrentStepLength
const char * DeterminePhase() const
double m_CurrentDerivativeMagnitude
elxClassNameMacro("ConjugateGradientFRPR")
virtual void LineOptimize(ParametersType *p, ParametersType xi, double *val)
double m_CurrentSearchDirectionMagnitude
void BeforeEachResolution() override
~ConjugateGradientFRPR() override=default
void AfterRegistration() override
itk::SmartPointer< Self > Pointer
void SetInitialPosition(const ParametersType ¶m) override
SingleValuedNonLinearOptimizer::DerivativeType DerivativeType
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