cmake/FindGLPK.cmake
author Peter Kovacs <kpeter@inf.elte.hu>
Wed, 29 Apr 2009 03:15:24 +0200
changeset 640 6c408d864fa1
parent 473 17d918051964
child 627 20dac2104519
permissions -rw-r--r--
Support negative costs and bounds in NetworkSimplex (#270)

* The interface is reworked to support negative costs and bounds.
- ProblemType and problemType() are renamed to
SupplyType and supplyType(), see also #234.
- ProblemType type is introduced similarly to the LP interface.
- 'bool run()' is replaced by 'ProblemType run()' to handle
unbounded problem instances, as well.
- Add INF public member constant similarly to the LP interface.
* Remove capacityMap() and boundMaps(), see also #266.
* Update the problem definition in the MCF module.
* Remove the usage of Circulation (and adaptors) for checking feasibility.
Check feasibility by examining the artifical arcs instead (after solving
the problem).
* Additional check for unbounded negative cycles found during the
algorithm (it is possible now, since negative costs are allowed).
* Fix in the constructor (the value types needn't be integer any more),
see also #254.
* Improve and extend the doc.
* Rework the test file and add test cases for negative costs and bounds.
     1 SET(GLPK_REGKEY "[HKEY_LOCAL_MACHINE\\SOFTWARE\\GnuWin32\\Glpk;InstallPath]")
     2 GET_FILENAME_COMPONENT(GLPK_ROOT_PATH ${GLPK_REGKEY} ABSOLUTE)
     3 
     4 FIND_PATH(GLPK_INCLUDE_DIR
     5   glpk.h
     6   PATHS ${GLPK_REGKEY}/include)
     7 
     8 FIND_LIBRARY(GLPK_LIBRARY
     9   NAMES glpk
    10   PATHS ${GLPK_REGKEY}/lib)
    11 
    12 INCLUDE(FindPackageHandleStandardArgs)
    13 FIND_PACKAGE_HANDLE_STANDARD_ARGS(GLPK DEFAULT_MSG GLPK_LIBRARY GLPK_INCLUDE_DIR)
    14 
    15 IF(GLPK_FOUND)
    16   SET(GLPK_INCLUDE_DIRS ${GLPK_INCLUDE_DIR})
    17   SET(GLPK_LIBRARIES ${GLPK_LIBRARY})
    18   SET(GLPK_BIN_DIR ${GLPK_ROOT_PATH}/bin)
    19 ENDIF(GLPK_FOUND)
    20 
    21 MARK_AS_ADVANCED(GLPK_LIBRARY GLPK_INCLUDE_DIR GLPK_BIN_DIR)
    22 
    23 IF(GLPK_FOUND)
    24   SET(HAVE_LP TRUE)
    25   SET(HAVE_MIP TRUE)
    26   SET(HAVE_GLPK TRUE)
    27 ENDIF(GLPK_FOUND)