18#ifndef itkComputePreconditionerUsingDisplacementDistribution_h
19#define itkComputePreconditionerUsingDisplacementDistribution_h
39template <
class TFixedImage,
class TTransform>
59 using typename Superclass::FixedImageType;
60 using typename Superclass::FixedImagePixelType;
61 using typename Superclass::TransformType;
62 using typename Superclass::TransformPointer;
63 using typename Superclass::FixedImageRegionType;
64 using typename Superclass::ParametersType;
65 using typename Superclass::DerivativeType;
68 using typename Superclass::FixedImageMaskType;
69 using typename Superclass::FixedImageMaskPointer;
70 using typename Superclass::FixedImageMaskConstPointer;
71 using typename Superclass::NonZeroJacobianIndicesType;
77 itkSetClampMacro(RegularizationKappa,
double, 0.0, 1.0);
78 itkGetConstReferenceMacro(RegularizationKappa,
double);
81 itkSetMacro(MaximumStepLength,
double);
82 itkGetConstReferenceMacro(MaximumStepLength,
double);
85 itkSetClampMacro(ConditionNumber,
double, 0.0, 10.0);
86 itkGetConstReferenceMacro(ConditionNumber,
double);
92 Compute(
const ParametersType & mu,
double & jacg,
double & maxJJ, std::string method)
override;
104 ComputeForBSplineOnly(
const ParametersType & mu,
const double delta,
double & maxJJ, ParametersType & preconditioner);
110 Compute(
const ParametersType & mu,
double & maxJJ, ParametersType & preconditioner);
123 using typename Superclass::FixedImageIndexType;
124 using typename Superclass::FixedImagePointType;
125 using typename Superclass::JacobianType;
126 using typename Superclass::JacobianValueType;
127 using typename Superclass::ImageSamplerBaseType;
128 using typename Superclass::ImageSamplerBasePointer;
129 using typename Superclass::ImageFullSamplerType;
130 using typename Superclass::ImageFullSamplerPointer;
131 using typename Superclass::ImageRandomSamplerBaseType;
132 using typename Superclass::ImageRandomSamplerBasePointer;
133 using typename Superclass::ImageGridSamplerType;
134 using typename Superclass::ImageGridSamplerPointer;
135 using typename Superclass::ImageSampleContainerType;
136 using typename Superclass::ImageSampleContainerPointer;
137 using typename Superclass::TransformJacobianType;
138 using typename Superclass::CoordinateRepresentationType;
139 using typename Superclass::NumberOfParametersType;
148#ifndef ITK_MANUAL_INSTANTIATION
149# include "itkComputePreconditionerUsingDisplacementDistribution.hxx"
This is a helper class for the automatic parameter estimation of the ASGD optimizer.
SmartPointer< const Self > ConstPointer
This is a helper class for the automatic estimation of a preconditioner for the FPSGD optimizer....
ITK_DISALLOW_COPY_AND_MOVE(ComputePreconditionerUsingDisplacementDistribution)
double m_RegularizationKappa
void Compute(const ParametersType &mu, double &jacg, double &maxJJ, std::string method) override
ComputePreconditionerUsingDisplacementDistribution()
~ComputePreconditionerUsingDisplacementDistribution() override=default
virtual void ComputeJacobiTypePreconditioner(const ParametersType &mu, double &maxJJ, ParametersType &preconditioner)
itkStaticConstMacro(FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
virtual void Compute(const ParametersType &mu, double &maxJJ, ParametersType &preconditioner)
virtual void ComputeDistributionTermsUsingSearchDir(const ParametersType &mu, double &jacg, double &maxJJ, std::string methods)
void ComputeForBSplineOnly(const ParametersType &mu, const double delta, double &maxJJ, ParametersType &preconditioner)
virtual void PreconditionerInterpolation(ParametersType &preconditioner)
double m_MaximumStepLength
NonLinearOptimizer::ScalesType ScalesType