/home/coin/SVN-release/CoinAll-1.1.0/Ipopt/examples/ScalableProblems/LuksanVlcek2.hpp

Go to the documentation of this file.
00001 // Copyright (C) 2005, 2006 International Business Machines and others.
00002 // All Rights Reserved.
00003 // This code is published under the Common Public License.
00004 //
00005 // $Id: LuksanVlcek2.hpp 949 2007-03-27 00:41:26Z andreasw $
00006 //
00007 // Authors:  Andreas Waechter              IBM    2005-10-127
00008 
00009 #ifndef __LUKSANVLCEK2_HPP__
00010 #define __LUKSANVLCEK2_HPP__
00011 
00012 #include "RegisteredTNLP.hpp"
00013 
00014 using namespace Ipopt;
00015 
00019 class LuksanVlcek2 : public RegisteredTNLP
00020 {
00021 public:
00026   LuksanVlcek2(Number g_l, Number g_u);
00027 
00029   virtual ~LuksanVlcek2()
00030   {}
00031   ;
00032 
00034   virtual bool InitializeProblem(Index N);
00035 
00039   virtual bool get_nlp_info(Index& n, Index& m, Index& nnz_jac_g,
00040                             Index& nnz_h_lag, IndexStyleEnum& index_style);
00041 
00043   virtual bool get_bounds_info(Index n, Number* x_l, Number* x_u,
00044                                Index m, Number* g_l, Number* g_u);
00045 
00047   virtual bool get_starting_point(Index n, bool init_x, Number* x,
00048                                   bool init_z, Number* z_L, Number* z_U,
00049                                   Index m, bool init_lambda,
00050                                   Number* lambda);
00051 
00053   virtual bool eval_f(Index n, const Number* x, bool new_x, Number& obj_value);
00054 
00056   virtual bool eval_grad_f(Index n, const Number* x, bool new_x, Number* grad_f);
00057 
00059   virtual bool eval_g(Index n, const Number* x, bool new_x, Index m, Number* g);
00060 
00065   virtual bool eval_jac_g(Index n, const Number* x, bool new_x,
00066                           Index m, Index nele_jac, Index* iRow, Index *jCol,
00067                           Number* values);
00068 
00073   virtual bool eval_h(Index n, const Number* x, bool new_x,
00074                       Number obj_factor, Index m, const Number* lambda,
00075                       bool new_lambda, Index nele_hess, Index* iRow,
00076                       Index* jCol, Number* values);
00077 
00079 
00083   virtual void finalize_solution(SolverReturn status,
00084                                  Index n, const Number* x, const Number* z_L, const Number* z_U,
00085                                  Index m, const Number* g, const Number* lambda,
00086                                  Number obj_value,
00087                                  const IpoptData* ip_data,
00088                                  IpoptCalculatedQuantities* ip_cq);
00090 
00091 private:
00103   LuksanVlcek2();
00104   LuksanVlcek2(const LuksanVlcek2&);
00105   LuksanVlcek2& operator=(const LuksanVlcek2&);
00107 
00109   Index N_;
00110 
00112   Number g_l_;
00114   Number g_u_;
00115 };
00116 
00117 #endif

Generated on Sun Nov 14 14:06:33 2010 for Coin-All by  doxygen 1.4.7