#include <ipopt_cppad_nlp.hpp>
Collaboration diagram for ipopt_cppad_nlp:
Public Member Functions | |
ipopt_cppad_nlp (size_t n, size_t m, const NumberVector &x_i, const NumberVector &x_l, const NumberVector &x_u, const NumberVector &g_l, const NumberVector &g_u, ipopt_cppad_fg_info *fg_info, ipopt_cppad_solution *solution) | |
virtual | ~ipopt_cppad_nlp () |
virtual bool | get_nlp_info (Index &n, Index &m, Index &nnz_jac_g, Index &nnz_h_lag, IndexStyleEnum &index_style) |
virtual bool | get_bounds_info (Index n, Number *x_l, Number *x_u, Index m, Number *g_l, Number *g_u) |
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) |
virtual bool | eval_f (Index n, const Number *x, bool new_x, Number &obj_value) |
virtual bool | eval_grad_f (Index n, const Number *x, bool new_x, Number *grad_f) |
virtual bool | eval_g (Index n, const Number *x, bool new_x, Index m, Number *g) |
virtual bool | eval_jac_g (Index n, const Number *x, bool new_x, Index m, Index nele_jac, Index *iRow, Index *jCol, Number *values) |
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) |
virtual void | finalize_solution (Ipopt::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_value, const Ipopt::IpoptData *ip_data, Ipopt::IpoptCalculatedQuantities *ip_cq) |
Private Types | |
typedef Ipopt::Number | Number |
typedef Ipopt::Index | Index |
typedef Ipopt::TNLP::IndexStyleEnum | IndexStyleEnum |
typedef CppAD::vectorBool | BoolVector |
typedef CppAD::vector< CppAD::ADFun< Number > > | ADFunVector |
typedef CppAD::vector< BoolVector > | BoolVectorVector |
typedef CppAD::vector< std::map< size_t, size_t > > | IndexMap |
Private Member Functions | |
ipopt_cppad_nlp (const ipopt_cppad_nlp &) | |
ipopt_cppad_nlp & | operator= (const ipopt_cppad_nlp &) |
Static Private Member Functions | |
static void | record_r_fun (ipopt_cppad_fg_info *fg_info, size_t k, SizeVector &p, SizeVector &q, ADVector &u_ad, ADFunVector &r_fun) |
static void | compute_index_jac_fg (ipopt_cppad_fg_info *fg_info, SizeVector &I, SizeVector &J, size_t K, SizeVector &L, size_t m, size_t n, SizeVector &p, SizeVector &q, ADFunVector &r_fun, BoolVectorVector &pattern_jac_r, IndexMap &index_jac_fg) |
static void | compute_index_h_lag (ipopt_cppad_fg_info *fg_info, SizeVector &I, SizeVector &J, size_t K, SizeVector &L, size_t m, size_t n, SizeVector &p, SizeVector &q, ADFunVector &r_fun, BoolVectorVector &pattern_r_lag, IndexMap &index_h_hag) |
static void | compute_structure_jac_g (IndexMap &index_jac_fg, size_t m, size_t n, size_t &nnz_jac_g, SizeVector &iRow_jac_g, SizeVector &jCol_jac_g) |
static void | compute_structure_h_lag (IndexMap &index_h_lag, size_t m, size_t n, size_t &nnz_h_lag, SizeVector &iRow_h_lag, SizeVector &jCol_h_lag) |
static void | compute_index_jac_fg (size_t m, size_t n, const BoolVector &pattern_jac_fg, IndexMap &index_jac_fg) |
static void | compute_index_h_lag (size_t m, size_t n, const BoolVector &pattern_h_lag, IndexMap &index_h_lag) |
Private Attributes | |
const size_t | n_ |
const size_t | m_ |
const NumberVector | x_i_ |
const NumberVector | x_l_ |
const NumberVector | x_u_ |
const NumberVector | g_l_ |
const NumberVector | g_u_ |
ipopt_cppad_fg_info *const | fg_info_ |
ipopt_cppad_solution *const | solution_ |
size_t | K_ |
BoolVector | retape_ |
SizeVector | q_ |
SizeVector | p_ |
SizeVector | L_ |
SizeVector | J_ |
SizeVector | I_ |
BoolVectorVector | pattern_jac_r_ |
BoolVectorVector | pattern_r_lag_ |
size_t | nnz_jac_g_ |
SizeVector | iRow_jac_g_ |
SizeVector | jCol_jac_g_ |
IndexMap | index_jac_fg_ |
IndexMap | index_h_lag_ |
size_t | nnz_h_lag_ |
SizeVector | iRow_h_lag_ |
SizeVector | jCol_h_lag_ |
ADFunVector | r_fun_ |
Definition at line 655 of file ipopt_cppad_nlp.hpp.
typedef Ipopt::Number ipopt_cppad_nlp::Number [private] |
Definition at line 657 of file ipopt_cppad_nlp.hpp.
typedef Ipopt::Index ipopt_cppad_nlp::Index [private] |
Definition at line 658 of file ipopt_cppad_nlp.hpp.
typedef Ipopt::TNLP::IndexStyleEnum ipopt_cppad_nlp::IndexStyleEnum [private] |
Definition at line 659 of file ipopt_cppad_nlp.hpp.
typedef CppAD::vectorBool ipopt_cppad_nlp::BoolVector [private] |
Definition at line 660 of file ipopt_cppad_nlp.hpp.
typedef CppAD::vector< CppAD::ADFun<Number> > ipopt_cppad_nlp::ADFunVector [private] |
Definition at line 661 of file ipopt_cppad_nlp.hpp.
typedef CppAD::vector<BoolVector> ipopt_cppad_nlp::BoolVectorVector [private] |
Definition at line 662 of file ipopt_cppad_nlp.hpp.
typedef CppAD::vector< std::map<size_t,size_t> > ipopt_cppad_nlp::IndexMap [private] |
Definition at line 664 of file ipopt_cppad_nlp.hpp.
ipopt_cppad_nlp::ipopt_cppad_nlp | ( | size_t | n, | |
size_t | m, | |||
const NumberVector & | x_i, | |||
const NumberVector & | x_l, | |||
const NumberVector & | x_u, | |||
const NumberVector & | g_l, | |||
const NumberVector & | g_u, | |||
ipopt_cppad_fg_info * | fg_info, | |||
ipopt_cppad_solution * | solution | |||
) |
Definition at line 21 of file ipopt_cppad_nlp.cpp.
References compute_index_h_lag(), compute_index_jac_fg(), compute_structure_h_lag(), compute_structure_jac_g(), ipopt_cppad_fg_info::domain_size(), fg_info_, I_, ipopt_cppad_fg_info::index(), index_h_lag_, index_jac_fg_, iRow_h_lag_, iRow_jac_g_, J_, jCol_h_lag_, jCol_jac_g_, k, K_, L_, m_, n_, nnz_h_lag_, nnz_jac_g_, ipopt_cppad_fg_info::number_functions(), ipopt_cppad_fg_info::number_terms(), p_, pattern_jac_r_, pattern_r_lag_, q_, r_fun_, ipopt_cppad_fg_info::range_size(), record_r_fun(), ipopt_cppad_fg_info::retape(), retape_, ipopt_cppad_fg_info::set_m(), and ipopt_cppad_fg_info::set_n().
ipopt_cppad_nlp::~ipopt_cppad_nlp | ( | ) | [virtual] |
Definition at line 625 of file ipopt_cppad_nlp.cpp.
ipopt_cppad_nlp::ipopt_cppad_nlp | ( | const ipopt_cppad_nlp & | ) | [private] |
bool ipopt_cppad_nlp::get_nlp_info | ( | Index & | n, | |
Index & | m, | |||
Index & | nnz_jac_g, | |||
Index & | nnz_h_lag, | |||
IndexStyleEnum & | index_style | |||
) | [virtual] |
bool ipopt_cppad_nlp::eval_jac_g | ( | Index | n, | |
const Number * | x, | |||
bool | new_x, | |||
Index | m, | |||
Index | nele_jac, | |||
Index * | iRow, | |||
Index * | jCol, | |||
Number * | values | |||
) | [virtual] |
Definition at line 833 of file ipopt_cppad_nlp.cpp.
References fg_info_, I_, ipopt_cppad_fg_info::index(), index_jac_fg_, iRow_jac_g_, J_, jCol_jac_g_, k, K_, L_, m_, n_, nnz_jac_g_, p_, pattern_jac_r_, q_, r_fun_, record_r_fun(), and retape_.
bool ipopt_cppad_nlp::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] |
Definition at line 896 of file ipopt_cppad_nlp.cpp.
References fg_info_, I_, ipopt_cppad_fg_info::index(), index_h_lag_, iRow_h_lag_, J_, jCol_h_lag_, k, K_, L_, m_, n_, nnz_h_lag_, p_, pattern_r_lag_, q_, r_fun_, record_r_fun(), retape_, and w.
void ipopt_cppad_nlp::finalize_solution | ( | Ipopt::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_value, | |||
const Ipopt::IpoptData * | ip_data, | |||
Ipopt::IpoptCalculatedQuantities * | ip_cq | |||
) | [virtual] |
Definition at line 966 of file ipopt_cppad_nlp.cpp.
References ipopt_cppad_solution::diverging_iterates, ipopt_cppad_solution::error_in_step_computation, ipopt_cppad_solution::g, ipopt_cppad_solution::internal_error, ipopt_cppad_solution::invalid_number_detected, ipopt_cppad_solution::lambda, ipopt_cppad_solution::local_infeasibility, m_, ipopt_cppad_solution::maxiter_exceeded, n_, ipopt_cppad_solution::obj_value, ipopt_cppad_solution::restoration_failure, solution_, ipopt_cppad_solution::status, ipopt_cppad_solution::stop_at_acceptable_point, ipopt_cppad_solution::stop_at_tiny_step, ipopt_cppad_solution::success, ipopt_cppad_solution::unknown, ipopt_cppad_solution::user_requested_stop, ipopt_cppad_solution::x, ipopt_cppad_solution::z_l, and ipopt_cppad_solution::z_u.
ipopt_cppad_nlp& ipopt_cppad_nlp::operator= | ( | const ipopt_cppad_nlp & | ) | [private] |
void ipopt_cppad_nlp::record_r_fun | ( | ipopt_cppad_fg_info * | fg_info, | |
size_t | k, | |||
SizeVector & | p, | |||
SizeVector & | q, | |||
ADVector & | u_ad, | |||
ADFunVector & | r_fun | |||
) | [static, private] |
Definition at line 154 of file ipopt_cppad_nlp.cpp.
References ipopt_cppad_fg_info::eval_r().
Referenced by eval_f(), eval_g(), eval_grad_f(), eval_h(), eval_jac_g(), and ipopt_cppad_nlp().
void ipopt_cppad_nlp::compute_index_jac_fg | ( | ipopt_cppad_fg_info * | fg_info, | |
SizeVector & | I, | |||
SizeVector & | J, | |||
size_t | K, | |||
SizeVector & | L, | |||
size_t | m, | |||
size_t | n, | |||
SizeVector & | p, | |||
SizeVector & | q, | |||
ADFunVector & | r_fun, | |||
BoolVectorVector & | pattern_jac_r, | |||
IndexMap & | index_jac_fg | |||
) | [static, private] |
Definition at line 199 of file ipopt_cppad_nlp.cpp.
References ipopt_cppad_fg_info::index(), and k.
Referenced by ipopt_cppad_nlp().
void ipopt_cppad_nlp::compute_index_h_lag | ( | ipopt_cppad_fg_info * | fg_info, | |
SizeVector & | I, | |||
SizeVector & | J, | |||
size_t | K, | |||
SizeVector & | L, | |||
size_t | m, | |||
size_t | n, | |||
SizeVector & | p, | |||
SizeVector & | q, | |||
ADFunVector & | r_fun, | |||
BoolVectorVector & | pattern_r_lag, | |||
IndexMap & | index_h_hag | |||
) | [static, private] |
Definition at line 353 of file ipopt_cppad_nlp.cpp.
References ipopt_cppad_fg_info::index(), and k.
Referenced by ipopt_cppad_nlp().
void ipopt_cppad_nlp::compute_structure_jac_g | ( | IndexMap & | index_jac_fg, | |
size_t | m, | |||
size_t | n, | |||
size_t & | nnz_jac_g, | |||
SizeVector & | iRow_jac_g, | |||
SizeVector & | jCol_jac_g | |||
) | [static, private] |
void ipopt_cppad_nlp::compute_structure_h_lag | ( | IndexMap & | index_h_lag, | |
size_t | m, | |||
size_t | n, | |||
size_t & | nnz_h_lag, | |||
SizeVector & | iRow_h_lag, | |||
SizeVector & | jCol_h_lag | |||
) | [static, private] |
void ipopt_cppad_nlp::compute_index_jac_fg | ( | size_t | m, | |
size_t | n, | |||
const BoolVector & | pattern_jac_fg, | |||
IndexMap & | index_jac_fg | |||
) | [static, private] |
Definition at line 316 of file ipopt_cppad_nlp.cpp.
void ipopt_cppad_nlp::compute_index_h_lag | ( | size_t | m, | |
size_t | n, | |||
const BoolVector & | pattern_h_lag, | |||
IndexMap & | index_h_lag | |||
) | [static, private] |
Definition at line 463 of file ipopt_cppad_nlp.cpp.
const size_t ipopt_cppad_nlp::n_ [private] |
Definition at line 791 of file ipopt_cppad_nlp.hpp.
Referenced by eval_f(), eval_g(), eval_grad_f(), eval_h(), eval_jac_g(), finalize_solution(), get_bounds_info(), get_nlp_info(), get_starting_point(), and ipopt_cppad_nlp().
const size_t ipopt_cppad_nlp::m_ [private] |
Definition at line 793 of file ipopt_cppad_nlp.hpp.
Referenced by eval_g(), eval_h(), eval_jac_g(), finalize_solution(), get_bounds_info(), get_nlp_info(), get_starting_point(), and ipopt_cppad_nlp().
const NumberVector ipopt_cppad_nlp::x_i_ [private] |
const NumberVector ipopt_cppad_nlp::x_l_ [private] |
const NumberVector ipopt_cppad_nlp::x_u_ [private] |
const NumberVector ipopt_cppad_nlp::g_l_ [private] |
const NumberVector ipopt_cppad_nlp::g_u_ [private] |
ipopt_cppad_fg_info* const ipopt_cppad_nlp::fg_info_ [private] |
Definition at line 802 of file ipopt_cppad_nlp.hpp.
Referenced by eval_f(), eval_g(), eval_grad_f(), eval_h(), eval_jac_g(), and ipopt_cppad_nlp().
ipopt_cppad_solution* const ipopt_cppad_nlp::solution_ [private] |
size_t ipopt_cppad_nlp::K_ [private] |
Definition at line 806 of file ipopt_cppad_nlp.hpp.
Referenced by eval_f(), eval_g(), eval_grad_f(), eval_h(), eval_jac_g(), and ipopt_cppad_nlp().
BoolVector ipopt_cppad_nlp::retape_ [private] |
Definition at line 807 of file ipopt_cppad_nlp.hpp.
Referenced by eval_f(), eval_g(), eval_grad_f(), eval_h(), eval_jac_g(), and ipopt_cppad_nlp().
SizeVector ipopt_cppad_nlp::q_ [private] |
Definition at line 808 of file ipopt_cppad_nlp.hpp.
Referenced by eval_f(), eval_g(), eval_grad_f(), eval_h(), eval_jac_g(), and ipopt_cppad_nlp().
SizeVector ipopt_cppad_nlp::p_ [private] |
Definition at line 809 of file ipopt_cppad_nlp.hpp.
Referenced by eval_f(), eval_g(), eval_grad_f(), eval_h(), eval_jac_g(), and ipopt_cppad_nlp().
SizeVector ipopt_cppad_nlp::L_ [private] |
Definition at line 810 of file ipopt_cppad_nlp.hpp.
Referenced by eval_f(), eval_g(), eval_grad_f(), eval_h(), eval_jac_g(), and ipopt_cppad_nlp().
SizeVector ipopt_cppad_nlp::J_ [private] |
Definition at line 811 of file ipopt_cppad_nlp.hpp.
Referenced by eval_f(), eval_g(), eval_grad_f(), eval_h(), eval_jac_g(), and ipopt_cppad_nlp().
SizeVector ipopt_cppad_nlp::I_ [private] |
Definition at line 812 of file ipopt_cppad_nlp.hpp.
Referenced by eval_f(), eval_g(), eval_grad_f(), eval_h(), eval_jac_g(), and ipopt_cppad_nlp().
Definition at line 817 of file ipopt_cppad_nlp.hpp.
Referenced by eval_jac_g(), and ipopt_cppad_nlp().
size_t ipopt_cppad_nlp::nnz_jac_g_ [private] |
Definition at line 820 of file ipopt_cppad_nlp.hpp.
Referenced by eval_jac_g(), get_nlp_info(), and ipopt_cppad_nlp().
SizeVector ipopt_cppad_nlp::iRow_jac_g_ [private] |
Definition at line 821 of file ipopt_cppad_nlp.hpp.
Referenced by eval_jac_g(), and ipopt_cppad_nlp().
SizeVector ipopt_cppad_nlp::jCol_jac_g_ [private] |
Definition at line 822 of file ipopt_cppad_nlp.hpp.
Referenced by eval_jac_g(), and ipopt_cppad_nlp().
IndexMap ipopt_cppad_nlp::index_jac_fg_ [private] |
Definition at line 824 of file ipopt_cppad_nlp.hpp.
Referenced by eval_jac_g(), and ipopt_cppad_nlp().
IndexMap ipopt_cppad_nlp::index_h_lag_ [private] |
size_t ipopt_cppad_nlp::nnz_h_lag_ [private] |
Definition at line 827 of file ipopt_cppad_nlp.hpp.
Referenced by eval_h(), get_nlp_info(), and ipopt_cppad_nlp().
SizeVector ipopt_cppad_nlp::iRow_h_lag_ [private] |
SizeVector ipopt_cppad_nlp::jCol_h_lag_ [private] |
ADFunVector ipopt_cppad_nlp::r_fun_ [private] |
Definition at line 831 of file ipopt_cppad_nlp.hpp.
Referenced by eval_f(), eval_g(), eval_grad_f(), eval_h(), eval_jac_g(), and ipopt_cppad_nlp().