lemon/lp.h
author Balazs Dezso <deba@inf.elte.hu>
Tue, 02 Dec 2008 21:40:33 +0100
changeset 481 7afc121e0689
child 482 ed54c0d13df0
permissions -rw-r--r--
Port LP and MIP solvers from SVN -r3509 (#44)
     1 /* -*- mode: C++; indent-tabs-mode: nil; -*-
     2  *
     3  * This file is a part of LEMON, a generic C++ optimization library.
     4  *
     5  * Copyright (C) 2003-2008
     6  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
     7  * (Egervary Research Group on Combinatorial Optimization, EGRES).
     8  *
     9  * Permission to use, modify and distribute this software is granted
    10  * provided that this copyright notice appears in all copies. For
    11  * precise terms see the accompanying LICENSE file.
    12  *
    13  * This software is provided "AS IS" with no warranty of any kind,
    14  * express or implied, and with no claim as to its suitability for any
    15  * purpose.
    16  *
    17  */
    18 
    19 #ifndef LEMON_LP_H
    20 #define LEMON_LP_H
    21 
    22 #include<lemon/config.h>
    23 
    24 
    25 #ifdef HAVE_GLPK
    26 #include <lemon/lp_glpk.h>
    27 #include <lemon/mip_glpk.h>
    28 #elif HAVE_CPLEX
    29 #include <lemon/lp_cplex.h>
    30 #include <lemon/mip_cplex.h>
    31 #elif HAVE_SOPLEX
    32 #include <lemon/lp_soplex.h>
    33 #endif
    34 
    35 ///\file
    36 ///\brief Defines a default LP solver
    37 ///\ingroup lp_group
    38 namespace lemon {
    39 
    40 #ifdef DOXYGEN
    41   ///The default LP solver identifier
    42 
    43   ///The default LP solver identifier.
    44   ///\ingroup lp_group
    45   ///
    46   ///Currently, the possible values are \c GLPK or \c CPLEX
    47 #define DEFAULT_LP SOLVER
    48   ///The default LP solver
    49 
    50   ///The default LP solver.
    51   ///\ingroup lp_group
    52   ///
    53   ///Currently, it is either \c LpGlpk or \c LpCplex
    54   typedef LpGlpk Lp;
    55   ///The default LP solver identifier string
    56 
    57   ///The default LP solver identifier string.
    58   ///\ingroup lp_group
    59   ///
    60   ///Currently, the possible values are "GLPK" or "CPLEX"
    61   const char default_solver_name[]="SOLVER";
    62 
    63   ///The default ILP solver.
    64 
    65   ///The default ILP solver.
    66   ///\ingroup lp_group
    67   ///
    68   ///Currently, it is either \c LpGlpk or \c LpCplex
    69   typedef MipGlpk Mip;
    70 #else
    71 #ifdef HAVE_GLPK
    72 #define DEFAULT_LP GLPK
    73   typedef LpGlpk Lp;
    74   typedef MipGlpk Mip;
    75   const char default_solver_name[]="GLPK";
    76 #elif HAVE_CPLEX
    77 #define DEFAULT_LP CPLEX
    78   typedef LpCplex Lp;
    79   typedef MipCplex Mip;
    80   const char default_solver_name[]="CPLEX";
    81 #elif HAVE_SOPLEX
    82 #define DEFAULT_LP SOPLEX
    83   typedef LpSoplex Lp;
    84   const char default_solver_name[]="SOPLEX";
    85 #endif
    86 #endif
    87 
    88 } //namespace lemon
    89 
    90 #endif //LEMON_LP_H