9 #ifndef __SMAGNLP_HPP__ 
   10 #define __SMAGNLP_HPP__ 
   26 using namespace Ipopt;
 
   41   virtual bool get_nlp_info(Index& n, Index& m, Index& nnz_jac_g,
 
   42                             Index& nnz_h_lag, IndexStyleEnum& index_style);
 
   45   virtual bool get_bounds_info(Index n, Number* x_l, Number* x_u,
 
   46                                Index m, Number* g_l, Number* g_u);
 
   49   virtual bool get_starting_point(Index n, 
bool init_x, Number* x,
 
   50                                   bool init_z, Number* z_L, Number* z_U,
 
   51                                   Index m, 
bool init_lambda,
 
   54   virtual bool get_scaling_parameters(Number &obj_scaling,
 
   55                 bool &use_x_scaling, Index n, Number *x_scaling,
 
   56                 bool &use_g_scaling, Index m, Number *g_scaling);
 
   59   virtual bool get_variables_linearity(Index n, LinearityType* var_types);
 
   62   virtual bool get_constraints_linearity(Index m, LinearityType* const_types);
 
   65   virtual bool eval_f(Index n, 
const Number* x, 
bool new_x, Number& obj_value);
 
   68   virtual bool eval_grad_f(Index n, 
const Number* x, 
bool new_x, Number* grad_f);
 
   71   virtual bool eval_g(Index n, 
const Number* x, 
bool new_x, Index m, Number* g);
 
   77   virtual bool eval_jac_g(Index n, 
const Number* x, 
bool new_x,
 
   78                           Index m, Index nele_jac, Index* iRow, Index *jCol,
 
   85   virtual bool eval_h(Index n, 
const Number* x, 
bool new_x,
 
   86                       Number obj_factor, Index m, 
const Number* lambda,
 
   87                       bool new_lambda, Index nele_hess, Index* iRow,
 
   88                       Index* jCol, Number* values);
 
   93         virtual bool intermediate_callback (AlgorithmMode mode, Index iter, Number obj_value, Number inf_pr, Number inf_du, Number mu, Number d_norm, Number regularization_size, Number alpha_du, Number alpha_pr, Index ls_trials, 
const IpoptData *ip_data, IpoptCalculatedQuantities *ip_cq);
 
   97   virtual void finalize_solution(SolverReturn status,
 
   98                     Index n, 
const Number* x, 
const Number* z_L,
 
  100                     Index m, 
const Number* g, 
const Number* lambda,
 
  102                     const IpoptData* data, IpoptCalculatedQuantities* cq);
 
double unscaled_conviol_tol
 
double scaled_conviol_tol
 
A TNLP for Ipopt that uses SMAG to interface the problem formulation.