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)
 
  144     {   
return objectiveEstimatedAccuracy; }
 
  146     {   
return constraintsEstimatedAccuracy; }
 
  164                                    const Vector& parameters, 
const bool new_parameters, 
Matrix& jacobian );
 
  176                                           int* iRow, 
int* jCol, 
Real* values, 
void* rep);
 
  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;
 
This is the header file that user code should include to pick up the SimTK Simmath numerical differen...
 
Includes internal headers providing declarations for the basic SimTK Core classes,...
 
#define SimTK_SIMMATH_EXPORT
Definition: SimTKmath/include/simmath/internal/common.h:64
 
Definition: OptimizerRep.h:212
 
Derive a concrete class from this one if you have a scalar function of multiple variables that you wa...
Definition: Differentiator.h:208
 
GradientFunction(int ny=-1, Real acc=-1)
 
Derive a concrete class from this one if you have a set of functions (i.e., a vector-valued function)...
Definition: Differentiator.h:227
 
JacobianFunction(int nf=-1, int ny=-1, Real acc=-1)
 
Given a function f(y), where f, y or both can be vectors, calculate the derivative (gradient,...
Definition: Differentiator.h:77
 
Method
Definition: Differentiator.h:92
 
Abstract class which defines an objective/cost function which is optimized by and Optimizer object.
Definition: Optimizer.h:71
 
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
 
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
 
Definition: OptimizerRep.h:63
 
void setMaxIterations(const int iter)
 
static int constraintFuncWrapper(int n, const Real *x, int new_x, int m, Real *g, void *rep)
 
bool setAdvancedStrOption(const std::string &option, const std::string &value)
 
int limitedMemoryHistory
Definition: OptimizerRep.h:186
 
Real getEstimatedAccuracyOfObjective() const
Definition: OptimizerRep.h:143
 
static int numericalGradient_static(const OptimizerSystem &, const Vector ¶meters, const bool new_parameters, Vector &gradient)
 
virtual OptimizerRep * clone() const
Definition: OptimizerRep.h:106
 
void clearMyHandle()
Definition: OptimizerRep.h:134
 
Real convergenceTolerance
Definition: OptimizerRep.h:183
 
void setDifferentiatorMethod(Differentiator::Method method)
 
void useNumericalJacobian(bool flag, Real consEstAccuracy)
 
bool getAdvancedStrOption(const std::string &option, std::string &value) const
 
static bool isAvailable()
Definition: OptimizerRep.h:107
 
Real constraintTolerance
Definition: OptimizerRep.h:184
 
bool isUsingNumericalJacobian() const
Definition: OptimizerRep.h:141
 
void setDiagnosticsLevel(const int level)
 
bool setAdvancedRealOption(const std::string &option, const Real value)
 
static int constraintJacobianWrapper(int n, const Real *x, int new_x, int m, int nele_jac, int *iRow, int *jCol, Real *values, void *rep)
 
void setLimitedMemoryHistory(const int history)
 
bool getAdvancedIntOption(const std::string &option, int &value) const
 
OptimizerRep()
Definition: OptimizerRep.h:86
 
virtual Real optimize(Vector &results)=0
 
bool getAdvancedVectorOption(const std::string &option, Vector &value) const
 
void setConstraintTolerance(Real tolerance)
 
void setConvergenceTolerance(Real accuracy)
 
const Optimizer & getMyHandle() const
Definition: OptimizerRep.h:133
 
static int hessianWrapper(int n, const Real *x, int new_x, Real obj_factor, int m, Real *lambda, int new_lambda, int nele_hess, int *iRow, int *jCol, Real *values, void *rep)
 
virtual OptimizerAlgorithm getAlgorithm() const
Definition: OptimizerRep.h:158
 
bool setAdvancedBoolOption(const std::string &option, const bool value)
 
bool isUsingNumericalGradient() const
Definition: OptimizerRep.h:140
 
bool getAdvancedBoolOption(const std::string &option, bool &value) const
 
static int gradientFuncWrapper(int n, const Real *x, int new_x, Real *gradient, void *rep)
 
int maxIterations
Definition: OptimizerRep.h:185
 
bool setAdvancedIntOption(const std::string &option, const int value)
 
Real getEstimatedAccuracyOfConstraints() const
Definition: OptimizerRep.h:145
 
static int numericalJacobian_static(const OptimizerSystem &, const Vector ¶meters, const bool new_parameters, Matrix &jacobian)
 
Differentiator::Method diffMethod
Definition: OptimizerRep.h:187
 
Real constraintsEstimatedAccuracy
Definition: OptimizerRep.h:189
 
bool setAdvancedVectorOption(const std::string &option, const Vector value)
 
const Differentiator & getJacobianDifferentiator() const
Definition: OptimizerRep.h:153
 
OptimizerRep(const OptimizerSystem &sys)
Definition: OptimizerRep.h:66
 
const Differentiator & getGradientDifferentiator() const
Definition: OptimizerRep.h:148
 
Real objectiveEstimatedAccuracy
Definition: OptimizerRep.h:188
 
void setMyHandle(Optimizer &cp)
Definition: OptimizerRep.h:132
 
const OptimizerSystem & getOptimizerSystem() const
Definition: OptimizerRep.h:111
 
static int objectiveFuncWrapper(int n, const Real *x, int new_x, Real *f, void *rep)
 
Differentiator::Method getDifferentiatorMethod() const
Definition: OptimizerRep.h:142
 
void useNumericalGradient(bool flag, Real objEstAccuracy)
 
int diagnosticsLevel
Definition: OptimizerRep.h:182
 
bool getAdvancedRealOption(const std::string &option, Real &value) const
 
API for SimTK Simmath's optimizers.
Definition: Optimizer.h:421
 
Definition: OptimizerRep.h:50
 
int f(const Vector &y, Vector &fy) const override
Definition: OptimizerRep.h:56
 
SysConstraintFunc(int nf, int ny, const OptimizerSystem *sysPtr)
Definition: OptimizerRep.h:52
 
const OptimizerSystem * sysp
Definition: OptimizerRep.h:59
 
Definition: OptimizerRep.h:36
 
SysObjectiveFunc(int ny, const OptimizerSystem *sysPtr)
Definition: OptimizerRep.h:38
 
const OptimizerSystem * sysp
Definition: OptimizerRep.h:45
 
int f(const Vector &y, Real &fy) const override
Definition: OptimizerRep.h:42
 
const Real SignificantReal
SignificantReal is the smallest value that we consider to be clearly distinct from roundoff error whe...
 
This is the top-level SimTK namespace into which all SimTK names are placed to avoid collision with o...
Definition: Assembler.h:37
 
OptimizerAlgorithm
The available Optimizer algorithms.
Definition: Optimizer.h:40
 
@ UnknownOptimizerAlgorithm
Definition: Optimizer.h:61
 
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:607