gravatar
alpar (Alpar Juttner)
alpar@cs.elte.hu
Merge LP interface updates
0 4 0
merge default
2 files changed with 33 insertions and 25 deletions:
↑ Collapse diff ↑
Show white space 12 line context
... ...
@@ -51,12 +51,23 @@
51 51
FIND_LIBRARY(COIN_VOL_LIBRARY
52 52
  NAMES Vol libVol
53 53
  HINTS ${COIN_ROOT_DIR}/lib/coin
54 54
  HINTS ${COIN_ROOT_DIR}/lib
55 55
)
56 56

	
57
FIND_LIBRARY(COIN_ZLIB_LIBRARY
58
  NAMES z libz
59
  HINTS ${COIN_ROOT_DIR}/lib/coin
60
  HINTS ${COIN_ROOT_DIR}/lib
61
)
62
FIND_LIBRARY(COIN_BZ2_LIBRARY
63
  NAMES bz2 libbz2
64
  HINTS ${COIN_ROOT_DIR}/lib/coin
65
  HINTS ${COIN_ROOT_DIR}/lib
66
)
67

	
57 68
INCLUDE(FindPackageHandleStandardArgs)
58 69
FIND_PACKAGE_HANDLE_STANDARD_ARGS(COIN DEFAULT_MSG
59 70
  COIN_INCLUDE_DIR
60 71
  COIN_CBC_LIBRARY
61 72
  COIN_CBC_SOLVER_LIBRARY
62 73
  COIN_CGL_LIBRARY
... ...
@@ -68,15 +79,21 @@
68 79
  # COIN_OSI_VOL_LIBRARY
69 80
  # COIN_VOL_LIBRARY
70 81
)
71 82

	
72 83
IF(COIN_FOUND)
73 84
  SET(COIN_INCLUDE_DIRS ${COIN_INCLUDE_DIR})
74
  SET(COIN_LIBRARIES "${COIN_CBC_LIBRARY};${COIN_CBC_SOLVER_LIBRARY};${COIN_CGL_LIBRARY};${COIN_CLP_LIBRARY};${COIN_COIN_UTILS_LIBRARY};${COIN_OSI_LIBRARY};${COIN_OSI_CBC_LIBRARY};${COIN_OSI_CLP_LIBRARY}")
75
  SET(COIN_CLP_LIBRARIES "${COIN_CLP_LIBRARY};${COIN_COIN_UTILS_LIBRARY}")
76
  SET(COIN_CBC_LIBRARIES ${COIN_LIBRARIES})
85
  SET(COIN_CLP_LIBRARIES "${COIN_CLP_LIBRARY};${COIN_COIN_UTILS_LIBRARY};${COIN_ZLIB_LIBRARY};${COIN_BZ2_LIBRARY}")
86
  IF(COIN_ZLIB_LIBRARY)
87
    SET(COIN_CLP_LIBRARIES "${COIN_CLP_LIBRARIES};${COIN_ZLIB_LIBRARY}")
88
  ENDIF(COIN_ZLIB_LIBRARY)
89
   IF(COIN_BZ2_LIBRARY)
90
    SET(COIN_CLP_LIBRARIES "${COIN_CLP_LIBRARIES};${COIN_BZ2_LIBRARY}")
91
  ENDIF(COIN_BZ2_LIBRARY)
92
  SET(COIN_CBC_LIBRARIES "${COIN_CBC_LIBRARY};${COIN_CBC_SOLVER_LIBRARY};${COIN_CGL_LIBRARY};${COIN_OSI_LIBRARY};${COIN_OSI_CBC_LIBRARY};${COIN_OSI_CLP_LIBRARY};${COIN_ZLIB_LIBRARY};${COIN_BZ2_LIBRARY};${COIN_CLP_LIBRARIES}")
93
  SET(COIN_LIBRARIES ${COIN_CBC_LIBRARIES})
77 94
ENDIF(COIN_FOUND)
78 95

	
79 96
MARK_AS_ADVANCED(
80 97
  COIN_INCLUDE_DIR
81 98
  COIN_CBC_LIBRARY
82 99
  COIN_CBC_SOLVER_LIBRARY
... ...
@@ -85,12 +102,14 @@
85 102
  COIN_COIN_UTILS_LIBRARY
86 103
  COIN_OSI_LIBRARY
87 104
  COIN_OSI_CBC_LIBRARY
88 105
  COIN_OSI_CLP_LIBRARY
89 106
  COIN_OSI_VOL_LIBRARY
90 107
  COIN_VOL_LIBRARY
108
  COIN_ZLIB_LIBRARY
109
  COIN_BZ2_LIBRARY
91 110
)
92 111

	
93 112
IF(COIN_FOUND)
94 113
  SET(LEMON_HAVE_LP TRUE)
95 114
  SET(LEMON_HAVE_MIP TRUE)
96 115
  SET(LEMON_HAVE_CLP TRUE)
Show white space 12 line context
1 1
SET(CPLEX_ROOT_DIR "" CACHE PATH "CPLEX root directory")
2 2

	
3 3
FIND_PATH(CPLEX_INCLUDE_DIR
4 4
  ilcplex/cplex.h
5
  PATHS "C:/ILOG/CPLEX91/include"
6
  PATHS "/opt/ilog/cplex91/include"
5
  PATHS "C:/ILOG/CPLEX/include"
6
  PATHS "/opt/ilog/cplex/include"
7 7
  HINTS ${CPLEX_ROOT_DIR}/include
8 8
)
9 9
FIND_LIBRARY(CPLEX_LIBRARY
10
  cplex91
11
  PATHS "C:/ILOG/CPLEX91/lib/msvc7/stat_mda"
12
  PATHS "/opt/ilog/cplex91/bin"
10
  cplex
11
  PATHS "C:/ILOG/CPLEX/lib/msvc7/stat_mda"
12
  PATHS "/opt/ilog/cplex/bin"
13 13
  HINTS ${CPLEX_ROOT_DIR}/bin
14
  HINTS ${CPLEX_ROOT_DIR}/lib
14 15
)
15 16

	
16 17
INCLUDE(FindPackageHandleStandardArgs)
17 18
FIND_PACKAGE_HANDLE_STANDARD_ARGS(CPLEX DEFAULT_MSG CPLEX_LIBRARY CPLEX_INCLUDE_DIR)
18 19

	
19 20
FIND_PATH(CPLEX_BIN_DIR
20
  cplex91.dll
21
  PATHS "C:/ILOG/CPLEX91/bin/x86_win32"
21
  cplex.dll
22
  PATHS "C:/ILOG/CPLEX/bin/x86_win32"
23
  HINTS ${CPLEX_ROOT_DIR}/bin
22 24
)
23 25

	
24 26
IF(CPLEX_FOUND)
25 27
  SET(CPLEX_INCLUDE_DIRS ${CPLEX_INCLUDE_DIR})
26 28
  SET(CPLEX_LIBRARIES ${CPLEX_LIBRARY})
27 29
  IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
Show white space 12 line context
... ...
@@ -22,18 +22,13 @@
22 22
#include "cbc.h"
23 23

	
24 24
#include <coin/CoinModel.hpp>
25 25
#include <coin/CbcModel.hpp>
26 26
#include <coin/OsiSolverInterface.hpp>
27 27

	
28
#ifdef COIN_HAS_CLP
29 28
#include "coin/OsiClpSolverInterface.hpp"
30
#endif
31
#ifdef COIN_HAS_OSL
32
#include "coin/OsiOslSolverInterface.hpp"
33
#endif
34 29

	
35 30
#include "coin/CbcCutGenerator.hpp"
36 31
#include "coin/CbcHeuristicLocal.hpp"
37 32
#include "coin/CbcHeuristicGreedy.hpp"
38 33
#include "coin/CbcHeuristicFPump.hpp"
39 34
#include "coin/CbcHeuristicRINS.hpp"
... ...
@@ -267,19 +262,13 @@
267 262

	
268 263
  CbcMip::SolveExitStatus CbcMip::_solve() {
269 264

	
270 265
    if (_osi_solver) {
271 266
      delete _osi_solver;
272 267
    }
273
#ifdef COIN_HAS_CLP
274 268
    _osi_solver = new OsiClpSolverInterface();
275
#elif COIN_HAS_OSL
276
    _osi_solver = new OsiOslSolverInterface();
277
#else
278
#error Cannot instantiate Osi solver
279
#endif
280 269

	
281 270
    _osi_solver->loadFromCoinModel(*_prob);
282 271

	
283 272
    if (_cbc_model) {
284 273
      delete _cbc_model;
285 274
    }
... ...
@@ -325,19 +314,17 @@
325 314
      CglMixedIntegerRounding mixedGen;
326 315
      _cbc_model->addCutGenerator(&mixedGen, -1, "MixedIntegerRounding");
327 316

	
328 317
      CglFlowCover flowGen;
329 318
      _cbc_model->addCutGenerator(&flowGen, -1, "FlowCover");
330 319

	
331
#ifdef COIN_HAS_CLP
332 320
      OsiClpSolverInterface* osiclp =
333 321
        dynamic_cast<OsiClpSolverInterface*>(_cbc_model->solver());
334 322
      if (osiclp->getNumRows() < 300 && osiclp->getNumCols() < 500) {
335 323
        osiclp->setupForRepeatedUse(2, 0);
336 324
      }
337
#endif
338 325

	
339 326
      CbcRounding heuristic1(*_cbc_model);
340 327
      heuristic1.setWhen(3);
341 328
      _cbc_model->addHeuristic(&heuristic1);
342 329

	
343 330
      CbcHeuristicLocal heuristic2(*_cbc_model);
Show white space 12 line context
... ...
@@ -86,13 +86,13 @@
86 86
  ENDIF()
87 87

	
88 88
  IF(WIN32 AND LEMON_HAVE_CPLEX)
89 89
    GET_TARGET_PROPERTY(TARGET_LOC lp_test LOCATION)
90 90
    GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
91 91
    ADD_CUSTOM_COMMAND(TARGET lp_test POST_BUILD
92
      COMMAND ${CMAKE_COMMAND} -E copy ${CPLEX_BIN_DIR}/cplex91.dll ${TARGET_PATH}
92
      COMMAND ${CMAKE_COMMAND} -E copy ${CPLEX_BIN_DIR}/cplex.dll ${TARGET_PATH}
93 93
    )
94 94
  ENDIF()
95 95
ENDIF()
96 96

	
97 97
IF(LEMON_HAVE_MIP)
98 98
  IF(${CMAKE_BUILD_TYPE} STREQUAL "Maintainer")
... ...
@@ -128,13 +128,13 @@
128 128
  ENDIF()
129 129

	
130 130
  IF(WIN32 AND LEMON_HAVE_CPLEX)
131 131
    GET_TARGET_PROPERTY(TARGET_LOC mip_test LOCATION)
132 132
    GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
133 133
    ADD_CUSTOM_COMMAND(TARGET mip_test POST_BUILD
134
      COMMAND ${CMAKE_COMMAND} -E copy ${CPLEX_BIN_DIR}/cplex91.dll ${TARGET_PATH}
134
      COMMAND ${CMAKE_COMMAND} -E copy ${CPLEX_BIN_DIR}/cplex.dll ${TARGET_PATH}
135 135
    )
136 136
  ENDIF()
137 137
ENDIF()
138 138

	
139 139
FOREACH(TEST_NAME ${TESTS})
140 140
  IF(${CMAKE_BUILD_TYPE} STREQUAL "Maintainer")
0 comments (0 inline)