18#ifndef itkQuasiNewtonOptimizerv4_h
19#define itkQuasiNewtonOptimizerv4_h
25#include "vnl/algo/vnl_matrix_inverse.h"
26#include "vnl/algo/vnl_determinant.h"
60template <
typename TInternalComputationValueType>
82 using typename Superclass::ParametersType;
83 using typename Superclass::MeasureType;
84 using typename Superclass::DerivativeType;
85 using typename Superclass::IndexRangeType;
114 itkSetMacro(MaximumNewtonStepSizeInPhysicalUnits, TInternalComputationValueType);
147 std::string m_NewtonStepWarning{};
150 TInternalComputationValueType m_MaximumNewtonStepSizeInPhysicalUnits{};
215#ifndef ITK_MANUAL_INSTANTIATION
216# include "itkQuasiNewtonOptimizerv4.hxx"
Array2D class representing a 2D array.
TInternalComputationValueType InternalComputationValueType
ThreadedIndexedContainerPartitioner::IndexRangeType IndexRangeType
Gradient descent optimizer.
Control indentation during Print() invocation.
Light weight base class for most itk classes.
typename MetricType::DerivativeType DerivativeType
typename MetricType::MeasureType MeasureType
Implement a Quasi-Newton optimizer with BFGS Hessian estimation.
void CombineGradientNewtonStep()
virtual void EstimateNewtonStepOverSubRange(const IndexRangeType &subrange)
void ModifyCombinedNewtonStep()
~QuasiNewtonOptimizerv4Template() override=default
void StartOptimization(bool doOnlyInitialization=false) override
virtual void ResetNewtonStep(IndexValueType loc)
virtual void EstimateNewtonStep()
virtual bool ComputeHessianAndStepWithBFGS(IndexValueType loc)
void PrintSelf(std::ostream &os, Indent indent) const override
void AdvanceOneStep() override
QuasiNewtonOptimizerv4Template()
std::vector< HessianType > HessianArrayType
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
class ITK_FORWARD_EXPORT QuasiNewtonOptimizerv4Template
unsigned long SizeValueType
std::vector< Boolean > BooleanStdVectorType