20#ifndef vtkAmoebaMinimizer_h 
   21#define vtkAmoebaMinimizer_h 
   23#include "vtkCommonMathModule.h"  
   26VTK_ABI_NAMESPACE_BEGIN
 
  121  vtkSetMacro(FunctionValue, 
double);
 
  131  vtkSetClampMacro(ContractionRatio, 
double, 0.5, 1.0);
 
  132  vtkGetMacro(ContractionRatio, 
double);
 
  140  vtkSetClampMacro(ExpansionRatio, 
double, 1.0, 2.0);
 
  141  vtkGetMacro(ExpansionRatio, 
double);
 
  148  vtkSetMacro(Tolerance, 
double);
 
  149  vtkGetMacro(Tolerance, 
double);
 
  156  vtkSetMacro(ParameterTolerance, 
double);
 
  157  vtkGetMacro(ParameterTolerance, 
double);
 
  164  vtkSetMacro(MaxIterations, 
int);
 
  165  vtkGetMacro(MaxIterations, 
int);
 
  173  vtkGetMacro(Iterations, 
int);
 
  180  vtkGetMacro(FunctionEvaluations, 
int);
 
  193  void (*Function)(
void*);
 
  194  void (*FunctionArgDelete)(
void*);
 
  215  double** AmoebaVertices;
 
  216  double* AmoebaValues;
 
  219  double AmoebaHighValue;
 
  220  int AmoebaNStepsNoImprovement;
 
  222  void InitializeAmoeba();
 
  223  void GetAmoebaParameterValues();
 
  224  void TerminateAmoeba();
 
  225  double TryAmoeba(
double sum[], 
int high, 
double fac);
 
  227  int CheckParameterTolerance();
 
nonlinear optimization with a simplex
 
double GetParameterScale(const char *name)
Set the scale to use when modifying a parameter, i.e.
 
double GetParameterValue(int i)
Get the value of a parameter at the current stage of the minimization.
 
double GetParameterScale(int i)
Set the scale to use when modifying a parameter, i.e.
 
void SetFunctionArgDelete(void(*f)(void *))
Set a function to call when a void* argument is being discarded.
 
const char * GetParameterName(int i)
For completeness, an unchecked method to get the name for particular parameter (the result will be nu...
 
static vtkAmoebaMinimizer * New()
 
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)
Set the initial value for the specified parameter.
 
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()
Get the function value resulting from the minimization.
 
void SetParameterScale(int i, double scale)
Set the scale to use when modifying a parameter, i.e.
 
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
 
~vtkAmoebaMinimizer() override
 
double ParameterTolerance
 
a simple class to control print indentation
 
abstract base class for most VTK objects