ipopt_cppad_nlp Class Reference

#include <ipopt_cppad_nlp.hpp>

Collaboration diagram for ipopt_cppad_nlp:

Collaboration graph
[legend]
List of all members.

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< BoolVectorBoolVectorVector
typedef CppAD::vector< std::map<
size_t, size_t > > 
IndexMap

Private Member Functions

 ipopt_cppad_nlp (const ipopt_cppad_nlp &)
ipopt_cppad_nlpoperator= (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_

Detailed Description

Definition at line 655 of file ipopt_cppad_nlp.hpp.


Member Typedef Documentation

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.


Constructor & Destructor Documentation

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]


Member Function Documentation

bool ipopt_cppad_nlp::get_nlp_info ( Index n,
Index m,
Index nnz_jac_g,
Index nnz_h_lag,
IndexStyleEnum index_style 
) [virtual]

Definition at line 628 of file ipopt_cppad_nlp.cpp.

References m_, n_, nnz_h_lag_, and nnz_jac_g_.

bool ipopt_cppad_nlp::get_bounds_info ( Index  n,
Number x_l,
Number x_u,
Index  m,
Number g_l,
Number g_u 
) [virtual]

Definition at line 642 of file ipopt_cppad_nlp.cpp.

References g_l_, g_u_, m_, n_, x_l_, and x_u_.

bool ipopt_cppad_nlp::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]

Definition at line 662 of file ipopt_cppad_nlp.cpp.

References m_, n_, and x_i_.

bool ipopt_cppad_nlp::eval_f ( Index  n,
const Number x,
bool  new_x,
Number obj_value 
) [virtual]

Definition at line 680 of file ipopt_cppad_nlp.cpp.

References fg_info_, I_, ipopt_cppad_fg_info::index(), J_, k, K_, L_, n_, p_, q_, r, r_fun_, record_r_fun(), and retape_.

bool ipopt_cppad_nlp::eval_grad_f ( Index  n,
const Number x,
bool  new_x,
Number grad_f 
) [virtual]

Definition at line 727 of file ipopt_cppad_nlp.cpp.

References fg_info_, I_, ipopt_cppad_fg_info::index(), J_, k, K_, L_, n_, p_, q_, r_fun_, record_r_fun(), retape_, and w.

bool ipopt_cppad_nlp::eval_g ( Index  n,
const Number x,
bool  new_x,
Index  m,
Number g 
) [virtual]

Definition at line 785 of file ipopt_cppad_nlp.cpp.

References fg_info_, I_, ipopt_cppad_fg_info::index(), J_, k, K_, L_, m_, n_, p_, q_, r, r_fun_, record_r_fun(), and retape_.

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]

Definition at line 500 of file ipopt_cppad_nlp.cpp.

Referenced by ipopt_cppad_nlp().

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]

Definition at line 563 of file ipopt_cppad_nlp.cpp.

Referenced by ipopt_cppad_nlp().

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.


Member Data Documentation

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]

Definition at line 795 of file ipopt_cppad_nlp.hpp.

Referenced by get_starting_point().

const NumberVector ipopt_cppad_nlp::x_l_ [private]

Definition at line 797 of file ipopt_cppad_nlp.hpp.

Referenced by get_bounds_info().

const NumberVector ipopt_cppad_nlp::x_u_ [private]

Definition at line 798 of file ipopt_cppad_nlp.hpp.

Referenced by get_bounds_info().

const NumberVector ipopt_cppad_nlp::g_l_ [private]

Definition at line 799 of file ipopt_cppad_nlp.hpp.

Referenced by get_bounds_info().

const NumberVector ipopt_cppad_nlp::g_u_ [private]

Definition at line 800 of file ipopt_cppad_nlp.hpp.

Referenced by get_bounds_info().

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]

Definition at line 804 of file ipopt_cppad_nlp.hpp.

Referenced by finalize_solution().

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().

BoolVectorVector ipopt_cppad_nlp::pattern_jac_r_ [private]

Definition at line 817 of file ipopt_cppad_nlp.hpp.

Referenced by eval_jac_g(), and ipopt_cppad_nlp().

BoolVectorVector ipopt_cppad_nlp::pattern_r_lag_ [private]

Definition at line 818 of file ipopt_cppad_nlp.hpp.

Referenced by eval_h(), 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]

Definition at line 825 of file ipopt_cppad_nlp.hpp.

Referenced by eval_h(), and ipopt_cppad_nlp().

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]

Definition at line 828 of file ipopt_cppad_nlp.hpp.

Referenced by eval_h(), and ipopt_cppad_nlp().

SizeVector ipopt_cppad_nlp::jCol_h_lag_ [private]

Definition at line 829 of file ipopt_cppad_nlp.hpp.

Referenced by eval_h(), and ipopt_cppad_nlp().

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().


The documentation for this class was generated from the following files:
Generated on Thu Aug 5 03:11:05 2010 by  doxygen 1.4.7