- Main Page
- Namespaces
- Classes
- Files

- File List
- File Members

# /home/coin/SVN-release/Ipopt-3.2.1/Ipopt/examples/Cpp_example/MyNLP.hpp

Go to the documentation of this file.

    00001 // Copyright (C) 2004, 2006 International Business Machines and others.
    00002 // All Rights Reserved.
    00003 // This code is published under the Common Public License.
    00004 //
    00005 // $Id: MyNLP.hpp 759 2006-07-07 03:07:08Z andreasw $
    00006 //
    00007 // Authors:  Carl Laird, Andreas Waechter     IBM    2004-11-05
    00008
    00009 #ifndef __MYNLP_HPP__
    00010 #define __MYNLP_HPP__
    00011
    00012 #include "IpTNLP.hpp"
    00013
    00014 using namespace Ipopt;
    00015
    00028 class MyNLP : public TNLP
    00029 {
    00030 public:
    00032   MyNLP();
    00033
    00035   virtual ~MyNLP();
    00036
    00040   virtual bool get_nlp_info(Index& n, Index& m, Index& nnz_jac_g,
    00041                             Index& nnz_h_lag, IndexStyleEnum& index_style);
    00042
    00044   virtual bool get_bounds_info(Index n, Number* x_l, Number* x_u,
    00045                                Index m, Number* g_l, Number* g_u);
    00046
    00048   virtual bool get_starting_point(Index n, bool init_x, Number* x,
    00049                                   bool init_z, Number* z_L, Number* z_U,
    00050                                   Index m, bool init_lambda,
    00051                                   Number* lambda);
    00052
    00054   virtual bool eval_f(Index n, const Number* x, bool new_x, Number& obj_value);
    00055
    00057   virtual bool eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f);
    00058
    00060   virtual bool eval_g(Index n, const Number* x, bool new_x, Index m, Number* g);
    00061
    00066   virtual bool eval_jac_g(Index n, const Number* x, bool new_x,
    00067                           Index m, Index nele_jac, Index* iRow, Index *jCol,
    00068                           Number* values);
    00069
    00074   virtual bool eval_h(Index n, const Number* x, bool new_x,
    00075                       Number obj_factor, Index m, const Number* lambda,
    00076                       bool new_lambda, Index nele_hess, Index* iRow,
    00077                       Index* jCol, Number* values);
    00078
    00080
    00084   virtual void finalize_solution(SolverReturn status,
    00085                                  Index n, const Number* x, const Number* z_L, const Number* z_U,
    00086                                  Index m, const Number* g, const Number* lambda,
    00087                                  Number obj_value);
    00089
    00090 private:
    00102   //  MyNLP();
    00103   MyNLP(const MyNLP&);
    00104   MyNLP& operator=(const MyNLP&);
    00106 };
    00107
    00108
    00109 #endif