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);
141 Real getEstimatedAccuracyOfObjective()
const
142 {
return objectiveEstimatedAccuracy; }
143 Real getEstimatedAccuracyOfConstraints()
const
144 {
return constraintsEstimatedAccuracy; }
158 static int numericalGradient_static(
const OptimizerSystem&,
const Vector & parameters,
const bool new_parameters,
Vector &gradient );
160 const Vector& parameters,
const bool new_parameters,
Matrix& jacobian );
168 static int objectiveFuncWrapper (
int n,
const Real* x,
int new_x,
Real* f,
void* rep);
169 static int gradientFuncWrapper (
int n,
const Real* x,
int new_x,
Real* gradient,
void* rep);
170 static int constraintFuncWrapper(
int n,
const Real* x,
int new_x,
int m,
Real* g,
void* rep);
171 static int constraintJacobianWrapper(
int n,
const Real* x,
int new_x,
int m,
int nele_jac,
172 int* iRow,
int* jCol,
Real* values,
void* rep);
173 static int hessianWrapper(
int n,
const Real* x,
int new_x,
Real obj_factor,
174 int m,
Real* lambda,
int new_lambda,
175 int nele_hess,
int* iRow,
int* jCol,
176 Real* values,
void* rep);
189 bool numericalGradient;
190 bool numericalJacobian;
197 std::map<std::string, std::string> advancedStrOptions;
198 std::map<std::string, Real> advancedRealOptions;
199 std::map<std::string, int> advancedIntOptions;
200 std::map<std::string, bool> advancedBoolOptions;
216 #endif // SimTK_SIMMATH_OPTIMIZER_REP_H_