00001 // (C) Copyright International Business Machines Corporation (IBM) 2006, 2007 00002 // All Rights Reserved. 00003 // This code is published under the Common Public License. 00004 // 00005 // Authors : 00006 // Pietro Belotti, Carnegie Mellon University 00007 // Pierre Bonami, International Business Machines Corporation 00008 // 00009 // Date : 12/19/2006 00010 00011 #ifndef CouenneInterface_H 00012 #define CouenneInterface_H 00013 #include "BonAmplInterface.hpp" 00014 #include "CouenneCutGenerator.hpp" 00015 00016 00017 struct ASL; 00018 00019 struct ASL *readASLfg (char **); 00020 00021 00022 namespace Bonmin { 00023 class CouenneInterface : public AmplInterface 00024 { 00025 public: 00027 CouenneInterface(); 00028 00030 CouenneInterface(const CouenneInterface &other); 00031 00033 virtual CouenneInterface * clone(bool CopyData); 00034 00036 virtual ~CouenneInterface(); 00037 00038 00040 virtual void readAmplNlFile(char **& argv, Ipopt::SmartPtr<Bonmin::RegisteredOptions> roptions, 00041 Ipopt::SmartPtr<Ipopt::OptionsList> options, 00042 Ipopt::SmartPtr<Ipopt::Journalist> journalist); 00043 00051 virtual void extractLinearRelaxation 00052 (OsiSolverInterface &si, CouenneCutGenerator & couenneCg, bool getObj = 1, bool solveNlp = 1); 00053 00054 00056 virtual void setAppDefaultOptions(Ipopt::SmartPtr<Ipopt::OptionsList> Options); 00057 00059 bool haveNlpSolution () 00060 {return have_nlp_solution_;} 00061 00062 protected: 00063 00065 bool have_nlp_solution_; 00066 }; 00067 00068 } 00069 #endif