#include <ipopt2.h>
Public Member Functions | |
IpOptProblem (const Pointer< MinlpProblem > prob_, IpOpt &ipopt) | |
virtual bool | get_nlp_info (Index &n, Index &m, Index &nnz_jac_g, Index &nnz_h_lag, IndexStyleEnum &index_style) |
Method to return some info about the nlp. | |
virtual bool | get_bounds_info (Index n, Number *x_l, Number *x_u, Index m, Number *g_l, Number *g_u) |
Method to return the bounds for my problem. | |
virtual bool | get_starting_point (Index n, bool init_x, Number *x, bool init_z, Number *z_L, Number *z_U, Index m, bool init_lambda, Number *lambda) |
Method to return the starting point for the algorithm. | |
virtual bool | eval_f (Index n, const Number *x, bool new_x, Number &obj_value) |
Method to return the objective value. | |
virtual bool | eval_grad_f (Index n, const Number *x, bool new_x, Number *grad_f) |
Method to return the gradient of the objective. | |
virtual bool | eval_g (Index n, const Number *x, bool new_x, Index m, Number *g) |
Method to return the constraint residuals. | |
virtual bool | eval_jac_g (Index n, const Number *x, bool new_x, Index m, Index nele_jac, Index *iRow, Index *jCol, Number *values) |
Method to return: 1) The structure of the jacobian (if "values" is NULL) 2) The values of the jacobian (if "values" is not NULL). | |
virtual bool | eval_h (Index n, const Number *x, bool new_x, Number obj_factor, Index m, const Number *lambda, bool new_lambda, Index nele_hess, Index *iRow, Index *jCol, Number *values) |
Method to return: 1) The structure of the hessian of the lagrangian (if "values" is NULL) 2) The values of the hessian of the lagrangian (if "values" is not NULL). | |
virtual void | finalize_solution (SolverReturn status, Index n, const Number *x, const Number *z_L, const Number *z_U, Index m, const Number *g, const Number *lambda, Number obj_values, const IpoptData *data, IpoptCalculatedQuantities *cq) |
This method is called when the algorithm is complete so the TNLP can store/write the solution. | |
Private Member Functions | |
template<bool add> | |
void | set_hessian (const SepQcFunc &func, int blocknr, Number *values, double factor, dvector &xx, dvector &y, dvector &z) |
Sets or adds the hessian of one block of a function. | |
template<bool add> | |
void | set_hessianquad (const SepQcFunc &func, int blocknr, Number *values, double factor) |
Sets or adds the hessian of one block of a quadratic function multiplied by a vector. | |
Private Attributes | |
const Pointer< MinlpProblem > | prob |
IpOpt & | ipopt |
vector< Pointer< SparsityInfo > > | sparsity |
Index | nnz_jac_g |
Index | nnz_h_lag |
Friends | |
class | IpOpt |
Definition at line 25 of file ipopt2.h.
IpOptProblem::IpOptProblem | ( | const Pointer< MinlpProblem > | prob_, | |
IpOpt & | ipopt | |||
) |
void IpOptProblem::set_hessian | ( | const SepQcFunc & | func, | |
int | blocknr, | |||
Number * | values, | |||
double | factor, | |||
dvector & | xx, | |||
dvector & | y, | |||
dvector & | z | |||
) | [inline, private] |
Sets or adds the hessian of one block of a function.
values | Where to put the block of the hessian to. | |
factor | Scalar factor for the hessian. | |
xx | The vector to evaluate the hessian in. | |
y | Scratch vector. | |
z | Scratch vector. |
void IpOptProblem::set_hessianquad | ( | const SepQcFunc & | func, | |
int | blocknr, | |||
Number * | values, | |||
double | factor | |||
) | [inline, private] |
Sets or adds the hessian of one block of a quadratic function multiplied by a vector.
values | Where to put the block of the hessian to. | |
factor | Scalar factor for the hessian. |
virtual bool IpOptProblem::get_nlp_info | ( | Index & | n, | |
Index & | m, | |||
Index & | nnz_jac_g, | |||
Index & | nnz_h_lag, | |||
IndexStyleEnum & | index_style | |||
) | [virtual] |
Method to return some info about the nlp.
virtual bool IpOptProblem::get_bounds_info | ( | Index | n, | |
Number * | x_l, | |||
Number * | x_u, | |||
Index | m, | |||
Number * | g_l, | |||
Number * | g_u | |||
) | [virtual] |
Method to return the bounds for my problem.
virtual bool IpOptProblem::get_starting_point | ( | Index | n, | |
bool | init_x, | |||
Number * | x, | |||
bool | init_z, | |||
Number * | z_L, | |||
Number * | z_U, | |||
Index | m, | |||
bool | init_lambda, | |||
Number * | lambda | |||
) | [virtual] |
Method to return the starting point for the algorithm.
virtual bool IpOptProblem::eval_f | ( | Index | n, | |
const Number * | x, | |||
bool | new_x, | |||
Number & | obj_value | |||
) | [virtual] |
Method to return the objective value.
virtual bool IpOptProblem::eval_grad_f | ( | Index | n, | |
const Number * | x, | |||
bool | new_x, | |||
Number * | grad_f | |||
) | [virtual] |
Method to return the gradient of the objective.
virtual bool IpOptProblem::eval_g | ( | Index | n, | |
const Number * | x, | |||
bool | new_x, | |||
Index | m, | |||
Number * | g | |||
) | [virtual] |
Method to return the constraint residuals.
virtual bool IpOptProblem::eval_jac_g | ( | Index | n, | |
const Number * | x, | |||
bool | new_x, | |||
Index | m, | |||
Index | nele_jac, | |||
Index * | iRow, | |||
Index * | jCol, | |||
Number * | values | |||
) | [virtual] |
Method to return: 1) The structure of the jacobian (if "values" is NULL) 2) The values of the jacobian (if "values" is not NULL).
virtual bool IpOptProblem::eval_h | ( | Index | n, | |
const Number * | x, | |||
bool | new_x, | |||
Number | obj_factor, | |||
Index | m, | |||
const Number * | lambda, | |||
bool | new_lambda, | |||
Index | nele_hess, | |||
Index * | iRow, | |||
Index * | jCol, | |||
Number * | values | |||
) | [virtual] |
Method to return: 1) The structure of the hessian of the lagrangian (if "values" is NULL) 2) The values of the hessian of the lagrangian (if "values" is not NULL).
virtual void IpOptProblem::finalize_solution | ( | SolverReturn | status, | |
Index | n, | |||
const Number * | x, | |||
const Number * | z_L, | |||
const Number * | z_U, | |||
Index | m, | |||
const Number * | g, | |||
const Number * | lambda, | |||
Number | obj_values, | |||
const IpoptData * | data, | |||
IpoptCalculatedQuantities * | cq | |||
) | [virtual] |
This method is called when the algorithm is complete so the TNLP can store/write the solution.
const Pointer<MinlpProblem> IpOptProblem::prob [private] |
IpOpt& IpOptProblem::ipopt [private] |
vector<Pointer<SparsityInfo> > IpOptProblem::sparsity [private] |
Index IpOptProblem::nnz_jac_g [private] |
Index IpOptProblem::nnz_h_lag [private] |