29 #ifndef vtkAmoebaMinimizer_h
30 #define vtkAmoebaMinimizer_h
32 #include "vtkCommonMathModule.h"
51 void SetFunction(
void (*f)(
void *),
void *arg);
56 void SetFunctionArgDelete(
void (*f)(
void *));
68 void SetParameterValue(
const char *
name,
double value);
69 void SetParameterValue(
int i,
double value);
79 void SetParameterScale(
const char *
name,
double scale);
80 double GetParameterScale(
const char *
name);
81 void SetParameterScale(
int i,
double scale);
92 double GetParameterValue(
const char *
name);
117 virtual void Minimize();
123 virtual int Iterate();
139 vtkSetClampMacro(ContractionRatio,
double,0.5,1.0);
140 vtkGetMacro(ContractionRatio,
double);
148 vtkSetClampMacro(ExpansionRatio,
double,1.0,2.0);
149 vtkGetMacro(ExpansionRatio,
double);
157 vtkGetMacro(Tolerance,
double);
165 vtkGetMacro(ParameterTolerance,
double);
173 vtkGetMacro(MaxIterations,
int);
181 vtkGetMacro(Iterations,
int);
188 vtkGetMacro(FunctionEvaluations,
int);
195 void EvaluateFunction();
201 void (*Function)(
void *);
202 void (*FunctionArgDelete)(
void *);
205 int NumberOfParameters;
206 char **ParameterNames;
207 double *ParameterValues;
208 double *ParameterScales;
209 double FunctionValue;
211 double ContractionRatio;
212 double ExpansionRatio;
215 double ParameterTolerance;
218 int FunctionEvaluations;
223 double **AmoebaVertices;
224 double *AmoebaValues;
227 double AmoebaHighValue;
228 int AmoebaNStepsNoImprovement;
230 void InitializeAmoeba();
231 void GetAmoebaParameterValues();
232 void TerminateAmoeba();
233 double TryAmoeba(
double sum[],
int high,
double fac);
235 int CheckParameterTolerance();
const char * GetParameterName(int i)
For completeness, an unchecked method to get the name for particular parameter (the result will be NU...
nonlinear optimization with a simplex
abstract base class for most VTK objects
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
double GetParameterValue(int i)
Get the value of a parameter at the current stage of the minimization.
double GetFunctionValue()
Get the function value resulting from the minimization.
double GetParameterScale(int i)
Set the scale to use when modifying a parameter, i.e.
a simple class to control print indentation
int GetNumberOfParameters()
Get the number of parameters that have been set.
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...