32 #ifndef vtkAmoebaMinimizer_h
33 #define vtkAmoebaMinimizer_h
35 #include "vtkCommonMathModule.h"
142 vtkSetClampMacro(ContractionRatio,
double,0.5,1.0);
143 vtkGetMacro(ContractionRatio,
double);
151 vtkSetClampMacro(ExpansionRatio,
double,1.0,2.0);
152 vtkGetMacro(ExpansionRatio,
double);
160 vtkGetMacro(Tolerance,
double);
168 vtkGetMacro(ParameterTolerance,
double);
176 vtkGetMacro(MaxIterations,
int);
184 vtkGetMacro(Iterations,
int);
191 vtkGetMacro(FunctionEvaluations,
int);
204 void (*Function)(
void *);
205 void (*FunctionArgDelete)(
void *);
208 int NumberOfParameters;
209 char **ParameterNames;
210 double *ParameterValues;
211 double *ParameterScales;
212 double FunctionValue;
214 double ContractionRatio;
215 double ExpansionRatio;
218 double ParameterTolerance;
221 int FunctionEvaluations;
226 double **AmoebaVertices;
227 double *AmoebaValues;
230 double AmoebaHighValue;
231 int AmoebaNStepsNoImprovement;
233 void InitializeAmoeba();
234 void GetAmoebaParameterValues();
235 void TerminateAmoeba();
236 double TryAmoeba(
double sum[],
int high,
double fac);
238 int CheckParameterTolerance();
nonlinear optimization with a simplex
double GetParameterScale(const char *name)
double GetParameterValue(int i)
double GetParameterScale(int i)
void SetFunctionArgDelete(void(*f)(void *))
Set a function to call when a void* argument is being discarded.
void SetParameterScale(const char *name, double scale)
Set the scale to use when modifying a parameter, i.e.
virtual void Minimize()
Iterate until the minimum is found to within the specified tolerance, or until the MaxIterations has ...
virtual int Iterate()
Perform one iteration of minimization.
void SetParameterValue(int i, double value)
void SetParameterValue(const char *name, double value)
Set the initial value for the specified parameter.
int GetNumberOfParameters()
Get the number of parameters that have been set.
void EvaluateFunction()
Evaluate the function.
void Initialize()
Initialize the minimizer.
double GetParameterValue(const char *name)
Get the value of a parameter at the current stage of the minimization.
void SetFunction(void(*f)(void *), void *arg)
Specify the function to be minimized.
double GetFunctionValue()
const char * GetParameterName(int i)
For completeness, an unchecked method to get the name for particular parameter (the result will be NU...
void SetParameterScale(int i, double scale)
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
~vtkAmoebaMinimizer() override
static vtkAmoebaMinimizer * New()
a simple class to control print indentation
abstract base class for most VTK objects
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.