Disable mip_test when no LP solver is available.
3 * This file is a part of LEMON, a generic C++ optimization library
5 * Copyright (C) 2003-2006
6 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
7 * (Egervary Research Group on Combinatorial Optimization, EGRES).
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.
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
19 #ifndef LEMON_ILP_GLPK_CC
20 #define LEMON_ILP_GLPK_CC
23 ///\brief Implementation of the LEMON-GLPK lp solver interface.
25 #include <lemon/mip_glpk.h>
30 lpx_set_class(lp,LPX_MIP);
33 void MipGlpk::_colType(int i, MipGlpk::ColTypes col_type){
36 lpx_set_col_kind(lp,i,LPX_IV);
39 lpx_set_col_kind(lp,i,LPX_CV);
46 MipGlpk::ColTypes MipGlpk::_colType(int i){
47 switch (lpx_get_col_kind(lp,i)){
49 return INTEGER;//Or binary
58 LpGlpk::SolveExitStatus MipGlpk::_solve(){
59 int result = lpx_simplex(lp);
60 result = lpx_integer(lp);
74 LpGlpk::SolutionStatus MipGlpk::_getMipStatus(){
76 //Meg kell nezni: ha az LP is infinite, akkor ez is, ha az is
77 //infeasible, akkor ez is, de ez lehet maskepp is infeasible.
78 int stat= lpx_mip_status(lp);
80 case LPX_I_UNDEF://Undefined (no solve has been run yet)
82 case LPX_I_NOFEAS://There is no feasible integral solution (primal, I guess)
84 // case LPX_UNBND://Unbounded
86 case LPX_I_FEAS://Feasible
88 case LPX_I_OPT://Feasible
91 return UNDEFINED; //to avoid gcc warning
96 MipGlpk::Value MipGlpk::_getPrimal(int i){
97 return lpx_mip_col_val(lp,i);
100 MipGlpk::Value MipGlpk::_getPrimalValue(){
101 return lpx_mip_obj_val(lp);
103 } //END OG NAMESPACE LEMON