alpar@1610: /* -*- C++ -*-
alpar@1610:  *
alpar@1956:  * This file is a part of LEMON, a generic C++ optimization library
alpar@1956:  *
alpar@2391:  * Copyright (C) 2003-2007
alpar@1956:  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
alpar@1610:  * (Egervary Research Group on Combinatorial Optimization, EGRES).
alpar@1610:  *
alpar@1610:  * Permission to use, modify and distribute this software is granted
alpar@1610:  * provided that this copyright notice appears in all copies. For
alpar@1610:  * precise terms see the accompanying LICENSE file.
alpar@1610:  *
alpar@1610:  * This software is provided "AS IS" with no warranty of any kind,
alpar@1610:  * express or implied, and with no claim as to its suitability for any
alpar@1610:  * purpose.
alpar@1610:  *
alpar@1610:  */
alpar@1610: 
alpar@1610: #ifndef LEMON_LP_H
alpar@1610: #define LEMON_LP_H
alpar@1610: 
alpar@1610: #include<lemon/config.h>
alpar@1610: 
athos@2218: 
alpar@1610: #ifdef HAVE_GLPK
alpar@1610: #include <lemon/lp_glpk.h>
athos@2144: #include <lemon/mip_glpk.h>
alpar@1610: #elif HAVE_CPLEX
alpar@1610: #include <lemon/lp_cplex.h>
athos@2218: #include <lemon/mip_cplex.h>
deba@2312: #elif HAVE_SOPLEX
deba@2312: #include <lemon/lp_soplex.h>
alpar@1610: #endif
alpar@1610: 
alpar@1610: ///\file
alpar@1610: ///\brief Defines a default LP solver
deba@2370: ///\ingroup lp_group
alpar@1610: namespace lemon {
athos@2218: 
alpar@1610: #ifdef DOXYGEN
alpar@1610:   ///The default LP solver identifier
alpar@1610: 
alpar@1610:   ///The default LP solver identifier.
deba@2370:   ///\ingroup lp_group
alpar@1610:   ///
alpar@1610:   ///Currently, the possible values are \c GLPK or \c CPLEX
alpar@1610: #define DEFAULT_LP SOLVER
alpar@1610:   ///The default LP solver
alpar@1610: 
alpar@1610:   ///The default LP solver.
deba@2370:   ///\ingroup lp_group
alpar@1610:   ///
alpar@1610:   ///Currently, it is either \c LpGlpk or \c LpCplex
alpar@1610:   typedef LpGlpk Lp;
alpar@1610:   ///The default LP solver identifier string
alpar@1610: 
alpar@1610:   ///The default LP solver identifier string.
deba@2370:   ///\ingroup lp_group
alpar@1610:   ///
alpar@1610:   ///Currently, the possible values are "GLPK" or "CPLEX"
alpar@1610:   const char default_solver_name[]="SOLVER";  
athos@2144: 
athos@2144:   ///The default ILP solver.
athos@2144: 
athos@2144:   ///The default ILP solver.
deba@2370:   ///\ingroup lp_group
athos@2144:   ///
athos@2144:   ///Currently, it is either \c LpGlpk or \c LpCplex
athos@2144:   typedef MipGlpk Mip;
alpar@1610: #else
alpar@1610: #ifdef HAVE_GLPK
alpar@1610: #define DEFAULT_LP GLPK
alpar@1610:   typedef LpGlpk Lp;
athos@2144:   typedef MipGlpk Mip;
alpar@1610:   const char default_solver_name[]="GLPK";
alpar@1610: #elif HAVE_CPLEX
alpar@1610: #define DEFAULT_LP CPLEX
alpar@1610:   typedef LpCplex Lp;
athos@2218:   typedef MipCplex Mip;
alpar@1610:   const char default_solver_name[]="CPLEX";
deba@2312: #elif HAVE_SOPLEX
deba@2312: #define DEFAULT_LP SOPLEX
deba@2312:   typedef LpSoplex Lp;
deba@2312:   const char default_solver_name[]="SOPLEX";
alpar@1610: #endif
alpar@1610: #endif
alpar@1610:  
alpar@1610: } //namespace lemon
alpar@1610: 
athos@2221: #endif //LEMON_LP_H