18#ifndef itkPowellOptimizer_h
19#define itkPowellOptimizer_h
24#include "ITKOptimizersExport.h"
84 itkSetMacro(Maximize,
bool);
85 itkBooleanMacro(Maximize);
86 itkGetConstReferenceMacro(Maximize,
bool);
90 itkSetMacro(MaximumIteration,
unsigned int);
91 itkGetConstReferenceMacro(MaximumIteration,
unsigned int);
95 itkSetMacro(MaximumLineIteration,
unsigned int);
96 itkGetConstMacro(MaximumLineIteration,
unsigned int);
101 itkSetMacro(StepLength,
double);
102 itkGetConstReferenceMacro(StepLength,
double);
107 itkSetMacro(StepTolerance,
double);
108 itkGetConstReferenceMacro(StepTolerance,
double);
114 itkSetMacro(ValueTolerance,
double);
115 itkGetConstReferenceMacro(ValueTolerance,
double);
128 itkGetConstReferenceMacro(CurrentIteration,
unsigned int);
131 itkGetConstReferenceMacro(CurrentLineIteration,
unsigned int);
146 itkGetConstReferenceMacro(CatchGetValueException,
bool);
147 itkSetMacro(CatchGetValueException,
bool);
149 itkGetConstReferenceMacro(MetricWorstPossibleValue,
double);
150 itkSetMacro(MetricWorstPossibleValue,
double);
162 itkSetMacro(CurrentCost,
double);
186 Swap(
double * a,
double * b)
const;
191 Shift(
double * a,
double * b,
double * c,
double d)
const;
203 LineBracket(
double * x1,
double * x2,
double * x3,
double * f1,
double * f2,
double * f3);
218 double functionValueOfb,
228 double functionValueOfb,
234 itkGetMacro(SpaceDimension,
unsigned int);
245 itkSetMacro(CurrentIteration,
unsigned int);
247 itkGetMacro(Stop,
bool);
248 itkSetMacro(Stop,
bool);
Control indentation during Print() invocation.
virtual void Modified() const
ParametersType m_CurrentPosition
void SetSpaceDimension(unsigned int dim)
std::string GetStopConditionDescription() const override
virtual void LineBracket(double *x1, double *x2, double *x3, double *f1, double *f2, double *f3)
virtual void LineBracket(double *x1, double *x2, double *x3, double *f1, double *f2, double *f3, ParametersType &tempCoord)
double m_MetricWorstPossibleValue
void SetLine(const ParametersType &origin, const vnl_vector< double > &direction)
SingleValuedCostFunction CostFunctionType
MeasureType m_CurrentCost
CostFunctionType::Pointer CostFunctionPointer
void StartOptimization() override
unsigned int m_MaximumLineIteration
std::ostringstream m_StopConditionDescription
unsigned int m_MaximumIteration
PowellOptimizer(const PowellOptimizer &)
SmartPointer< Self > Pointer
SmartPointer< const Self > ConstPointer
virtual void BracketedLineOptimize(double ax, double bx, double cx, double fa, double functionValueOfb, double fc, double *extX, double *extVal)
bool m_CatchGetValueException
double GetLineValue(double x, ParametersType &tempCoord) const
virtual const MeasureType & GetCurrentCost() const
ParametersType m_LineOrigin
double GetLineValue(double x) const
vnl_vector< double > m_LineDirection
unsigned int m_SpaceDimension
SingleValuedNonLinearOptimizer Superclass
SingleValuedNonLinearOptimizer::ParametersType ParametersType
void SetCurrentLinePoint(double x, double fx)
void Swap(double *a, double *b) const
void PrintSelf(std::ostream &os, Indent indent) const override
void Shift(double *a, double *b, double *c, double d) const
MeasureType GetValue() const
unsigned int m_CurrentLineIteration
~PowellOptimizer() override
unsigned int m_CurrentIteration
virtual void BracketedLineOptimize(double ax, double bx, double cx, double fa, double functionValueOfb, double fc, double *extX, double *extVal, ParametersType &tempCoord)
This class is a base for the CostFunctions returning a single value.
SmartPointer< Self > Pointer
CostFunctionType::MeasureType MeasureType
SingleValuedNonLinearOptimizer()
Superclass::ParametersType ParametersType
Implements transparent reference counting.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....