summaryrefslogtreecommitdiff
path: root/thirdparty/linux/include/coin/BonAmplInterface.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'thirdparty/linux/include/coin/BonAmplInterface.hpp')
-rw-r--r--thirdparty/linux/include/coin/BonAmplInterface.hpp64
1 files changed, 64 insertions, 0 deletions
diff --git a/thirdparty/linux/include/coin/BonAmplInterface.hpp b/thirdparty/linux/include/coin/BonAmplInterface.hpp
new file mode 100644
index 0000000..055004c
--- /dev/null
+++ b/thirdparty/linux/include/coin/BonAmplInterface.hpp
@@ -0,0 +1,64 @@
+// (C) Copyright International Business Machines Corporation and
+// Carnegie Mellon University 2004, 2007
+//
+// All Rights Reserved.
+// This code is published under the Eclipse Public License.
+//
+// Authors :
+// Pierre Bonami, Carnegie Mellon University,
+// Andreas Waechter, International Business Machines Corporation
+//
+// Date : 12/01/2004
+
+#ifndef BonminAmplInterface_H
+#define BonminAmplInterface_H
+#include "BonOsiTMINLPInterface.hpp"
+#include "BonAmplTMINLP.hpp"
+
+class BM_lp;
+namespace Bonmin
+{
+ /** Class for providing an Osi interface to Ipopt with an ampl nl file as input. */
+ class AmplInterface: public OsiTMINLPInterface
+ {
+ public:
+ /** Default constructor */
+ /** Default constructor only available for Bonmin's friends and child classes.*/
+ AmplInterface();
+ /**@name Methods to input a problem */
+ //@{
+ virtual void readAmplNlFile(char **& argv, Ipopt::SmartPtr<Bonmin::RegisteredOptions> roptions,
+ Ipopt::SmartPtr<Ipopt::OptionsList> options,
+ Ipopt::SmartPtr<Ipopt::Journalist> journalist,
+ std::string* nl_file_content = NULL);
+ //@}
+ /** Copy constructor */
+ AmplInterface(const AmplInterface &other);
+ /// Clone
+ virtual OsiSolverInterface * clone(bool CopyData = true);
+
+ /// Destructor
+ virtual ~AmplInterface();
+
+
+ /** Fast access to AmplTMINLP */
+ const AmplTMINLP * amplModel() const
+ {
+ return GetRawPtr(amplTminlp_);
+ }
+ /** To set some application specific defaults. */
+ virtual void setAppDefaultOptions(Ipopt::SmartPtr<Ipopt::OptionsList> Options);
+
+ protected:
+ /** Read variables and row names in .col and .row files.*/
+ void readNames() ;
+
+ /** TMINLP problem (the original problem usually an AmplTMINLP).*/
+ Ipopt::SmartPtr<Bonmin::AmplTMINLP> amplTminlp_;
+
+ private:
+ /** Write the ampl solution file or write a bonmin one?*/
+ int writeAmplSolFile_;
+ };
+}
+#endif