1 #ifndef SimTK_SIMMATH_OPTIMIZER_REP_H_     2 #define SimTK_SIMMATH_OPTIMIZER_REP_H_    73          convergenceTolerance(
Real(1e-3)),
    74          constraintTolerance(
Real(1e-4)),
    76          limitedMemoryHistory(50),
    81          numericalGradient(false), 
    82          numericalJacobian(false)
    93          convergenceTolerance(
Real(1e-3)),
    94          constraintTolerance(
Real(1e-4)),
    96          limitedMemoryHistory(50),
   101          numericalGradient(false), 
   102          numericalJacobian(false)
   114     void setDiagnosticsLevel( 
const int  level );
   115     void setConvergenceTolerance( 
Real accuracy );
   116     void setConstraintTolerance( 
Real tolerance );
   117     void setMaxIterations( 
const int iter );
   118     void setLimitedMemoryHistory( 
const int history );
   120     bool setAdvancedStrOption( 
const std::string &option, 
const std::string &value );
   121     bool setAdvancedRealOption( 
const std::string &option, 
const Real value );
   122     bool setAdvancedIntOption( 
const std::string &option, 
const int value );
   123     bool setAdvancedBoolOption( 
const std::string &option, 
const bool value );
   125     bool getAdvancedStrOption( 
const std::string &option, std::string &value ) 
const;
   126     bool getAdvancedRealOption( 
const std::string &option, 
Real &value ) 
const;
   127     bool getAdvancedIntOption( 
const std::string &option, 
int &value ) 
const;
   128     bool getAdvancedBoolOption( 
const std::string &option, 
bool &value ) 
const;
   134     void useNumericalGradient(
bool flag, 
Real objEstAccuracy); 
   135     void useNumericalJacobian(
bool flag, 
Real consEstAccuracy);  
   142     {   
return objectiveEstimatedAccuracy; }
   144     {   
return constraintsEstimatedAccuracy; }
   160     static int numericalGradient_static( 
const OptimizerSystem&, 
const Vector & parameters,  
const bool new_parameters,  
Vector &gradient );
   162                                    const Vector& parameters, 
const bool new_parameters, 
Matrix& jacobian );
   170     static int objectiveFuncWrapper ( 
int n, 
const Real* x, 
int new_x, 
Real* 
f, 
void* 
rep);
   171     static int gradientFuncWrapper  ( 
int n, 
const Real* x, 
int new_x, 
Real* gradient, 
void* rep);
   172     static int constraintFuncWrapper( 
int n, 
const Real* x, 
int new_x, 
int m, 
Real* g, 
void* rep);
   173     static int constraintJacobianWrapper( 
int n, 
const Real* x, 
int new_x,
int m, 
int nele_jac,
   174                                           int* iRow, 
int* jCol, 
Real* values, 
void* rep);
   175     static int hessianWrapper(  
int n, 
const Real* x, 
int new_x, 
Real obj_factor,
   176                                 int m, 
Real* lambda, 
int new_lambda,
   177                                 int nele_hess, 
int* iRow, 
int* jCol,
   178                                 Real* values, 
void* rep);
   191     bool numericalGradient; 
   192     bool numericalJacobian; 
   199     std::map<std::string, std::string> advancedStrOptions;
   200     std::map<std::string, Real> advancedRealOptions;
   201     std::map<std::string, int> advancedIntOptions;
   202     std::map<std::string, bool> advancedBoolOptions;
   211     OptimizerRep* clone() 
const;
   218 #endif  // SimTK_SIMMATH_OPTIMIZER_REP_H_ FunctionRep * rep
Definition: Differentiator.h:175
 
Given a function f(y), where f, y or both can be vectors, calculate the derivative (gradient...
Definition: Differentiator.h:77
 
Real getEstimatedAccuracyOfConstraints() const 
Definition: OptimizerRep.h:143
 
Definition: OptimizerRep.h:36
 
virtual int objectiveFunc(const Vector ¶meters, bool new_parameters, Real &f) const 
Objective/cost function which is to be optimized; return 0 when successful. 
Definition: Optimizer.h:98
 
void clearMyHandle()
Definition: OptimizerRep.h:132
 
GradientFunction(int ny=-1, Real acc=-1)
 
Real constraintsEstimatedAccuracy
Definition: OptimizerRep.h:187
 
Real constraintTolerance
Definition: OptimizerRep.h:182
 
API for SimTK Simmath's optimizers. 
Definition: Optimizer.h:355
 
This is the top-level SimTK namespace into which all SimTK names are placed to avoid collision with o...
Definition: Assembler.h:37
 
int f(const Vector &y, Vector &fy) const 
Definition: OptimizerRep.h:56
 
const Optimizer & getMyHandle() const 
Definition: OptimizerRep.h:131
 
const OptimizerSystem * sysp
Definition: OptimizerRep.h:45
 
Definition: OptimizerRep.h:63
 
SimTK_Real Real
This is the default compiled-in floating point type for SimTK, either float or double. 
Definition: SimTKcommon/include/SimTKcommon/internal/common.h:593
 
Real convergenceTolerance
Definition: OptimizerRep.h:181
 
void setMyHandle(Optimizer &cp)
Definition: OptimizerRep.h:130
 
const Differentiator & getJacobianDifferentiator() const 
Definition: OptimizerRep.h:151
 
Real getEstimatedAccuracyOfObjective() const 
Definition: OptimizerRep.h:141
 
SysObjectiveFunc(int ny, const OptimizerSystem *sysPtr)
Definition: OptimizerRep.h:38
 
static bool isAvailable()
Definition: OptimizerRep.h:107
 
int maxIterations
Definition: OptimizerRep.h:183
 
Includes internal headers providing declarations for the basic SimTK Core classes, including Simmatrix. 
 
int diagnosticsLevel
Definition: OptimizerRep.h:180
 
virtual OptimizerRep * clone() const 
Definition: OptimizerRep.h:106
 
Real objectiveEstimatedAccuracy
Definition: OptimizerRep.h:186
 
OptimizerRep(const OptimizerSystem &sys)
Definition: OptimizerRep.h:66
 
int f(const Vector &y, Real &fy) const 
Definition: OptimizerRep.h:42
 
Method
Definition: Differentiator.h:92
 
Definition: OptimizerRep.h:50
 
bool isUsingNumericalGradient() const 
Definition: OptimizerRep.h:138
 
const OptimizerSystem * sysp
Definition: OptimizerRep.h:59
 
SysConstraintFunc(int nf, int ny, const OptimizerSystem *sysPtr)
Definition: OptimizerRep.h:52
 
int limitedMemoryHistory
Definition: OptimizerRep.h:184
 
OptimizerRep()
Definition: OptimizerRep.h:86
 
virtual int constraintFunc(const Vector ¶meters, bool new_parameters, Vector &constraints) const 
Computes the value of the constraints; return 0 when successful. 
Definition: Optimizer.h:111
 
This is the header file that user code should include to pick up the SimTK Simmath numerical differen...
 
const Real SignificantReal
SignificantReal is the smallest value that we consider to be clearly distinct from roundoff error whe...
 
const Differentiator & getGradientDifferentiator() const 
Definition: OptimizerRep.h:146
 
Abstract class which defines an objective/cost function which is optimized by and Optimizer object...
Definition: Optimizer.h:71
 
bool isUsingNumericalJacobian() const 
Definition: OptimizerRep.h:139
 
const OptimizerSystem & getOptimizerSystem() const 
Definition: OptimizerRep.h:111
 
Differentiator::Method getDifferentiatorMethod() const 
Definition: OptimizerRep.h:140
 
Derive a concrete class from this one if you have a scalar function of multiple variables that you wa...
Definition: Differentiator.h:216
 
Definition: Optimizer.h:61
 
OptimizerAlgorithm
The available Optimizer algorithms. 
Definition: Optimizer.h:40
 
#define SimTK_SIMMATH_EXPORT
Definition: SimTKmath/include/simmath/internal/common.h:64
 
Derive a concrete class from this one if you have a set of functions (i.e., a vector-valued function)...
Definition: Differentiator.h:235
 
Definition: OptimizerRep.h:209
 
virtual OptimizerAlgorithm getAlgorithm() const 
Definition: OptimizerRep.h:156
 
Differentiator::Method diffMethod
Definition: OptimizerRep.h:185