31 #ifndef vtkAmoebaMinimizer_h
32 #define vtkAmoebaMinimizer_h
50 void SetFunction(
void (*f)(
void *),
void *arg);
53 void SetFunctionArgDelete(
void (*f)(
void *));
62 void SetParameterValue(
const char *
name,
double value);
63 void SetParameterValue(
int i,
double value);
71 void SetParameterScale(
const char *
name,
double scale);
72 double GetParameterScale(
const char *
name);
73 void SetParameterScale(
int i,
double scale);
82 double GetParameterValue(
const char *
name);
99 virtual void Minimize();
103 virtual int Iterate();
107 vtkSetMacro(FunctionValue,
double);
115 vtkSetClampMacro(ContractionRatio,
double,0.5,1.0);
116 vtkGetMacro(ContractionRatio,
double);
122 vtkSetClampMacro(ExpansionRatio,
double,1.0,2.0);
123 vtkGetMacro(ExpansionRatio,
double);
128 vtkSetMacro(Tolerance,
double);
129 vtkGetMacro(Tolerance,
double);
134 vtkSetMacro(ParameterTolerance,
double);
135 vtkGetMacro(ParameterTolerance,
double);
140 vtkSetMacro(MaxIterations,
int);
141 vtkGetMacro(MaxIterations,
int);
147 vtkGetMacro(Iterations,
int);
152 vtkGetMacro(FunctionEvaluations,
int);
157 void EvaluateFunction();
164 void (*Function)(
void *);
165 void (*FunctionArgDelete)(
void *);
187 double **AmoebaVertices;
188 double *AmoebaValues;
191 double AmoebaHighValue;
192 int AmoebaNStepsNoImprovement;
194 void InitializeAmoeba();
195 void GetAmoebaParameterValues();
196 void TerminateAmoeba();
197 double TryAmoeba(
double sum[],
int high,
double fac);
199 int CheckParameterTolerance();
const char * GetParameterName(int i)
nonlinear optimization with a simplex
abstract base class for most VTK objects
double GetParameterValue(int i)
double GetFunctionValue()
virtual void PrintSelf(ostream &os, vtkIndent indent)
double GetParameterScale(int i)
a simple class to control print indentation
int GetNumberOfParameters()
double ParameterTolerance
#define VTKCOMMONMATH_EXPORT