9 #ifndef __SMAGMINLP_HPP__
10 #define __SMAGMINLP_HPP__
14 #include "BonTMINLP.hpp"
26 using namespace Ipopt;
27 using namespace Bonmin;
42 virtual bool get_nlp_info(Index& n, Index& m, Index& nnz_jac_g,
43 Index& nnz_h_lag, TNLP::IndexStyleEnum& index_style);
46 virtual bool get_bounds_info(Index n, Number* x_l, Number* x_u,
47 Index m, Number* g_l, Number* g_u);
53 virtual bool get_variables_types(Index n, VariableType* var_types);
59 virtual bool get_variables_linearity(Index n, Ipopt::TNLP::LinearityType* var_linearity);
65 virtual bool get_constraints_linearity(Index m, Ipopt::TNLP::LinearityType* const_types);
69 virtual bool get_starting_point(Index n,
bool init_x, Number* x,
70 bool init_z, Number* z_L, Number* z_U,
71 Index m,
bool init_lambda,
74 virtual bool get_scaling_parameters(Number &obj_scaling,
75 bool &use_x_scaling, Index n, Number *x_scaling,
76 bool &use_g_scaling, Index m, Number *g_scaling);
79 virtual bool eval_f(Index n,
const Number* x,
bool new_x, Number& obj_value);
82 virtual bool eval_grad_f(Index n,
const Number* x,
bool new_x, Number* grad_f);
85 virtual bool eval_g(Index n,
const Number* x,
bool new_x, Index m, Number* g);
91 virtual bool eval_jac_g(Index n,
const Number* x,
bool new_x,
92 Index m, Index nele_jac, Index* iRow, Index *jCol,
102 virtual bool eval_gi(Index n,
const Number* x,
bool new_x, Index i, Number& gi);
114 virtual bool eval_grad_gi(Index n,
const Number* x,
bool new_x,
115 Index i, Index& nele_grad_gi, Index* jCol, Number* values);
121 virtual bool eval_h(Index n,
const Number* x,
bool new_x,
122 Number obj_factor, Index m,
const Number* lambda,
123 bool new_lambda, Index nele_hess, Index* iRow,
124 Index* jCol, Number* values);
126 virtual void finalize_solution(TMINLP::SolverReturn status,Index n,
const Number* x, Number obj_value);
130 virtual const SosInfo* sosConstraints()
const;
134 virtual const BranchingInfo* branchingInfo()
const;
164 void setupPrioritiesSOS();
BranchingInfo branchinginfo
A TNLP for Ipopt that uses SMAG to interface the problem formulation.