18 #ifndef itkOnePlusOneEvolutionaryOptimizerv4_h
19 #define itkOnePlusOneEvolutionaryOptimizerv4_h
69 template <
typename TInternalComputationValueType>
94 using typename Superclass::MeasureType;
97 using typename Superclass::ParametersType;
100 using typename Superclass::ScalesType;
103 itkSetMacro(MaximumIteration,
unsigned int);
104 itkGetConstReferenceMacro(MaximumIteration,
unsigned int);
108 itkSetMacro(GrowthFactor,
double);
109 itkGetConstReferenceMacro(GrowthFactor,
double);
113 itkSetMacro(ShrinkFactor,
double);
114 itkGetConstReferenceMacro(ShrinkFactor,
double);
118 itkSetMacro(InitialRadius,
double);
119 itkGetConstReferenceMacro(InitialRadius,
double);
124 itkSetMacro(Epsilon,
double);
125 itkGetConstReferenceMacro(Epsilon,
double);
129 itkGetConstReferenceMacro(FrobeniusNorm,
double);
141 Initialize(
double initialRadius,
double grow = -1,
double shrink = -1);
144 itkGetConstReferenceMacro(CurrentCost,
MeasureType);
146 GetValue()
const override;
150 itkGetConstReferenceMacro(Initialized,
bool);
156 StartOptimization(
bool doOnlyInitialization =
false)
override;
167 itkGetConstReferenceMacro(CatchGetValueException,
bool);
168 itkSetMacro(CatchGetValueException,
bool);
169 itkBooleanMacro(CatchGetValueException);
171 itkGetConstReferenceMacro(MetricWorstPossibleValue,
double);
172 itkSetMacro(MetricWorstPossibleValue,
double);
175 GetStopConditionDescription()
const override;
182 PrintSelf(std::ostream & os,
Indent indent)
const override;
189 unsigned int m_MaximumIteration{};
191 bool m_CatchGetValueException{};
192 double m_MetricWorstPossibleValue{};
199 double m_InitialRadius{};
202 double m_GrowthFactor{};
205 double m_ShrinkFactor{};
208 bool m_Initialized{};
220 std::ostringstream m_StopConditionDescription{};
224 double m_FrobeniusNorm{};
228 #ifndef ITK_MANUAL_INSTANTIATION
229 # include "itkOnePlusOneEvolutionaryOptimizerv4.hxx"