43 #include "declarations.h"
79 virtual bool get_nlp_info(Ipopt::Index& n, Ipopt::Index& m, Ipopt::Index& nnz_jac_g,
80 Ipopt::Index& nnz_h_lag, IndexStyleEnum& index_style);
83 virtual bool get_bounds_info(Ipopt::Index n, Ipopt::Number* x_l, Ipopt::Number* x_u,
84 Ipopt::Index m, Ipopt::Number* g_l, Ipopt::Number* g_u);
88 bool init_z, Ipopt::Number* z_L, Ipopt::Number* z_U,
89 Ipopt::Index m,
bool init_lambda,
90 Ipopt::Number* lambda);
93 virtual bool eval_f(Ipopt::Index n,
const Ipopt::Number* x,
bool new_x, Ipopt::Number& obj_value);
96 virtual bool eval_grad_f(Ipopt::Index n,
const Ipopt::Number* x,
bool new_x, Ipopt::Number* grad_f);
99 virtual bool eval_g(Ipopt::Index n,
const Ipopt::Number* x,
bool new_x, Ipopt::Index m, Ipopt::Number* g);
105 virtual bool eval_jac_g(Ipopt::Index n,
const Ipopt::Number* x,
bool new_x,
106 Ipopt::Index m, Ipopt::Index nele_jac, Ipopt::Index* iRow, Ipopt::Index *jCol,
107 Ipopt::Number* values);
113 virtual bool eval_h(Ipopt::Index n,
const Ipopt::Number* x,
bool new_x,
114 Ipopt::Number obj_factor, Ipopt::Index m,
const Ipopt::Number* lambda,
115 bool new_lambda, Ipopt::Index nele_hess, Ipopt::Index* iRow,
116 Ipopt::Index* jCol, Ipopt::Number* values);
122 bool& use_x_scaling, Ipopt::Index n,
123 Ipopt::Number* x_scaling,
124 bool& use_g_scaling, Ipopt::Index m,
125 Ipopt::Number* g_scaling);
131 Ipopt::Index n,
const Ipopt::Number* x,
const Ipopt::Number* z_L,
const Ipopt::Number* z_U,
132 Ipopt::Index m,
const Ipopt::Number* g,
const Ipopt::Number* lambda,
133 Ipopt::Number obj_value,
134 const Ipopt::IpoptData* ip_data,
135 Ipopt::IpoptCalculatedQuantities* ip_cq);
245 std::string *csdpErrorMsg;
The CsdpSolver class solves problems using Csdp.
virtual bool eval_h(Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Number obj_factor, Ipopt::Index m, const Ipopt::Number *lambda, bool new_lambda, Ipopt::Index nele_hess, Ipopt::Index *iRow, Ipopt::Index *jCol, Ipopt::Number *values)
Method to return: 1) The structure of the hessian of the lagrangian (if "values" is NULL) 2) The valu...
virtual bool eval_f(Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Number &obj_value)
Method to return the objective value.
used for throwing exceptions.
CsdpSolver()
the CsdpSolver class constructor
Take an OSResult object and write a string that validates against OSrL.
OSiLReader * m_osilreader
m_osilreader is an OSiLReader object used to create an osinstance from an osil string if needed ...
virtual ~IpoptProblem()
the IpoptProblem class destructor
virtual void buildSolverInstance()
The implementation of the virtual functions.
virtual bool eval_grad_f(Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Number *grad_f)
Method to return the gradient of the objective.
IpoptProblem(OSInstance *osinstance_, OSOption *osoption_, OSResult *osresult_, std::string *ipoptErrorMsg_)
the IpoptProblemclass constructor
The in-memory representation of an OSiL instance.
Used to read an OSiL string.
std::string * ipoptErrorMsg
Used to read an OSoL string.
~CsdpSolver()
the CsdpSolver class destructor
virtual bool get_bounds_info(Ipopt::Index n, Ipopt::Number *x_l, Ipopt::Number *x_u, Ipopt::Index m, Ipopt::Number *g_l, Ipopt::Number *g_u)
Method to return the bounds for my problem.
OSoLReader * m_osolreader
m_osolreader is an OSoLReader object used to create an osoption from an osol string if needed ...
virtual bool get_scaling_parameters(Ipopt::Number &obj_scaling, bool &use_x_scaling, Ipopt::Index n, Ipopt::Number *x_scaling, bool &use_g_scaling, Ipopt::Index m, Ipopt::Number *g_scaling)
This file defines the OSInstance class along with its supporting classes.
virtual bool eval_jac_g(Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Index m, Ipopt::Index nele_jac, Ipopt::Index *iRow, Ipopt::Index *jCol, Ipopt::Number *values)
Method to return: 1) The structure of the jacobian (if "values" is NULL) 2) The values of the jacobia...
virtual void setSolverOptions()
The implementation of the virtual functions.
This file defines the OSnLNode class along with its derived classes.
virtual bool get_starting_point(Ipopt::Index n, bool init_x, Ipopt::Number *x, bool init_z, Ipopt::Number *z_L, Ipopt::Number *z_U, Ipopt::Index m, bool init_lambda, Ipopt::Number *lambda)
Method to return the starting point for the algorithm.
virtual void finalize_solution(Ipopt::SolverReturn status, Ipopt::Index n, const Ipopt::Number *x, const Ipopt::Number *z_L, const Ipopt::Number *z_U, Ipopt::Index m, const Ipopt::Number *g, const Ipopt::Number *lambda, Ipopt::Number obj_value, const Ipopt::IpoptData *ip_data, Ipopt::IpoptCalculatedQuantities *ip_cq)
This method is called when the algorithm is complete so the TNLP can store/write the solution...
The Default Solver Class.
void dataEchoCheck()
use this for debugging, print out the instance that the solver thinks it has and compare this with th...
virtual bool eval_g(Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Index m, Ipopt::Number *g)
Method to return the constraint residuals.
void verifyForm()
Use to verify that the solver is appropriate CSDP requires a very special type of problem...
virtual bool get_nlp_info(Ipopt::Index &n, Ipopt::Index &m, Ipopt::Index &nnz_jac_g, Ipopt::Index &nnz_h_lag, IndexStyleEnum &index_style)
IPOpt specific methods for defining the nlp problem.
virtual void solve()
solve results in an instance being read into the Csdp data structures and optimize ...