18 #ifndef itkQuasiNewtonOptimizerv4_h
19 #define itkQuasiNewtonOptimizerv4_h
24 #include "vnl/algo/vnl_matrix_inverse.h"
25 #include "vnl/algo/vnl_determinant.h"
58 template<
typename TInternalComputationValueType>
91 virtual void StartOptimization(
bool doOnlyInitialization =
false ) ITK_OVERRIDE;
110 itkSetMacro(MaximumNewtonStepSizeInPhysicalUnits, TInternalComputationValueType);
119 virtual
void EstimateNewtonStepOverSubRange( const
IndexRangeType& subrange );
124 SizeValueType m_MaximumIterationsWithoutProgress;
137 SizeValueType m_BestIteration;
140 DerivativeType m_NewtonStep;
143 std::
string m_NewtonStepWarning;
146 TInternalComputationValueType m_MaximumNewtonStepSizeInPhysicalUnits;
152 std::vector<
bool> m_NewtonStepValidFlags;
155 virtual
void EstimateNewtonStep();
161 virtual
bool ComputeHessianAndStepWithBFGS(
IndexValueType location);
170 void CombineGradientNewtonStep();
180 void ModifyCombinedNewtonStep();
186 virtual
void AdvanceOneStep(
void) ITK_OVERRIDE;
191 virtual
void PrintSelf(std::ostream & os,
Indent indent) const ITK_OVERRIDE;
205 #ifndef ITK_MANUAL_INSTANTIATION
206 #include "itkQuasiNewtonOptimizerv4.hxx"
itk::Array2D< TInternalComputationValueType > HessianType
Light weight base class for most itk classes.
QuasiNewtonOptimizerv4Template Self
Multi-threaded processing on a domain by processing sub-domains per thread.
SmartPointer< const Self > ConstPointer
Superclass::ParametersType ParametersType
signed long IndexValueType
Superclass::StopConditionType StopConditionType
unsigned long SizeValueType
SmartPointer< Self > Pointer
GradientDescentOptimizerv4Template< TInternalComputationValueType > Superclass
Superclass::MeasureType MeasureType
Superclass::MeasureType MeasureType
Array2D class representing a 2D array with size defined at construction time.
Superclass::ParametersType ParametersType
Partitions an indexed container.
Superclass::DerivativeType DerivativeType
TInternalComputationValueType InternalComputationValueType
Control indentation during Print() invocation.
Superclass::MeasureType MeasureType
Gradient descent optimizer.
std::vector< HessianType > HessianArrayType
ThreadedIndexedContainerPartitioner::IndexRangeType IndexRangeType
Superclass::IndexRangeType IndexRangeType
Implement a Quasi-Newton optimizer with BFGS Hessian estimation.