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 );
   124     bool setAdvancedVectorOption( 
const std::string &option, 
const Vector value );
   126     bool getAdvancedStrOption( 
const std::string &option, std::string &value ) 
const;
   127     bool getAdvancedRealOption( 
const std::string &option, 
Real &value ) 
const;
   128     bool getAdvancedIntOption( 
const std::string &option, 
int &value ) 
const;
   129     bool getAdvancedBoolOption( 
const std::string &option, 
bool &value ) 
const;
   130     bool getAdvancedVectorOption( 
const std::string &option, 
Vector &value ) 
const;
   136     void useNumericalGradient(
bool flag, 
Real objEstAccuracy); 
   137     void useNumericalJacobian(
bool flag, 
Real consEstAccuracy);  
   144     {   
return objectiveEstimatedAccuracy; }
   146     {   
return constraintsEstimatedAccuracy; }
   162     static int numericalGradient_static( 
const OptimizerSystem&, 
const Vector & parameters,  
const bool new_parameters,  
Vector &gradient );
   164                                    const Vector& parameters, 
const bool new_parameters, 
Matrix& jacobian );
   172     static int objectiveFuncWrapper ( 
int n, 
const Real* x, 
int new_x, 
Real* 
f, 
void* 
rep);
   173     static int gradientFuncWrapper  ( 
int n, 
const Real* x, 
int new_x, 
Real* gradient, 
void* rep);
   174     static int constraintFuncWrapper( 
int n, 
const Real* x, 
int new_x, 
int m, 
Real* g, 
void* rep);
   175     static int constraintJacobianWrapper( 
int n, 
const Real* x, 
int new_x,
int m, 
int nele_jac,
   176                                           int* iRow, 
int* jCol, 
Real* values, 
void* rep);
   177     static int hessianWrapper(  
int n, 
const Real* x, 
int new_x, 
Real obj_factor,
   178                                 int m, 
Real* lambda, 
int new_lambda,
   179                                 int nele_hess, 
int* iRow, 
int* jCol,
   180                                 Real* values, 
void* rep);
   193     bool numericalGradient; 
   194     bool numericalJacobian; 
   201     std::map<std::string, std::string> advancedStrOptions;
   202     std::map<std::string, Real> advancedRealOptions;
   203     std::map<std::string, int> advancedIntOptions;
   204     std::map<std::string, bool> advancedBoolOptions;
   205     std::map<std::string, Vector> advancedVectorOptions;
   214     OptimizerRep* clone() 
const override;
   221 #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
 
virtual OptimizerAlgorithm getAlgorithm() const
Definition: OptimizerRep.h:158
 
const Differentiator & getGradientDifferentiator() const
Definition: OptimizerRep.h:148
 
Definition: OptimizerRep.h:36
 
int f(const Vector &y, Real &fy) const override
Definition: OptimizerRep.h:42
 
void clearMyHandle()
Definition: OptimizerRep.h:134
 
int f(const Vector &y, Vector &fy) const override
Definition: OptimizerRep.h:56
 
GradientFunction(int ny=-1, Real acc=-1)
 
Real constraintsEstimatedAccuracy
Definition: OptimizerRep.h:189
 
Real constraintTolerance
Definition: OptimizerRep.h:184
 
API for SimTK Simmath's optimizers. 
Definition: Optimizer.h:421
 
This is the top-level SimTK namespace into which all SimTK names are placed to avoid collision with o...
Definition: Assembler.h:37
 
const OptimizerSystem * sysp
Definition: OptimizerRep.h:45
 
Definition: OptimizerRep.h:63
 
bool isUsingNumericalGradient() const
Definition: OptimizerRep.h:140
 
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:606
 
virtual OptimizerRep * clone() const
Definition: OptimizerRep.h:106
 
Real convergenceTolerance
Definition: OptimizerRep.h:183
 
void setMyHandle(Optimizer &cp)
Definition: OptimizerRep.h:132
 
SysObjectiveFunc(int ny, const OptimizerSystem *sysPtr)
Definition: OptimizerRep.h:38
 
static bool isAvailable()
Definition: OptimizerRep.h:107
 
int maxIterations
Definition: OptimizerRep.h:185
 
Includes internal headers providing declarations for the basic SimTK Core classes, including Simmatrix. 
 
int diagnosticsLevel
Definition: OptimizerRep.h:182
 
Real objectiveEstimatedAccuracy
Definition: OptimizerRep.h:188
 
OptimizerRep(const OptimizerSystem &sys)
Definition: OptimizerRep.h:66
 
const Optimizer & getMyHandle() const
Definition: OptimizerRep.h:133
 
Method
Definition: Differentiator.h:92
 
Definition: OptimizerRep.h:50
 
Real getEstimatedAccuracyOfObjective() const
Definition: OptimizerRep.h:143
 
const OptimizerSystem * sysp
Definition: OptimizerRep.h:59
 
SysConstraintFunc(int nf, int ny, const OptimizerSystem *sysPtr)
Definition: OptimizerRep.h:52
 
int limitedMemoryHistory
Definition: OptimizerRep.h:186
 
OptimizerRep()
Definition: OptimizerRep.h:86
 
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
 
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...
 
Abstract class which defines an objective/cost function which is optimized by and Optimizer object...
Definition: Optimizer.h:71
 
const OptimizerSystem & getOptimizerSystem() const
Definition: OptimizerRep.h:111
 
Real getEstimatedAccuracyOfConstraints() const
Definition: OptimizerRep.h:145
 
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
 
Derive a concrete class from this one if you have a scalar function of multiple variables that you wa...
Definition: Differentiator.h:208
 
const Differentiator & getJacobianDifferentiator() const
Definition: OptimizerRep.h:153
 
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:227
 
Definition: OptimizerRep.h:212
 
Differentiator::Method getDifferentiatorMethod() const
Definition: OptimizerRep.h:142
 
bool isUsingNumericalJacobian() const
Definition: OptimizerRep.h:141
 
Differentiator::Method diffMethod
Definition: OptimizerRep.h:187