cmake/FindCPLEX.cmake
author Peter Kovacs <kpeter@inf.elte.hu>
Fri, 13 Nov 2009 00:10:33 +0100
changeset 881 aef153f430e1
parent 682 89705c452130
child 1119 1818cc848005
permissions -rw-r--r--
Entirely rework cycle canceling algorithms (#180)

- Move the cycle canceling algorithms (CycleCanceling, CancelAndTighten)
into one class (CycleCanceling).
- Add a Method parameter to the run() function to be able to select
the used cycle canceling method.
- Use the new interface similarly to NetworkSimplex.
- Rework the implementations using an efficient internal structure
for handling the residual network.
This improvement made the codes much faster.
- Handle GEQ supply type (LEQ is not supported).
- Handle infinite upper bounds.
- Handle negative costs (for arcs of finite upper bound).
- Extend the documentation.
ladanyi@682
     1
SET(CPLEX_ROOT_DIR "" CACHE PATH "CPLEX root directory")
ladanyi@682
     2
ladanyi@667
     3
FIND_PATH(CPLEX_INCLUDE_DIR
ladanyi@667
     4
  ilcplex/cplex.h
ladanyi@682
     5
  PATHS "C:/ILOG/CPLEX91/include"
ladanyi@682
     6
  PATHS "/opt/ilog/cplex91/include"
ladanyi@682
     7
  HINTS ${CPLEX_ROOT_DIR}/include
ladanyi@682
     8
)
ladanyi@667
     9
FIND_LIBRARY(CPLEX_LIBRARY
ladanyi@682
    10
  cplex91
ladanyi@682
    11
  PATHS "C:/ILOG/CPLEX91/lib/msvc7/stat_mda"
ladanyi@682
    12
  PATHS "/opt/ilog/cplex91/bin"
ladanyi@682
    13
  HINTS ${CPLEX_ROOT_DIR}/bin
ladanyi@682
    14
)
ladanyi@667
    15
ladanyi@667
    16
INCLUDE(FindPackageHandleStandardArgs)
ladanyi@667
    17
FIND_PACKAGE_HANDLE_STANDARD_ARGS(CPLEX DEFAULT_MSG CPLEX_LIBRARY CPLEX_INCLUDE_DIR)
ladanyi@667
    18
ladanyi@667
    19
FIND_PATH(CPLEX_BIN_DIR
ladanyi@667
    20
  cplex91.dll
ladanyi@682
    21
  PATHS "C:/ILOG/CPLEX91/bin/x86_win32"
ladanyi@682
    22
)
ladanyi@667
    23
ladanyi@667
    24
IF(CPLEX_FOUND)
ladanyi@667
    25
  SET(CPLEX_INCLUDE_DIRS ${CPLEX_INCLUDE_DIR})
ladanyi@667
    26
  SET(CPLEX_LIBRARIES ${CPLEX_LIBRARY})
ladanyi@683
    27
  IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
ladanyi@683
    28
    SET(CPLEX_LIBRARIES "${CPLEX_LIBRARIES};m;pthread")
ladanyi@683
    29
  ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
ladanyi@667
    30
ENDIF(CPLEX_FOUND)
ladanyi@667
    31
ladanyi@667
    32
MARK_AS_ADVANCED(CPLEX_LIBRARY CPLEX_INCLUDE_DIR CPLEX_BIN_DIR)
ladanyi@667
    33
ladanyi@667
    34
IF(CPLEX_FOUND)
ladanyi@674
    35
  SET(LEMON_HAVE_LP TRUE)
ladanyi@674
    36
  SET(LEMON_HAVE_MIP TRUE)
ladanyi@674
    37
  SET(LEMON_HAVE_CPLEX TRUE)
ladanyi@667
    38
ENDIF(CPLEX_FOUND)