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.