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);
225 using itk::PowellOptimizer::LineBracket;
226 using itk::PowellOptimizer::BracketedLineOptimize;
227 using itk::FRPROptimizer::LineOptimize;
232#ifndef ITK_MANUAL_INSTANTIATION
233# include "elxConjugateGradientFRPR.hxx"
The ConjugateGradientFRPR class.
void GetValueAndDerivative(ParametersType &p, double *val, ParametersType *xi) override
itk::FRPROptimizer Superclass1
void BeforeRegistration() override
ITK_DISALLOW_COPY_AND_MOVE(ConjugateGradientFRPR)
void AfterEachResolution() override
void LineBracket(double *ax, double *bx, double *cx, double *fa, double *fb, double *fc, ParametersType &tempCoord) override
void AfterEachIteration() override
void LineOptimize(ParametersType *p, ParametersType &xi, double *val, ParametersType &tempCoord) override
typename Superclass2::ITKBaseType ITKBaseType
double m_CurrentStepLength
const char * DeterminePhase() const
double m_CurrentDerivativeMagnitude
elxClassNameMacro("ConjugateGradientFRPR")
void BracketedLineOptimize(double ax, double bx, double cx, double fa, double fb, double fc, double *extX, double *extVal, ParametersType &tempCoord) override
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