Index: gtags
===================================================================
--- .hgtags	(revision 1283)
+++ 	(revision )
@@ -1,1 +1,0 @@
-57ab090b6109902536ee34b1e8d4d123474311e3 r1.3
Index: CMakeLists.txt
===================================================================
--- CMakeLists.txt	(revision 1264)
+++ CMakeLists.txt	(revision 1185)
@@ -62,73 +62,7 @@
 FIND_PACKAGE(Doxygen)
 FIND_PACKAGE(Ghostscript)
-
-SET(LEMON_ENABLE_GLPK YES CACHE STRING "Enable GLPK solver backend.")
-SET(LEMON_ENABLE_ILOG YES CACHE STRING "Enable ILOG (CPLEX) solver backend.")
-SET(LEMON_ENABLE_COIN YES CACHE STRING "Enable COIN solver backend.")
-SET(LEMON_ENABLE_SOPLEX YES CACHE STRING "Enable SoPlex solver backend.")
-
-IF(LEMON_ENABLE_GLPK) 
-  FIND_PACKAGE(GLPK 4.33)
-ENDIF(LEMON_ENABLE_GLPK)
-IF(LEMON_ENABLE_ILOG)
-  FIND_PACKAGE(ILOG)
-ENDIF(LEMON_ENABLE_ILOG)
-IF(LEMON_ENABLE_COIN)
-  FIND_PACKAGE(COIN)
-ENDIF(LEMON_ENABLE_COIN)
-IF(LEMON_ENABLE_SOPLEX)
-  FIND_PACKAGE(SOPLEX)
-ENDIF(LEMON_ENABLE_SOPLEX)
-
-IF(GLPK_FOUND)
-  SET(LEMON_HAVE_LP TRUE)
-  SET(LEMON_HAVE_MIP TRUE)
-  SET(LEMON_HAVE_GLPK TRUE)
-ENDIF(GLPK_FOUND)
-IF(ILOG_FOUND)
-  SET(LEMON_HAVE_LP TRUE)
-  SET(LEMON_HAVE_MIP TRUE)
-  SET(LEMON_HAVE_CPLEX TRUE)
-ENDIF(ILOG_FOUND)
-IF(COIN_FOUND)
-  SET(LEMON_HAVE_LP TRUE)
-  SET(LEMON_HAVE_MIP TRUE)
-  SET(LEMON_HAVE_CLP TRUE)
-  SET(LEMON_HAVE_CBC TRUE)
-ENDIF(COIN_FOUND)
-IF(SOPLEX_FOUND)
-  SET(LEMON_HAVE_LP TRUE)
-  SET(LEMON_HAVE_SOPLEX TRUE)
-ENDIF(SOPLEX_FOUND)
-
-IF(ILOG_FOUND)
-  SET(DEFAULT_LP "CPLEX")
-  SET(DEFAULT_MIP "CPLEX")
-ELSEIF(COIN_FOUND)
-  SET(DEFAULT_LP "CLP")
-  SET(DEFAULT_MIP "CBC")
-ELSEIF(GLPK_FOUND)
-  SET(DEFAULT_LP "GLPK")
-  SET(DEFAULT_MIP "GLPK")
-ELSEIF(SOPLEX_FOUND)
-  SET(DEFAULT_LP "SOPLEX")
-ENDIF()
-
-IF(NOT LEMON_DEFAULT_LP OR
-    (NOT ILOG_FOUND AND (LEMON_DEFAULT_LP STREQUAL "CPLEX")) OR
-    (NOT COIN_FOUND AND (LEMON_DEFAULT_LP STREQUAL "CLP")) OR
-    (NOT GLPK_FOUND AND (LEMON_DEFAULT_LP STREQUAL "GLPK")) OR
-    (NOT SOPLEX_FOUND AND (LEMON_DEFAULT_LP STREQUAL "SOPLEX")))
-  SET(LEMON_DEFAULT_LP ${DEFAULT_LP} CACHE STRING
-    "Default LP solver backend (GLPK, CPLEX, CLP or SOPLEX)" FORCE)
-ENDIF()
-IF(NOT LEMON_DEFAULT_MIP OR
-    (NOT ILOG_FOUND AND (LEMON_DEFAULT_MIP STREQUAL "CPLEX")) OR
-    (NOT COIN_FOUND AND (LEMON_DEFAULT_MIP STREQUAL "CBC")) OR
-    (NOT GLPK_FOUND AND (LEMON_DEFAULT_MIP STREQUAL "GLPK")))
-  SET(LEMON_DEFAULT_MIP ${DEFAULT_MIP} CACHE STRING
-    "Default MIP solver backend (GLPK, CPLEX or CBC)" FORCE)
-ENDIF()
-
+FIND_PACKAGE(GLPK 4.33)
+FIND_PACKAGE(CPLEX)
+FIND_PACKAGE(COIN)
 
 IF(DEFINED ENV{LEMON_CXX_WARNING})
Index: INSTALL
===================================================================
--- INSTALL	(revision 1233)
+++ INSTALL	(revision 1208)
@@ -135,27 +135,9 @@
 
   
--DLEMON_ENABLE_GLPK=NO
--DLEMON_ENABLE_COIN=NO
--DLEMON_ENABLE_ILOG=NO
-
-  Enable optional third party libraries. They are all enabled by default. 
-
--DLEMON_DEFAULT_LP=GLPK
-
-  Sets the default LP solver backend. The supported values are
-  CPLEX, CLP and GLPK. By default, it is set to the first one which
-  is enabled and succesfully discovered.
-
--DLEMON_DEFAULT_MIP=GLPK
-
-  Sets the default MIP solver backend. The supported values are
-  CPLEX, CBC and GLPK. By default, it is set to the first one which
-  is enabled and succesfully discovered.
-
 -DGLPK_ROOT_DIR=DIRECTORY
 -DCOIN_ROOT_DIR=DIRECTORY
--DILOG_ROOT_DIR=DIRECTORY
+-DCPLEX_ROOT_DIR=DIRECTORY
 
-  Root directory prefixes of optional third party libraries.
+  Install root directory prefixes of optional third party libraries.
 
 Makefile Variables
Index: NEWS
===================================================================
--- NEWS	(revision 1281)
+++ NEWS	(revision 962)
@@ -1,100 +1,2 @@
-2013-08-10 Version 1.3 released
-
-        This is major feature release
-
-        * New data structures
-
-          #69 : Bipartite graph concepts and implementations
-
-        * New algorithms
-
-          #177: Port Edmonds-Karp algorithm
-          #380, #405: Heuristic algorithm for the max clique problem
-          #386: Heuristic algorithms for symmetric TSP
-          ----: Nagamochi-Ibaraki algorithm [5087694945e4]
-          #397, #56: Max. cardinality search
-
-        * Other new features
-
-          #223: Thread safe graph and graph map implementations
-          #442: Different TimeStamp print formats
-          #457: File export functionality to LpBase
-          #362: Bidirectional iterator support for radixSort()
-
-        * Implementation improvements
-
-          ----: Network Simplex
-                #391: Better update process, pivot rule and arc mixing
-                #435: Improved Altering List pivot rule
-          #417: Various fine tunings in CostScaling
-          #438: Optional iteration limit in HowardMmc
-          #436: Ensure strongly polynomial running time for CycleCanceling
-                while keeping the same performance
-          ----: Make the CBC interface be compatible with latest CBC releases
-                [ee581a0ecfbf]
-
-        * CMAKE has become the default build environment (#434)
-
-          ----: Autotool support has been dropped
-          ----: Improved LP/MIP configuration
-                #465: Enable/disable options for LP/MIP backends
-                #446: Better CPLEX discovery
-                #460: Add cmake config to find SoPlex
-          ----: Allow CPACK configuration on all platforms
-          #390: Add 'Maintainer' CMAKE build type
-          #388: Add 'check' target.
-          #401: Add contrib dir
-          #389: Better version string setting in CMAKE
-          #433: Support shared library build    
-          #416: Support testing with valgrind
-  
-        * Doc improvements
-
-          #395: SOURCE_BROWSER Doxygen switch is configurable from CMAKE
-                update-external-tags CMAKE target
-          #455: Optionally use MathJax for rendering the math formulae
-          #402, #437, #459, #456, #463: Various doc improvements
-
-        * Bugfixes (compared to release 1.2):
-
-          #432: Add missing doc/template.h and doc/references.bib to release
-                tarball
-          ----: Intel C++ compatibility fixes
-          #441: Fix buggy reinitialization in _solver_bits::VarIndex::clear()
-          #444: Bugfix in path copy constructors and assignment operators
-          #447: Bugfix in AllArcLookUp<>
-          #448: Bugfix in adaptor_test.cc
-          #449: Fix clang compilation warnings and errors
-          #440: Fix a bug + remove redundant typedefs in dimacs-solver
-          #453: Avoid GCC 4.7 compiler warnings
-          #445: Fix missing initialization in CplexEnv::CplexEnv()
-          #428: Add missing lemon/lemon.pc.cmake to the release tarball
-          #393: Create and install lemon.pc
-          #429: Fix VS warnings
-          #430: Fix LpBase::Constr two-side limit bug
-          #392: Bug fix in Dfs::start(s,t)
-          #414: Fix wrong initialization in Preflow
-          #418: Better Win CodeBlock/MinGW support
-          #419: Build environment improvements
-                - Build of mip_test and lp_test precede the running of the tests
-                - Also search for coin libs under ${COIN_ROOT_DIR}/lib/coin
-                - Do not look for COIN_VOL libraries
-          #382: Allow lgf file without Arc maps
-          #417: Bug fix in CostScaling
-          #366: Fix Pred[Matrix]MapPath::empty()
-          #371: Bug fix in (di)graphCopy()
-                The target graph is cleared before adding nodes and arcs/edges.
-          #364: Add missing UndirectedTags
-          #368: Fix the usage of std::numeric_limits<>::min() in Network Simplex
-          #372: Fix a critical bug in preflow
-          #461: Bugfix in assert.h
-          #470: Fix compilation issues related to various gcc versions
-          #446: Fix #define indicating CPLEX availability
-          #294: Add explicit namespace to
-                ignore_unused_variable_warning() usages
-          #420: Bugfix in IterableValueMap
-          #439: Bugfix in biNodeConnected()
-
-
 2010-03-19 Version 1.2 released
 
Index: cmake/FindCOIN.cmake
===================================================================
--- cmake/FindCOIN.cmake	(revision 1232)
+++ cmake/FindCOIN.cmake	(revision 1120)
@@ -109,2 +109,9 @@
   COIN_BZ2_LIBRARY
 )
+
+IF(COIN_FOUND)
+  SET(LEMON_HAVE_LP TRUE)
+  SET(LEMON_HAVE_MIP TRUE)
+  SET(LEMON_HAVE_CLP TRUE)
+  SET(LEMON_HAVE_CBC TRUE)
+ENDIF(COIN_FOUND)
Index: cmake/FindCPLEX.cmake
===================================================================
--- cmake/FindCPLEX.cmake	(revision 1119)
+++ cmake/FindCPLEX.cmake	(revision 1119)
@@ -0,0 +1,40 @@
+SET(CPLEX_ROOT_DIR "" CACHE PATH "CPLEX root directory")
+
+FIND_PATH(CPLEX_INCLUDE_DIR
+  ilcplex/cplex.h
+  PATHS "C:/ILOG/CPLEX/include"
+  PATHS "/opt/ilog/cplex/include"
+  HINTS ${CPLEX_ROOT_DIR}/include
+)
+FIND_LIBRARY(CPLEX_LIBRARY
+  cplex
+  PATHS "C:/ILOG/CPLEX/lib/msvc7/stat_mda"
+  PATHS "/opt/ilog/cplex/bin"
+  HINTS ${CPLEX_ROOT_DIR}/bin
+  HINTS ${CPLEX_ROOT_DIR}/lib
+)
+
+INCLUDE(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(CPLEX DEFAULT_MSG CPLEX_LIBRARY CPLEX_INCLUDE_DIR)
+
+FIND_PATH(CPLEX_BIN_DIR
+  cplex.dll
+  PATHS "C:/ILOG/CPLEX/bin/x86_win32"
+  HINTS ${CPLEX_ROOT_DIR}/bin
+)
+
+IF(CPLEX_FOUND)
+  SET(CPLEX_INCLUDE_DIRS ${CPLEX_INCLUDE_DIR})
+  SET(CPLEX_LIBRARIES ${CPLEX_LIBRARY})
+  IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+    SET(CPLEX_LIBRARIES "${CPLEX_LIBRARIES};m;pthread")
+  ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ENDIF(CPLEX_FOUND)
+
+MARK_AS_ADVANCED(CPLEX_LIBRARY CPLEX_INCLUDE_DIR CPLEX_BIN_DIR)
+
+IF(CPLEX_FOUND)
+  SET(LEMON_HAVE_LP TRUE)
+  SET(LEMON_HAVE_MIP TRUE)
+  SET(LEMON_HAVE_CPLEX TRUE)
+ENDIF(CPLEX_FOUND)
Index: cmake/FindGLPK.cmake
===================================================================
--- cmake/FindGLPK.cmake	(revision 1232)
+++ cmake/FindGLPK.cmake	(revision 685)
@@ -54,2 +54,8 @@
 
 MARK_AS_ADVANCED(GLPK_LIBRARY GLPK_INCLUDE_DIR GLPK_BIN_DIR)
+
+IF(GLPK_FOUND)
+  SET(LEMON_HAVE_LP TRUE)
+  SET(LEMON_HAVE_MIP TRUE)
+  SET(LEMON_HAVE_GLPK TRUE)
+ENDIF(GLPK_FOUND)
Index: ake/FindILOG.cmake
===================================================================
--- cmake/FindILOG.cmake	(revision 1232)
+++ 	(revision )
@@ -1,102 +1,0 @@
-FIND_PATH(ILOG_ROOT_DIR
-  NAMES cplex
-  DOC "CPLEX STUDIO root directory"
-  PATHS /opt/ibm/ILOG /usr/local/ibm/ILOG /usr/local/ILOG /usr/local/ilog
-  PATHS "$ENV{HOME}/ILOG" "$ENV{HOME}/.local/ILOG"
-  PATHS "$ENV{HOME}/ibm/ILOG" "$ENV{HOME}/.local/ibm/ILOG"
-  PATHS "C:/Program Files/IBM/ILOG" 
-  PATH_SUFFIXES "CPLEX_Studio126" "CPLEX_Studio125"
-  "CPLEX_Studio124" "CPLEX_Studio123" "CPLEX_Studio122"
-  NO_DEFAULT_PATH
-)
-
-IF(WIN32)
-  IF(MSVC_VERSION STREQUAL "1400")
-    SET(ILOG_WIN_COMPILER "windows_vs2005")
-  ELSEIF(MSVC_VERSION STREQUAL "1500")
-    SET(ILOG_WIN_COMPILER "windows_vs2008")
-  ELSEIF(MSVC_VERSION STREQUAL "1600")
-    SET(ILOG_WIN_COMPILER "windows_vs2010")
-  ELSE()
-    SET(ILOG_WIN_COMPILER "windows_vs2008")
-  ENDIF()
-  IF(CMAKE_CL_64)
-    SET(ILOG_WIN_COMPILER "x64_${ILOG_WIN_COMPILER}")
-    SET(ILOG_WIN_PLATFORM "x64_win32")
-  ELSE()
-    SET(ILOG_WIN_COMPILER "x86_${ILOG_WIN_COMPILER}")
-    SET(ILOG_WIN_PLATFORM "x86_win32")
-  ENDIF()
-ENDIF()
-
-FIND_PATH(ILOG_CPLEX_ROOT_DIR
-  NAMES include/ilcplex
-  HINTS ${ILOG_ROOT_DIR}/cplex ${ILOG_ROOT_DIR}/cplex121
-  ${ILOG_ROOT_DIR}/cplex122 ${ILOG_ROOT_DIR}/cplex123
-  DOC "CPLEX root directory"
-  NO_DEFAULT_PATH
-)
-
-FIND_PATH(ILOG_CONCERT_ROOT_DIR
-  NAMES include/ilconcert
-  HINTS ${ILOG_ROOT_DIR}/concert ${ILOG_ROOT_DIR}/concert29
-  DOC "CONCERT root directory"
-  NO_DEFAULT_PATH
-)
-
-FIND_PATH(ILOG_CPLEX_INCLUDE_DIR
-  ilcplex/cplex.h
-  HINTS ${ILOG_CPLEX_ROOT_DIR}/include
-  NO_DEFAULT_PATH
-)
-
-FIND_PATH(ILOG_CONCERT_INCLUDE_DIR
-  ilconcert/ilobasic.h
-  HINTS ${ILOG_CONCERT_ROOT_DIR}/include
-  NO_DEFAULT_PATH
-)
-
-FIND_LIBRARY(ILOG_CPLEX_LIBRARY
-  cplex cplex121 cplex122 cplex123 cplex124
-  HINTS ${ILOG_CPLEX_ROOT_DIR}/lib/x86_sles10_4.1/static_pic
-  ${ILOG_CPLEX_ROOT_DIR}/lib/x86-64_sles10_4.1/static_pic
-  ${ILOG_CPLEX_ROOT_DIR}/lib/x86_debian4.0_4.1/static_pic
-  ${ILOG_CPLEX_ROOT_DIR}/lib/x86-64_debian4.0_4.1/static_pic
-  ${ILOG_CPLEX_ROOT_DIR}/lib/${ILOG_WIN_COMPILER}/stat_mda
-  NO_DEFAULT_PATH
-  )
-
-FIND_LIBRARY(ILOG_CONCERT_LIBRARY
-  concert
-  HINTS ${ILOG_CONCERT_ROOT_DIR}/lib/x86_sles10_4.1/static_pic
-  ${ILOG_CONCERT_ROOT_DIR}/lib/x86-64_sles10_4.1/static_pic
-  ${ILOG_CONCERT_ROOT_DIR}/lib/x86_debian4.0_4.1/static_pic
-  ${ILOG_CONCERT_ROOT_DIR}/lib/x86-64_debian4.0_4.1/static_pic
-  ${ILOG_CONCERT_ROOT_DIR}/lib/${ILOG_WIN_COMPILER}/stat_mda
-  NO_DEFAULT_PATH
-  )
-
-FIND_FILE(ILOG_CPLEX_DLL
-  cplex121.dll cplex122.dll cplex123.dll cplex124.dll
-  HINTS ${ILOG_CPLEX_ROOT_DIR}/bin/${ILOG_WIN_PLATFORM}
-  NO_DEFAULT_PATH
-  )
-
-INCLUDE(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(ILOG
-  DEFAULT_MSG ILOG_CPLEX_LIBRARY ILOG_CPLEX_INCLUDE_DIR
-  )
-
-IF(ILOG_FOUND)
-  SET(ILOG_INCLUDE_DIRS ${ILOG_CPLEX_INCLUDE_DIR} ${ILOG_CONCERT_INCLUDE_DIR})
-  SET(ILOG_LIBRARIES ${ILOG_CPLEX_LIBRARY} ${ILOG_CONCERT_LIBRARY})
-  IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
-    # SET(CPLEX_LIBRARIES "${CPLEX_LIBRARIES};m;pthread")
-    SET(ILOG_LIBRARIES ${ILOG_LIBRARIES} "m" "pthread")
-  ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
-ENDIF(ILOG_FOUND)
-
-MARK_AS_ADVANCED(
-  ILOG_CPLEX_LIBRARY ILOG_CPLEX_INCLUDE_DIR ILOG_CPLEX_DLL
-  ILOG_CONCERT_LIBRARY ILOG_CONCERT_INCLUDE_DIR ILOG_CONCERT_DLL
-  )
Index: ake/FindSOPLEX.cmake
===================================================================
--- cmake/FindSOPLEX.cmake	(revision 1264)
+++ 	(revision )
@@ -1,23 +1,0 @@
-SET(SOPLEX_ROOT_DIR "" CACHE PATH "SoPlex root directory")
-
-FIND_PATH(SOPLEX_INCLUDE_DIR
-  soplex.h
-  HINTS ${SOPLEX_ROOT_DIR}/src
-)
-FIND_LIBRARY(SOPLEX_LIBRARY
-  soplex
-  HINTS ${SOPLEX_ROOT_DIR}/lib
-)
-
-INCLUDE(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(SOPLEX DEFAULT_MSG SOPLEX_LIBRARY SOPLEX_INCLUDE_DIR)
-
-IF(SOPLEX_FOUND)
-  SET(SOPLEX_INCLUDE_DIRS ${SOPLEX_INCLUDE_DIR})
-  SET(SOPLEX_LIBRARIES ${SOPLEX_LIBRARY})
-  IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
-    SET(SOPLEX_LIBRARIES "${SOPLEX_LIBRARIES};z")
-  ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
-ENDIF(SOPLEX_FOUND)
-
-MARK_AS_ADVANCED(SOPLEX_LIBRARY SOPLEX_INCLUDE_DIR)
Index: doc/CMakeLists.txt
===================================================================
--- doc/CMakeLists.txt	(revision 1251)
+++ doc/CMakeLists.txt	(revision 1209)
@@ -7,9 +7,4 @@
 SET(LEMON_DOC_USE_MATHJAX "NO" CACHE STRING "Use MathJax to display math formulae (YES/NO).")
 SET(LEMON_DOC_MATHJAX_RELPATH "http://www.mathjax.org/mathjax" CACHE STRING "MathJax library location.")
-
-SET(LEMON_DOC_LIBSTDC++_URL
-  "http://gcc.gnu.org/onlinedocs/gcc-4.7.3/libstdc++/api"
-  CACHE STRING "GCC libstdc++ doxygen doc url.")
-
 
 CONFIGURE_FILE(
@@ -40,21 +35,21 @@
     COMMAND ${CMAKE_COMMAND} -E remove_directory gen-images
     COMMAND ${CMAKE_COMMAND} -E make_directory gen-images
-    COMMAND ${GHOSTSCRIPT_EXECUTABLE} ${GHOSTSCRIPT_OPTIONS} -r20 -sOutputFile=gen-images/grid_graph.png ${CMAKE_CURRENT_SOURCE_DIR}/images/grid_graph.eps
-    COMMAND ${GHOSTSCRIPT_EXECUTABLE} ${GHOSTSCRIPT_OPTIONS} -r32 -sOutputFile=gen-images/adaptors2.png ${CMAKE_CURRENT_SOURCE_DIR}/images/adaptors2.eps
-    COMMAND ${GHOSTSCRIPT_EXECUTABLE} ${GHOSTSCRIPT_OPTIONS} -r32 -sOutputFile=gen-images/connected_components.png ${CMAKE_CURRENT_SOURCE_DIR}/images/connected_components.eps
-    COMMAND ${GHOSTSCRIPT_EXECUTABLE} ${GHOSTSCRIPT_OPTIONS} -r32 -sOutputFile=gen-images/strongly_connected_components.png ${CMAKE_CURRENT_SOURCE_DIR}/images/strongly_connected_components.eps
-    COMMAND ${GHOSTSCRIPT_EXECUTABLE} ${GHOSTSCRIPT_OPTIONS} -r32 -sOutputFile=gen-images/node_biconnected_components.png ${CMAKE_CURRENT_SOURCE_DIR}/images/node_biconnected_components.eps
-    COMMAND ${GHOSTSCRIPT_EXECUTABLE} ${GHOSTSCRIPT_OPTIONS} -r32 -sOutputFile=gen-images/edge_biconnected_components.png ${CMAKE_CURRENT_SOURCE_DIR}/images/edge_biconnected_components.eps
-    COMMAND ${GHOSTSCRIPT_EXECUTABLE} ${GHOSTSCRIPT_OPTIONS} -r32 -sOutputFile=gen-images/bipartite_partitions.png ${CMAKE_CURRENT_SOURCE_DIR}/images/bipartite_partitions.eps
-    COMMAND ${GHOSTSCRIPT_EXECUTABLE} ${GHOSTSCRIPT_OPTIONS} -r24 -sOutputFile=gen-images/matching.png ${CMAKE_CURRENT_SOURCE_DIR}/images/matching.eps
-    COMMAND ${GHOSTSCRIPT_EXECUTABLE} ${GHOSTSCRIPT_OPTIONS} -r24 -sOutputFile=gen-images/bipartite_matching.png ${CMAKE_CURRENT_SOURCE_DIR}/images/bipartite_matching.eps
-    COMMAND ${GHOSTSCRIPT_EXECUTABLE} ${GHOSTSCRIPT_OPTIONS} -r40 -sOutputFile=gen-images/planar.png ${CMAKE_CURRENT_SOURCE_DIR}/images/planar.eps
-    COMMAND ${GHOSTSCRIPT_EXECUTABLE} ${GHOSTSCRIPT_OPTIONS} -r24 -sOutputFile=gen-images/tsp.png ${CMAKE_CURRENT_SOURCE_DIR}/images/tsp.eps
-    COMMAND ${GHOSTSCRIPT_EXECUTABLE} ${GHOSTSCRIPT_OPTIONS} -r8 -sOutputFile=gen-images/nodeshape_0.png ${CMAKE_CURRENT_SOURCE_DIR}/images/nodeshape_0.eps
-    COMMAND ${GHOSTSCRIPT_EXECUTABLE} ${GHOSTSCRIPT_OPTIONS} -r8 -sOutputFile=gen-images/nodeshape_1.png ${CMAKE_CURRENT_SOURCE_DIR}/images/nodeshape_1.eps
-    COMMAND ${GHOSTSCRIPT_EXECUTABLE} ${GHOSTSCRIPT_OPTIONS} -r8 -sOutputFile=gen-images/nodeshape_2.png ${CMAKE_CURRENT_SOURCE_DIR}/images/nodeshape_2.eps
-    COMMAND ${GHOSTSCRIPT_EXECUTABLE} ${GHOSTSCRIPT_OPTIONS} -r8 -sOutputFile=gen-images/nodeshape_3.png ${CMAKE_CURRENT_SOURCE_DIR}/images/nodeshape_3.eps
-    COMMAND ${GHOSTSCRIPT_EXECUTABLE} ${GHOSTSCRIPT_OPTIONS} -r8 -sOutputFile=gen-images/nodeshape_4.png ${CMAKE_CURRENT_SOURCE_DIR}/images/nodeshape_4.eps
+    COMMAND ${GHOSTSCRIPT_EXECUTABLE} ${GHOSTSCRIPT_OPTIONS} -r18 -sOutputFile=gen-images/bipartite_matching.png ${CMAKE_CURRENT_SOURCE_DIR}/images/bipartite_matching.eps
+    COMMAND ${GHOSTSCRIPT_EXECUTABLE} ${GHOSTSCRIPT_OPTIONS} -r18 -sOutputFile=gen-images/bipartite_partitions.png ${CMAKE_CURRENT_SOURCE_DIR}/images/bipartite_partitions.eps
+    COMMAND ${GHOSTSCRIPT_EXECUTABLE} ${GHOSTSCRIPT_OPTIONS} -r18 -sOutputFile=gen-images/connected_components.png ${CMAKE_CURRENT_SOURCE_DIR}/images/connected_components.eps
+    COMMAND ${GHOSTSCRIPT_EXECUTABLE} ${GHOSTSCRIPT_OPTIONS} -r18 -sOutputFile=gen-images/edge_biconnected_components.png ${CMAKE_CURRENT_SOURCE_DIR}/images/edge_biconnected_components.eps
+    COMMAND ${GHOSTSCRIPT_EXECUTABLE} ${GHOSTSCRIPT_OPTIONS} -r18 -sOutputFile=gen-images/grid_graph.png ${CMAKE_CURRENT_SOURCE_DIR}/images/grid_graph.eps
+    COMMAND ${GHOSTSCRIPT_EXECUTABLE} ${GHOSTSCRIPT_OPTIONS} -r18 -sOutputFile=gen-images/matching.png ${CMAKE_CURRENT_SOURCE_DIR}/images/matching.eps
+    COMMAND ${GHOSTSCRIPT_EXECUTABLE} ${GHOSTSCRIPT_OPTIONS} -r18 -sOutputFile=gen-images/node_biconnected_components.png ${CMAKE_CURRENT_SOURCE_DIR}/images/node_biconnected_components.eps
+    COMMAND ${GHOSTSCRIPT_EXECUTABLE} ${GHOSTSCRIPT_OPTIONS} -r18 -sOutputFile=gen-images/nodeshape_0.png ${CMAKE_CURRENT_SOURCE_DIR}/images/nodeshape_0.eps
+    COMMAND ${GHOSTSCRIPT_EXECUTABLE} ${GHOSTSCRIPT_OPTIONS} -r18 -sOutputFile=gen-images/nodeshape_1.png ${CMAKE_CURRENT_SOURCE_DIR}/images/nodeshape_1.eps
+    COMMAND ${GHOSTSCRIPT_EXECUTABLE} ${GHOSTSCRIPT_OPTIONS} -r18 -sOutputFile=gen-images/nodeshape_2.png ${CMAKE_CURRENT_SOURCE_DIR}/images/nodeshape_2.eps
+    COMMAND ${GHOSTSCRIPT_EXECUTABLE} ${GHOSTSCRIPT_OPTIONS} -r18 -sOutputFile=gen-images/nodeshape_3.png ${CMAKE_CURRENT_SOURCE_DIR}/images/nodeshape_3.eps
+    COMMAND ${GHOSTSCRIPT_EXECUTABLE} ${GHOSTSCRIPT_OPTIONS} -r18 -sOutputFile=gen-images/nodeshape_4.png ${CMAKE_CURRENT_SOURCE_DIR}/images/nodeshape_4.eps
+    COMMAND ${GHOSTSCRIPT_EXECUTABLE} ${GHOSTSCRIPT_OPTIONS} -r18 -sOutputFile=gen-images/planar.png ${CMAKE_CURRENT_SOURCE_DIR}/images/planar.eps
+    COMMAND ${GHOSTSCRIPT_EXECUTABLE} ${GHOSTSCRIPT_OPTIONS} -r18 -sOutputFile=gen-images/strongly_connected_components.png ${CMAKE_CURRENT_SOURCE_DIR}/images/strongly_connected_components.eps
+    COMMAND ${GHOSTSCRIPT_EXECUTABLE} ${GHOSTSCRIPT_OPTIONS} -r18 -sOutputFile=gen-images/tsp.png ${CMAKE_CURRENT_SOURCE_DIR}/images/tsp.eps
     COMMAND ${CMAKE_COMMAND} -E remove_directory html
+    COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/scripts/bib2dox.py ${CMAKE_CURRENT_SOURCE_DIR}/references.bib >references.dox
     COMMAND ${DOXYGEN_EXECUTABLE} Doxyfile
     WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
@@ -81,5 +76,5 @@
 IF(WGET_FOUND)
 ADD_CUSTOM_TARGET(update-external-tags
-  COMMAND ${WGET_EXECUTABLE} -N ${LEMON_DOC_LIBSTDC++_URL}/libstdc++.tag
+  COMMAND ${WGET_EXECUTABLE} -N http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/libstdc++.tag
   WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
   )
Index: doc/Doxyfile.in
===================================================================
--- doc/Doxyfile.in	(revision 1251)
+++ doc/Doxyfile.in	(revision 1208)
@@ -78,5 +78,4 @@
 FILE_VERSION_FILTER    = 
 LAYOUT_FILE            = "@abs_top_srcdir@/doc/DoxygenLayout.xml"
-CITE_BIB_FILES         = "@abs_top_srcdir@/doc/references.bib"
 #---------------------------------------------------------------------------
 # configuration options related to warning and progress messages
@@ -100,5 +99,6 @@
                          "@abs_top_srcdir@/tools" \
                          "@abs_top_srcdir@/test/test_tools.h" \
-                         "@abs_top_builddir@/doc/mainpage.dox"
+                         "@abs_top_builddir@/doc/mainpage.dox" \
+                         "@abs_top_builddir@/doc/references.dox"
 INPUT_ENCODING         = UTF-8
 FILE_PATTERNS          = *.h \
@@ -254,5 +254,5 @@
 # Configuration::additions related to external references
 #---------------------------------------------------------------------------
-TAGFILES               = "@abs_top_builddir@/doc/libstdc++.tag = @LEMON_DOC_LIBSTDC++_URL@"
+TAGFILES               = "@abs_top_builddir@/doc/libstdc++.tag = http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/  "
 GENERATE_TAGFILE       = html/lemon.tag
 ALLEXTERNALS           = NO
Index: doc/DoxygenLayout.xml
===================================================================
--- doc/DoxygenLayout.xml	(revision 1251)
+++ doc/DoxygenLayout.xml	(revision 1036)
@@ -18,4 +18,5 @@
       <tab type="globals" visible="yes" title="" intro=""/>
     </tab>
+    <tab type="dirs" visible="yes" title="" intro=""/>
     <tab type="examples" visible="yes" title="" intro=""/>
     <tab type="pages" visible="yes" title="" intro=""/>
Index: doc/coding_style.dox
===================================================================
--- doc/coding_style.dox	(revision 1270)
+++ doc/coding_style.dox	(revision 1023)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2009
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: doc/dirs.dox
===================================================================
--- doc/dirs.dox	(revision 1270)
+++ doc/dirs.dox	(revision 1031)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2009
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: doc/groups.dox
===================================================================
--- doc/groups.dox	(revision 1280)
+++ doc/groups.dox	(revision 1206)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -113,12 +113,4 @@
 detailed documentation of particular adaptors.
 
-Since the adaptor classes conform to the \ref graph_concepts "graph concepts",
-an adaptor can even be applied to another one.
-The following image illustrates a situation when a \ref SubDigraph adaptor
-is applied on a digraph and \ref Undirector is applied on the subgraph.
-
-\image html adaptors2.png
-\image latex adaptors2.eps "Using graph adaptors" width=\textwidth
-
 The behavior of graph adaptors can be very different. Some of them keep
 capabilities of the original graph while in other cases this would be
@@ -295,4 +287,12 @@
 
 /**
+@defgroup matrices Matrices
+@ingroup auxdat
+\brief Two dimensional data storages implemented in LEMON.
+
+This group contains two dimensional data storages implemented in LEMON.
+*/
+
+/**
 @defgroup algs Algorithms
 \brief This group contains the several algorithms
@@ -310,5 +310,5 @@
 This group contains the common graph search algorithms, namely
 \e breadth-first \e search (BFS) and \e depth-first \e search (DFS)
-\cite clrs01algorithms.
+\ref clrs01algorithms.
 */
 
@@ -319,5 +319,5 @@
 
 This group contains the algorithms for finding shortest paths in digraphs
-\cite clrs01algorithms.
+\ref clrs01algorithms.
 
  - \ref Dijkstra algorithm for finding shortest paths from a source node
@@ -327,4 +327,8 @@
    but the digraph should not contain directed cycles with negative total
    length.
+ - \ref FloydWarshall "Floyd-Warshall" and \ref Johnson "Johnson" algorithms
+   for solving the \e all-pairs \e shortest \e paths \e problem when arc
+   lenghts can be either positive or negative, but the digraph should
+   not contain directed cycles with negative total length.
  - \ref Suurballe A successive shortest path algorithm for finding
    arc-disjoint paths between two nodes having minimum total length.
@@ -337,5 +341,5 @@
 
 This group contains the algorithms for finding minimum cost spanning
-trees and arborescences \cite clrs01algorithms.
+trees and arborescences \ref clrs01algorithms.
 */
 
@@ -346,5 +350,5 @@
 
 This group contains the algorithms for finding maximum flows and
-feasible circulations \cite clrs01algorithms, \cite amo93networkflows.
+feasible circulations \ref clrs01algorithms, \ref amo93networkflows.
 
 The \e maximum \e flow \e problem is to find a flow of maximum value between
@@ -360,8 +364,18 @@
 \f[ 0 \leq f(uv) \leq cap(uv) \quad \forall uv\in A \f]
 
-\ref Preflow is an efficient implementation of Goldberg-Tarjan's
-preflow push-relabel algorithm \cite goldberg88newapproach for finding
-maximum flows. It also provides functions to query the minimum cut,
-which is the dual problem of maximum flow.
+LEMON contains several algorithms for solving maximum flow problems:
+- \ref EdmondsKarp Edmonds-Karp algorithm
+  \ref edmondskarp72theoretical.
+- \ref Preflow Goldberg-Tarjan's preflow push-relabel algorithm
+  \ref goldberg88newapproach.
+- \ref DinitzSleatorTarjan Dinitz's blocking flow algorithm with dynamic trees
+  \ref dinic70algorithm, \ref sleator83dynamic.
+- \ref GoldbergTarjan !Preflow push-relabel algorithm with dynamic trees
+  \ref goldberg88newapproach, \ref sleator83dynamic.
+
+In most cases the \ref Preflow algorithm provides the
+fastest method for computing a maximum flow. All implementations
+also provide functions to query the minimum cut, which is the dual
+problem of maximum flow.
 
 \ref Circulation is a preflow push-relabel algorithm implemented directly
@@ -378,18 +392,18 @@
 
 This group contains the algorithms for finding minimum cost flows and
-circulations \cite amo93networkflows. For more information about this
-problem and its dual solution, see: \ref min_cost_flow
+circulations \ref amo93networkflows. For more information about this
+problem and its dual solution, see \ref min_cost_flow
 "Minimum Cost Flow Problem".
 
 LEMON contains several algorithms for this problem.
  - \ref NetworkSimplex Primal Network Simplex algorithm with various
-   pivot strategies \cite dantzig63linearprog, \cite kellyoneill91netsimplex.
+   pivot strategies \ref dantzig63linearprog, \ref kellyoneill91netsimplex.
  - \ref CostScaling Cost Scaling algorithm based on push/augment and
-   relabel operations \cite goldberg90approximation, \cite goldberg97efficient,
-   \cite bunnagel98efficient.
+   relabel operations \ref goldberg90approximation, \ref goldberg97efficient,
+   \ref bunnagel98efficient.
  - \ref CapacityScaling Capacity Scaling algorithm based on the successive
-   shortest path method \cite edmondskarp72theoretical.
+   shortest path method \ref edmondskarp72theoretical.
  - \ref CycleCanceling Cycle-Canceling algorithms, two of which are
-   strongly polynomial \cite klein67primal, \cite goldberg89cyclecanceling.
+   strongly polynomial \ref klein67primal, \ref goldberg89cyclecanceling.
 
 In general, \ref NetworkSimplex and \ref CostScaling are the most efficient
@@ -401,6 +415,5 @@
 However, other algorithms could be faster in special cases.
 For example, if the total supply and/or capacities are rather small,
-\ref CapacityScaling is usually the fastest algorithm
-(without effective scaling).
+\ref CapacityScaling is usually the fastest algorithm (without effective scaling).
 
 These classes are intended to be used with integer-valued input data
@@ -408,9 +421,4 @@
 which is capable of handling real-valued arc costs (other numerical
 data are required to be integer).
-
-For more details about these implementations and for a comprehensive
-experimental study, see the paper \cite KiralyKovacs12MCF.
-It also compares these codes to other publicly available
-minimum cost flow solvers.
 */
 
@@ -451,5 +459,5 @@
 
 This group contains the algorithms for finding minimum mean cycles
-\cite amo93networkflows, \cite karp78characterization.
+\ref amo93networkflows, \ref karp78characterization.
 
 The \e minimum \e mean \e cycle \e problem is to find a directed cycle
@@ -467,9 +475,9 @@
 
 LEMON contains three algorithms for solving the minimum mean cycle problem:
-- \ref KarpMmc Karp's original algorithm \cite karp78characterization.
+- \ref KarpMmc Karp's original algorithm \ref karp78characterization.
 - \ref HartmannOrlinMmc Hartmann-Orlin's algorithm, which is an improved
-  version of Karp's algorithm \cite hartmann93finding.
+  version of Karp's algorithm \ref hartmann93finding.
 - \ref HowardMmc Howard's policy iteration algorithm
-  \cite dasdan98minmeancycle, \cite dasdan04experimental.
+  \ref dasdan98minmeancycle, \ref dasdan04experimental.
 
 In practice, the \ref HowardMmc "Howard" algorithm turned out to be by far the
@@ -477,5 +485,6 @@
 time is exponential.
 Both \ref KarpMmc "Karp" and \ref HartmannOrlinMmc "Hartmann-Orlin" algorithms
-run in time O(nm) and use space O(n<sup>2</sup>+m).
+run in time O(ne) and use space O(n<sup>2</sup>+e), but the latter one is
+typically faster due to the applied early termination scheme.
 */
 
@@ -498,4 +507,14 @@
 
 The matching algorithms implemented in LEMON:
+- \ref MaxBipartiteMatching Hopcroft-Karp augmenting path algorithm
+  for calculating maximum cardinality matching in bipartite graphs.
+- \ref PrBipartiteMatching Push-relabel algorithm
+  for calculating maximum cardinality matching in bipartite graphs.
+- \ref MaxWeightedBipartiteMatching
+  Successive shortest path algorithm for calculating maximum weighted
+  matching and maximum weighted bipartite matching in bipartite graphs.
+- \ref MinCostMaxBipartiteMatching
+  Successive shortest path algorithm for calculating minimum cost maximum
+  matching in bipartite graphs.
 - \ref MaxMatching Edmond's blossom shrinking algorithm for calculating
   maximum cardinality matching in general graphs.
@@ -540,5 +559,5 @@
 \image latex planar.eps "Plane graph" width=\textwidth
 */
-
+ 
 /**
 @defgroup tsp Traveling Salesman Problem
@@ -617,6 +636,23 @@
 high-level interface.
 
-The currently supported solvers are \cite glpk, \cite clp, \cite cbc,
-\cite cplex, \cite soplex.
+The currently supported solvers are \ref glpk, \ref clp, \ref cbc,
+\ref cplex, \ref soplex.
+*/
+
+/**
+@defgroup lp_utils Tools for Lp and Mip Solvers
+@ingroup lp_group
+\brief Helper tools to the Lp and Mip solvers.
+
+This group adds some helper tools to general optimization framework
+implemented in LEMON.
+*/
+
+/**
+@defgroup metah Metaheuristics
+@ingroup gen_opt_group
+\brief Metaheuristics for LEMON library.
+
+This group contains some metaheuristic optimization tools.
 */
 
@@ -688,6 +724,4 @@
 This group contains general \c EPS drawing methods and special
 graph exporting tools.
-
-\image html graph_to_eps.png
 */
 
Index: c/images/adaptors1.eps
===================================================================
--- doc/images/adaptors1.eps	(revision 1218)
+++ 	(revision )
@@ -1,303 +1,0 @@
-%!PS-Adobe-2.0 EPSF-2.0
-%%Title: adaptors1.fig
-%%Creator: fig2dev Version 3.2 Patchlevel 5
-%%CreationDate: Sun Feb 21 18:51:21 2010
-%%For: Peter@KOVACSPETER (PÃ©ter,U-KOVACSPETER\Peter,S-1-5-21-1774138250-1299389707-1938712334-1001)
-%%BoundingBox: 0 0 787 372
-%Magnification: 1.0000
-%%EndComments
-/$F2psDict 200 dict def
-$F2psDict begin
-$F2psDict /mtrx matrix put
-/col-1 {0 setgray} bind def
-/col0 {0.000 0.000 0.000 srgb} bind def
-/col1 {0.000 0.000 1.000 srgb} bind def
-/col2 {0.000 1.000 0.000 srgb} bind def
-/col3 {0.000 1.000 1.000 srgb} bind def
-/col4 {1.000 0.000 0.000 srgb} bind def
-/col5 {1.000 0.000 1.000 srgb} bind def
-/col6 {1.000 1.000 0.000 srgb} bind def
-/col7 {1.000 1.000 1.000 srgb} bind def
-/col8 {0.000 0.000 0.560 srgb} bind def
-/col9 {0.000 0.000 0.690 srgb} bind def
-/col10 {0.000 0.000 0.820 srgb} bind def
-/col11 {0.530 0.810 1.000 srgb} bind def
-/col12 {0.000 0.560 0.000 srgb} bind def
-/col13 {0.000 0.690 0.000 srgb} bind def
-/col14 {0.000 0.820 0.000 srgb} bind def
-/col15 {0.000 0.560 0.560 srgb} bind def
-/col16 {0.000 0.690 0.690 srgb} bind def
-/col17 {0.000 0.820 0.820 srgb} bind def
-/col18 {0.560 0.000 0.000 srgb} bind def
-/col19 {0.690 0.000 0.000 srgb} bind def
-/col20 {0.820 0.000 0.000 srgb} bind def
-/col21 {0.560 0.000 0.560 srgb} bind def
-/col22 {0.690 0.000 0.690 srgb} bind def
-/col23 {0.820 0.000 0.820 srgb} bind def
-/col24 {0.500 0.190 0.000 srgb} bind def
-/col25 {0.630 0.250 0.000 srgb} bind def
-/col26 {0.750 0.380 0.000 srgb} bind def
-/col27 {1.000 0.500 0.500 srgb} bind def
-/col28 {1.000 0.630 0.630 srgb} bind def
-/col29 {1.000 0.750 0.750 srgb} bind def
-/col30 {1.000 0.880 0.880 srgb} bind def
-/col31 {1.000 0.840 0.000 srgb} bind def
-
-end
-save
-newpath 0 372 moveto 0 0 lineto 787 0 lineto 787 372 lineto closepath clip newpath
--14.2 385.4 translate
-1 -1 scale
-
-/cp {closepath} bind def
-/ef {eofill} bind def
-/gr {grestore} bind def
-/gs {gsave} bind def
-/sa {save} bind def
-/rs {restore} bind def
-/l {lineto} bind def
-/m {moveto} bind def
-/rm {rmoveto} bind def
-/n {newpath} bind def
-/s {stroke} bind def
-/sh {show} bind def
-/slc {setlinecap} bind def
-/slj {setlinejoin} bind def
-/slw {setlinewidth} bind def
-/srgb {setrgbcolor} bind def
-/rot {rotate} bind def
-/sc {scale} bind def
-/sd {setdash} bind def
-/ff {findfont} bind def
-/sf {setfont} bind def
-/scf {scalefont} bind def
-/sw {stringwidth} bind def
-/tr {translate} bind def
-/tnt {dup dup currentrgbcolor
-  4 -2 roll dup 1 exch sub 3 -1 roll mul add
-  4 -2 roll dup 1 exch sub 3 -1 roll mul add
-  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
-  bind def
-/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
-  4 -2 roll mul srgb} bind def
- /DrawEllipse {
-	/endangle exch def
-	/startangle exch def
-	/yrad exch def
-	/xrad exch def
-	/y exch def
-	/x exch def
-	/savematrix mtrx currentmatrix def
-	x y tr xrad yrad sc 0 0 1 startangle endangle arc
-	closepath
-	savematrix setmatrix
-	} def
-
-/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
-/$F2psEnd {$F2psEnteredState restore end} def
-
-$F2psBegin
-10 setmiterlimit
-0 slj 0 slc
- 0.06299 0.06299 sc
-%
-% Fig objects follow
-%
-% 
-% here starts figure with depth 60
-% Polyline
-0 slj
-0 slc
-15.000 slw
-gs  clippath
-6319 5229 m 6442 5564 l 6527 5533 l 6403 5198 l 6403 5198 l 6424 5383 l 6319 5229 l cp
-eoclip
-n 5850 3825 m
- 6480 5535 l gs col0 s gr gr
-
-% arrowhead
-75.000 slw
-n 6319 5229 m 6424 5383 l 6403 5198 l 6319 5229 l  cp gs 0.00 setgray ef gr  col0 s
-% Polyline
-15.000 slw
-gs  clippath
-5417 4044 m 5746 3905 l 5711 3822 l 5382 3961 l 5382 3961 l 5566 3933 l 5417 4044 l cp
-eoclip
-n 1575 5625 m
- 5715 3870 l gs col0 s gr gr
-
-% arrowhead
-75.000 slw
-n 5417 4044 m 5566 3933 l 5382 3961 l 5417 4044 l  cp gs 0.00 setgray ef gr  col0 s
-% Polyline
-15.000 slw
-gs  clippath
-3897 3780 m 3540 3780 l 3540 3870 l 3897 3870 l 3897 3870 l 3717 3825 l 3897 3780 l cp
-eoclip
-n 5625 3825 m
- 3555 3825 l gs col0 s gr gr
-
-% arrowhead
-75.000 slw
-n 3897 3780 m 3717 3825 l 3897 3870 l 3897 3780 l  cp gs 0.00 setgray ef gr  col0 s
-% Polyline
-15.000 slw
-gs  clippath
-3075 4188 m 3327 3936 l 3263 3872 l 3011 4124 l 3011 4124 l 3171 4029 l 3075 4188 l cp
-eoclip
-n 1575 5625 m
- 3285 3915 l gs col0 s gr gr
-
-% arrowhead
-75.000 slw
-n 3075 4188 m 3171 4029 l 3011 4124 l 3075 4188 l  cp gs 0.00 setgray ef gr  col0 s
-% Polyline
-15.000 slw
-gs  clippath
-3528 2520 m 3885 2520 l 3885 2430 l 3528 2430 l 3528 2430 l 3708 2475 l 3528 2520 l cp
-eoclip
-n 1800 2475 m
- 3870 2475 l gs col0 s gr gr
-
-% arrowhead
-75.000 slw
-n 3528 2520 m 3708 2475 l 3528 2430 l 3528 2520 l  cp gs 0.00 setgray ef gr  col0 s
-% Polyline
-15.000 slw
-gs  clippath
-4304 2156 m 4052 2408 l 4116 2472 l 4368 2220 l 4368 2220 l 4209 2316 l 4304 2156 l cp
-eoclip
-n 5850 675 m
- 4095 2430 l gs col0 s gr gr
-
-% arrowhead
-75.000 slw
-n 4304 2156 m 4209 2316 l 4368 2220 l 4304 2156 l  cp gs 0.00 setgray ef gr  col0 s
-% Polyline
-15.000 slw
-gs  clippath
-6319 2079 m 6442 2414 l 6527 2383 l 6403 2048 l 6403 2048 l 6424 2233 l 6319 2079 l cp
-eoclip
-n 5850 675 m
- 6480 2385 l gs col0 s gr gr
-
-% arrowhead
-75.000 slw
-n 6319 2079 m 6424 2233 l 6403 2048 l 6319 2079 l  cp gs 0.00 setgray ef gr  col0 s
-% Polyline
-15.000 slw
-gs  clippath
-5417 894 m 5746 755 l 5711 672 l 5382 811 l 5382 811 l 5566 783 l 5417 894 l cp
-eoclip
-n 1575 2475 m
- 5715 720 l gs col0 s gr gr
-
-% arrowhead
-75.000 slw
-n 5417 894 m 5566 783 l 5382 811 l 5417 894 l  cp gs 0.00 setgray ef gr  col0 s
-% Polyline
-15.000 slw
-gs  clippath
-3528 5670 m 3885 5670 l 3885 5580 l 3528 5580 l 3528 5580 l 3708 5625 l 3528 5670 l cp
-eoclip
-n 1800 5625 m
- 3870 5625 l gs col0 s gr gr
-
-% arrowhead
-75.000 slw
-n 3528 5670 m 3708 5625 l 3528 5580 l 3528 5670 l  cp gs 0.00 setgray ef gr  col0 s
-% Polyline
-15.000 slw
-gs  clippath
-4572 5580 m 4215 5580 l 4215 5670 l 4572 5670 l 4572 5670 l 4392 5625 l 4572 5580 l cp
-eoclip
-n 6300 5625 m
- 4230 5625 l gs col0 s gr gr
-
-% arrowhead
-75.000 slw
-n 4572 5580 m 4392 5625 l 4572 5670 l 4572 5580 l  cp gs 0.00 setgray ef gr  col0 s
-% Polyline
-15.000 slw
-gs  clippath
-4304 5306 m 4052 5558 l 4116 5622 l 4368 5370 l 4368 5370 l 4209 5466 l 4304 5306 l cp
-eoclip
-n 5850 3825 m
- 4095 5580 l gs col0 s gr gr
-
-% arrowhead
-75.000 slw
-n 4304 5306 m 4209 5466 l 4368 5370 l 4304 5306 l  cp gs 0.00 setgray ef gr  col0 s
-% here ends figure;
-% 
-% here starts figure with depth 50
-% Ellipse
-15.000 slw
-n 3375 3825 225 112 0 360 DrawEllipse gs 1.00 setgray ef gr gs col0 s gr
-
-% Ellipse
-n 5850 3825 225 112 0 360 DrawEllipse gs 1.00 setgray ef gr gs col0 s gr
-
-% Polyline
-0 slj
-0 slc
-n 247 2947 m 2947 247 l 9697 247 l 6997 2947 l
- 247 2947 l  cp gs col0 s gr 
-% Polyline
-n 247 6097 m 2947 3397 l 9697 3397 l 6997 6097 l
- 247 6097 l  cp gs col0 s gr 
-% Ellipse
-n 1575 2475 225 112 0 360 DrawEllipse gs 1.00 setgray ef gr gs col0 s gr
-
-% Ellipse
-n 4050 2475 225 112 0 360 DrawEllipse gs 1.00 setgray ef gr gs col0 s gr
-
-% Ellipse
-n 6525 2475 225 112 0 360 DrawEllipse gs 1.00 setgray ef gr gs col0 s gr
-
-% Ellipse
-n 5850 675 225 112 0 360 DrawEllipse gs 1.00 setgray ef gr gs col0 s gr
-
-% Ellipse
-n 1575 5625 225 112 0 360 DrawEllipse gs 1.00 setgray ef gr gs col0 s gr
-
-% Ellipse
-n 4050 5625 225 112 0 360 DrawEllipse gs 1.00 setgray ef gr gs col0 s gr
-
-% Ellipse
-n 6525 5625 225 112 0 360 DrawEllipse gs 1.00 setgray ef gr gs col0 s gr
-
-% here ends figure;
-% 
-% here starts figure with depth 40
-/Helvetica ff 480.00 scf sf
-8280 2610 m
-gs 1 -1 sc (SubDigraph adaptor) col0 sh gr
-% Polyline
-0 slj
-0 slc
-7.500 slw
- [15 45] 45 sd
-n 4050 2610 m
- 4050 5625 l gs col0 s gr  [] 0 sd
-% Polyline
- [15 45] 45 sd
-n 5850 810 m
- 5850 3825 l gs col0 s gr  [] 0 sd
-% Polyline
- [15 45] 45 sd
-n 6525 2610 m
- 6525 5625 l gs col0 s gr  [] 0 sd
-/Helvetica ff 480.00 scf sf
-8280 5760 m
-gs 1 -1 sc (Original digraph) col0 sh gr
-% Polyline
- [15 45] 45 sd
-n 1575 2610 m
- 1575 5625 l gs col0 s gr  [] 0 sd
-% here ends figure;
-$F2psEnd
-rs
-showpage
-%%Trailer
-%EOF
Index: c/images/adaptors2.eps
===================================================================
--- doc/images/adaptors2.eps	(revision 1218)
+++ 	(revision )
@@ -1,349 +1,0 @@
-%!PS-Adobe-2.0 EPSF-2.0
-%%Title: adaptors2.fig
-%%Creator: fig2dev Version 3.2 Patchlevel 5
-%%CreationDate: Sun Feb 21 18:51:31 2010
-%%For: Peter@KOVACSPETER (PÃ©ter,U-KOVACSPETER\Peter,S-1-5-21-1774138250-1299389707-1938712334-1001)
-%%BoundingBox: 0 0 787 570
-%Magnification: 1.0000
-%%EndComments
-/$F2psDict 200 dict def
-$F2psDict begin
-$F2psDict /mtrx matrix put
-/col-1 {0 setgray} bind def
-/col0 {0.000 0.000 0.000 srgb} bind def
-/col1 {0.000 0.000 1.000 srgb} bind def
-/col2 {0.000 1.000 0.000 srgb} bind def
-/col3 {0.000 1.000 1.000 srgb} bind def
-/col4 {1.000 0.000 0.000 srgb} bind def
-/col5 {1.000 0.000 1.000 srgb} bind def
-/col6 {1.000 1.000 0.000 srgb} bind def
-/col7 {1.000 1.000 1.000 srgb} bind def
-/col8 {0.000 0.000 0.560 srgb} bind def
-/col9 {0.000 0.000 0.690 srgb} bind def
-/col10 {0.000 0.000 0.820 srgb} bind def
-/col11 {0.530 0.810 1.000 srgb} bind def
-/col12 {0.000 0.560 0.000 srgb} bind def
-/col13 {0.000 0.690 0.000 srgb} bind def
-/col14 {0.000 0.820 0.000 srgb} bind def
-/col15 {0.000 0.560 0.560 srgb} bind def
-/col16 {0.000 0.690 0.690 srgb} bind def
-/col17 {0.000 0.820 0.820 srgb} bind def
-/col18 {0.560 0.000 0.000 srgb} bind def
-/col19 {0.690 0.000 0.000 srgb} bind def
-/col20 {0.820 0.000 0.000 srgb} bind def
-/col21 {0.560 0.000 0.560 srgb} bind def
-/col22 {0.690 0.000 0.690 srgb} bind def
-/col23 {0.820 0.000 0.820 srgb} bind def
-/col24 {0.500 0.190 0.000 srgb} bind def
-/col25 {0.630 0.250 0.000 srgb} bind def
-/col26 {0.750 0.380 0.000 srgb} bind def
-/col27 {1.000 0.500 0.500 srgb} bind def
-/col28 {1.000 0.630 0.630 srgb} bind def
-/col29 {1.000 0.750 0.750 srgb} bind def
-/col30 {1.000 0.880 0.880 srgb} bind def
-/col31 {1.000 0.840 0.000 srgb} bind def
-
-end
-save
-newpath 0 570 moveto 0 0 lineto 787 0 lineto 787 570 lineto closepath clip newpath
--14.2 583.9 translate
-1 -1 scale
-
-/cp {closepath} bind def
-/ef {eofill} bind def
-/gr {grestore} bind def
-/gs {gsave} bind def
-/sa {save} bind def
-/rs {restore} bind def
-/l {lineto} bind def
-/m {moveto} bind def
-/rm {rmoveto} bind def
-/n {newpath} bind def
-/s {stroke} bind def
-/sh {show} bind def
-/slc {setlinecap} bind def
-/slj {setlinejoin} bind def
-/slw {setlinewidth} bind def
-/srgb {setrgbcolor} bind def
-/rot {rotate} bind def
-/sc {scale} bind def
-/sd {setdash} bind def
-/ff {findfont} bind def
-/sf {setfont} bind def
-/scf {scalefont} bind def
-/sw {stringwidth} bind def
-/tr {translate} bind def
-/tnt {dup dup currentrgbcolor
-  4 -2 roll dup 1 exch sub 3 -1 roll mul add
-  4 -2 roll dup 1 exch sub 3 -1 roll mul add
-  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
-  bind def
-/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
-  4 -2 roll mul srgb} bind def
- /DrawEllipse {
-	/endangle exch def
-	/startangle exch def
-	/yrad exch def
-	/xrad exch def
-	/y exch def
-	/x exch def
-	/savematrix mtrx currentmatrix def
-	x y tr xrad yrad sc 0 0 1 startangle endangle arc
-	closepath
-	savematrix setmatrix
-	} def
-
-/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
-/$F2psEnd {$F2psEnteredState restore end} def
-
-$F2psBegin
-10 setmiterlimit
-0 slj 0 slc
- 0.06299 0.06299 sc
-%
-% Fig objects follow
-%
-% 
-% here starts figure with depth 60
-% Polyline
-0 slj
-0 slc
-15.000 slw
-gs  clippath
-5417 4044 m 5746 3905 l 5711 3822 l 5382 3961 l 5382 3961 l 5566 3933 l 5417 4044 l cp
-eoclip
-n 1575 5625 m
- 5715 3870 l gs col0 s gr gr
-
-% arrowhead
-75.000 slw
-n 5417 4044 m 5566 3933 l 5382 3961 l 5417 4044 l  cp gs 0.00 setgray ef gr  col0 s
-% Polyline
-15.000 slw
-gs  clippath
-5417 7194 m 5746 7055 l 5711 6972 l 5382 7111 l 5382 7111 l 5566 7083 l 5417 7194 l cp
-eoclip
-n 1575 8775 m
- 5715 7020 l gs col0 s gr gr
-
-% arrowhead
-75.000 slw
-n 5417 7194 m 5566 7083 l 5382 7111 l 5417 7194 l  cp gs 0.00 setgray ef gr  col0 s
-% Polyline
-15.000 slw
-gs  clippath
-6319 8379 m 6442 8714 l 6527 8683 l 6403 8348 l 6403 8348 l 6424 8533 l 6319 8379 l cp
-eoclip
-n 5850 6975 m
- 6480 8685 l gs col0 s gr gr
-
-% arrowhead
-75.000 slw
-n 6319 8379 m 6424 8533 l 6403 8348 l 6319 8379 l  cp gs 0.00 setgray ef gr  col0 s
-% Polyline
-15.000 slw
-gs  clippath
-4304 8456 m 4052 8708 l 4116 8772 l 4368 8520 l 4368 8520 l 4209 8616 l 4304 8456 l cp
-eoclip
-n 5850 6975 m
- 4095 8730 l gs col0 s gr gr
-
-% arrowhead
-75.000 slw
-n 4304 8456 m 4209 8616 l 4368 8520 l 4304 8456 l  cp gs 0.00 setgray ef gr  col0 s
-% Polyline
-15.000 slw
-gs  clippath
-4572 8730 m 4215 8730 l 4215 8820 l 4572 8820 l 4572 8820 l 4392 8775 l 4572 8730 l cp
-eoclip
-n 6300 8775 m
- 4230 8775 l gs col0 s gr gr
-
-% arrowhead
-75.000 slw
-n 4572 8730 m 4392 8775 l 4572 8820 l 4572 8730 l  cp gs 0.00 setgray ef gr  col0 s
-% Polyline
-15.000 slw
-gs  clippath
-3528 8820 m 3885 8820 l 3885 8730 l 3528 8730 l 3528 8730 l 3708 8775 l 3528 8820 l cp
-eoclip
-n 1800 8775 m
- 3870 8775 l gs col0 s gr gr
-
-% arrowhead
-75.000 slw
-n 3528 8820 m 3708 8775 l 3528 8730 l 3528 8820 l  cp gs 0.00 setgray ef gr  col0 s
-% Polyline
-15.000 slw
-n 1800 2475 m
- 3870 2475 l gs col0 s gr 
-% Polyline
-n 1575 2475 m
- 5715 720 l gs col0 s gr 
-% Polyline
-n 5850 675 m
- 4095 2430 l gs col0 s gr 
-% Polyline
-n 5850 675 m
- 6480 2385 l gs col0 s gr 
-% Polyline
-gs  clippath
-3075 7338 m 3327 7086 l 3263 7022 l 3011 7274 l 3011 7274 l 3171 7179 l 3075 7338 l cp
-eoclip
-n 1575 8775 m
- 3285 7065 l gs col0 s gr gr
-
-% arrowhead
-75.000 slw
-n 3075 7338 m 3171 7179 l 3011 7274 l 3075 7338 l  cp gs 0.00 setgray ef gr  col0 s
-% Polyline
-15.000 slw
-gs  clippath
-3528 5670 m 3885 5670 l 3885 5580 l 3528 5580 l 3528 5580 l 3708 5625 l 3528 5670 l cp
-eoclip
-n 1800 5625 m
- 3870 5625 l gs col0 s gr gr
-
-% arrowhead
-75.000 slw
-n 3528 5670 m 3708 5625 l 3528 5580 l 3528 5670 l  cp gs 0.00 setgray ef gr  col0 s
-% Polyline
-15.000 slw
-gs  clippath
-4304 5306 m 4052 5558 l 4116 5622 l 4368 5370 l 4368 5370 l 4209 5466 l 4304 5306 l cp
-eoclip
-n 5850 3825 m
- 4095 5580 l gs col0 s gr gr
-
-% arrowhead
-75.000 slw
-n 4304 5306 m 4209 5466 l 4368 5370 l 4304 5306 l  cp gs 0.00 setgray ef gr  col0 s
-% Polyline
-15.000 slw
-gs  clippath
-6319 5229 m 6442 5564 l 6527 5533 l 6403 5198 l 6403 5198 l 6424 5383 l 6319 5229 l cp
-eoclip
-n 5850 3825 m
- 6480 5535 l gs col0 s gr gr
-
-% arrowhead
-75.000 slw
-n 6319 5229 m 6424 5383 l 6403 5198 l 6319 5229 l  cp gs 0.00 setgray ef gr  col0 s
-% Polyline
-15.000 slw
-gs  clippath
-3897 6930 m 3540 6930 l 3540 7020 l 3897 7020 l 3897 7020 l 3717 6975 l 3897 6930 l cp
-eoclip
-n 5625 6975 m
- 3555 6975 l gs col0 s gr gr
-
-% arrowhead
-75.000 slw
-n 3897 6930 m 3717 6975 l 3897 7020 l 3897 6930 l  cp gs 0.00 setgray ef gr  col0 s
-% here ends figure;
-% 
-% here starts figure with depth 50
-% Polyline
-0 slj
-0 slc
-15.000 slw
-n 247 6097 m 2947 3397 l 9697 3397 l 6997 6097 l
- 247 6097 l  cp gs col0 s gr 
-% Polyline
-n 247 9247 m 2947 6547 l 9697 6547 l 6997 9247 l
- 247 9247 l  cp gs col0 s gr 
-% Ellipse
-n 4050 2475 225 112 0 360 DrawEllipse gs 1.00 setgray ef gr gs col0 s gr
-
-% Ellipse
-n 6525 2475 225 112 0 360 DrawEllipse gs 1.00 setgray ef gr gs col0 s gr
-
-% Ellipse
-n 1575 2475 225 112 0 360 DrawEllipse gs 1.00 setgray ef gr gs col0 s gr
-
-% Ellipse
-n 5850 675 225 112 0 360 DrawEllipse gs 1.00 setgray ef gr gs col0 s gr
-
-% Ellipse
-n 1575 5625 225 112 0 360 DrawEllipse gs 1.00 setgray ef gr gs col0 s gr
-
-% Ellipse
-n 4050 5625 225 112 0 360 DrawEllipse gs 1.00 setgray ef gr gs col0 s gr
-
-% Ellipse
-n 6525 5625 225 112 0 360 DrawEllipse gs 1.00 setgray ef gr gs col0 s gr
-
-% Ellipse
-n 5850 3825 225 112 0 360 DrawEllipse gs 1.00 setgray ef gr gs col0 s gr
-
-% Ellipse
-n 1575 8775 225 112 0 360 DrawEllipse gs 1.00 setgray ef gr gs col0 s gr
-
-% Ellipse
-n 4050 8775 225 112 0 360 DrawEllipse gs 1.00 setgray ef gr gs col0 s gr
-
-% Ellipse
-n 3375 6975 225 112 0 360 DrawEllipse gs 1.00 setgray ef gr gs col0 s gr
-
-% Ellipse
-n 6525 8775 225 112 0 360 DrawEllipse gs 1.00 setgray ef gr gs col0 s gr
-
-% Ellipse
-n 5850 6975 225 112 0 360 DrawEllipse gs 1.00 setgray ef gr gs col0 s gr
-
-% Polyline
-n 247 2947 m 2947 247 l 9697 247 l 6997 2947 l
- 247 2947 l  cp gs col0 s gr 
-% here ends figure;
-% 
-% here starts figure with depth 40
-/Helvetica ff 480.00 scf sf
-8280 8910 m
-gs 1 -1 sc (Original digraph) col0 sh gr
-% Polyline
-0 slj
-0 slc
-7.500 slw
- [15 45] 45 sd
-n 5850 810 m
- 5850 3825 l gs col0 s gr  [] 0 sd
-% Polyline
- [15 45] 45 sd
-n 6525 2610 m
- 6525 5625 l gs col0 s gr  [] 0 sd
-% Polyline
- [15 45] 45 sd
-n 4050 2610 m
- 4050 5625 l gs col0 s gr  [] 0 sd
-% Polyline
- [15 45] 45 sd
-n 1575 2610 m
- 1575 5625 l gs col0 s gr  [] 0 sd
-% Polyline
- [15 45] 45 sd
-n 5850 3960 m
- 5850 6975 l gs col0 s gr  [] 0 sd
-% Polyline
- [15 45] 45 sd
-n 6525 5760 m
- 6525 8775 l gs col0 s gr  [] 0 sd
-% Polyline
- [15 45] 45 sd
-n 4050 5760 m
- 4050 8775 l gs col0 s gr  [] 0 sd
-/Helvetica ff 480.00 scf sf
-8280 2610 m
-gs 1 -1 sc (Undirector adaptor) col0 sh gr
-/Helvetica ff 480.00 scf sf
-8280 5760 m
-gs 1 -1 sc (SubDigraph adaptor) col0 sh gr
-% Polyline
- [15 45] 45 sd
-n 1575 5760 m
- 1575 8775 l gs col0 s gr  [] 0 sd
-% here ends figure;
-$F2psEnd
-rs
-showpage
-%%Trailer
-%EOF
Index: doc/images/bipartite_partitions.eps
===================================================================
--- doc/images/bipartite_partitions.eps	(revision 1213)
+++ doc/images/bipartite_partitions.eps	(revision 634)
@@ -1,5 +1,5 @@
 %!PS-Adobe-2.0 EPSF-2.0
 %%Creator: LEMON, graphToEps()
-%%CreationDate: Fri Mar  8 00:18:43 2013
+%%CreationDate: Tue Nov 15 16:51:43 2005
 %%BoundingBox: 0 0 842 596
 %%EndComments
@@ -54,60 +54,60 @@
 %Edges:
 gsave
-513.857 -446.322 296.569 -487.43 79.2808 -528.539 0 0 0 7.00153 lb
-513.857 -446.322 575.52 -315.656 637.183 -184.989 0 0 0 7.00153 lb
-393.468 566.711 494.771 434.577 596.074 302.442 0 0 0 7.00153 lb
-393.468 566.711 155.625 579.925 -82.2171 593.138 0 0 0 7.00153 lb
-393.468 566.711 251.056 450.726 108.644 334.741 0 0 0 7.00153 lb
-869.153 52.8539 732.613 177.648 596.074 302.442 0 0 0 7.00153 lb
-869.153 52.8539 753.168 -66.0676 637.183 -184.989 0 0 0 7.00153 lb
--82.2171 593.138 -91.0261 346.487 -99.8351 99.8351 0 0 0 7.00153 lb
--663.61 546.157 -753.168 394.936 -842.726 243.715 0 0 0 7.00153 lb
--663.61 546.157 -574.052 437.513 -484.494 328.869 0 0 0 7.00153 lb
--1077.63 161.498 -960.178 202.606 -842.726 243.715 0 0 0 7.00153 lb
--1077.63 161.498 -968.987 66.0674 -860.344 -29.3633 0 0 0 7.00153 lb
--1177.47 -234.906 -1029.18 -381.722 -880.898 -528.539 0 0 0 7.00153 lb
--1177.47 -234.906 -1018.91 -132.135 -860.344 -29.3633 0 0 0 7.00153 lb
--880.898 -528.539 -744.359 -387.595 -607.82 -246.651 0 0 0 7.00153 lb
--499.175 -499.175 -355.295 -475.685 -211.415 -452.194 0 0 0 7.00153 lb
--499.175 -499.175 -553.498 -372.913 -607.82 -246.651 0 0 0 7.00153 lb
--499.175 -499.175 -386.587 -315.087 -274 -131 0 0 0 7.00153 lb
-79.2808 -528.539 -66.0671 -490.366 -211.415 -452.194 0 0 0 7.00153 lb
-637.183 -184.989 421.363 -253.993 205.543 -322.996 0 0 0 7.00153 lb
-205.543 -322.996 162.966 -226.097 120.389 -129.198 0 0 0 7.00153 lb
-399.34 88.0898 259.865 -20.5541 120.389 -129.198 0 0 0 7.00153 lb
-399.34 88.0898 253.992 211.415 108.644 334.741 0 0 0 7.00153 lb
--842.726 243.715 -471.281 171.775 -99.8351 99.8351 0 0 0 7.00153 lb
--842.726 243.715 -558.363 56.3575 -274 -131 0 0 0 7.00153 lb
--860.344 -29.3633 -734.082 -138.007 -607.82 -246.651 0 0 0 7.00153 lb
--211.415 -452.194 -45.513 -290.696 120.389 -129.198 0 0 0 7.00153 lb
--99.8351 99.8351 4.40445 217.288 108.644 334.741 0 0 0 7.00153 lb
--99.8351 99.8351 -292.165 214.352 -484.494 328.869 0 0 0 7.00153 lb
-120.389 -129.198 -76.8055 -130.099 -274 -131 0 0 0 7.00153 lb
+513.857 -446.322 296.569 -487.43 79.2808 -528.539 0 0 0 2 lb
+513.857 -446.322 575.52 -315.655 637.183 -184.989 0 0 0 2 lb
+393.468 566.711 494.771 434.577 596.074 302.442 0 0 0 2 lb
+393.468 566.711 155.625 579.925 -82.2171 593.138 0 0 0 2 lb
+393.468 566.711 251.056 450.726 108.644 334.741 0 0 0 2 lb
+869.153 52.8539 732.613 177.648 596.074 302.442 0 0 0 2 lb
+869.153 52.8539 753.168 -66.0676 637.183 -184.989 0 0 0 2 lb
+-82.2171 593.138 -91.0261 346.487 -99.8351 99.8351 0 0 0 2 lb
+-663.61 546.157 -753.168 394.936 -842.726 243.715 0 0 0 2 lb
+-663.61 546.157 -574.052 437.513 -484.494 328.869 0 0 0 2 lb
+-1077.63 161.498 -960.178 202.606 -842.726 243.715 0 0 0 2 lb
+-1077.63 161.498 -968.987 66.0674 -860.344 -29.3633 0 0 0 2 lb
+-1177.47 -234.906 -1029.18 -381.722 -880.898 -528.539 0 0 0 2 lb
+-1177.47 -234.906 -1018.91 -132.135 -860.344 -29.3633 0 0 0 2 lb
+-880.898 -528.539 -744.359 -387.595 -607.82 -246.651 0 0 0 2 lb
+-499.175 -499.175 -355.295 -475.685 -211.415 -452.194 0 0 0 2 lb
+-499.175 -499.175 -553.498 -372.913 -607.82 -246.651 0 0 0 2 lb
+-499.175 -499.175 -386.587 -315.087 -274 -131 0 0 0 2 lb
+79.2808 -528.539 -66.0671 -490.366 -211.415 -452.194 0 0 0 2 lb
+637.183 -184.989 421.363 -253.993 205.543 -322.996 0 0 0 2 lb
+205.543 -322.996 162.966 -226.097 120.389 -129.198 0 0 0 2 lb
+399.34 88.0898 259.865 -20.5541 120.389 -129.198 0 0 0 2 lb
+399.34 88.0898 253.992 211.415 108.644 334.741 0 0 0 2 lb
+-842.726 243.715 -471.281 171.775 -99.8351 99.8351 0 0 0 2 lb
+-842.726 243.715 -558.363 56.3575 -274 -131 0 0 0 2 lb
+-860.344 -29.3633 -734.082 -138.007 -607.82 -246.651 0 0 0 2 lb
+-211.415 -452.194 -45.513 -290.696 120.389 -129.198 0 0 0 2 lb
+-99.8351 99.8351 4.40445 217.288 108.644 334.741 0 0 0 2 lb
+-99.8351 99.8351 -292.165 214.352 -484.494 328.869 0 0 0 2 lb
+120.389 -129.198 -76.8055 -130.099 -274 -131 0 0 0 2 lb
 grestore
 %Nodes:
 gsave
--274 -131 23.3384 1 0 0 nc
--607.82 -246.651 23.3384 1 0 0 nc
--484.494 328.869 23.3384 0 0 1 nc
-108.644 334.741 23.3384 0 0 1 nc
-120.389 -129.198 23.3384 0 0 1 nc
--99.8351 99.8351 23.3384 1 0 0 nc
--211.415 -452.194 23.3384 1 0 0 nc
--860.344 -29.3633 23.3384 0 0 1 nc
--842.726 243.715 23.3384 0 0 1 nc
-399.34 88.0898 23.3384 1 0 0 nc
-205.543 -322.996 23.3384 1 0 0 nc
-637.183 -184.989 23.3384 0 0 1 nc
-79.2808 -528.539 23.3384 0 0 1 nc
--499.175 -499.175 23.3384 0 0 1 nc
--880.898 -528.539 23.3384 0 0 1 nc
--1177.47 -234.906 23.3384 1 0 0 nc
--1077.63 161.498 23.3384 1 0 0 nc
--663.61 546.157 23.3384 1 0 0 nc
--82.2171 593.138 23.3384 0 0 1 nc
-596.074 302.442 23.3384 0 0 1 nc
-869.153 52.8539 23.3384 1 0 0 nc
-393.468 566.711 23.3384 1 0 0 nc
-513.857 -446.322 23.3384 1 0 0 nc
+-274 -131 20 1 0 0 nc
+-607.82 -246.651 20 1 0 0 nc
+-484.494 328.869 20 0 0 1 nc
+108.644 334.741 20 0 0 1 nc
+120.389 -129.198 20 0 0 1 nc
+-99.8351 99.8351 20 1 0 0 nc
+-211.415 -452.194 20 1 0 0 nc
+-860.344 -29.3633 20 0 0 1 nc
+-842.726 243.715 20 0 0 1 nc
+399.34 88.0898 20 1 0 0 nc
+205.543 -322.996 20 1 0 0 nc
+637.183 -184.989 20 0 0 1 nc
+79.2808 -528.539 20 0 0 1 nc
+-499.175 -499.175 20 0 0 1 nc
+-880.898 -528.539 20 0 0 1 nc
+-1177.47 -234.906 20 1 0 0 nc
+-1077.63 161.498 20 1 0 0 nc
+-663.61 546.157 20 1 0 0 nc
+-82.2171 593.138 20 0 0 1 nc
+596.074 302.442 20 0 0 1 nc
+869.153 52.8539 20 1 0 0 nc
+393.468 566.711 20 1 0 0 nc
+513.857 -446.322 20 1 0 0 nc
 grestore
 grestore
Index: doc/images/connected_components.eps
===================================================================
--- doc/images/connected_components.eps	(revision 1213)
+++ doc/images/connected_components.eps	(revision 634)
@@ -1,5 +1,5 @@
 %!PS-Adobe-2.0 EPSF-2.0
 %%Creator: LEMON, graphToEps()
-%%CreationDate: Fri Mar  8 00:18:43 2013
+%%CreationDate: Fri Nov  4 13:47:12 2005
 %%BoundingBox: 0 0 842 596
 %%EndComments
@@ -54,105 +54,105 @@
 %Edges:
 gsave
-574.035 177.301 622.149 225.748 670.264 274.195 0 0 0 6.25356 lb
-694.579 115.483 682.421 194.839 670.264 274.195 0 0 0 6.25356 lb
-280.402 10.3938 246.402 -6.60595 212.403 -23.6057 0 0 0 6.25356 lb
-280.402 10.3938 283.493 -18.9695 286.584 -48.3327 0 0 0 6.25356 lb
-212.403 -23.6057 249.493 -35.9692 286.584 -48.3327 0 0 0 6.25356 lb
-286.584 -48.3327 326.765 -79.2414 366.947 -110.15 0 0 0 6.25356 lb
-286.584 -48.3327 278.857 -111.695 271.13 -175.058 0 0 0 6.25356 lb
-438.037 -88.514 417.946 -142.604 397.855 -196.694 0 0 0 6.25356 lb
-438.037 -88.514 402.492 -99.332 366.947 -110.15 0 0 0 6.25356 lb
-397.855 -196.694 382.401 -153.422 366.947 -110.15 0 0 0 6.25356 lb
-366.947 -110.15 319.038 -142.604 271.13 -175.058 0 0 0 6.25356 lb
-271.13 -175.058 274.221 -213.694 277.311 -252.33 0 0 0 6.25356 lb
-271.13 -175.058 238.675 -190.512 206.221 -205.967 0 0 0 6.25356 lb
-277.311 -252.33 241.766 -229.149 206.221 -205.967 0 0 0 6.25356 lb
--840.856 -246.718 -804.351 -66.7145 -767.847 113.289 0 0 0 6.25356 lb
--579.033 445.603 -673.44 279.446 -767.847 113.289 0 0 0 6.25356 lb
--579.033 445.603 -524.906 302.104 -470.779 158.605 0 0 0 6.25356 lb
--767.847 113.289 -619.313 135.947 -470.779 158.605 0 0 0 6.25356 lb
-906.312 201.403 946.592 42.798 986.873 -115.807 0 0 0 6.25356 lb
-906.312 201.403 834.562 91.8901 762.812 -17.6227 0 0 0 6.25356 lb
-986.873 -115.807 874.842 -66.7148 762.812 -17.6227 0 0 0 6.25356 lb
--470.779 158.605 -390.218 50.3508 -309.657 -57.9033 0 0 0 6.25356 lb
-422.945 521.129 208.955 541.269 -5.03507 561.41 0 0 0 6.25356 lb
-422.945 521.129 376.371 417.911 329.797 314.692 0 0 0 6.25356 lb
-422.945 521.129 474.554 276.928 526.164 32.7279 0 0 0 6.25356 lb
--5.03507 561.41 -36.5042 440.568 -67.9734 319.727 0 0 0 6.25356 lb
-329.797 314.692 130.912 317.209 -67.9734 319.727 0 0 0 6.25356 lb
--67.9734 319.727 229.095 176.227 526.164 32.7279 0 0 0 6.25356 lb
-762.812 -17.6227 644.488 7.5526 526.164 32.7279 0 0 0 6.25356 lb
-762.812 -17.6227 746.448 -162.381 730.084 -307.139 0 0 0 6.25356 lb
-526.164 32.7279 470.779 -128.394 415.393 -289.516 0 0 0 6.25356 lb
-730.084 -307.139 572.738 -298.327 415.393 -289.516 0 0 0 6.25356 lb
-415.393 -289.516 173.71 -318.468 -67.9734 -347.42 0 0 0 6.25356 lb
--67.9734 -347.42 -188.815 -202.662 -309.657 -57.9033 0 0 0 6.25356 lb
--67.9734 -347.42 -195.758 -390.692 -323.543 -433.964 0 0 0 6.25356 lb
--309.657 -57.9033 -424.775 -160.272 -539.894 -262.64 0 0 0 6.25356 lb
--323.543 -433.964 -431.719 -348.302 -539.894 -262.64 0 0 0 6.25356 lb
--26.6953 -19.9585 44.8558 -96.8093 116.407 -173.66 0 0 0 6.25356 lb
--26.6953 -19.9585 87.2563 9.19185 201.208 38.3422 0 0 0 6.25356 lb
--26.6953 -19.9585 -144.622 43.6422 -262.548 107.243 0 0 0 6.25356 lb
--26.6953 -19.9585 -20.0703 56.8923 -13.4452 133.743 0 0 0 6.25356 lb
-116.407 -173.66 158.808 -67.6589 201.208 38.3422 0 0 0 6.25356 lb
--262.548 107.243 -137.997 120.493 -13.4452 133.743 0 0 0 6.25356 lb
--262.548 107.243 -221.472 176.144 -180.397 245.045 0 0 0 6.25356 lb
--13.4452 133.743 -96.9211 189.394 -180.397 245.045 0 0 0 6.25356 lb
--180.397 245.045 -113.509 338.465 -132.697 451.748 0 0 0 6.25356 lb
--180.397 245.045 -199.585 358.328 -132.697 451.748 0 0 0 6.25356 lb
--416.25 345.746 -274.474 398.747 -132.697 451.748 0 0 0 6.25356 lb
--416.25 345.746 -393.725 457.048 -371.2 568.349 0 0 0 6.25356 lb
--132.697 451.748 -251.948 510.048 -371.2 568.349 0 0 0 6.25356 lb
-670.264 274.195 629.188 409.347 588.113 544.499 0 0 0 6.25356 lb
-670.264 274.195 797.466 341.771 924.667 409.347 0 0 0 6.25356 lb
-588.113 544.499 756.39 476.923 924.667 409.347 0 0 0 6.25356 lb
--689.204 -237.261 -587.735 -114.393 -567.302 43.6423 0 0 0 6.25356 lb
--689.204 -237.261 -668.771 -79.2259 -567.302 43.6423 0 0 0 6.25356 lb
+574.035 177.301 622.149 225.748 670.264 274.195 0 0 0 2 lb
+694.579 115.483 682.421 194.839 670.264 274.195 0 0 0 2 lb
+280.402 10.3938 246.402 -6.60595 212.403 -23.6057 0 0 0 2 lb
+280.402 10.3938 283.493 -18.9695 286.584 -48.3327 0 0 0 2 lb
+212.403 -23.6057 249.493 -35.9692 286.584 -48.3327 0 0 0 2 lb
+286.584 -48.3327 326.765 -79.2414 366.947 -110.15 0 0 0 2 lb
+286.584 -48.3327 278.857 -111.695 271.13 -175.058 0 0 0 2 lb
+438.037 -88.514 417.946 -142.604 397.855 -196.694 0 0 0 2 lb
+438.037 -88.514 402.492 -99.332 366.947 -110.15 0 0 0 2 lb
+397.855 -196.694 382.401 -153.422 366.947 -110.15 0 0 0 2 lb
+366.947 -110.15 319.038 -142.604 271.13 -175.058 0 0 0 2 lb
+271.13 -175.058 274.221 -213.694 277.311 -252.33 0 0 0 2 lb
+271.13 -175.058 238.675 -190.512 206.221 -205.967 0 0 0 2 lb
+277.311 -252.33 241.766 -229.149 206.221 -205.967 0 0 0 2 lb
+-840.856 -246.718 -804.351 -66.7145 -767.847 113.289 0 0 0 2 lb
+-579.033 445.603 -673.44 279.446 -767.847 113.289 0 0 0 2 lb
+-579.033 445.603 -524.906 302.104 -470.779 158.605 0 0 0 2 lb
+-767.847 113.289 -619.313 135.947 -470.779 158.605 0 0 0 2 lb
+906.312 201.403 946.592 42.798 986.873 -115.807 0 0 0 2 lb
+906.312 201.403 834.562 91.8901 762.812 -17.6227 0 0 0 2 lb
+986.873 -115.807 874.842 -66.7148 762.812 -17.6227 0 0 0 2 lb
+-470.779 158.605 -390.218 50.3508 -309.657 -57.9033 0 0 0 2 lb
+422.945 521.129 208.955 541.269 -5.03507 561.41 0 0 0 2 lb
+422.945 521.129 376.371 417.911 329.797 314.692 0 0 0 2 lb
+422.945 521.129 474.554 276.928 526.164 32.7279 0 0 0 2 lb
+-5.03507 561.41 -36.5042 440.568 -67.9734 319.727 0 0 0 2 lb
+329.797 314.692 130.912 317.209 -67.9734 319.727 0 0 0 2 lb
+-67.9734 319.727 229.095 176.227 526.164 32.7279 0 0 0 2 lb
+762.812 -17.6227 644.488 7.5526 526.164 32.7279 0 0 0 2 lb
+762.812 -17.6227 746.448 -162.381 730.084 -307.139 0 0 0 2 lb
+526.164 32.7279 470.779 -128.394 415.393 -289.516 0 0 0 2 lb
+730.084 -307.139 572.738 -298.327 415.393 -289.516 0 0 0 2 lb
+415.393 -289.516 173.71 -318.468 -67.9734 -347.42 0 0 0 2 lb
+-67.9734 -347.42 -188.815 -202.662 -309.657 -57.9033 0 0 0 2 lb
+-67.9734 -347.42 -195.758 -390.692 -323.543 -433.964 0 0 0 2 lb
+-309.657 -57.9033 -424.775 -160.272 -539.894 -262.64 0 0 0 2 lb
+-323.543 -433.964 -431.719 -348.302 -539.894 -262.64 0 0 0 2 lb
+-26.6953 -19.9585 44.8558 -96.8093 116.407 -173.66 0 0 0 2 lb
+-26.6953 -19.9585 87.2563 9.19185 201.208 38.3422 0 0 0 2 lb
+-26.6953 -19.9585 -144.622 43.6422 -262.548 107.243 0 0 0 2 lb
+-26.6953 -19.9585 -20.0703 56.8923 -13.4452 133.743 0 0 0 2 lb
+116.407 -173.66 158.808 -67.6589 201.208 38.3422 0 0 0 2 lb
+-262.548 107.243 -137.997 120.493 -13.4452 133.743 0 0 0 2 lb
+-262.548 107.243 -221.472 176.144 -180.397 245.045 0 0 0 2 lb
+-13.4452 133.743 -96.9211 189.394 -180.397 245.045 0 0 0 2 lb
+-180.397 245.045 -142.256 345.099 -132.697 451.748 0 0 0 2 lb
+-180.397 245.045 -170.838 351.694 -132.697 451.748 0 0 0 2 lb
+-416.25 345.746 -274.474 398.747 -132.697 451.748 0 0 0 2 lb
+-416.25 345.746 -393.725 457.048 -371.2 568.349 0 0 0 2 lb
+-132.697 451.748 -251.948 510.048 -371.2 568.349 0 0 0 2 lb
+670.264 274.195 629.188 409.347 588.113 544.499 0 0 0 2 lb
+670.264 274.195 797.466 341.771 924.667 409.347 0 0 0 2 lb
+588.113 544.499 756.39 476.923 924.667 409.347 0 0 0 2 lb
+-689.204 -237.261 -614.799 -102.648 -567.302 43.6423 0 0 0 2 lb
+-689.204 -237.261 -641.707 -90.9706 -567.302 43.6423 0 0 0 2 lb
 grestore
 %Nodes:
 gsave
--567.302 43.6423 20.8452 0 0 0 nc
--689.204 -237.261 20.8452 0 0 0 nc
-924.667 409.347 20.8452 1 0 0 nc
-588.113 544.499 20.8452 1 0 0 nc
-670.264 274.195 20.8452 1 0 0 nc
--371.2 568.349 20.8452 0 1 0 nc
--132.697 451.748 20.8452 0 1 0 nc
--416.25 345.746 20.8452 0 1 0 nc
--180.397 245.045 20.8452 0 1 0 nc
--13.4452 133.743 20.8452 0 1 0 nc
--262.548 107.243 20.8452 0 1 0 nc
-201.208 38.3422 20.8452 0 1 0 nc
-116.407 -173.66 20.8452 0 1 0 nc
--26.6953 -19.9585 20.8452 0 1 0 nc
--539.894 -262.64 20.8452 0 0 1 nc
--323.543 -433.964 20.8452 0 0 1 nc
--309.657 -57.9033 20.8452 0 0 1 nc
--67.9734 -347.42 20.8452 0 0 1 nc
-415.393 -289.516 20.8452 0 0 1 nc
-730.084 -307.139 20.8452 0 0 1 nc
-526.164 32.7279 20.8452 0 0 1 nc
-762.812 -17.6227 20.8452 0 0 1 nc
--67.9734 319.727 20.8452 0 0 1 nc
-329.797 314.692 20.8452 0 0 1 nc
--5.03507 561.41 20.8452 0 0 1 nc
-422.945 521.129 20.8452 0 0 1 nc
--470.779 158.605 20.8452 0 0 1 nc
-986.873 -115.807 20.8452 0 0 1 nc
-906.312 201.403 20.8452 0 0 1 nc
--767.847 113.289 20.8452 0 0 1 nc
--579.033 445.603 20.8452 0 0 1 nc
--840.856 -246.718 20.8452 0 0 1 nc
-206.221 -205.967 20.8452 1 1 0 nc
-277.311 -252.33 20.8452 1 1 0 nc
-271.13 -175.058 20.8452 1 1 0 nc
-366.947 -110.15 20.8452 1 1 0 nc
-397.855 -196.694 20.8452 1 1 0 nc
-438.037 -88.514 20.8452 1 1 0 nc
-286.584 -48.3327 20.8452 1 1 0 nc
-212.403 -23.6057 20.8452 1 1 0 nc
-280.402 10.3938 20.8452 1 1 0 nc
-694.579 115.483 20.8452 1 0 0 nc
-574.035 177.301 20.8452 1 0 0 nc
+-567.302 43.6423 20 0 0 0 nc
+-689.204 -237.261 20 0 0 0 nc
+924.667 409.347 20 1 0 0 nc
+588.113 544.499 20 1 0 0 nc
+670.264 274.195 20 1 0 0 nc
+-371.2 568.349 20 0 1 0 nc
+-132.697 451.748 20 0 1 0 nc
+-416.25 345.746 20 0 1 0 nc
+-180.397 245.045 20 0 1 0 nc
+-13.4452 133.743 20 0 1 0 nc
+-262.548 107.243 20 0 1 0 nc
+201.208 38.3422 20 0 1 0 nc
+116.407 -173.66 20 0 1 0 nc
+-26.6953 -19.9585 20 0 1 0 nc
+-539.894 -262.64 20 0 0 1 nc
+-323.543 -433.964 20 0 0 1 nc
+-309.657 -57.9033 20 0 0 1 nc
+-67.9734 -347.42 20 0 0 1 nc
+415.393 -289.516 20 0 0 1 nc
+730.084 -307.139 20 0 0 1 nc
+526.164 32.7279 20 0 0 1 nc
+762.812 -17.6227 20 0 0 1 nc
+-67.9734 319.727 20 0 0 1 nc
+329.797 314.692 20 0 0 1 nc
+-5.03507 561.41 20 0 0 1 nc
+422.945 521.129 20 0 0 1 nc
+-470.779 158.605 20 0 0 1 nc
+986.873 -115.807 20 0 0 1 nc
+906.312 201.403 20 0 0 1 nc
+-767.847 113.289 20 0 0 1 nc
+-579.033 445.603 20 0 0 1 nc
+-840.856 -246.718 20 0 0 1 nc
+206.221 -205.967 20 1 1 0 nc
+277.311 -252.33 20 1 1 0 nc
+271.13 -175.058 20 1 1 0 nc
+366.947 -110.15 20 1 1 0 nc
+397.855 -196.694 20 1 1 0 nc
+438.037 -88.514 20 1 1 0 nc
+286.584 -48.3327 20 1 1 0 nc
+212.403 -23.6057 20 1 1 0 nc
+280.402 10.3938 20 1 1 0 nc
+694.579 115.483 20 1 0 0 nc
+574.035 177.301 20 1 0 0 nc
 grestore
 grestore
Index: doc/images/edge_biconnected_components.eps
===================================================================
--- doc/images/edge_biconnected_components.eps	(revision 1213)
+++ doc/images/edge_biconnected_components.eps	(revision 634)
@@ -1,5 +1,5 @@
 %!PS-Adobe-2.0 EPSF-2.0
 %%Creator: LEMON, graphToEps()
-%%CreationDate: Fri Mar  8 00:18:43 2013
+%%CreationDate: Fri Nov  4 13:47:12 2005
 %%BoundingBox: 0 0 842 596
 %%EndComments
@@ -54,105 +54,105 @@
 %Edges:
 gsave
-574.035 177.301 622.149 225.748 670.264 274.195 1 0 0 6.25356 lb
-694.579 115.483 682.421 194.839 670.264 274.195 1 0 0 6.25356 lb
-280.402 10.3938 246.402 -6.60595 212.403 -23.6057 0 0 1 6.25356 lb
-280.402 10.3938 283.493 -18.9695 286.584 -48.3327 0 0 1 6.25356 lb
-212.403 -23.6057 249.493 -35.9692 286.584 -48.3327 0 0 1 6.25356 lb
-286.584 -48.3327 326.765 -79.2414 366.947 -110.15 0 0 1 6.25356 lb
-286.584 -48.3327 278.857 -111.695 271.13 -175.058 0 0 1 6.25356 lb
-438.037 -88.514 417.946 -142.604 397.855 -196.694 0 0 1 6.25356 lb
-438.037 -88.514 402.492 -99.332 366.947 -110.15 0 0 1 6.25356 lb
-397.855 -196.694 382.401 -153.422 366.947 -110.15 0 0 1 6.25356 lb
-366.947 -110.15 319.038 -142.604 271.13 -175.058 0 0 1 6.25356 lb
-271.13 -175.058 274.221 -213.694 277.311 -252.33 0 0 1 6.25356 lb
-271.13 -175.058 238.675 -190.512 206.221 -205.967 0 0 1 6.25356 lb
-277.311 -252.33 241.766 -229.149 206.221 -205.967 0 0 1 6.25356 lb
--840.856 -246.718 -804.351 -66.7145 -767.847 113.289 1 0 0 6.25356 lb
--579.033 445.603 -673.44 279.446 -767.847 113.289 0 0 1 6.25356 lb
--579.033 445.603 -524.906 302.104 -470.779 158.605 0 0 1 6.25356 lb
--767.847 113.289 -619.313 135.947 -470.779 158.605 0 0 1 6.25356 lb
-906.312 201.403 946.592 42.798 986.873 -115.807 0 0 1 6.25356 lb
-906.312 201.403 834.562 91.8901 762.812 -17.6227 0 0 1 6.25356 lb
-986.873 -115.807 874.842 -66.7148 762.812 -17.6227 0 0 1 6.25356 lb
--470.779 158.605 -390.218 50.3508 -309.657 -57.9033 1 0 0 6.25356 lb
-422.945 521.129 208.955 541.269 -5.03507 561.41 0 0 1 6.25356 lb
-422.945 521.129 376.371 417.911 329.797 314.692 0 0 1 6.25356 lb
-422.945 521.129 474.554 276.928 526.164 32.7279 0 0 1 6.25356 lb
--5.03507 561.41 -36.5042 440.568 -67.9734 319.727 0 0 1 6.25356 lb
-329.797 314.692 130.912 317.209 -67.9734 319.727 0 0 1 6.25356 lb
--67.9734 319.727 229.095 176.227 526.164 32.7279 0 0 1 6.25356 lb
-762.812 -17.6227 644.488 7.5526 526.164 32.7279 0 0 1 6.25356 lb
-762.812 -17.6227 746.448 -162.381 730.084 -307.139 0 0 1 6.25356 lb
-526.164 32.7279 470.779 -128.394 415.393 -289.516 0 0 1 6.25356 lb
-730.084 -307.139 572.738 -298.327 415.393 -289.516 0 0 1 6.25356 lb
-415.393 -289.516 173.71 -318.468 -67.9734 -347.42 1 0 0 6.25356 lb
--67.9734 -347.42 -188.815 -202.662 -309.657 -57.9033 0 0 1 6.25356 lb
--67.9734 -347.42 -195.758 -390.692 -323.543 -433.964 0 0 1 6.25356 lb
--309.657 -57.9033 -424.775 -160.272 -539.894 -262.64 0 0 1 6.25356 lb
--323.543 -433.964 -431.719 -348.302 -539.894 -262.64 0 0 1 6.25356 lb
--26.6953 -19.9585 44.8558 -96.8093 116.407 -173.66 0 0 1 6.25356 lb
--26.6953 -19.9585 87.2563 9.19185 201.208 38.3422 0 0 1 6.25356 lb
--26.6953 -19.9585 -144.622 43.6422 -262.548 107.243 0 0 1 6.25356 lb
--26.6953 -19.9585 -20.0703 56.8923 -13.4452 133.743 0 0 1 6.25356 lb
-116.407 -173.66 158.808 -67.6589 201.208 38.3422 0 0 1 6.25356 lb
--262.548 107.243 -137.997 120.493 -13.4452 133.743 0 0 1 6.25356 lb
--262.548 107.243 -221.472 176.144 -180.397 245.045 0 0 1 6.25356 lb
--13.4452 133.743 -96.9211 189.394 -180.397 245.045 0 0 1 6.25356 lb
--180.397 245.045 -113.509 338.465 -132.697 451.748 0 0 1 6.25356 lb
--180.397 245.045 -199.585 358.328 -132.697 451.748 0 0 1 6.25356 lb
--416.25 345.746 -274.474 398.747 -132.697 451.748 0 0 1 6.25356 lb
--416.25 345.746 -393.725 457.048 -371.2 568.349 0 0 1 6.25356 lb
--132.697 451.748 -251.948 510.048 -371.2 568.349 0 0 1 6.25356 lb
-670.264 274.195 629.188 409.347 588.113 544.499 0 0 1 6.25356 lb
-670.264 274.195 797.466 341.771 924.667 409.347 0 0 1 6.25356 lb
-588.113 544.499 756.39 476.923 924.667 409.347 0 0 1 6.25356 lb
--689.204 -237.261 -587.735 -114.393 -567.302 43.6423 0 0 1 6.25356 lb
--689.204 -237.261 -668.771 -79.2259 -567.302 43.6423 0 0 1 6.25356 lb
+574.035 177.301 622.149 225.748 670.264 274.195 1 0 0 2 lb
+694.579 115.483 682.421 194.839 670.264 274.195 1 0 0 2 lb
+280.402 10.3938 246.402 -6.60595 212.403 -23.6057 0 0 1 2 lb
+280.402 10.3938 283.493 -18.9695 286.584 -48.3327 0 0 1 2 lb
+212.403 -23.6057 249.493 -35.9692 286.584 -48.3327 0 0 1 2 lb
+286.584 -48.3327 326.765 -79.2414 366.947 -110.15 0 0 1 2 lb
+286.584 -48.3327 278.857 -111.695 271.13 -175.058 0 0 1 2 lb
+438.037 -88.514 417.946 -142.604 397.855 -196.694 0 0 1 2 lb
+438.037 -88.514 402.492 -99.332 366.947 -110.15 0 0 1 2 lb
+397.855 -196.694 382.401 -153.422 366.947 -110.15 0 0 1 2 lb
+366.947 -110.15 319.038 -142.604 271.13 -175.058 0 0 1 2 lb
+271.13 -175.058 274.221 -213.694 277.311 -252.33 0 0 1 2 lb
+271.13 -175.058 238.675 -190.512 206.221 -205.967 0 0 1 2 lb
+277.311 -252.33 241.766 -229.149 206.221 -205.967 0 0 1 2 lb
+-840.856 -246.718 -804.351 -66.7145 -767.847 113.289 1 0 0 2 lb
+-579.033 445.603 -673.44 279.446 -767.847 113.289 0 0 1 2 lb
+-579.033 445.603 -524.906 302.104 -470.779 158.605 0 0 1 2 lb
+-767.847 113.289 -619.313 135.947 -470.779 158.605 0 0 1 2 lb
+906.312 201.403 946.592 42.798 986.873 -115.807 0 0 1 2 lb
+906.312 201.403 834.562 91.8901 762.812 -17.6227 0 0 1 2 lb
+986.873 -115.807 874.842 -66.7148 762.812 -17.6227 0 0 1 2 lb
+-470.779 158.605 -390.218 50.3508 -309.657 -57.9033 1 0 0 2 lb
+422.945 521.129 208.955 541.269 -5.03507 561.41 0 0 1 2 lb
+422.945 521.129 376.371 417.911 329.797 314.692 0 0 1 2 lb
+422.945 521.129 474.554 276.928 526.164 32.7279 0 0 1 2 lb
+-5.03507 561.41 -36.5042 440.568 -67.9734 319.727 0 0 1 2 lb
+329.797 314.692 130.912 317.209 -67.9734 319.727 0 0 1 2 lb
+-67.9734 319.727 229.095 176.227 526.164 32.7279 0 0 1 2 lb
+762.812 -17.6227 644.488 7.5526 526.164 32.7279 0 0 1 2 lb
+762.812 -17.6227 746.448 -162.381 730.084 -307.139 0 0 1 2 lb
+526.164 32.7279 470.779 -128.394 415.393 -289.516 0 0 1 2 lb
+730.084 -307.139 572.738 -298.327 415.393 -289.516 0 0 1 2 lb
+415.393 -289.516 173.71 -318.468 -67.9734 -347.42 1 0 0 2 lb
+-67.9734 -347.42 -188.815 -202.662 -309.657 -57.9033 0 0 1 2 lb
+-67.9734 -347.42 -195.758 -390.692 -323.543 -433.964 0 0 1 2 lb
+-309.657 -57.9033 -424.775 -160.272 -539.894 -262.64 0 0 1 2 lb
+-323.543 -433.964 -431.719 -348.302 -539.894 -262.64 0 0 1 2 lb
+-26.6953 -19.9585 44.8558 -96.8093 116.407 -173.66 0 0 1 2 lb
+-26.6953 -19.9585 87.2563 9.19185 201.208 38.3422 0 0 1 2 lb
+-26.6953 -19.9585 -144.622 43.6422 -262.548 107.243 0 0 1 2 lb
+-26.6953 -19.9585 -20.0703 56.8923 -13.4452 133.743 0 0 1 2 lb
+116.407 -173.66 158.808 -67.6589 201.208 38.3422 0 0 1 2 lb
+-262.548 107.243 -137.997 120.493 -13.4452 133.743 0 0 1 2 lb
+-262.548 107.243 -221.472 176.144 -180.397 245.045 0 0 1 2 lb
+-13.4452 133.743 -96.9211 189.394 -180.397 245.045 0 0 1 2 lb
+-180.397 245.045 -142.256 345.099 -132.697 451.748 0 0 1 2 lb
+-180.397 245.045 -170.838 351.694 -132.697 451.748 0 0 1 2 lb
+-416.25 345.746 -274.474 398.747 -132.697 451.748 0 0 1 2 lb
+-416.25 345.746 -393.725 457.048 -371.2 568.349 0 0 1 2 lb
+-132.697 451.748 -251.948 510.048 -371.2 568.349 0 0 1 2 lb
+670.264 274.195 629.188 409.347 588.113 544.499 0 0 1 2 lb
+670.264 274.195 797.466 341.771 924.667 409.347 0 0 1 2 lb
+588.113 544.499 756.39 476.923 924.667 409.347 0 0 1 2 lb
+-689.204 -237.261 -614.799 -102.648 -567.302 43.6423 0 0 1 2 lb
+-689.204 -237.261 -641.707 -90.9706 -567.302 43.6423 0 0 1 2 lb
 grestore
 %Nodes:
 gsave
--567.302 43.6423 20.8452 0 0 0 nc
--689.204 -237.261 20.8452 0 0 0 nc
-924.667 409.347 20.8452 0 0 1 nc
-588.113 544.499 20.8452 0 0 1 nc
-670.264 274.195 20.8452 0 0 1 nc
--371.2 568.349 20.8452 1 1 0 nc
--132.697 451.748 20.8452 1 1 0 nc
--416.25 345.746 20.8452 1 1 0 nc
--180.397 245.045 20.8452 1 1 0 nc
--13.4452 133.743 20.8452 1 1 0 nc
--262.548 107.243 20.8452 1 1 0 nc
-201.208 38.3422 20.8452 1 1 0 nc
-116.407 -173.66 20.8452 1 1 0 nc
--26.6953 -19.9585 20.8452 1 1 0 nc
--539.894 -262.64 20.8452 0 0.5 0 nc
--323.543 -433.964 20.8452 0 0.5 0 nc
--309.657 -57.9033 20.8452 0 0.5 0 nc
--67.9734 -347.42 20.8452 0 0.5 0 nc
-415.393 -289.516 20.8452 0.5 0 0 nc
-730.084 -307.139 20.8452 0.5 0 0 nc
-526.164 32.7279 20.8452 0.5 0 0 nc
-762.812 -17.6227 20.8452 0.5 0 0 nc
--67.9734 319.727 20.8452 0.5 0 0 nc
-329.797 314.692 20.8452 0.5 0 0 nc
--5.03507 561.41 20.8452 0.5 0 0 nc
-422.945 521.129 20.8452 0.5 0 0 nc
--470.779 158.605 20.8452 0 1 1 nc
-986.873 -115.807 20.8452 0.5 0 0 nc
-906.312 201.403 20.8452 0.5 0 0 nc
--767.847 113.289 20.8452 0 1 1 nc
--579.033 445.603 20.8452 0 1 1 nc
--840.856 -246.718 20.8452 1 0 1 nc
-206.221 -205.967 20.8452 0 0 0.5 nc
-277.311 -252.33 20.8452 0 0 0.5 nc
-271.13 -175.058 20.8452 0 0 0.5 nc
-366.947 -110.15 20.8452 0 0 0.5 nc
-397.855 -196.694 20.8452 0 0 0.5 nc
-438.037 -88.514 20.8452 0 0 0.5 nc
-286.584 -48.3327 20.8452 0 0 0.5 nc
-212.403 -23.6057 20.8452 0 0 0.5 nc
-280.402 10.3938 20.8452 0 0 0.5 nc
-694.579 115.483 20.8452 1 0 0 nc
-574.035 177.301 20.8452 0 1 0 nc
+-567.302 43.6423 20 0 0 0 nc
+-689.204 -237.261 20 0 0 0 nc
+924.667 409.347 20 0 0 1 nc
+588.113 544.499 20 0 0 1 nc
+670.264 274.195 20 0 0 1 nc
+-371.2 568.349 20 1 1 0 nc
+-132.697 451.748 20 1 1 0 nc
+-416.25 345.746 20 1 1 0 nc
+-180.397 245.045 20 1 1 0 nc
+-13.4452 133.743 20 1 1 0 nc
+-262.548 107.243 20 1 1 0 nc
+201.208 38.3422 20 1 1 0 nc
+116.407 -173.66 20 1 1 0 nc
+-26.6953 -19.9585 20 1 1 0 nc
+-539.894 -262.64 20 0 0.5 0 nc
+-323.543 -433.964 20 0 0.5 0 nc
+-309.657 -57.9033 20 0 0.5 0 nc
+-67.9734 -347.42 20 0 0.5 0 nc
+415.393 -289.516 20 0.5 0 0 nc
+730.084 -307.139 20 0.5 0 0 nc
+526.164 32.7279 20 0.5 0 0 nc
+762.812 -17.6227 20 0.5 0 0 nc
+-67.9734 319.727 20 0.5 0 0 nc
+329.797 314.692 20 0.5 0 0 nc
+-5.03507 561.41 20 0.5 0 0 nc
+422.945 521.129 20 0.5 0 0 nc
+-470.779 158.605 20 0 1 1 nc
+986.873 -115.807 20 0.5 0 0 nc
+906.312 201.403 20 0.5 0 0 nc
+-767.847 113.289 20 0 1 1 nc
+-579.033 445.603 20 0 1 1 nc
+-840.856 -246.718 20 1 0 1 nc
+206.221 -205.967 20 0 0 0.5 nc
+277.311 -252.33 20 0 0 0.5 nc
+271.13 -175.058 20 0 0 0.5 nc
+366.947 -110.15 20 0 0 0.5 nc
+397.855 -196.694 20 0 0 0.5 nc
+438.037 -88.514 20 0 0 0.5 nc
+286.584 -48.3327 20 0 0 0.5 nc
+212.403 -23.6057 20 0 0 0.5 nc
+280.402 10.3938 20 0 0 0.5 nc
+694.579 115.483 20 1 0 0 nc
+574.035 177.301 20 0 1 0 nc
 grestore
 grestore
Index: doc/images/node_biconnected_components.eps
===================================================================
--- doc/images/node_biconnected_components.eps	(revision 1213)
+++ doc/images/node_biconnected_components.eps	(revision 634)
@@ -1,5 +1,5 @@
 %!PS-Adobe-2.0 EPSF-2.0
 %%Creator: LEMON, graphToEps()
-%%CreationDate: Fri Mar  8 00:18:43 2013
+%%CreationDate: Fri Nov  4 13:47:12 2005
 %%BoundingBox: 0 0 842 596
 %%EndComments
@@ -54,105 +54,105 @@
 %Edges:
 gsave
-574.035 177.301 622.149 225.748 670.264 274.195 0 1 0 6.25356 lb
-694.579 115.483 682.421 194.839 670.264 274.195 1 0 0 6.25356 lb
-280.402 10.3938 246.402 -6.60595 212.403 -23.6057 1 1 0.5 6.25356 lb
-280.402 10.3938 283.493 -18.9695 286.584 -48.3327 1 1 0.5 6.25356 lb
-212.403 -23.6057 249.493 -35.9692 286.584 -48.3327 1 1 0.5 6.25356 lb
-286.584 -48.3327 326.765 -79.2414 366.947 -110.15 1 0.5 1 6.25356 lb
-286.584 -48.3327 278.857 -111.695 271.13 -175.058 1 0.5 1 6.25356 lb
-438.037 -88.514 417.946 -142.604 397.855 -196.694 0.5 0.5 1 6.25356 lb
-438.037 -88.514 402.492 -99.332 366.947 -110.15 0.5 0.5 1 6.25356 lb
-397.855 -196.694 382.401 -153.422 366.947 -110.15 0.5 0.5 1 6.25356 lb
-366.947 -110.15 319.038 -142.604 271.13 -175.058 1 0.5 1 6.25356 lb
-271.13 -175.058 274.221 -213.694 277.311 -252.33 0.5 1 1 6.25356 lb
-271.13 -175.058 238.675 -190.512 206.221 -205.967 0.5 1 1 6.25356 lb
-277.311 -252.33 241.766 -229.149 206.221 -205.967 0.5 1 1 6.25356 lb
--840.856 -246.718 -804.351 -66.7145 -767.847 113.289 0 0.5 0 6.25356 lb
--579.033 445.603 -673.44 279.446 -767.847 113.289 0 0 0.5 6.25356 lb
--579.033 445.603 -524.906 302.104 -470.779 158.605 0 0 0.5 6.25356 lb
--767.847 113.289 -619.313 135.947 -470.779 158.605 0 0 0.5 6.25356 lb
-906.312 201.403 946.592 42.798 986.873 -115.807 0 0.5 0.5 6.25356 lb
-906.312 201.403 834.562 91.8901 762.812 -17.6227 0 0.5 0.5 6.25356 lb
-986.873 -115.807 874.842 -66.7148 762.812 -17.6227 0 0.5 0.5 6.25356 lb
--470.779 158.605 -390.218 50.3508 -309.657 -57.9033 0.5 0.5 0 6.25356 lb
-422.945 521.129 208.955 541.269 -5.03507 561.41 0.5 0 0.5 6.25356 lb
-422.945 521.129 376.371 417.911 329.797 314.692 0.5 0 0.5 6.25356 lb
-422.945 521.129 474.554 276.928 526.164 32.7279 0.5 0 0.5 6.25356 lb
--5.03507 561.41 -36.5042 440.568 -67.9734 319.727 0.5 0 0.5 6.25356 lb
-329.797 314.692 130.912 317.209 -67.9734 319.727 0.5 0 0.5 6.25356 lb
--67.9734 319.727 229.095 176.227 526.164 32.7279 0.5 0 0.5 6.25356 lb
-762.812 -17.6227 644.488 7.5526 526.164 32.7279 0.5 0.5 0.5 6.25356 lb
-762.812 -17.6227 746.448 -162.381 730.084 -307.139 0.5 0.5 0.5 6.25356 lb
-526.164 32.7279 470.779 -128.394 415.393 -289.516 0.5 0.5 0.5 6.25356 lb
-730.084 -307.139 572.738 -298.327 415.393 -289.516 0.5 0.5 0.5 6.25356 lb
-415.393 -289.516 173.71 -318.468 -67.9734 -347.42 1 0.5 0.5 6.25356 lb
--67.9734 -347.42 -188.815 -202.662 -309.657 -57.9033 0.5 1 0.5 6.25356 lb
--67.9734 -347.42 -195.758 -390.692 -323.543 -433.964 0.5 1 0.5 6.25356 lb
--309.657 -57.9033 -424.775 -160.272 -539.894 -262.64 0.5 1 0.5 6.25356 lb
--323.543 -433.964 -431.719 -348.302 -539.894 -262.64 0.5 1 0.5 6.25356 lb
--26.6953 -19.9585 44.8558 -96.8093 116.407 -173.66 1 1 0 6.25356 lb
--26.6953 -19.9585 87.2563 9.19185 201.208 38.3422 1 1 0 6.25356 lb
--26.6953 -19.9585 -144.622 43.6422 -262.548 107.243 1 0 1 6.25356 lb
--26.6953 -19.9585 -20.0703 56.8923 -13.4452 133.743 1 0 1 6.25356 lb
-116.407 -173.66 158.808 -67.6589 201.208 38.3422 1 1 0 6.25356 lb
--262.548 107.243 -137.997 120.493 -13.4452 133.743 1 0 1 6.25356 lb
--262.548 107.243 -221.472 176.144 -180.397 245.045 1 0 1 6.25356 lb
--13.4452 133.743 -96.9211 189.394 -180.397 245.045 1 0 1 6.25356 lb
--180.397 245.045 -113.509 338.465 -132.697 451.748 0 1 1 6.25356 lb
--180.397 245.045 -199.585 358.328 -132.697 451.748 0 1 1 6.25356 lb
--416.25 345.746 -274.474 398.747 -132.697 451.748 0.5 0 0 6.25356 lb
--416.25 345.746 -393.725 457.048 -371.2 568.349 0.5 0 0 6.25356 lb
--132.697 451.748 -251.948 510.048 -371.2 568.349 0.5 0 0 6.25356 lb
-670.264 274.195 629.188 409.347 588.113 544.499 0 0 1 6.25356 lb
-670.264 274.195 797.466 341.771 924.667 409.347 0 0 1 6.25356 lb
-588.113 544.499 756.39 476.923 924.667 409.347 0 0 1 6.25356 lb
--689.204 -237.261 -587.735 -114.393 -567.302 43.6423 0 0 0 6.25356 lb
--689.204 -237.261 -668.771 -79.2259 -567.302 43.6423 0 0 0 6.25356 lb
+574.035 177.301 622.149 225.748 670.264 274.195 0 1 0 5 lb
+694.579 115.483 682.421 194.839 670.264 274.195 1 0 0 5 lb
+280.402 10.3938 246.402 -6.60595 212.403 -23.6057 1 1 0.5 5 lb
+280.402 10.3938 283.493 -18.9695 286.584 -48.3327 1 1 0.5 5 lb
+212.403 -23.6057 249.493 -35.9692 286.584 -48.3327 1 1 0.5 5 lb
+286.584 -48.3327 326.765 -79.2414 366.947 -110.15 1 0.5 1 5 lb
+286.584 -48.3327 278.857 -111.695 271.13 -175.058 1 0.5 1 5 lb
+438.037 -88.514 417.946 -142.604 397.855 -196.694 0.5 0.5 1 5 lb
+438.037 -88.514 402.492 -99.332 366.947 -110.15 0.5 0.5 1 5 lb
+397.855 -196.694 382.401 -153.422 366.947 -110.15 0.5 0.5 1 5 lb
+366.947 -110.15 319.038 -142.604 271.13 -175.058 1 0.5 1 5 lb
+271.13 -175.058 274.221 -213.694 277.311 -252.33 0.5 1 1 5 lb
+271.13 -175.058 238.675 -190.512 206.221 -205.967 0.5 1 1 5 lb
+277.311 -252.33 241.766 -229.149 206.221 -205.967 0.5 1 1 5 lb
+-840.856 -246.718 -804.351 -66.7145 -767.847 113.289 0 0.5 0 5 lb
+-579.033 445.603 -673.44 279.446 -767.847 113.289 0 0 0.5 5 lb
+-579.033 445.603 -524.906 302.104 -470.779 158.605 0 0 0.5 5 lb
+-767.847 113.289 -619.313 135.947 -470.779 158.605 0 0 0.5 5 lb
+906.312 201.403 946.592 42.798 986.873 -115.807 0 0.5 0.5 5 lb
+906.312 201.403 834.562 91.8901 762.812 -17.6227 0 0.5 0.5 5 lb
+986.873 -115.807 874.842 -66.7148 762.812 -17.6227 0 0.5 0.5 5 lb
+-470.779 158.605 -390.218 50.3508 -309.657 -57.9033 0.5 0.5 0 5 lb
+422.945 521.129 208.955 541.269 -5.03507 561.41 0.5 0 0.5 5 lb
+422.945 521.129 376.371 417.911 329.797 314.692 0.5 0 0.5 5 lb
+422.945 521.129 474.554 276.928 526.164 32.7279 0.5 0 0.5 5 lb
+-5.03507 561.41 -36.5042 440.568 -67.9734 319.727 0.5 0 0.5 5 lb
+329.797 314.692 130.912 317.209 -67.9734 319.727 0.5 0 0.5 5 lb
+-67.9734 319.727 229.095 176.227 526.164 32.7279 0.5 0 0.5 5 lb
+762.812 -17.6227 644.488 7.5526 526.164 32.7279 0.5 0.5 0.5 5 lb
+762.812 -17.6227 746.448 -162.381 730.084 -307.139 0.5 0.5 0.5 5 lb
+526.164 32.7279 470.779 -128.394 415.393 -289.516 0.5 0.5 0.5 5 lb
+730.084 -307.139 572.738 -298.327 415.393 -289.516 0.5 0.5 0.5 5 lb
+415.393 -289.516 173.71 -318.468 -67.9734 -347.42 1 0.5 0.5 5 lb
+-67.9734 -347.42 -188.815 -202.662 -309.657 -57.9033 0.5 1 0.5 5 lb
+-67.9734 -347.42 -195.758 -390.692 -323.543 -433.964 0.5 1 0.5 5 lb
+-309.657 -57.9033 -424.775 -160.272 -539.894 -262.64 0.5 1 0.5 5 lb
+-323.543 -433.964 -431.719 -348.302 -539.894 -262.64 0.5 1 0.5 5 lb
+-26.6953 -19.9585 44.8558 -96.8093 116.407 -173.66 1 1 0 5 lb
+-26.6953 -19.9585 87.2563 9.19185 201.208 38.3422 1 1 0 5 lb
+-26.6953 -19.9585 -144.622 43.6422 -262.548 107.243 1 0 1 5 lb
+-26.6953 -19.9585 -20.0703 56.8923 -13.4452 133.743 1 0 1 5 lb
+116.407 -173.66 158.808 -67.6589 201.208 38.3422 1 1 0 5 lb
+-262.548 107.243 -137.997 120.493 -13.4452 133.743 1 0 1 5 lb
+-262.548 107.243 -221.472 176.144 -180.397 245.045 1 0 1 5 lb
+-13.4452 133.743 -96.9211 189.394 -180.397 245.045 1 0 1 5 lb
+-180.397 245.045 -140.307 344.649 -132.697 451.748 0 1 1 5 lb
+-180.397 245.045 -172.787 352.144 -132.697 451.748 0 1 1 5 lb
+-416.25 345.746 -274.474 398.747 -132.697 451.748 0.5 0 0 5 lb
+-416.25 345.746 -393.725 457.048 -371.2 568.349 0.5 0 0 5 lb
+-132.697 451.748 -251.948 510.048 -371.2 568.349 0.5 0 0 5 lb
+670.264 274.195 629.188 409.347 588.113 544.499 0 0 1 5 lb
+670.264 274.195 797.466 341.771 924.667 409.347 0 0 1 5 lb
+588.113 544.499 756.39 476.923 924.667 409.347 0 0 1 5 lb
+-689.204 -237.261 -612.964 -103.444 -567.302 43.6423 0 0 0 5 lb
+-689.204 -237.261 -643.542 -90.1744 -567.302 43.6423 0 0 0 5 lb
 grestore
 %Nodes:
 gsave
--567.302 43.6423 20.8452 0 0 1 nc
--689.204 -237.261 20.8452 0 0 1 nc
-924.667 409.347 20.8452 0 0 1 nc
-588.113 544.499 20.8452 0 0 1 nc
-670.264 274.195 20.8452 1 0 0 nc
--371.2 568.349 20.8452 0 0 1 nc
--132.697 451.748 20.8452 1 0 0 nc
--416.25 345.746 20.8452 0 0 1 nc
--180.397 245.045 20.8452 1 0 0 nc
--13.4452 133.743 20.8452 0 0 1 nc
--262.548 107.243 20.8452 0 0 1 nc
-201.208 38.3422 20.8452 0 0 1 nc
-116.407 -173.66 20.8452 0 0 1 nc
--26.6953 -19.9585 20.8452 1 0 0 nc
--539.894 -262.64 20.8452 0 0 1 nc
--323.543 -433.964 20.8452 0 0 1 nc
--309.657 -57.9033 20.8452 1 0 0 nc
--67.9734 -347.42 20.8452 1 0 0 nc
-415.393 -289.516 20.8452 1 0 0 nc
-730.084 -307.139 20.8452 0 0 1 nc
-526.164 32.7279 20.8452 1 0 0 nc
-762.812 -17.6227 20.8452 1 0 0 nc
--67.9734 319.727 20.8452 0 0 1 nc
-329.797 314.692 20.8452 0 0 1 nc
--5.03507 561.41 20.8452 0 0 1 nc
-422.945 521.129 20.8452 0 0 1 nc
--470.779 158.605 20.8452 1 0 0 nc
-986.873 -115.807 20.8452 0 0 1 nc
-906.312 201.403 20.8452 0 0 1 nc
--767.847 113.289 20.8452 1 0 0 nc
--579.033 445.603 20.8452 0 0 1 nc
--840.856 -246.718 20.8452 0 0 1 nc
-206.221 -205.967 20.8452 0 0 1 nc
-277.311 -252.33 20.8452 0 0 1 nc
-271.13 -175.058 20.8452 1 0 0 nc
-366.947 -110.15 20.8452 1 0 0 nc
-397.855 -196.694 20.8452 0 0 1 nc
-438.037 -88.514 20.8452 0 0 1 nc
-286.584 -48.3327 20.8452 1 0 0 nc
-212.403 -23.6057 20.8452 0 0 1 nc
-280.402 10.3938 20.8452 0 0 1 nc
-694.579 115.483 20.8452 0 0 1 nc
-574.035 177.301 20.8452 0 0 1 nc
+-567.302 43.6423 20 0 0 1 nc
+-689.204 -237.261 20 0 0 1 nc
+924.667 409.347 20 0 0 1 nc
+588.113 544.499 20 0 0 1 nc
+670.264 274.195 20 1 0 0 nc
+-371.2 568.349 20 0 0 1 nc
+-132.697 451.748 20 1 0 0 nc
+-416.25 345.746 20 0 0 1 nc
+-180.397 245.045 20 1 0 0 nc
+-13.4452 133.743 20 0 0 1 nc
+-262.548 107.243 20 0 0 1 nc
+201.208 38.3422 20 0 0 1 nc
+116.407 -173.66 20 0 0 1 nc
+-26.6953 -19.9585 20 1 0 0 nc
+-539.894 -262.64 20 0 0 1 nc
+-323.543 -433.964 20 0 0 1 nc
+-309.657 -57.9033 20 1 0 0 nc
+-67.9734 -347.42 20 1 0 0 nc
+415.393 -289.516 20 1 0 0 nc
+730.084 -307.139 20 0 0 1 nc
+526.164 32.7279 20 1 0 0 nc
+762.812 -17.6227 20 1 0 0 nc
+-67.9734 319.727 20 0 0 1 nc
+329.797 314.692 20 0 0 1 nc
+-5.03507 561.41 20 0 0 1 nc
+422.945 521.129 20 0 0 1 nc
+-470.779 158.605 20 1 0 0 nc
+986.873 -115.807 20 0 0 1 nc
+906.312 201.403 20 0 0 1 nc
+-767.847 113.289 20 1 0 0 nc
+-579.033 445.603 20 0 0 1 nc
+-840.856 -246.718 20 0 0 1 nc
+206.221 -205.967 20 0 0 1 nc
+277.311 -252.33 20 0 0 1 nc
+271.13 -175.058 20 1 0 0 nc
+366.947 -110.15 20 1 0 0 nc
+397.855 -196.694 20 0 0 1 nc
+438.037 -88.514 20 0 0 1 nc
+286.584 -48.3327 20 1 0 0 nc
+212.403 -23.6057 20 0 0 1 nc
+280.402 10.3938 20 0 0 1 nc
+694.579 115.483 20 0 0 1 nc
+574.035 177.301 20 0 0 1 nc
 grestore
 grestore
Index: doc/images/strongly_connected_components.eps
===================================================================
--- doc/images/strongly_connected_components.eps	(revision 1213)
+++ doc/images/strongly_connected_components.eps	(revision 634)
@@ -1,5 +1,5 @@
 %!PS-Adobe-2.0 EPSF-2.0
 %%Creator: LEMON, graphToEps()
-%%CreationDate: Fri Mar  8 00:22:15 2013
+%%CreationDate: Fri Nov  4 13:47:12 2005
 %%BoundingBox: 0 0 842 596
 %%EndComments
@@ -54,126 +54,126 @@
 %Edges:
 gsave
-4.56973 setlinewidth 0 0 1 setrgbcolor newpath
+2 setlinewidth 0 0 1 setrgbcolor newpath
 218.178 27.2723 moveto
-195.849 -31.0725 190.033 -46.2697 176.306 -82.1369 curveto stroke
-newpath 163.235 -116.291 moveto 165.206 -77.8889 lineto 187.405 -86.3849 lineto closepath fill
-4.56973 setlinewidth 0 0 1 setrgbcolor newpath
+192.373 -40.1551 188.622 -49.9556 169.228 -100.631 curveto stroke
+newpath 164.939 -111.838 moveto 165.492 -99.2013 lineto 172.964 -102.061 lineto closepath fill
+2 setlinewidth 0 0 1 setrgbcolor newpath
 44.8044 15.5841 moveto
-109.705 19.9594 126.016 21.0591 166.493 23.7879 curveto stroke
-newpath 202.98 26.2477 moveto 167.292 11.9299 lineto 165.694 35.6458 lineto closepath fill
-4.56973 setlinewidth 1 0 0 setrgbcolor newpath
+119.293 20.6059 129.775 21.3125 186.25 25.1199 curveto stroke
+newpath 198.223 25.927 moveto 186.519 21.1289 lineto 185.981 29.1108 lineto closepath fill
+2 setlinewidth 1 0 0 setrgbcolor newpath
 218.178 27.2723 moveto
-281.264 -80.3935 289.87 -95.0808 338.092 -177.379 curveto stroke
-newpath 356.579 -208.932 moveto 327.837 -183.388 lineto 348.346 -171.371 lineto closepath fill
-4.56973 setlinewidth 0 0 1 setrgbcolor newpath
+285.395 -87.4449 290.763 -96.6058 348.102 -194.464 curveto stroke
+newpath 354.169 -204.818 moveto 344.651 -196.487 lineto 351.554 -192.442 lineto closepath fill
+2 setlinewidth 0 0 1 setrgbcolor newpath
 157.79 -130.517 moveto
-114.446 -74.4692 104.358 -61.4239 76.4943 -25.394 curveto stroke
-newpath 54.1228 3.53455 moveto 85.8959 -18.1234 lineto 67.0928 -32.6646 lineto closepath fill
-4.56973 setlinewidth 1 0 0 setrgbcolor newpath
+108.71 -67.0521 102.27 -58.7243 64.3804 -9.72954 curveto stroke
+newpath 57.0394 -0.236898 moveto 67.5446 -7.28254 lineto 61.2162 -12.1765 lineto closepath fill
+2 setlinewidth 1 0 0 setrgbcolor newpath
 -105.193 -261.035 moveto
--39.4801 -139.85 -31.344 -124.846 20.1113 -29.9539 curveto stroke
-newpath 37.5434 2.19358 moveto 30.559 -35.6192 lineto 9.66361 -24.2886 lineto closepath fill
-4.56973 setlinewidth 0 0 1 setrgbcolor newpath
+-35.6576 -132.801 -30.5923 -123.459 29.5506 -12.5464 curveto stroke
+newpath 35.2708 -1.99743 moveto 33.0669 -14.4531 lineto 26.0343 -10.6397 lineto closepath fill
+2 setlinewidth 0 0 1 setrgbcolor newpath
 -465.576 -42.8564 moveto
--550.335 -27.1603 -566.8 -24.1113 -625.027 -13.3286 curveto stroke
-newpath -660.985 -6.66971 moveto -622.863 -1.64245 lineto -627.191 -25.0148 lineto closepath fill
-4.56973 setlinewidth 0 0 1 setrgbcolor newpath
+-559.078 -25.5413 -569.47 -23.6169 -644.498 -9.72286 curveto stroke
+newpath -656.297 -7.5378 moveto -643.77 -5.78973 lineto -645.226 -13.656 lineto closepath fill
+2 setlinewidth 0 0 1 setrgbcolor newpath
 -574.666 -153.893 moveto
--535.911 -114.447 -524.692 -103.027 -501.88 -79.8085 curveto stroke
-newpath -476.251 -53.7222 moveto -493.402 -88.1377 lineto -510.358 -71.4793 lineto closepath fill
-4.56973 setlinewidth 1 0 0 setrgbcolor newpath
+-528.842 -107.252 -521.515 -99.794 -488.002 -65.683 curveto stroke
+newpath -479.592 -57.123 moveto -485.149 -68.4863 lineto -490.856 -62.8797 lineto closepath fill
+2 setlinewidth 1 0 0 setrgbcolor newpath
 -490.901 120.777 moveto
--481.623 60.8277 -479.143 44.8049 -473.499 8.33636 curveto stroke
-newpath -467.906 -27.8032 moveto -485.244 6.51862 lineto -461.754 10.1541 lineto closepath fill
-4.56973 setlinewidth 0 0 1 setrgbcolor newpath
+-480.122 51.1328 -478.519 40.7713 -470.47 -11.2329 curveto stroke
+newpath -468.635 -23.0917 moveto -474.423 -11.8447 lineto -466.517 -10.6212 lineto closepath fill
+2 setlinewidth 0 0 1 setrgbcolor newpath
 -675.963 -3.89604 moveto
--637.405 -60.9909 -628.201 -74.6206 -603.658 -110.963 curveto stroke
-newpath -583.191 -141.27 moveto -613.507 -117.615 lineto -593.808 -104.312 lineto closepath fill
-4.56973 setlinewidth 0 0 1 setrgbcolor newpath
+-632.116 -68.8235 -626.228 -77.5422 -592.575 -127.374 curveto stroke
+newpath -585.859 -137.319 moveto -595.89 -129.612 lineto -589.26 -125.135 lineto closepath fill
+2 setlinewidth 0 0 1 setrgbcolor newpath
 -490.901 120.777 moveto
--439.75 208.465 -431.238 223.057 -394.278 286.417 curveto stroke
-newpath -375.851 318.006 moveto -384.012 280.429 lineto -404.543 292.406 lineto closepath fill
-4.56973 setlinewidth 0 0 1 setrgbcolor newpath
+-435.445 215.844 -430.107 224.995 -384.3 303.522 curveto stroke
+newpath -378.253 313.887 moveto -380.845 301.507 lineto -387.755 305.537 lineto closepath fill
+2 setlinewidth 0 0 1 setrgbcolor newpath
 -266.879 114.933 moveto
--358.311 117.318 -375.109 117.756 -439.117 119.426 curveto stroke
-newpath -475.674 120.38 moveto -438.807 131.307 lineto -439.426 107.545 lineto closepath fill
-4.56973 setlinewidth 0 0 1 setrgbcolor newpath
+-367.067 117.547 -377.642 117.822 -458.912 119.943 curveto stroke
+newpath -470.908 120.255 moveto -458.807 123.941 lineto -459.016 115.944 lineto closepath fill
+2 setlinewidth 0 0 1 setrgbcolor newpath
 -368.176 331.163 moveto
--326.156 241.466 -318.997 226.186 -288.855 161.843 curveto stroke
-newpath -273.341 128.727 moveto -299.617 156.801 lineto -278.092 166.885 lineto closepath fill
-4.56973 setlinewidth 1 0 0 setrgbcolor newpath
+-322.511 233.685 -318.018 224.095 -280.454 143.911 curveto stroke
+newpath -275.364 133.044 moveto -284.076 142.214 lineto -276.832 145.608 lineto closepath fill
+2 setlinewidth 1 0 0 setrgbcolor newpath
 -266.879 114.933 moveto
--226.764 227.755 -221.069 243.774 -190.728 329.107 curveto stroke
-newpath -178.477 363.564 moveto -179.53 325.126 lineto -201.926 333.089 lineto closepath fill
-4.56973 setlinewidth 0 0 1 setrgbcolor newpath
+-224.004 235.52 -220.448 245.52 -184.094 347.765 curveto stroke
+newpath -180.074 359.072 moveto -180.325 346.425 lineto -187.863 349.105 lineto closepath fill
+2 setlinewidth 0 0 1 setrgbcolor newpath
 -251.294 -335.059 moveto
--198.044 -308.079 -183.61 -300.766 -151.402 -284.448 curveto stroke
-newpath -118.781 -267.92 moveto -146.031 -295.049 lineto -156.774 -273.846 lineto closepath fill
-4.56973 setlinewidth 0 0 1 setrgbcolor newpath
+-189.25 -303.624 -179.902 -298.887 -133.738 -275.498 curveto stroke
+newpath -123.034 -270.074 moveto -131.93 -279.066 lineto -135.546 -271.93 lineto closepath fill
+2 setlinewidth 0 0 1 setrgbcolor newpath
 -389.604 -136.361 moveto
--332.039 -219.059 -322.392 -232.919 -280.889 -292.543 curveto stroke
-newpath -259.996 -322.557 moveto -290.643 -299.333 lineto -271.134 -285.753 lineto closepath fill
-4.56973 setlinewidth 1 0 0 setrgbcolor newpath
+-327.15 -226.083 -321.098 -234.777 -269.576 -308.795 curveto stroke
+newpath -262.72 -318.644 moveto -272.859 -311.081 lineto -266.293 -306.51 lineto closepath fill
+2 setlinewidth 1 0 0 setrgbcolor newpath
 5.84406 175.322 moveto
--70.5724 261.706 -81.8227 274.423 -139.051 339.116 curveto stroke
-newpath -163.281 366.507 moveto -130.149 346.991 lineto -147.953 331.242 lineto closepath fill
-4.56973 setlinewidth 0 0 1 setrgbcolor newpath
+-76.0754 267.926 -83.1051 275.873 -152.172 353.948 curveto stroke
+newpath -160.122 362.936 moveto -149.176 356.598 lineto -155.168 351.298 lineto closepath fill
+2 setlinewidth 0 0 1 setrgbcolor newpath
 169.478 311.683 moveto
-103.641 256.819 90.7821 246.103 45.6398 208.485 curveto stroke
-newpath 17.546 185.074 moveto 38.0313 217.615 lineto 53.2483 199.355 lineto closepath fill
-4.56973 setlinewidth 0 0 1 setrgbcolor newpath
+96.8003 251.119 88.6819 244.353 30.4273 195.808 curveto stroke
+newpath 21.2086 188.126 moveto 27.8666 198.881 lineto 32.988 192.735 lineto closepath fill
+2 setlinewidth 0 0 1 setrgbcolor newpath
 342.851 111.037 moveto
-269.224 196.246 258.132 209.083 203.347 272.486 curveto stroke
-newpath 179.437 300.157 moveto 212.34 280.257 lineto 194.354 264.716 lineto closepath fill
-4.56973 setlinewidth 0 0 1 setrgbcolor newpath
+263.766 202.563 256.831 210.589 190.4 287.47 curveto stroke
+newpath 182.554 296.55 moveto 193.427 290.085 lineto 187.373 284.855 lineto closepath fill
+2 setlinewidth 0 0 1 setrgbcolor newpath
 5.84406 175.322 moveto
-155.419 146.79 172.221 143.585 291.966 120.743 curveto stroke
-newpath 327.888 113.891 moveto 289.739 109.069 lineto 294.193 132.418 lineto closepath fill
-4.56973 setlinewidth 0 0 1 setrgbcolor newpath
+163.16 145.314 173.605 143.321 311.418 117.033 curveto stroke
+newpath 323.205 114.784 moveto 310.668 113.104 lineto 312.167 120.962 lineto closepath fill
+2 setlinewidth 0 0 1 setrgbcolor newpath
 342.851 111.037 moveto
-490.978 6.99574 505.015 -2.86383 627.727 -89.0547 curveto stroke
-newpath 657.653 -110.074 moveto 620.896 -98.7802 lineto 634.558 -79.3291 lineto closepath fill
-4.56973 setlinewidth 0 0 1 setrgbcolor newpath
+497.255 2.58683 505.964 -3.53033 643.932 -100.436 curveto stroke
+newpath 653.752 -107.334 moveto 641.633 -103.71 lineto 646.231 -97.163 lineto closepath fill
+2 setlinewidth 0 0 1 setrgbcolor newpath
 364.28 -222.074 moveto
-354.807 -74.8128 353.709 -57.7536 346.177 59.3416 curveto stroke
-newpath 343.829 95.836 moveto 358.037 60.1045 lineto 334.316 58.5786 lineto closepath fill
-4.56973 setlinewidth 0 0 1 setrgbcolor newpath
+354.298 -66.9063 353.616 -56.2971 344.905 79.1029 curveto stroke
+newpath 344.135 91.0781 moveto 348.897 79.3597 lineto 340.914 78.8461 lineto closepath fill
+2 setlinewidth 0 0 1 setrgbcolor newpath
 670.118 -118.829 moveto
-535.595 -164.241 519.412 -169.704 413.361 -205.505 curveto stroke
-newpath 378.712 -217.202 moveto 409.559 -194.245 lineto 417.162 -216.766 lineto closepath fill
-4.56973 setlinewidth 1 0 0 setrgbcolor newpath
+528.037 -166.793 517.967 -170.192 394.599 -211.839 curveto stroke
+newpath 383.229 -215.677 moveto 393.32 -208.049 lineto 395.878 -215.629 lineto closepath fill
+2 setlinewidth 1 0 0 setrgbcolor newpath
 -105.193 -261.035 moveto
-110.939 -243.099 128.069 -241.677 312.655 -226.358 curveto stroke
-newpath 349.1 -223.334 moveto 313.638 -238.202 lineto 311.672 -214.514 lineto closepath fill
-4.56973 setlinewidth 0 0 1 setrgbcolor newpath
+118.401 -242.479 129.015 -241.598 332.39 -224.721 curveto stroke
+newpath 344.348 -223.728 moveto 332.72 -228.707 lineto 332.059 -220.734 lineto closepath fill
+2 setlinewidth 0 0 1 setrgbcolor newpath
 -105.193 -261.035 moveto
--156.746 -168.566 -164.987 -153.784 -202.693 -86.1539 curveto stroke
-newpath -220.5 -54.2129 moveto -192.312 -80.3665 lineto -213.073 -91.9413 lineto closepath fill
-4.56973 setlinewidth 0 0 1 setrgbcolor newpath
+-160.867 -161.176 -166.028 -151.918 -212.336 -68.858 curveto stroke
+newpath -218.179 -58.3769 moveto -208.842 -66.9102 lineto -215.829 -70.8058 lineto closepath fill
+2 setlinewidth 0 0 1 setrgbcolor newpath
 -227.918 -40.9084 moveto
--290.327 -77.7521 -304.558 -86.1532 -344.995 -110.026 curveto stroke
-newpath -376.487 -128.617 moveto -351.037 -99.7914 lineto -338.953 -120.26 lineto closepath fill
+-298.35 -82.4884 -307.42 -87.8432 -362.048 -120.093 curveto stroke
+newpath -372.381 -126.193 moveto -364.081 -116.648 lineto -360.014 -123.537 lineto closepath fill
 grestore
 %Nodes:
 gsave
--389.604 -136.361 15.2324 0 1 0 nc
--227.918 -40.9084 15.2324 0 1 0 nc
--105.193 -261.035 15.2324 0 1 0 nc
-364.28 -222.074 15.2324 1 1 0 nc
-670.118 -118.829 15.2324 1 1 0 nc
-342.851 111.037 15.2324 1 1 0 nc
-5.84406 175.322 15.2324 1 1 0 nc
-169.478 311.683 15.2324 1 1 0 nc
--173.374 377.916 15.2324 1 0 1 nc
--251.294 -335.059 15.2324 0 1 0 nc
--266.879 114.933 15.2324 0 0 0 nc
--368.176 331.163 15.2324 0 0 0 nc
--490.901 120.777 15.2324 0 0 0 nc
--574.666 -153.893 15.2324 1 0 0 nc
--675.963 -3.89604 15.2324 1 0 0 nc
--465.576 -42.8564 15.2324 1 0 0 nc
-44.8044 15.5841 15.2324 0 0 1 nc
-157.79 -130.517 15.2324 0 0 1 nc
-218.178 27.2723 15.2324 0 0 1 nc
+-389.604 -136.361 20 0 1 0 nc
+-227.918 -40.9084 20 0 1 0 nc
+-105.193 -261.035 20 0 1 0 nc
+364.28 -222.074 20 1 1 0 nc
+670.118 -118.829 20 1 1 0 nc
+342.851 111.037 20 1 1 0 nc
+5.84406 175.322 20 1 1 0 nc
+169.478 311.683 20 1 1 0 nc
+-173.374 377.916 20 1 0 1 nc
+-251.294 -335.059 20 0 1 0 nc
+-266.879 114.933 20 0 0 0 nc
+-368.176 331.163 20 0 0 0 nc
+-490.901 120.777 20 0 0 0 nc
+-574.666 -153.893 20 1 0 0 nc
+-675.963 -3.89604 20 1 0 0 nc
+-465.576 -42.8564 20 1 0 0 nc
+44.8044 15.5841 20 0 0 1 nc
+157.79 -130.517 20 0 0 1 nc
+218.178 27.2723 20 0 0 1 nc
 grestore
 grestore
Index: doc/lgf.dox
===================================================================
--- doc/lgf.dox	(revision 1270)
+++ doc/lgf.dox	(revision 1192)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2009
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -65,5 +65,5 @@
 
 The \e LGF files can also contain bipartite graphs, in this case a
-\c \@red_nodes and a \c \@blue_nodes sections describe the node set of the
+\c @red_nodes and a \c @blue_nodes sections describe the node set of the
 graph. If a map is in both of these sections, then it can be used as a
 regular node map.
Index: doc/mainpage.dox.in
===================================================================
--- doc/mainpage.dox.in	(revision 1221)
+++ doc/mainpage.dox.in	(revision 1039)
@@ -26,5 +26,5 @@
 It is a C++ template library providing efficient implementations of common
 data structures and algorithms with focus on combinatorial optimization
-tasks connected mainly with graphs and networks \cite DezsoJuttnerKovacs11Lemon.
+tasks connected mainly with graphs and networks.
 
 <b>
@@ -38,10 +38,10 @@
 The project is maintained by the
 <a href="http://www.cs.elte.hu/egres/">Egerv&aacute;ry Research Group on
-Combinatorial Optimization</a> \cite egres
+Combinatorial Optimization</a> \ref egres
 at the Operations Research Department of the
 <a href="http://www.elte.hu/en/">E&ouml;tv&ouml;s Lor&aacute;nd University</a>,
 Budapest, Hungary.
 LEMON is also a member of the <a href="http://www.coin-or.org/">COIN-OR</a>
-initiative \cite coinor.
+initiative \ref coinor.
 
 \section howtoread How to Read the Documentation
Index: doc/min_cost_flow.dox
===================================================================
--- doc/min_cost_flow.dox	(revision 1270)
+++ doc/min_cost_flow.dox	(revision 1164)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -27,5 +27,5 @@
 minimum total cost from a set of supply nodes to a set of demand nodes
 in a network with capacity constraints (lower and upper bounds)
-and arc costs \cite amo93networkflows.
+and arc costs \ref amo93networkflows.
 
 Formally, let \f$G=(V,A)\f$ be a digraph, \f$lower: A\rightarrow\mathbf{R}\f$,
Index: doc/references.bib
===================================================================
--- doc/references.bib	(revision 1219)
+++ doc/references.bib	(revision 1164)
@@ -20,26 +20,4 @@
                   {O}perations {R}esearch},
   url =          {http://www.coin-or.org/}
-}
-
-
-%%%%% Papers related to LEMON %%%%%
-
-@article{DezsoJuttnerKovacs11Lemon,
-  author =       {B. Dezs{\H o} and A. J\"uttner and P. Kov\'acs},
-  title =        {{LEMON} -- an open source {C++} graph template library},
-  journal =      {Electronic Notes in Theoretical Computer Science},
-  volume =       {264},
-  pages =        {23--45},
-  year =         {2011},
-  note =         {Proc. 2nd Workshop on Generative Technologies}
-}
-
-@article{KiralyKovacs12MCF,
-  author =       {Z. Kir\'aly and P. Kov\'acs},
-  title =        {Efficient implementations of minimum-cost flow algorithms},
-  journal =      {Acta Universitatis Sapientiae, Informatica},
-  year =         {2012},
-  volume =       {4},
-  pages =        {67--118}
 }
 
Index: lemon/CMakeLists.txt
===================================================================
--- lemon/CMakeLists.txt	(revision 1264)
+++ lemon/CMakeLists.txt	(revision 1133)
@@ -37,5 +37,5 @@
 IF(LEMON_HAVE_CPLEX)
   SET(LEMON_SOURCES ${LEMON_SOURCES} cplex.cc)
-  INCLUDE_DIRECTORIES(${ILOG_INCLUDE_DIRS})
+  INCLUDE_DIRECTORIES(${CPLEX_INCLUDE_DIRS})
 ENDIF()
 
@@ -48,9 +48,4 @@
   SET(LEMON_SOURCES ${LEMON_SOURCES} cbc.cc)
   INCLUDE_DIRECTORIES(${COIN_INCLUDE_DIRS})
-ENDIF()
-
-IF(LEMON_HAVE_SOPLEX)
-  SET(LEMON_SOURCES ${LEMON_SOURCES} soplex.cc)
-  INCLUDE_DIRECTORIES(${SOPLEX_INCLUDE_DIRS})
 ENDIF()
 
Index: lemon/adaptors.h
===================================================================
--- lemon/adaptors.h	(revision 1270)
+++ lemon/adaptors.h	(revision 1159)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: lemon/assert.h
===================================================================
--- lemon/assert.h	(revision 1270)
+++ lemon/assert.h	(revision 463)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2009
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -200,5 +200,5 @@
                              ::lemon::_assert_bits::cstringify(msg),    \
                              #exp), 0)))
-#    if defined LEMON_ENABLE_DEBUG
+#    if LEMON_ENABLE_DEBUG
 #      define LEMON_DEBUG(exp, msg)                                     \
          (static_cast<void> (!!(exp) ? 0 : (                            \
Index: lemon/base.cc
===================================================================
--- lemon/base.cc	(revision 1270)
+++ lemon/base.cc	(revision 554)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2009
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -22,5 +22,4 @@
 #include<lemon/tolerance.h>
 #include<lemon/core.h>
-#include<lemon/time_measure.h>
 namespace lemon {
 
@@ -33,5 +32,3 @@
 #endif
 
-  TimeStamp::Format TimeStamp::_format = TimeStamp::NORMAL;
-
 } //namespace lemon
Index: lemon/bellman_ford.h
===================================================================
--- lemon/bellman_ford.h	(revision 1270)
+++ lemon/bellman_ford.h	(revision 960)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -150,5 +150,5 @@
   /// This class provides an efficient implementation of the Bellman-Ford
   /// algorithm. The maximum time complexity of the algorithm is
-  /// <tt>O(nm)</tt>.
+  /// <tt>O(ne)</tt>.
   ///
   /// The Bellman-Ford algorithm solves the single-source shortest path
@@ -201,10 +201,9 @@
     /// The type of the paths.
     typedef PredMapPath<Digraph, PredMap> Path;
-    ///\brief The \ref lemon::BellmanFordDefaultOperationTraits
+    ///\brief The \ref BellmanFordDefaultOperationTraits
     /// "operation traits class" of the algorithm.
     typedef typename TR::OperationTraits OperationTraits;
 
-    ///\brief The \ref lemon::BellmanFordDefaultTraits "traits class"
-    ///of the algorithm.
+    ///The \ref BellmanFordDefaultTraits "traits class" of the algorithm.
     typedef TR Traits;
 
Index: lemon/bfs.h
===================================================================
--- lemon/bfs.h	(revision 1270)
+++ lemon/bfs.h	(revision 1127)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -153,5 +153,5 @@
     typedef PredMapPath<Digraph, PredMap> Path;
 
-    ///The \ref lemon::BfsDefaultTraits "traits class" of the algorithm.
+    ///The \ref BfsDefaultTraits "traits class" of the algorithm.
     typedef TR Traits;
 
Index: lemon/bin_heap.h
===================================================================
--- lemon/bin_heap.h	(revision 1270)
+++ lemon/bin_heap.h	(revision 758)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2009
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: lemon/bits/alteration_notifier.h
===================================================================
--- lemon/bits/alteration_notifier.h	(revision 1270)
+++ lemon/bits/alteration_notifier.h	(revision 1131)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2009
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: lemon/bits/array_map.h
===================================================================
--- lemon/bits/array_map.h	(revision 1270)
+++ lemon/bits/array_map.h	(revision 956)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: lemon/bits/bezier.h
===================================================================
--- lemon/bits/bezier.h	(revision 1270)
+++ lemon/bits/bezier.h	(revision 1157)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2009
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: lemon/bits/default_map.h
===================================================================
--- lemon/bits/default_map.h	(revision 1270)
+++ lemon/bits/default_map.h	(revision 956)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: lemon/bits/edge_set_extender.h
===================================================================
--- lemon/bits/edge_set_extender.h	(revision 1270)
+++ lemon/bits/edge_set_extender.h	(revision 1161)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: lemon/bits/graph_adaptor_extender.h
===================================================================
--- lemon/bits/graph_adaptor_extender.h	(revision 1270)
+++ lemon/bits/graph_adaptor_extender.h	(revision 965)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2009
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: lemon/bits/graph_extender.h
===================================================================
--- lemon/bits/graph_extender.h	(revision 1270)
+++ lemon/bits/graph_extender.h	(revision 1195)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2009
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -844,5 +844,5 @@
 
     typedef AlterationNotifier<BpGraphExtender, Node> NodeNotifier;
-    typedef AlterationNotifier<BpGraphExtender, RedNode> RedNodeNotifier;
+    typedef AlterationNotifier<BpGraphExtender, RedNode> RedNodeNotifier; 
     typedef AlterationNotifier<BpGraphExtender, BlueNode> BlueNodeNotifier;
     typedef AlterationNotifier<BpGraphExtender, Arc> ArcNotifier;
Index: lemon/bits/lock.h
===================================================================
--- lemon/bits/lock.h	(revision 1270)
+++ lemon/bits/lock.h	(revision 1131)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2012
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -34,14 +34,14 @@
     public:
       Lock() {
-        pthread_mutex_init(&_lock, 0);
+	pthread_mutex_init(&_lock, 0);
       }
       ~Lock() {
-        pthread_mutex_destroy(&_lock);
+	pthread_mutex_destroy(&_lock);
       }
       void lock() {
-        pthread_mutex_lock(&_lock);
+	pthread_mutex_lock(&_lock);
       }
       void unlock() {
-        pthread_mutex_unlock(&_lock);
+	pthread_mutex_unlock(&_lock);
       }
 
@@ -58,5 +58,5 @@
       void lock() {}
       void unlock() {}
-    };
+    };    
 #endif
   }
Index: lemon/bits/map_extender.h
===================================================================
--- lemon/bits/map_extender.h	(revision 1270)
+++ lemon/bits/map_extender.h	(revision 867)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2009
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: lemon/bits/path_dump.h
===================================================================
--- lemon/bits/path_dump.h	(revision 1270)
+++ lemon/bits/path_dump.h	(revision 973)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2009
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: lemon/bits/solver_bits.h
===================================================================
--- lemon/bits/solver_bits.h	(revision 1270)
+++ lemon/bits/solver_bits.h	(revision 1142)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: lemon/bits/traits.h
===================================================================
--- lemon/bits/traits.h	(revision 1270)
+++ lemon/bits/traits.h	(revision 1194)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2009
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: lemon/bits/windows.cc
===================================================================
--- lemon/bits/windows.cc	(revision 1270)
+++ lemon/bits/windows.cc	(revision 1163)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -141,5 +141,5 @@
 #endif
     }
-
+    
     WinLock::~WinLock() {
 #ifdef WIN32
Index: lemon/bits/windows.h
===================================================================
--- lemon/bits/windows.h	(revision 1270)
+++ lemon/bits/windows.h	(revision 1131)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2009
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: lemon/capacity_scaling.h
===================================================================
--- lemon/capacity_scaling.h	(revision 1270)
+++ lemon/capacity_scaling.h	(revision 1296)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -67,9 +67,7 @@
   /// \ref CapacityScaling implements the capacity scaling version
   /// of the successive shortest path algorithm for finding a
-  /// \ref min_cost_flow "minimum cost flow" \cite amo93networkflows,
-  /// \cite edmondskarp72theoretical. It is an efficient dual
-  /// solution method, which runs in polynomial time
-  /// \f$O(m\log U (n+m)\log n)\f$, where <i>U</i> denotes the maximum
-  /// of node supply and arc capacity values.
+  /// \ref min_cost_flow "minimum cost flow" \ref amo93networkflows,
+  /// \ref edmondskarp72theoretical. It is an efficient dual
+  /// solution method.
   ///
   /// This algorithm is typically slower than \ref CostScaling and
@@ -119,6 +117,5 @@
     typedef typename TR::Heap Heap;
 
-    /// \brief The \ref lemon::CapacityScalingDefaultTraits "traits class"
-    /// of the algorithm
+    /// The \ref CapacityScalingDefaultTraits "traits class" of the algorithm
     typedef TR Traits;
 
@@ -360,5 +357,4 @@
       for (ArcIt a(_graph); a != INVALID; ++a) {
         _lower[_arc_idf[a]] = map[a];
-        _lower[_arc_idb[a]] = map[a];
       }
       return *this;
@@ -647,5 +643,5 @@
     ///
     /// This function returns the total cost of the found flow.
-    /// Its complexity is O(m).
+    /// Its complexity is O(e).
     ///
     /// \note The return type of the function can be specified as a
@@ -839,10 +835,10 @@
       return OPTIMAL;
     }
-
-    // Check if the upper bound is greater or equal to the lower bound
-    // on each arc.
+    
+    // Check if the upper bound is greater than or equal to the lower bound
+    // on each forward arc.
     bool checkBoundMaps() {
       for (int j = 0; j != _res_arc_num; ++j) {
-        if (_upper[j] < _lower[j]) return false;
+        if (_forward[j] && _upper[j] < _lower[j]) return false;
       }
       return true;
@@ -861,5 +857,5 @@
         int limit = _first_out[_root];
         for (int j = 0; j != limit; ++j) {
-          if (!_forward[j]) _res_cap[j] += _lower[j];
+          if (_forward[j]) _res_cap[_reverse[j]] += _lower[j];
         }
       }
Index: lemon/cbc.cc
===================================================================
--- lemon/cbc.cc	(revision 1270)
+++ lemon/cbc.cc	(revision 1161)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2009
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: lemon/cbc.h
===================================================================
--- lemon/cbc.h	(revision 1270)
+++ lemon/cbc.h	(revision 956)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -17,4 +17,5 @@
  */
 
+// -*- C++ -*-
 #ifndef LEMON_CBC_H
 #define LEMON_CBC_H
Index: lemon/christofides_tsp.h
===================================================================
--- lemon/christofides_tsp.h	(revision 1270)
+++ lemon/christofides_tsp.h	(revision 1205)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -31,5 +31,5 @@
 
 namespace lemon {
-
+  
   /// \ingroup tsp
   ///
@@ -109,9 +109,9 @@
           return _sum = 2 * _cost[_gr.edge(_gr(0), _gr(1))];
         }
-
+        
         // Compute min. cost spanning tree
         std::vector<Edge> tree;
         kruskal(_gr, _cost, std::back_inserter(tree));
-
+        
         FullGraph::NodeMap<int> deg(_gr, 0);
         for (int i = 0; i != int(tree.size()); ++i) {
@@ -126,5 +126,5 @@
           if (deg[u] % 2 == 1) odd_nodes.push_back(u);
         }
-
+  
         SmartGraph sgr;
         SmartGraph::EdgeMap<Cost> scost(sgr);
@@ -140,10 +140,10 @@
           }
         }
-
+        
         // Compute min. cost perfect matching
         MaxWeightedPerfectMatching<SmartGraph, SmartGraph::EdgeMap<Cost> >
           mwpm(sgr, scost);
         mwpm.run();
-
+        
         for (SmartGraph::EdgeIt e(sgr); e != INVALID; ++e) {
           if (mwpm.matching(e)) {
@@ -152,6 +152,6 @@
           }
         }
-
-        // Join the spanning tree and the matching
+        
+        // Join the spanning tree and the matching        
         sgr.clear();
         for (int i = 0; i != _gr.nodeNum(); ++i) {
@@ -183,8 +183,8 @@
 
       /// @}
-
+      
       /// \name Query Functions
       /// @{
-
+      
       /// \brief The total cost of the found tour.
       ///
@@ -195,5 +195,5 @@
         return _sum;
       }
-
+      
       /// \brief Returns a const reference to the node sequence of the
       /// found tour.
@@ -228,9 +228,9 @@
         std::copy(_path.begin(), _path.end(), out);
       }
-
+      
       /// \brief Gives back the found tour as a path.
       ///
       /// This function copies the found tour as a list of arcs/edges into
-      /// the given \ref lemon::concepts::Path "path structure".
+      /// the given \ref concept::Path "path structure".
       ///
       /// \pre run() must be called before using this function.
@@ -245,7 +245,7 @@
         }
       }
-
+      
       /// @}
-
+      
   };
 
Index: lemon/circulation.h
===================================================================
--- lemon/circulation.h	(revision 1270)
+++ lemon/circulation.h	(revision 1159)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -196,6 +196,5 @@
   public:
 
-    /// \brief The \ref lemon::CirculationDefaultTraits "traits class"
-    /// of the algorithm.
+    ///The \ref CirculationDefaultTraits "traits class" of the algorithm.
     typedef TR Traits;
     ///The type of the digraph the algorithm runs on.
Index: lemon/clp.cc
===================================================================
--- lemon/clp.cc	(revision 1270)
+++ lemon/clp.cc	(revision 1142)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: lemon/clp.h
===================================================================
--- lemon/clp.h	(revision 1270)
+++ lemon/clp.h	(revision 956)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: lemon/concept_check.h
===================================================================
--- lemon/concept_check.h	(revision 1270)
+++ lemon/concept_check.h	(revision 1157)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2009
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -59,5 +59,5 @@
 #if !defined(NDEBUG)
     void (Concept::*x)() = & Concept::constraints;
-    ::lemon::ignore_unused_variable_warning(x);
+    ignore_unused_variable_warning(x);
 #endif
   }
@@ -69,5 +69,5 @@
     typedef typename Concept::template Constraints<Type> ConceptCheck;
     void (ConceptCheck::*x)() = & ConceptCheck::constraints;
-    ::lemon::ignore_unused_variable_warning(x);
+    ignore_unused_variable_warning(x);
 #endif
   }
Index: lemon/concepts/bpgraph.h
===================================================================
--- lemon/concepts/bpgraph.h	(revision 1270)
+++ lemon/concepts/bpgraph.h	(revision 1196)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -524,8 +524,5 @@
         /// Sets the iterator to the first arc of the given graph.
         ///
-        explicit ArcIt(const BpGraph &g)
-        {
-          ::lemon::ignore_unused_variable_warning(g);
-        }
+        explicit ArcIt(const BpGraph &g) { ignore_unused_variable_warning(g); }
         /// Sets the iterator to the given arc.
 
@@ -573,6 +570,6 @@
         ///
         OutArcIt(const BpGraph& n, const Node& g) {
-          ::lemon::ignore_unused_variable_warning(n);
-          ::lemon::ignore_unused_variable_warning(g);
+          ignore_unused_variable_warning(n);
+          ignore_unused_variable_warning(g);
         }
         /// Sets the iterator to the given arc.
@@ -621,6 +618,6 @@
         ///
         InArcIt(const BpGraph& g, const Node& n) {
-          ::lemon::ignore_unused_variable_warning(n);
-          ::lemon::ignore_unused_variable_warning(g);
+          ignore_unused_variable_warning(n);
+          ignore_unused_variable_warning(g);
         }
         /// Sets the iterator to the given arc.
@@ -805,10 +802,10 @@
 
       /// \brief Gives back the red end node of the edge.
-      ///
+      /// 
       /// Gives back the red end node of the edge.
       RedNode redNode(const Edge&) const { return RedNode(); }
 
       /// \brief Gives back the blue end node of the edge.
-      ///
+      /// 
       /// Gives back the blue end node of the edge.
       BlueNode blueNode(const Edge&) const { return BlueNode(); }
@@ -1001,5 +998,5 @@
       /// \brief The base node of the iterator.
       ///
-      /// Returns the base node of the given incoming arc iterator
+      /// Returns the base node of the given incomming arc iterator
       /// (i.e. the target node of the corresponding arc).
       Node baseNode(InArcIt) const { return INVALID; }
@@ -1007,5 +1004,5 @@
       /// \brief The running node of the iterator.
       ///
-      /// Returns the running node of the given incoming arc iterator
+      /// Returns the running node of the given incomming arc iterator
       /// (i.e. the source node of the corresponding arc).
       Node runningNode(InArcIt) const { return INVALID; }
Index: lemon/concepts/digraph.h
===================================================================
--- lemon/concepts/digraph.h	(revision 1271)
+++ lemon/concepts/digraph.h	(revision 956)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -313,7 +313,5 @@
         /// Sets the iterator to the first arc of the given digraph.
         ///
-        explicit ArcIt(const Digraph& g) {
-          ::lemon::ignore_unused_variable_warning(g);
-        }
+        explicit ArcIt(const Digraph& g) { ignore_unused_variable_warning(g); }
         /// Sets the iterator to the given arc.
 
@@ -412,5 +410,5 @@
       /// \brief The base node of the iterator.
       ///
-      /// Returns the base node of the given incoming arc iterator
+      /// Returns the base node of the given incomming arc iterator
       /// (i.e. the target node of the corresponding arc).
       Node baseNode(InArcIt) const { return INVALID; }
@@ -418,5 +416,5 @@
       /// \brief The running node of the iterator.
       ///
-      /// Returns the running node of the given incoming arc iterator
+      /// Returns the running node of the given incomming arc iterator
       /// (i.e. the source node of the corresponding arc).
       Node runningNode(InArcIt) const { return INVALID; }
Index: lemon/concepts/graph.h
===================================================================
--- lemon/concepts/graph.h	(revision 1271)
+++ lemon/concepts/graph.h	(revision 1186)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -397,7 +397,5 @@
         /// Sets the iterator to the first arc of the given graph.
         ///
-        explicit ArcIt(const Graph &g) {
-          ::lemon::ignore_unused_variable_warning(g);
-        }
+        explicit ArcIt(const Graph &g) { ignore_unused_variable_warning(g); }
         /// Sets the iterator to the given arc.
 
@@ -445,6 +443,6 @@
         ///
         OutArcIt(const Graph& n, const Node& g) {
-          ::lemon::ignore_unused_variable_warning(n);
-          ::lemon::ignore_unused_variable_warning(g);
+          ignore_unused_variable_warning(n);
+          ignore_unused_variable_warning(g);
         }
         /// Sets the iterator to the given arc.
@@ -493,6 +491,6 @@
         ///
         InArcIt(const Graph& g, const Node& n) {
-          ::lemon::ignore_unused_variable_warning(n);
-          ::lemon::ignore_unused_variable_warning(g);
+          ignore_unused_variable_warning(n);
+          ignore_unused_variable_warning(g);
         }
         /// Sets the iterator to the given arc.
@@ -760,5 +758,5 @@
       /// \brief The base node of the iterator.
       ///
-      /// Returns the base node of the given incoming arc iterator
+      /// Returns the base node of the given incomming arc iterator
       /// (i.e. the target node of the corresponding arc).
       Node baseNode(InArcIt) const { return INVALID; }
@@ -766,5 +764,5 @@
       /// \brief The running node of the iterator.
       ///
-      /// Returns the running node of the given incoming arc iterator
+      /// Returns the running node of the given incomming arc iterator
       /// (i.e. the source node of the corresponding arc).
       Node runningNode(InArcIt) const { return INVALID; }
Index: lemon/concepts/graph_components.h
===================================================================
--- lemon/concepts/graph_components.h	(revision 1270)
+++ lemon/concepts/graph_components.h	(revision 1196)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -109,5 +109,5 @@
 
           bool b;
-          ::lemon::ignore_unused_variable_warning(b);
+          ignore_unused_variable_warning(b);
 
           b = (ia == ib) && (ia != ib);
@@ -290,5 +290,5 @@
             ue = e;
             bool d = graph.direction(e);
-            ::lemon::ignore_unused_variable_warning(d);
+            ignore_unused_variable_warning(d);
           }
         }
@@ -392,10 +392,10 @@
 
       /// \brief Gives back the red end node of the edge.
-      ///
+      /// 
       /// Gives back the red end node of the edge.
       RedNode redNode(const Edge&) const { return RedNode(); }
 
       /// \brief Gives back the blue end node of the edge.
-      ///
+      /// 
       /// Gives back the blue end node of the edge.
       BlueNode blueNode(const Edge&) const { return BlueNode(); }
@@ -457,5 +457,5 @@
             rn = bpgraph.asRedNode(rnan);
             bn = bpgraph.asBlueNode(bnan);
-            ::lemon::ignore_unused_variable_warning(b);
+            ignore_unused_variable_warning(b);
           }
         }
@@ -535,7 +535,7 @@
 
           nid = digraph.maxNodeId();
-          ::lemon::ignore_unused_variable_warning(nid);
+          ignore_unused_variable_warning(nid);
           eid = digraph.maxArcId();
-          ::lemon::ignore_unused_variable_warning(eid);
+          ignore_unused_variable_warning(eid);
         }
 
@@ -590,5 +590,5 @@
           edge = graph.edgeFromId(ueid);
           ueid = graph.maxEdgeId();
-          ::lemon::ignore_unused_variable_warning(ueid);
+          ignore_unused_variable_warning(ueid);
         }
 
@@ -654,6 +654,6 @@
           rid = bpgraph.maxRedId();
           bid = bpgraph.maxBlueId();
-          ::lemon::ignore_unused_variable_warning(rid);
-          ::lemon::ignore_unused_variable_warning(bid);
+          ignore_unused_variable_warning(rid);
+          ignore_unused_variable_warning(bid);
         }
 
@@ -727,6 +727,6 @@
           _GraphItemIt it3 = it1;
           _GraphItemIt it4 = INVALID;
-          ::lemon::ignore_unused_variable_warning(it3);
-          ::lemon::ignore_unused_variable_warning(it4);
+          ignore_unused_variable_warning(it3);
+          ignore_unused_variable_warning(it4);
 
           it2 = ++it1;
@@ -818,6 +818,6 @@
           _GraphIncIt it3 = it1;
           _GraphIncIt it4 = INVALID;
-          ::lemon::ignore_unused_variable_warning(it3);
-          ::lemon::ignore_unused_variable_warning(it4);
+          ignore_unused_variable_warning(it3);
+          ignore_unused_variable_warning(it4);
 
           it2 = ++it1;
@@ -876,13 +876,13 @@
       void next(Arc&) const {}
 
-      /// \brief Return the first arc incoming to the given node.
-      ///
-      /// This function gives back the first arc incoming to the
+      /// \brief Return the first arc incomming to the given node.
+      ///
+      /// This function gives back the first arc incomming to the
       /// given node.
       void firstIn(Arc&, const Node&) const {}
 
-      /// \brief Return the next arc incoming to the given node.
-      ///
-      /// This function gives back the next arc incoming to the
+      /// \brief Return the next arc incomming to the given node.
+      ///
+      /// This function gives back the next arc incomming to the
       /// given node.
       void nextIn(Arc&) const {}
@@ -1001,5 +1001,5 @@
             n = digraph.baseNode(oait);
             n = digraph.runningNode(oait);
-            ::lemon::ignore_unused_variable_warning(n);
+            ignore_unused_variable_warning(n);
           }
         }
@@ -1151,5 +1151,5 @@
       typedef typename Base::Arc Arc;
       typedef typename Base::Edge Edge;
-
+      
       typedef IterableBpGraphComponent BpGraph;
 
@@ -1211,5 +1211,5 @@
           typename _BpGraph::RedNode rn(INVALID);
           bpgraph.first(rn);
-          bpgraph.next(rn);
+          bpgraph.next(rn); 
           typename _BpGraph::BlueNode bn(INVALID);
           bpgraph.first(bn);
@@ -1278,6 +1278,6 @@
             = digraph.notifier(typename _Digraph::Arc());
 
-          ::lemon::ignore_unused_variable_warning(nn);
-          ::lemon::ignore_unused_variable_warning(en);
+          ignore_unused_variable_warning(nn);
+          ignore_unused_variable_warning(en);
         }
 
@@ -1326,5 +1326,5 @@
           typename _Graph::EdgeNotifier& uen
             = graph.notifier(typename _Graph::Edge());
-          ::lemon::ignore_unused_variable_warning(uen);
+          ignore_unused_variable_warning(uen);
         }
 
@@ -1388,6 +1388,6 @@
           typename _BpGraph::BlueNodeNotifier& bnn
             = bpgraph.notifier(typename _BpGraph::BlueNode());
-          ::lemon::ignore_unused_variable_warning(rnn);
-          ::lemon::ignore_unused_variable_warning(bnn);
+          ignore_unused_variable_warning(rnn);
+          ignore_unused_variable_warning(bnn);
         }
 
@@ -1462,7 +1462,7 @@
           // m3 = cmap;
 
-          ::lemon::ignore_unused_variable_warning(m1);
-          ::lemon::ignore_unused_variable_warning(m2);
-          // ::lemon::ignore_unused_variable_warning(m3);
+          ignore_unused_variable_warning(m1);
+          ignore_unused_variable_warning(m2);
+          // ignore_unused_variable_warning(m3);
         }
 
Index: lemon/concepts/heap.h
===================================================================
--- lemon/concepts/heap.h	(revision 1270)
+++ lemon/concepts/heap.h	(revision 1127)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -261,6 +261,6 @@
           item=Item();
           prio=Prio();
-          ::lemon::ignore_unused_variable_warning(item);
-          ::lemon::ignore_unused_variable_warning(prio);
+          ignore_unused_variable_warning(item);
+          ignore_unused_variable_warning(prio);
 
           OwnItem own_item;
@@ -269,17 +269,17 @@
           own_item=Item();
           own_prio=Prio();
-          ::lemon::ignore_unused_variable_warning(own_item);
-          ::lemon::ignore_unused_variable_warning(own_prio);
-          ::lemon::ignore_unused_variable_warning(own_state);
+          ignore_unused_variable_warning(own_item);
+          ignore_unused_variable_warning(own_prio);
+          ignore_unused_variable_warning(own_state);
 
           _Heap heap1(map);
           _Heap heap2 = heap1;
-          ::lemon::ignore_unused_variable_warning(heap1);
-          ::lemon::ignore_unused_variable_warning(heap2);
+          ignore_unused_variable_warning(heap1);
+          ignore_unused_variable_warning(heap2);
 
           int s = heap.size();
-          ::lemon::ignore_unused_variable_warning(s);
+          ignore_unused_variable_warning(s);
           bool e = heap.empty();
-          ::lemon::ignore_unused_variable_warning(e);
+          ignore_unused_variable_warning(e);
 
           prio = heap.prio();
Index: lemon/concepts/maps.h
===================================================================
--- lemon/concepts/maps.h	(revision 1270)
+++ lemon/concepts/maps.h	(revision 1157)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2009
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -61,8 +61,8 @@
           own_val = m[own_key];
 
-          ::lemon::ignore_unused_variable_warning(key);
-          ::lemon::ignore_unused_variable_warning(val);
-          ::lemon::ignore_unused_variable_warning(own_key);
-          ::lemon::ignore_unused_variable_warning(own_val);
+          ignore_unused_variable_warning(key);
+          ignore_unused_variable_warning(val);
+          ignore_unused_variable_warning(own_key);
+          ignore_unused_variable_warning(own_val);
         }
         const Key& key;
@@ -101,8 +101,8 @@
           m.set(own_key, own_val);
 
-          ::lemon::ignore_unused_variable_warning(key);
-          ::lemon::ignore_unused_variable_warning(val);
-          ::lemon::ignore_unused_variable_warning(own_key);
-          ::lemon::ignore_unused_variable_warning(own_val);
+          ignore_unused_variable_warning(key);
+          ignore_unused_variable_warning(val);
+          ignore_unused_variable_warning(own_key);
+          ignore_unused_variable_warning(own_val);
         }
         const Key& key;
Index: lemon/concepts/path.h
===================================================================
--- lemon/concepts/path.h	(revision 1270)
+++ lemon/concepts/path.h	(revision 1127)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2009
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -76,5 +76,5 @@
       template <typename CPath>
       Path& operator=(const CPath& cpath) {
-        ::lemon::ignore_unused_variable_warning(cpath);
+        ignore_unused_variable_warning(cpath);
         return *this;
       }
@@ -136,10 +136,10 @@
           e = (i < ii);
 
-          ::lemon::ignore_unused_variable_warning(l);
-          ::lemon::ignore_unused_variable_warning(pp);
-          ::lemon::ignore_unused_variable_warning(e);
-          ::lemon::ignore_unused_variable_warning(id);
-          ::lemon::ignore_unused_variable_warning(ii);
-          ::lemon::ignore_unused_variable_warning(ed);
+          ignore_unused_variable_warning(l);
+          ignore_unused_variable_warning(pp);
+          ignore_unused_variable_warning(e);
+          ignore_unused_variable_warning(id);
+          ignore_unused_variable_warning(ii);
+          ignore_unused_variable_warning(ed);
         }
       };
@@ -163,8 +163,8 @@
           e = (i != INVALID);
 
-          ::lemon::ignore_unused_variable_warning(l);
-          ::lemon::ignore_unused_variable_warning(e);
-          ::lemon::ignore_unused_variable_warning(id);
-          ::lemon::ignore_unused_variable_warning(ed);
+          ignore_unused_variable_warning(l);
+          ignore_unused_variable_warning(e);
+          ignore_unused_variable_warning(id);
+          ignore_unused_variable_warning(ed);
         }
         _Path& p;
@@ -189,8 +189,8 @@
           e = (i != INVALID);
 
-          ::lemon::ignore_unused_variable_warning(l);
-          ::lemon::ignore_unused_variable_warning(e);
-          ::lemon::ignore_unused_variable_warning(id);
-          ::lemon::ignore_unused_variable_warning(ed);
+          ignore_unused_variable_warning(l);
+          ignore_unused_variable_warning(e);
+          ignore_unused_variable_warning(id);
+          ignore_unused_variable_warning(ed);
         }
         _Path& p;
Index: lemon/config.h.in
===================================================================
--- lemon/config.h.in	(revision 1264)
+++ lemon/config.h.in	(revision 1133)
@@ -5,9 +5,6 @@
 #cmakedefine LEMON_HAVE_GLPK 1
 #cmakedefine LEMON_HAVE_CPLEX 1
-#cmakedefine LEMON_HAVE_SOPLEX 1
 #cmakedefine LEMON_HAVE_CLP 1
 #cmakedefine LEMON_HAVE_CBC 1
-#cmakedefine LEMON_DEFAULT_LP @LEMON_DEFAULT_LP@
-#cmakedefine LEMON_DEFAULT_MIP @LEMON_DEFAULT_MIP@
 #cmakedefine LEMON_USE_PTHREAD 1
 #cmakedefine LEMON_USE_WIN32_THREADS 1
Index: lemon/connectivity.h
===================================================================
--- lemon/connectivity.h	(revision 1270)
+++ lemon/connectivity.h	(revision 956)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -746,35 +746,12 @@
   ///
   /// This function checks whether the given undirected graph is
-  /// bi-node-connected, i.e. a connected graph without articulation
-  /// node.
+  /// bi-node-connected, i.e. any two edges are on same circle.
   ///
   /// \return \c true if the graph bi-node-connected.
-  ///
-  /// \note By definition,
-  /// \li a graph consisting of zero or one node is bi-node-connected,
-  /// \li a graph consisting of two isolated nodes
-  /// is \e not bi-node-connected and
-  /// \li a graph consisting of two nodes connected by an edge
-  /// is bi-node-connected.
+  /// \note By definition, the empty graph is bi-node-connected.
   ///
   /// \see countBiNodeConnectedComponents(), biNodeConnectedComponents()
   template <typename Graph>
   bool biNodeConnected(const Graph& graph) {
-    bool hasNonIsolated = false, hasIsolated = false;
-    for (typename Graph::NodeIt n(graph); n != INVALID; ++n) {
-      if (typename Graph::OutArcIt(graph, n) == INVALID) {
-        if (hasIsolated || hasNonIsolated) {
-          return false;
-        } else {
-          hasIsolated = true;
-        }
-      } else {
-        if (hasIsolated) {
-          return false;
-        } else {
-          hasNonIsolated = true;
-        }
-      }
-    }
     return countBiNodeConnectedComponents(graph) <= 1;
   }
Index: lemon/core.h
===================================================================
--- lemon/core.h	(revision 1270)
+++ lemon/core.h	(revision 1195)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -36,15 +36,4 @@
 #ifdef _MSC_VER
 #pragma warning( disable : 4250 4355 4503 4800 4996 )
-#endif
-
-#ifdef __GNUC__
-#define GCC_VERSION (__GNUC__ * 10000                   \
-                     + __GNUC_MINOR__ * 100             \
-                     + __GNUC_PATCHLEVEL__)
-#endif
-
-#if GCC_VERSION >= 40800
-// Needed by the [DI]GRAPH_TYPEDEFS marcos for gcc 4.8
-#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
 #endif
 
@@ -255,5 +244,5 @@
 
   namespace _graph_utils_bits {
-
+    
     template <typename Graph, typename Enable = void>
     struct CountRedNodesSelector {
@@ -265,11 +254,11 @@
     template <typename Graph>
     struct CountRedNodesSelector<
-      Graph, typename
-      enable_if<typename Graph::NodeNumTag, void>::type>
+      Graph, typename 
+      enable_if<typename Graph::NodeNumTag, void>::type> 
     {
       static int count(const Graph &g) {
         return g.redNum();
       }
-    };
+    };    
   }
 
@@ -280,5 +269,5 @@
   /// graph structures it is specialized to run in O(1).
   ///
-  /// If the graph contains a \e redNum() member function and a
+  /// If the graph contains a \e redNum() member function and a 
   /// \e NodeNumTag tag then this function calls directly the member
   /// function to query the cardinality of the node set.
@@ -289,5 +278,5 @@
 
   namespace _graph_utils_bits {
-
+    
     template <typename Graph, typename Enable = void>
     struct CountBlueNodesSelector {
@@ -299,11 +288,11 @@
     template <typename Graph>
     struct CountBlueNodesSelector<
-      Graph, typename
-      enable_if<typename Graph::NodeNumTag, void>::type>
+      Graph, typename 
+      enable_if<typename Graph::NodeNumTag, void>::type> 
     {
       static int count(const Graph &g) {
         return g.blueNum();
       }
-    };
+    };    
   }
 
@@ -314,5 +303,5 @@
   /// graph structures it is specialized to run in O(1).
   ///
-  /// If the graph contains a \e blueNum() member function and a
+  /// If the graph contains a \e blueNum() member function and a 
   /// \e NodeNumTag tag then this function calls directly the member
   /// function to query the cardinality of the node set.
@@ -1866,5 +1855,5 @@
     /// The Digraph type
     typedef GR Digraph;
-
+    
   protected:
 
Index: lemon/cost_scaling.h
===================================================================
--- lemon/cost_scaling.h	(revision 1271)
+++ lemon/cost_scaling.h	(revision 1296)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -92,12 +92,9 @@
   /// \ref CostScaling implements a cost scaling algorithm that performs
   /// push/augment and relabel operations for finding a \ref min_cost_flow
-  /// "minimum cost flow" \cite amo93networkflows,
-  /// \cite goldberg90approximation,
-  /// \cite goldberg97efficient, \cite bunnagel98efficient.
+  /// "minimum cost flow" \ref amo93networkflows, \ref goldberg90approximation,
+  /// \ref goldberg97efficient, \ref bunnagel98efficient.
   /// It is a highly efficient primal-dual solution method, which
   /// can be viewed as the generalization of the \ref Preflow
   /// "preflow push-relabel" algorithm for the maximum flow problem.
-  /// It is a polynomial algorithm, its running time complexity is
-  /// \f$O(n^2m\log(nK))\f$, where <i>K</i> denotes the maximum arc cost.
   ///
   /// In general, \ref NetworkSimplex and \ref CostScaling are the fastest
@@ -154,6 +151,5 @@
     typedef typename TR::LargeCost LargeCost;
 
-    /// \brief The \ref lemon::CostScalingDefaultTraits "traits class"
-    /// of the algorithm
+    /// The \ref CostScalingDefaultTraits "traits class" of the algorithm
     typedef TR Traits;
 
@@ -215,6 +211,5 @@
     typedef std::vector<LargeCost> LargeCostVector;
     typedef std::vector<char> BoolVector;
-    // Note: vector<char> is used instead of vector<bool>
-    // for efficiency reasons
+    // Note: vector<char> is used instead of vector<bool> for efficiency reasons
 
   private:
@@ -376,5 +371,4 @@
       for (ArcIt a(_graph); a != INVALID; ++a) {
         _lower[_arc_idf[a]] = map[a];
-        _lower[_arc_idb[a]] = map[a];
       }
       return *this;
@@ -673,5 +667,5 @@
     ///
     /// This function returns the total cost of the found flow.
-    /// Its complexity is O(m).
+    /// Its complexity is O(e).
     ///
     /// \note The return type of the function can be specified as a
@@ -907,10 +901,10 @@
       return OPTIMAL;
     }
-
-    // Check if the upper bound is greater or equal to the lower bound
-    // on each arc.
+    
+    // Check if the upper bound is greater than or equal to the lower bound
+    // on each forward arc.
     bool checkBoundMaps() {
       for (int j = 0; j != _res_arc_num; ++j) {
-        if (_upper[j] < _lower[j]) return false;
+        if (_forward[j] && _upper[j] < _lower[j]) return false;
       }
       return true;
@@ -995,5 +989,5 @@
         int limit = _first_out[_root];
         for (int j = 0; j != limit; ++j) {
-          if (!_forward[j]) _res_cap[j] += _lower[j];
+          if (_forward[j]) _res_cap[_reverse[j]] += _lower[j];
         }
       }
@@ -1288,5 +1282,5 @@
           _buckets[r] = _bucket_next[u];
 
-          // Search the incoming arcs of u
+          // Search the incomming arcs of u
           LargeCost pi_u = _pi[u];
           int last_out = _first_out[u+1];
Index: lemon/cplex.cc
===================================================================
--- lemon/cplex.cc	(revision 1270)
+++ lemon/cplex.cc	(revision 1183)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -492,15 +492,4 @@
                    _message_enabled ? CPX_ON : CPX_OFF);
   }
-
-  void CplexBase::_write(std::string file, std::string format) const
-  {
-    if(format == "MPS" || format == "LP")
-      CPXwriteprob(cplexEnv(), cplexLp(), file.c_str(), format.c_str());
-    else if(format == "SOL")
-      CPXsolwrite(cplexEnv(), cplexLp(), file.c_str());
-    else throw UnsupportedFormatError(format);
-  }
-
-
 
   // CplexLp members
Index: lemon/cplex.h
===================================================================
--- lemon/cplex.h	(revision 1270)
+++ lemon/cplex.h	(revision 793)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2009
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -151,6 +151,4 @@
     bool _message_enabled;
 
-    void _write(std::string file, std::string format) const;
-
   public:
 
@@ -173,17 +171,4 @@
     const cpxlp* cplexLp() const { return _prob; }
 
-#ifdef DOXYGEN
-    /// Write the problem or the solution to a file in the given format
-
-    /// This function writes the problem or the solution
-    /// to a file in the given format.
-    /// Trying to write in an unsupported format will trigger
-    /// \ref lemon::LpBase::UnsupportedFormatError "UnsupportedFormatError".
-    /// \param file The file path
-    /// \param format The output file format.
-    /// Supportted formats are "MPS", "LP" and "SOL".
-    void write(std::string file, std::string format = "MPS") const {}
-#endif
-
   };
 
Index: lemon/cycle_canceling.h
===================================================================
--- lemon/cycle_canceling.h	(revision 1270)
+++ lemon/cycle_canceling.h	(revision 1296)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -48,11 +48,11 @@
   /// \ref CycleCanceling implements three different cycle-canceling
   /// algorithms for finding a \ref min_cost_flow "minimum cost flow"
-  /// \cite amo93networkflows, \cite klein67primal,
-  /// \cite goldberg89cyclecanceling.
+  /// \ref amo93networkflows, \ref klein67primal,
+  /// \ref goldberg89cyclecanceling.
   /// The most efficent one is the \ref CANCEL_AND_TIGHTEN
   /// "Cancel-and-Tighten" algorithm, thus it is the default method.
-  /// It runs in strongly polynomial time \f$O(n^2 m^2 \log n)\f$,
-  /// but in practice, it is typically orders of magnitude slower than
-  /// the scaling algorithms and \ref NetworkSimplex.
+  /// It runs in strongly polynomial time, but in practice, it is typically
+  /// orders of magnitude slower than the scaling algorithms and
+  /// \ref NetworkSimplex.
   /// (For more information, see \ref min_cost_flow_algs "the module page".)
   ///
@@ -132,13 +132,13 @@
       /// The "Minimum Mean Cycle-Canceling" algorithm, which is a
       /// well-known strongly polynomial method
-      /// \cite goldberg89cyclecanceling. It improves along a
+      /// \ref goldberg89cyclecanceling. It improves along a
       /// \ref min_mean_cycle "minimum mean cycle" in each iteration.
-      /// Its running time complexity is \f$O(n^2 m^3 \log n)\f$.
+      /// Its running time complexity is O(n<sup>2</sup>e<sup>3</sup>log(n)).
       MINIMUM_MEAN_CYCLE_CANCELING,
       /// The "Cancel-and-Tighten" algorithm, which can be viewed as an
       /// improved version of the previous method
-      /// \cite goldberg89cyclecanceling.
+      /// \ref goldberg89cyclecanceling.
       /// It is faster both in theory and in practice, its running time
-      /// complexity is \f$O(n^2 m^2 \log n)\f$.
+      /// complexity is O(n<sup>2</sup>e<sup>2</sup>log(n)).
       CANCEL_AND_TIGHTEN
     };
@@ -282,5 +282,4 @@
       for (ArcIt a(_graph); a != INVALID; ++a) {
         _lower[_arc_idf[a]] = map[a];
-        _lower[_arc_idb[a]] = map[a];
       }
       return *this;
@@ -577,5 +576,5 @@
     ///
     /// This function returns the total cost of the found flow.
-    /// Its complexity is O(m).
+    /// Its complexity is O(e).
     ///
     /// \note The return type of the function can be specified as a
@@ -784,10 +783,10 @@
       return OPTIMAL;
     }
-
-    // Check if the upper bound is greater or equal to the lower bound
-    // on each arc.
+    
+    // Check if the upper bound is greater than or equal to the lower bound
+    // on each forward arc.
     bool checkBoundMaps() {
       for (int j = 0; j != _res_arc_num; ++j) {
-        if (_upper[j] < _lower[j]) return false;
+        if (_forward[j] && _upper[j] < _lower[j]) return false;
       }
       return true;
@@ -839,5 +838,5 @@
         int limit = _first_out[_root];
         for (int j = 0; j != limit; ++j) {
-          if (!_forward[j]) _res_cap[j] += _lower[j];
+          if (_forward[j]) _res_cap[_reverse[j]] += _lower[j];
         }
       }
@@ -961,5 +960,5 @@
       buildResidualNetwork();
       while (true) {
-
+        
         typename HwMmc::TerminationCause hw_tc =
             hw_mmc.findCycleMean(hw_iter_limit);
@@ -977,5 +976,5 @@
           hw_mmc.findCycle();
         }
-
+        
         // Compute delta value
         Value delta = INF;
Index: lemon/dfs.h
===================================================================
--- lemon/dfs.h	(revision 1270)
+++ lemon/dfs.h	(revision 1161)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -153,5 +153,5 @@
     typedef PredMapPath<Digraph, PredMap> Path;
 
-    ///The \ref lemon::DfsDefaultTraits "traits class" of the algorithm.
+    ///The \ref DfsDefaultTraits "traits class" of the algorithm.
     typedef TR Traits;
 
Index: lemon/dijkstra.h
===================================================================
--- lemon/dijkstra.h	(revision 1270)
+++ lemon/dijkstra.h	(revision 956)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -228,9 +228,9 @@
     ///The heap type used by the algorithm.
     typedef typename TR::Heap Heap;
-    /// \brief The \ref lemon::DijkstraDefaultOperationTraits
-    /// "operation traits class" of the algorithm.
+    ///\brief The \ref DijkstraDefaultOperationTraits "operation traits class"
+    ///of the algorithm.
     typedef typename TR::OperationTraits OperationTraits;
 
-    ///The \ref lemon::DijkstraDefaultTraits "traits class" of the algorithm.
+    ///The \ref DijkstraDefaultTraits "traits class" of the algorithm.
     typedef TR Traits;
 
Index: lemon/dimacs.h
===================================================================
--- lemon/dimacs.h	(revision 1270)
+++ lemon/dimacs.h	(revision 956)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: lemon/edge_set.h
===================================================================
--- lemon/edge_set.h	(revision 1270)
+++ lemon/edge_set.h	(revision 956)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: mon/edmonds_karp.h
===================================================================
--- lemon/edmonds_karp.h	(revision 1270)
+++ 	(revision )
@@ -1,556 +1,0 @@
-/* -*- mode: C++; indent-tabs-mode: nil; -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library.
- *
- * Copyright (C) 2003-2013
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#ifndef LEMON_EDMONDS_KARP_H
-#define LEMON_EDMONDS_KARP_H
-
-/// \file
-/// \ingroup max_flow
-/// \brief Implementation of the Edmonds-Karp algorithm.
-
-#include <lemon/tolerance.h>
-#include <vector>
-
-namespace lemon {
-
-  /// \brief Default traits class of EdmondsKarp class.
-  ///
-  /// Default traits class of EdmondsKarp class.
-  /// \param GR Digraph type.
-  /// \param CAP Type of capacity map.
-  template <typename GR, typename CAP>
-  struct EdmondsKarpDefaultTraits {
-
-    /// \brief The digraph type the algorithm runs on.
-    typedef GR Digraph;
-
-    /// \brief The type of the map that stores the arc capacities.
-    ///
-    /// The type of the map that stores the arc capacities.
-    /// It must meet the \ref concepts::ReadMap "ReadMap" concept.
-    typedef CAP CapacityMap;
-
-    /// \brief The type of the flow values.
-    typedef typename CapacityMap::Value Value;
-
-    /// \brief The type of the map that stores the flow values.
-    ///
-    /// The type of the map that stores the flow values.
-    /// It must meet the \ref concepts::ReadWriteMap "ReadWriteMap" concept.
-#ifdef DOXYGEN
-    typedef GR::ArcMap<Value> FlowMap;
-#else
-    typedef typename Digraph::template ArcMap<Value> FlowMap;
-#endif
-
-    /// \brief Instantiates a FlowMap.
-    ///
-    /// This function instantiates a \ref FlowMap.
-    /// \param digraph The digraph for which we would like to define
-    /// the flow map.
-    static FlowMap* createFlowMap(const Digraph& digraph) {
-      return new FlowMap(digraph);
-    }
-
-    /// \brief The tolerance used by the algorithm
-    ///
-    /// The tolerance used by the algorithm to handle inexact computation.
-    typedef lemon::Tolerance<Value> Tolerance;
-
-  };
-
-  /// \ingroup max_flow
-  ///
-  /// \brief Edmonds-Karp algorithms class.
-  ///
-  /// This class provides an implementation of the \e Edmonds-Karp \e
-  /// algorithm producing a \ref max_flow "flow of maximum value" in a
-  /// digraph \cite clrs01algorithms, \cite amo93networkflows,
-  /// \cite edmondskarp72theoretical.
-  /// The Edmonds-Karp algorithm is slower than the Preflow
-  /// algorithm, but it has an advantage of the step-by-step execution
-  /// control with feasible flow solutions. The \e source node, the \e
-  /// target node, the \e capacity of the arcs and the \e starting \e
-  /// flow value of the arcs should be passed to the algorithm
-  /// through the constructor.
-  ///
-  /// The time complexity of the algorithm is \f$ O(nm^2) \f$ in
-  /// worst case. Always try the Preflow algorithm instead of this if
-  /// you just want to compute the optimal flow.
-  ///
-  /// \tparam GR The type of the digraph the algorithm runs on.
-  /// \tparam CAP The type of the capacity map. The default map
-  /// type is \ref concepts::Digraph::ArcMap "GR::ArcMap<int>".
-  /// \tparam TR The traits class that defines various types used by the
-  /// algorithm. By default, it is \ref EdmondsKarpDefaultTraits
-  /// "EdmondsKarpDefaultTraits<GR, CAP>".
-  /// In most cases, this parameter should not be set directly,
-  /// consider to use the named template parameters instead.
-
-#ifdef DOXYGEN
-  template <typename GR, typename CAP, typename TR>
-#else
-  template <typename GR,
-            typename CAP = typename GR::template ArcMap<int>,
-            typename TR = EdmondsKarpDefaultTraits<GR, CAP> >
-#endif
-  class EdmondsKarp {
-  public:
-
-    /// \brief The \ref lemon::EdmondsKarpDefaultTraits "traits class"
-    /// of the algorithm.
-    typedef TR Traits;
-    /// The type of the digraph the algorithm runs on.
-    typedef typename Traits::Digraph Digraph;
-    /// The type of the capacity map.
-    typedef typename Traits::CapacityMap CapacityMap;
-    /// The type of the flow values.
-    typedef typename Traits::Value Value;
-
-    /// The type of the flow map.
-    typedef typename Traits::FlowMap FlowMap;
-    /// The type of the tolerance.
-    typedef typename Traits::Tolerance Tolerance;
-
-  private:
-
-    TEMPLATE_DIGRAPH_TYPEDEFS(Digraph);
-    typedef typename Digraph::template NodeMap<Arc> PredMap;
-
-    const Digraph& _graph;
-    const CapacityMap* _capacity;
-
-    Node _source, _target;
-
-    FlowMap* _flow;
-    bool _local_flow;
-
-    PredMap* _pred;
-    std::vector<Node> _queue;
-
-    Tolerance _tolerance;
-    Value _flow_value;
-
-    void createStructures() {
-      if (!_flow) {
-        _flow = Traits::createFlowMap(_graph);
-        _local_flow = true;
-      }
-      if (!_pred) {
-        _pred = new PredMap(_graph);
-      }
-      _queue.resize(countNodes(_graph));
-    }
-
-    void destroyStructures() {
-      if (_local_flow) {
-        delete _flow;
-      }
-      if (_pred) {
-        delete _pred;
-      }
-    }
-
-  public:
-
-    typedef EdmondsKarp Create;
-
-    ///\name Named template parameters
-
-    ///@{
-
-    template <typename T>
-    struct SetFlowMapTraits : public Traits {
-      typedef T FlowMap;
-      static FlowMap *createFlowMap(const Digraph&) {
-        LEMON_ASSERT(false, "FlowMap is not initialized");
-        return 0;
-      }
-    };
-
-    /// \brief \ref named-templ-param "Named parameter" for setting
-    /// FlowMap type
-    ///
-    /// \ref named-templ-param "Named parameter" for setting FlowMap
-    /// type
-    template <typename T>
-    struct SetFlowMap
-      : public EdmondsKarp<Digraph, CapacityMap, SetFlowMapTraits<T> > {
-      typedef EdmondsKarp<Digraph, CapacityMap, SetFlowMapTraits<T> > Create;
-    };
-
-    /// @}
-
-  protected:
-
-    EdmondsKarp() {}
-
-  public:
-
-    /// \brief The constructor of the class.
-    ///
-    /// The constructor of the class.
-    /// \param digraph The digraph the algorithm runs on.
-    /// \param capacity The capacity of the arcs.
-    /// \param source The source node.
-    /// \param target The target node.
-    EdmondsKarp(const Digraph& digraph, const CapacityMap& capacity,
-                Node source, Node target)
-      : _graph(digraph), _capacity(&capacity), _source(source), _target(target),
-        _flow(0), _local_flow(false), _pred(0), _tolerance(), _flow_value()
-    {
-      LEMON_ASSERT(_source != _target,
-                   "Flow source and target are the same nodes.");
-    }
-
-    /// \brief Destructor.
-    ///
-    /// Destructor.
-    ~EdmondsKarp() {
-      destroyStructures();
-    }
-
-    /// \brief Sets the capacity map.
-    ///
-    /// Sets the capacity map.
-    /// \return <tt>(*this)</tt>
-    EdmondsKarp& capacityMap(const CapacityMap& map) {
-      _capacity = &map;
-      return *this;
-    }
-
-    /// \brief Sets the flow map.
-    ///
-    /// Sets the flow map.
-    /// If you don't use this function before calling \ref run() or
-    /// \ref init(), an instance will be allocated automatically.
-    /// The destructor deallocates this automatically allocated map,
-    /// of course.
-    /// \return <tt>(*this)</tt>
-    EdmondsKarp& flowMap(FlowMap& map) {
-      if (_local_flow) {
-        delete _flow;
-        _local_flow = false;
-      }
-      _flow = &map;
-      return *this;
-    }
-
-    /// \brief Sets the source node.
-    ///
-    /// Sets the source node.
-    /// \return <tt>(*this)</tt>
-    EdmondsKarp& source(const Node& node) {
-      _source = node;
-      return *this;
-    }
-
-    /// \brief Sets the target node.
-    ///
-    /// Sets the target node.
-    /// \return <tt>(*this)</tt>
-    EdmondsKarp& target(const Node& node) {
-      _target = node;
-      return *this;
-    }
-
-    /// \brief Sets the tolerance used by algorithm.
-    ///
-    /// Sets the tolerance used by algorithm.
-    /// \return <tt>(*this)</tt>
-    EdmondsKarp& tolerance(const Tolerance& tolerance) {
-      _tolerance = tolerance;
-      return *this;
-    }
-
-    /// \brief Returns a const reference to the tolerance.
-    ///
-    /// Returns a const reference to the tolerance object used by
-    /// the algorithm.
-    const Tolerance& tolerance() const {
-      return _tolerance;
-    }
-
-    /// \name Execution control
-    /// The simplest way to execute the algorithm is to use \ref run().\n
-    /// If you need better control on the initial solution or the execution,
-    /// you have to call one of the \ref init() functions first, then
-    /// \ref start() or multiple times the \ref augment() function.
-
-    ///@{
-
-    /// \brief Initializes the algorithm.
-    ///
-    /// Initializes the internal data structures and sets the initial
-    /// flow to zero on each arc.
-    void init() {
-      createStructures();
-      for (ArcIt it(_graph); it != INVALID; ++it) {
-        _flow->set(it, 0);
-      }
-      _flow_value = 0;
-    }
-
-    /// \brief Initializes the algorithm using the given flow map.
-    ///
-    /// Initializes the internal data structures and sets the initial
-    /// flow to the given \c flowMap. The \c flowMap should
-    /// contain a feasible flow, i.e. at each node excluding the source
-    /// and the target, the incoming flow should be equal to the
-    /// outgoing flow.
-    template <typename FlowMap>
-    void init(const FlowMap& flowMap) {
-      createStructures();
-      for (ArcIt e(_graph); e != INVALID; ++e) {
-        _flow->set(e, flowMap[e]);
-      }
-      _flow_value = 0;
-      for (OutArcIt jt(_graph, _source); jt != INVALID; ++jt) {
-        _flow_value += (*_flow)[jt];
-      }
-      for (InArcIt jt(_graph, _source); jt != INVALID; ++jt) {
-        _flow_value -= (*_flow)[jt];
-      }
-    }
-
-    /// \brief Initializes the algorithm using the given flow map.
-    ///
-    /// Initializes the internal data structures and sets the initial
-    /// flow to the given \c flowMap. The \c flowMap should
-    /// contain a feasible flow, i.e. at each node excluding the source
-    /// and the target, the incoming flow should be equal to the
-    /// outgoing flow.
-    /// \return \c false when the given \c flowMap does not contain a
-    /// feasible flow.
-    template <typename FlowMap>
-    bool checkedInit(const FlowMap& flowMap) {
-      createStructures();
-      for (ArcIt e(_graph); e != INVALID; ++e) {
-        _flow->set(e, flowMap[e]);
-      }
-      for (NodeIt it(_graph); it != INVALID; ++it) {
-        if (it == _source || it == _target) continue;
-        Value outFlow = 0;
-        for (OutArcIt jt(_graph, it); jt != INVALID; ++jt) {
-          outFlow += (*_flow)[jt];
-        }
-        Value inFlow = 0;
-        for (InArcIt jt(_graph, it); jt != INVALID; ++jt) {
-          inFlow += (*_flow)[jt];
-        }
-        if (_tolerance.different(outFlow, inFlow)) {
-          return false;
-        }
-      }
-      for (ArcIt it(_graph); it != INVALID; ++it) {
-        if (_tolerance.less((*_flow)[it], 0)) return false;
-        if (_tolerance.less((*_capacity)[it], (*_flow)[it])) return false;
-      }
-      _flow_value = 0;
-      for (OutArcIt jt(_graph, _source); jt != INVALID; ++jt) {
-        _flow_value += (*_flow)[jt];
-      }
-      for (InArcIt jt(_graph, _source); jt != INVALID; ++jt) {
-        _flow_value -= (*_flow)[jt];
-      }
-      return true;
-    }
-
-    /// \brief Augments the solution along a shortest path.
-    ///
-    /// Augments the solution along a shortest path. This function searches a
-    /// shortest path between the source and the target
-    /// in the residual digraph by the Bfs algoritm.
-    /// Then it increases the flow on this path with the minimal residual
-    /// capacity on the path. If there is no such path, it gives back
-    /// false.
-    /// \return \c false when the augmenting did not success, i.e. the
-    /// current flow is a feasible and optimal solution.
-    bool augment() {
-      for (NodeIt n(_graph); n != INVALID; ++n) {
-        _pred->set(n, INVALID);
-      }
-
-      int first = 0, last = 1;
-
-      _queue[0] = _source;
-      _pred->set(_source, OutArcIt(_graph, _source));
-
-      while (first != last && (*_pred)[_target] == INVALID) {
-        Node n = _queue[first++];
-
-        for (OutArcIt e(_graph, n); e != INVALID; ++e) {
-          Value rem = (*_capacity)[e] - (*_flow)[e];
-          Node t = _graph.target(e);
-          if (_tolerance.positive(rem) && (*_pred)[t] == INVALID) {
-            _pred->set(t, e);
-            _queue[last++] = t;
-          }
-        }
-        for (InArcIt e(_graph, n); e != INVALID; ++e) {
-          Value rem = (*_flow)[e];
-          Node t = _graph.source(e);
-          if (_tolerance.positive(rem) && (*_pred)[t] == INVALID) {
-            _pred->set(t, e);
-            _queue[last++] = t;
-          }
-        }
-      }
-
-      if ((*_pred)[_target] != INVALID) {
-        Node n = _target;
-        Arc e = (*_pred)[n];
-
-        Value prem = (*_capacity)[e] - (*_flow)[e];
-        n = _graph.source(e);
-        while (n != _source) {
-          e = (*_pred)[n];
-          if (_graph.target(e) == n) {
-            Value rem = (*_capacity)[e] - (*_flow)[e];
-            if (rem < prem) prem = rem;
-            n = _graph.source(e);
-          } else {
-            Value rem = (*_flow)[e];
-            if (rem < prem) prem = rem;
-            n = _graph.target(e);
-          }
-        }
-
-        n = _target;
-        e = (*_pred)[n];
-
-        _flow->set(e, (*_flow)[e] + prem);
-        n = _graph.source(e);
-        while (n != _source) {
-          e = (*_pred)[n];
-          if (_graph.target(e) == n) {
-            _flow->set(e, (*_flow)[e] + prem);
-            n = _graph.source(e);
-          } else {
-            _flow->set(e, (*_flow)[e] - prem);
-            n = _graph.target(e);
-          }
-        }
-
-        _flow_value += prem;
-        return true;
-      } else {
-        return false;
-      }
-    }
-
-    /// \brief Executes the algorithm
-    ///
-    /// Executes the algorithm by performing augmenting phases until the
-    /// optimal solution is reached.
-    /// \pre One of the \ref init() functions must be called before
-    /// using this function.
-    void start() {
-      while (augment()) {}
-    }
-
-    /// \brief Runs the algorithm.
-    ///
-    /// Runs the Edmonds-Karp algorithm.
-    /// \note ek.run() is just a shortcut of the following code.
-    ///\code
-    /// ek.init();
-    /// ek.start();
-    ///\endcode
-    void run() {
-      init();
-      start();
-    }
-
-    /// @}
-
-    /// \name Query Functions
-    /// The result of the Edmonds-Karp algorithm can be obtained using these
-    /// functions.\n
-    /// Either \ref run() or \ref start() should be called before using them.
-
-    ///@{
-
-    /// \brief Returns the value of the maximum flow.
-    ///
-    /// Returns the value of the maximum flow found by the algorithm.
-    ///
-    /// \pre Either \ref run() or \ref init() must be called before
-    /// using this function.
-    Value flowValue() const {
-      return _flow_value;
-    }
-
-    /// \brief Returns the flow value on the given arc.
-    ///
-    /// Returns the flow value on the given arc.
-    ///
-    /// \pre Either \ref run() or \ref init() must be called before
-    /// using this function.
-    Value flow(const Arc& arc) const {
-      return (*_flow)[arc];
-    }
-
-    /// \brief Returns a const reference to the flow map.
-    ///
-    /// Returns a const reference to the arc map storing the found flow.
-    ///
-    /// \pre Either \ref run() or \ref init() must be called before
-    /// using this function.
-    const FlowMap& flowMap() const {
-      return *_flow;
-    }
-
-    /// \brief Returns \c true when the node is on the source side of the
-    /// minimum cut.
-    ///
-    /// Returns true when the node is on the source side of the found
-    /// minimum cut.
-    ///
-    /// \pre Either \ref run() or \ref init() must be called before
-    /// using this function.
-    bool minCut(const Node& node) const {
-      return ((*_pred)[node] != INVALID) || node == _source;
-    }
-
-    /// \brief Gives back a minimum value cut.
-    ///
-    /// Sets \c cutMap to the characteristic vector of a minimum value
-    /// cut. \c cutMap should be a \ref concepts::WriteMap "writable"
-    /// node map with \c bool (or convertible) value type.
-    ///
-    /// \note This function calls \ref minCut() for each node, so it runs in
-    /// O(n) time.
-    ///
-    /// \pre Either \ref run() or \ref init() must be called before
-    /// using this function.
-    template <typename CutMap>
-    void minCutMap(CutMap& cutMap) const {
-      for (NodeIt n(_graph); n != INVALID; ++n) {
-        cutMap.set(n, (*_pred)[n] != INVALID);
-      }
-      cutMap.set(_source, true);
-    }
-
-    /// @}
-
-  };
-
-}
-
-#endif
Index: lemon/euler.h
===================================================================
--- lemon/euler.h	(revision 1270)
+++ lemon/euler.h	(revision 1023)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: lemon/fractional_matching.h
===================================================================
--- lemon/fractional_matching.h	(revision 1270)
+++ lemon/fractional_matching.h	(revision 956)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -124,6 +124,6 @@
   public:
 
-    /// \brief The \ref lemon::MaxFractionalMatchingDefaultTraits
-    /// "traits class" of the algorithm.
+    /// \brief The \ref MaxFractionalMatchingDefaultTraits "traits
+    /// class" of the algorithm.
     typedef TR Traits;
     /// The type of the graph the algorithm runs on.
Index: lemon/full_graph.h
===================================================================
--- lemon/full_graph.h	(revision 1270)
+++ lemon/full_graph.h	(revision 1193)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -875,5 +875,5 @@
     static int id(Arc e) { return e._id; }
     static int id(Edge e) { return e._id; }
-
+    
     static Node nodeFromId(int id) { return Node(id);}
     static Arc arcFromId(int id) { return Arc(id);}
@@ -905,5 +905,5 @@
       return n._id - _red_num;
     }
-
+        
     void clear() {
       _red_num = 0; _blue_num = 0;
@@ -911,5 +911,5 @@
     }
 
-    Edge edge(const Node& u, const Node& v) const {
+    Edge edge(const Node& u, const Node& v) const { 
       if (u._id < _red_num) {
         if (v._id < _red_num) {
@@ -927,5 +927,5 @@
     }
 
-    Arc arc(const Node& u, const Node& v) const {
+    Arc arc(const Node& u, const Node& v) const { 
       if (u._id < _red_num) {
         if (v._id < _red_num) {
Index: lemon/glpk.cc
===================================================================
--- lemon/glpk.cc	(revision 1270)
+++ lemon/glpk.cc	(revision 1142)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -581,13 +581,4 @@
       break;
     }
-  }
-
-  void GlpkBase::_write(std::string file, std::string format) const
-  {
-    if(format == "MPS")
-      glp_write_mps(lp, GLP_MPS_FILE, 0, file.c_str());
-    else if(format == "LP")
-      glp_write_lp(lp, 0, file.c_str());
-    else throw UnsupportedFormatError(format);
   }
 
@@ -1008,5 +999,3 @@
   const char* GlpkMip::_solverName() const { return "GlpkMip"; }
 
-
-
 } //END OF NAMESPACE LEMON
Index: lemon/glpk.h
===================================================================
--- lemon/glpk.h	(revision 1270)
+++ lemon/glpk.h	(revision 956)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -116,6 +116,4 @@
     virtual void _messageLevel(MessageLevel level);
 
-    virtual void _write(std::string file, std::string format) const;
-
   private:
 
@@ -147,17 +145,4 @@
     int lpxCol(Col c) const { return cols(id(c)); }
 
-#ifdef DOXYGEN
-    /// Write the problem or the solution to a file in the given format
-
-    /// This function writes the problem or the solution
-    /// to a file in the given format.
-    /// Trying to write in an unsupported format will trigger
-    /// \ref LpBase::UnsupportedFormatError.
-    /// \param file The file path
-    /// \param format The output file format.
-    /// Supportted formats are "MPS" and "LP".
-    void write(std::string file, std::string format = "MPS") const {}
-#endif
-
   };
 
Index: lemon/gomory_hu.h
===================================================================
--- lemon/gomory_hu.h	(revision 1270)
+++ lemon/gomory_hu.h	(revision 956)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -47,5 +47,5 @@
   ///
   /// The algorithm calculates \e n-1 distinct minimum cuts (currently with
-  /// the \ref Preflow algorithm), thus it has \f$O(n^3\sqrt{m})\f$ overall
+  /// the \ref Preflow algorithm), thus it has \f$O(n^3\sqrt{e})\f$ overall
   /// time complexity. It calculates a rooted Gomory-Hu tree.
   /// The structure of the tree and the edge weights can be
Index: lemon/graph_to_eps.h
===================================================================
--- lemon/graph_to_eps.h	(revision 1291)
+++ lemon/graph_to_eps.h	(revision 1159)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -223,4 +223,5 @@
   using T::_copyright;
 
+  using typename T::NodeTextColorType;
   using T::CUST_COL;
   using T::DIST_COL;
Index: lemon/greedy_tsp.h
===================================================================
--- lemon/greedy_tsp.h	(revision 1270)
+++ lemon/greedy_tsp.h	(revision 1205)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -68,7 +68,7 @@
       Cost _sum;
       std::vector<Node> _path;
-
+      
     private:
-
+    
       // Functor class to compare edges by their costs
       class EdgeComp {
@@ -229,5 +229,5 @@
       ///
       /// This function copies the found tour as a list of arcs/edges into
-      /// the given \ref lemon::concepts::Path "path structure".
+      /// the given \ref concept::Path "path structure".
       ///
       /// \pre run() must be called before using this function.
Index: lemon/grosso_locatelli_pullan_mc.h
===================================================================
--- lemon/grosso_locatelli_pullan_mc.h	(revision 1270)
+++ lemon/grosso_locatelli_pullan_mc.h	(revision 1022)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -41,5 +41,5 @@
   /// \ref GrossoLocatelliPullanMc implements the iterated local search
   /// algorithm of Grosso, Locatelli, and Pullan for solving the \e maximum
-  /// \e clique \e problem \cite grosso08maxclique.
+  /// \e clique \e problem \ref grosso08maxclique.
   /// It is to find the largest complete subgraph (\e clique) in an
   /// undirected graph, i.e., the largest set of nodes where each
@@ -121,9 +121,9 @@
     BoolMatrix _gr;
     int _n;
-
+    
     // Search options
     bool _delta_based_restart;
     int _restart_delta_limit;
-
+ 
     // Search limits
     int _iteration_limit;
@@ -443,10 +443,10 @@
     /// \name Execution Control
     /// The \ref run() function can be used to execute the algorithm.\n
-    /// The functions \ref iterationLimit(int), \ref stepLimit(int), and
+    /// The functions \ref iterationLimit(int), \ref stepLimit(int), and 
     /// \ref sizeLimit(int) can be used to specify various limits for the
     /// search process.
-
+    
     /// @{
-
+    
     /// \brief Sets the maximum number of iterations.
     ///
@@ -460,5 +460,5 @@
     /// likely finds larger cliques. For smaller values, the algorithm is
     /// faster but probably gives worse results.
-    ///
+    /// 
     /// The default value is \c 1000.
     /// \c -1 means that number of iterations is not limited.
@@ -475,5 +475,5 @@
       return *this;
     }
-
+    
     /// \brief Sets the maximum number of search steps.
     ///
@@ -487,5 +487,5 @@
     /// likely finds larger cliques. For smaller values, the algorithm is
     /// faster but probably gives worse results.
-    ///
+    /// 
     /// The default value is \c -1, which means that number of steps
     /// is not limited explicitly. However, the number of iterations is
@@ -503,5 +503,5 @@
       return *this;
     }
-
+    
     /// \brief Sets the desired clique size.
     ///
@@ -509,9 +509,9 @@
     /// limit. If a clique of this size (or a larger one) is found, then the
     /// algorithm terminates.
-    ///
+    /// 
     /// This function is especially useful if you know an exact upper bound
-    /// for the size of the cliques in the graph or if any clique above
+    /// for the size of the cliques in the graph or if any clique above 
     /// a certain size limit is sufficient for your application.
-    ///
+    /// 
     /// The default value is \c -1, which means that the size limit is set to
     /// the number of nodes in the graph.
@@ -525,5 +525,5 @@
       return *this;
     }
-
+    
     /// \brief The maximum number of iterations.
     ///
@@ -535,5 +535,5 @@
       return _iteration_limit;
     }
-
+    
     /// \brief The maximum number of search steps.
     ///
@@ -545,5 +545,5 @@
       return _step_limit;
     }
-
+    
     /// \brief The desired clique size.
     ///
@@ -584,5 +584,5 @@
     /// \name Query Functions
     /// The results of the algorithm can be obtained using these functions.\n
-    /// The run() function must be called before using them.
+    /// The run() function must be called before using them. 
 
     /// @{
@@ -677,5 +677,5 @@
 
   private:
-
+  
     // Initialize search options and limits
     void initOptions() {
@@ -683,5 +683,5 @@
       _delta_based_restart = true;
       _restart_delta_limit = 4;
-
+     
       // Search limits
       _iteration_limit = 1000;
Index: lemon/hao_orlin.h
===================================================================
--- lemon/hao_orlin.h	(revision 1270)
+++ lemon/hao_orlin.h	(revision 1019)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: lemon/hartmann_orlin_mmc.h
===================================================================
--- lemon/hartmann_orlin_mmc.h	(revision 1270)
+++ lemon/hartmann_orlin_mmc.h	(revision 1164)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -99,9 +99,8 @@
   /// This class implements the Hartmann-Orlin algorithm for finding
   /// a directed cycle of minimum mean cost in a digraph
-  /// \cite hartmann93finding, \cite dasdan98minmeancycle.
-  /// This method is based on \ref KarpMmc "Karp"'s original algorithm, but
-  /// applies an early termination scheme. It makes the algorithm
-  /// significantly faster for some problem instances, but slower for others.
-  /// The algorithm runs in time O(nm) and uses space O(n<sup>2</sup>+m).
+  /// \ref hartmann93finding, \ref dasdan98minmeancycle.
+  /// It is an improved version of \ref KarpMmc "Karp"'s original algorithm,
+  /// it applies an efficient early termination scheme.
+  /// It runs in time O(ne) and uses space O(n<sup>2</sup>+e).
   ///
   /// \tparam GR The type of the digraph the algorithm runs on.
@@ -144,12 +143,9 @@
     ///
     /// The path type of the found cycles.
-    /// Using the \ref lemon::HartmannOrlinMmcDefaultTraits
-    /// "default traits class",
+    /// Using the \ref HartmannOrlinMmcDefaultTraits "default traits class",
     /// it is \ref lemon::Path "Path<Digraph>".
     typedef typename TR::Path Path;
 
-    /// \brief The
-    /// \ref lemon::HartmannOrlinMmcDefaultTraits "traits class"
-    /// of the algorithm
+    /// The \ref HartmannOrlinMmcDefaultTraits "traits class" of the algorithm
     typedef TR Traits;
 
@@ -279,6 +275,6 @@
     ///
     /// If you don't call this function before calling \ref run() or
-    /// \ref findCycleMean(), a local \ref Path "path" structure
-    /// will be allocated. The destuctor deallocates this automatically
+    /// \ref findCycleMean(), it will allocate a local \ref Path "path"
+    /// structure. The destuctor deallocates this automatically
     /// allocated object, of course.
     ///
Index: lemon/howard_mmc.h
===================================================================
--- lemon/howard_mmc.h	(revision 1271)
+++ lemon/howard_mmc.h	(revision 1178)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -99,5 +99,5 @@
   /// This class implements Howard's policy iteration algorithm for finding
   /// a directed cycle of minimum mean cost in a digraph
-  /// \cite dasdan98minmeancycle, \cite dasdan04experimental.
+  /// \ref dasdan98minmeancycle, \ref dasdan04experimental.
   /// This class provides the most efficient algorithm for the
   /// minimum mean cycle problem, though the best known theoretical
@@ -143,9 +143,9 @@
     ///
     /// The path type of the found cycles.
-    /// Using the \ref lemon::HowardMmcDefaultTraits "default traits class",
+    /// Using the \ref HowardMmcDefaultTraits "default traits class",
     /// it is \ref lemon::Path "Path<Digraph>".
     typedef typename TR::Path Path;
 
-    /// The \ref lemon::HowardMmcDefaultTraits "traits class" of the algorithm
+    /// The \ref HowardMmcDefaultTraits "traits class" of the algorithm
     typedef TR Traits;
 
@@ -156,8 +156,8 @@
     /// these values.
     enum TerminationCause {
-
+      
       /// No directed cycle can be found in the digraph.
       NO_CYCLE = 0,
-
+    
       /// Optimal solution (minimum cycle mean) is found.
       OPTIMAL = 1,
@@ -283,6 +283,6 @@
     ///
     /// If you don't call this function before calling \ref run() or
-    /// \ref findCycleMean(), a local \ref Path "path" structure
-    /// will be allocated. The destuctor deallocates this automatically
+    /// \ref findCycleMean(), it will allocate a local \ref Path "path"
+    /// structure. The destuctor deallocates this automatically
     /// allocated object, of course.
     ///
@@ -357,11 +357,10 @@
     ///
     /// \param limit  The maximum allowed number of iterations during
-    /// the search process. Its default value implies that the algorithm
+    /// the search process. Its default value implies that the algorithm 
     /// runs until it finds the exact optimal solution.
     ///
     /// \return The termination cause of the search process.
-    /// For more information, see \ref TerminationCause.
-    TerminationCause findCycleMean(int limit =
-                                   std::numeric_limits<int>::max()) {
+    /// For more information, see \ref TerminationCause. 
+    TerminationCause findCycleMean(int limit = std::numeric_limits<int>::max()) {
       // Initialize and find strongly connected components
       init();
@@ -391,5 +390,5 @@
           _best_node = _curr_node;
         }
-
+        
         if (iter_limit_reached) break;
       }
Index: lemon/insertion_tsp.h
===================================================================
--- lemon/insertion_tsp.h	(revision 1270)
+++ lemon/insertion_tsp.h	(revision 1205)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -226,5 +226,5 @@
       ///
       /// This function copies the found tour as a list of arcs/edges into
-      /// the given \ref lemon::concepts::Path "path structure".
+      /// the given \ref concept::Path "path structure".
       ///
       /// \pre run() must be called before using this function.
@@ -361,5 +361,5 @@
               Node u = _notused[i];
               Cost min_cost = costDiff(_tour.back(), _tour.front(), u);
-              int min_pos = 0;
+              int min_pos = 0;              
               for (unsigned int j=1; j<_tour.size(); ++j) {
                 Cost curr_cost = costDiff(_tour[j-1], _tour[j], u);
@@ -391,5 +391,5 @@
             _notused[min_node] = _notused.back();
             _notused.pop_back();
-
+            
             // Insert the selected node into the tour
             const int ipos = _ins_pos[sn];
@@ -406,5 +406,5 @@
               Cost nc1 = costDiff(_tour[ipos_prev], _tour[ipos], u);
               Cost nc2 = costDiff(_tour[ipos], _tour[ipos_next], u);
-
+              
               if (nc1 <= curr_cost || nc2 <= curr_cost) {
                 // A new position is better than the old one
@@ -421,5 +421,5 @@
                   // The minimum should be found again
                   curr_cost = costDiff(_tour.back(), _tour.front(), u);
-                  curr_pos = 0;
+                  curr_pos = 0;              
                   for (unsigned int j=1; j<_tour.size(); ++j) {
                     Cost tmp_cost = costDiff(_tour[j-1], _tour[j], u);
@@ -434,5 +434,5 @@
                 }
               }
-
+              
               _ins_cost[u] = curr_cost;
               _ins_pos[u] = curr_pos;
Index: lemon/karp_mmc.h
===================================================================
--- lemon/karp_mmc.h	(revision 1270)
+++ lemon/karp_mmc.h	(revision 1164)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -99,6 +99,6 @@
   /// This class implements Karp's algorithm for finding a directed
   /// cycle of minimum mean cost in a digraph
-  /// \cite karp78characterization, \cite dasdan98minmeancycle.
-  /// It runs in time O(nm) and uses space O(n<sup>2</sup>+m).
+  /// \ref karp78characterization, \ref dasdan98minmeancycle.
+  /// It runs in time O(ne) and uses space O(n<sup>2</sup>+e).
   ///
   /// \tparam GR The type of the digraph the algorithm runs on.
@@ -141,9 +141,9 @@
     ///
     /// The path type of the found cycles.
-    /// Using the \ref lemon::KarpMmcDefaultTraits "default traits class",
+    /// Using the \ref KarpMmcDefaultTraits "default traits class",
     /// it is \ref lemon::Path "Path<Digraph>".
     typedef typename TR::Path Path;
 
-    /// The \ref lemon::KarpMmcDefaultTraits "traits class" of the algorithm
+    /// The \ref KarpMmcDefaultTraits "traits class" of the algorithm
     typedef TR Traits;
 
@@ -271,6 +271,6 @@
     ///
     /// If you don't call this function before calling \ref run() or
-    /// \ref findCycleMean(), a local \ref Path "path" structure
-    /// will be allocated. The destuctor deallocates this automatically
+    /// \ref findCycleMean(), it will allocate a local \ref Path "path"
+    /// structure. The destuctor deallocates this automatically
     /// allocated object, of course.
     ///
Index: lemon/kruskal.h
===================================================================
--- lemon/kruskal.h	(revision 1270)
+++ lemon/kruskal.h	(revision 1025)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2009
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: lemon/lgf_reader.h
===================================================================
--- lemon/lgf_reader.h	(revision 1270)
+++ lemon/lgf_reader.h	(revision 1198)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2011
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -1231,8 +1231,7 @@
   /// \ingroup lemon_io
   ///
-  /// \brief Return a \ref lemon::DigraphReader "DigraphReader" class
-  ///
-  /// This function just returns a \ref lemon::DigraphReader
-  /// "DigraphReader" class.
+  /// \brief Return a \ref DigraphReader class
+  ///
+  /// This function just returns a \ref DigraphReader class.
   ///
   /// With this function a digraph can be read from an
@@ -1254,8 +1253,7 @@
   ///\endcode
   ///
-  /// For a complete documentation, please see the
-  /// \ref lemon::DigraphReader "DigraphReader"
+  /// For a complete documentation, please see the \ref DigraphReader
   /// class documentation.
-  /// \warning Don't forget to put the \ref lemon::DigraphReader::run() "run()"
+  /// \warning Don't forget to put the \ref DigraphReader::run() "run()"
   /// to the end of the parameter list.
   /// \relates DigraphReader
@@ -2111,7 +2109,7 @@
   /// \ingroup lemon_io
   ///
-  /// \brief Return a \ref lemon::GraphReader "GraphReader" class
-  ///
-  /// This function just returns a \ref lemon::GraphReader "GraphReader" class.
+  /// \brief Return a \ref GraphReader class
+  ///
+  /// This function just returns a \ref GraphReader class.
   ///
   /// With this function a graph can be read from an
@@ -2129,8 +2127,7 @@
   ///\endcode
   ///
-  /// For a complete documentation, please see the
-  /// \ref lemon::GraphReader "GraphReader"
+  /// For a complete documentation, please see the \ref GraphReader
   /// class documentation.
-  /// \warning Don't forget to put the \ref lemon::GraphReader::run() "run()"
+  /// \warning Don't forget to put the \ref GraphReader::run() "run()"
   /// to the end of the parameter list.
   /// \relates GraphReader
@@ -2639,5 +2636,5 @@
         _red_node_index.insert(std::make_pair(converter(map[n]), n));
       }
-      for (BlueNodeIt n(_graph); n != INVALID; ++n) {
+      for (BlueNodeIt n(_graph); n != INVALID; ++n) {      
         _blue_node_index.insert(std::make_pair(converter(map[n]), n));
       }
@@ -3178,8 +3175,7 @@
   /// \ingroup lemon_io
   ///
-  /// \brief Return a \ref lemon::BpGraphReader "BpGraphReader" class
-  ///
-  /// This function just returns a \ref lemon::BpGraphReader
-  /// "BpGraphReader" class.
+  /// \brief Return a \ref BpGraphReader class
+  ///
+  /// This function just returns a \ref BpGraphReader class.
   ///
   /// With this function a graph can be read from an
@@ -3197,8 +3193,7 @@
   ///\endcode
   ///
-  /// For a complete documentation, please see the
-  /// \ref lemon::BpGraphReader "BpGraphReader"
+  /// For a complete documentation, please see the \ref BpGraphReader
   /// class documentation.
-  /// \warning Don't forget to put the \ref lemon::BpGraphReader::run() "run()"
+  /// \warning Don't forget to put the \ref BpGraphReader::run() "run()"
   /// to the end of the parameter list.
   /// \relates BpGraphReader
Index: lemon/lgf_writer.h
===================================================================
--- lemon/lgf_writer.h	(revision 1270)
+++ lemon/lgf_writer.h	(revision 1198)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -186,5 +186,5 @@
       ValueStorage(const Value& value, const Converter& converter = Converter())
         : _value(value), _converter(converter) {}
-
+      
       virtual std::string get() {
         return _converter(_value);
@@ -945,8 +945,7 @@
   /// \ingroup lemon_io
   ///
-  /// \brief Return a \ref lemon::DigraphWriter "DigraphWriter" class
-  ///
-  /// This function just returns a \ref lemon::DigraphWriter
-  /// "DigraphWriter" class.
+  /// \brief Return a \ref DigraphWriter class
+  ///
+  /// This function just returns a \ref DigraphWriter class.
   ///
   /// With this function a digraph can be write to a file or output
@@ -969,8 +968,7 @@
   ///\endcode
   ///
-  /// For a complete documentation, please see the
-  /// \ref lemon::DigraphWriter "DigraphWriter"
+  /// For a complete documentation, please see the \ref DigraphWriter
   /// class documentation.
-  /// \warning Don't forget to put the \ref lemon::DigraphWriter::run() "run()"
+  /// \warning Don't forget to put the \ref DigraphWriter::run() "run()"
   /// to the end of the parameter list.
   /// \relates DigraphWriter
@@ -1586,7 +1584,7 @@
   /// \ingroup lemon_io
   ///
-  /// \brief Return a \ref lemon::GraphWriter "GraphWriter" class
-  ///
-  /// This function just returns a \ref lemon::GraphWriter "GraphWriter" class.
+  /// \brief Return a \ref GraphWriter class
+  ///
+  /// This function just returns a \ref GraphWriter class.
   ///
   /// With this function a graph can be write to a file or output
@@ -1605,8 +1603,7 @@
   ///\endcode
   ///
-  /// For a complete documentation, please see the
-  /// \ref lemon::GraphWriter "GraphWriter"
+  /// For a complete documentation, please see the \ref GraphWriter
   /// class documentation.
-  /// \warning Don't forget to put the \ref lemon::GraphWriter::run() "run()"
+  /// \warning Don't forget to put the \ref GraphWriter::run() "run()"
   /// to the end of the parameter list.
   /// \relates GraphWriter
@@ -2405,8 +2402,7 @@
   /// \ingroup lemon_io
   ///
-  /// \brief Return a \ref lemon::BpGraphWriter "BpGraphWriter" class
-  ///
-  /// This function just returns a \ref lemon::BpGraphWriter
-  /// "BpGraphWriter" class.
+  /// \brief Return a \ref BpGraphWriter class
+  ///
+  /// This function just returns a \ref BpGraphWriter class.
   ///
   /// With this function a bipartite graph can be write to a file or output
@@ -2425,8 +2421,7 @@
   ///\endcode
   ///
-  /// For a complete documentation, please see the
-  /// \ref lemon::BpGraphWriter "BpGraphWriter"
+  /// For a complete documentation, please see the \ref BpGraphWriter
   /// class documentation.
-  /// \warning Don't forget to put the \ref lemon::BpGraphWriter::run() "run()"
+  /// \warning Don't forget to put the \ref BpGraphWriter::run() "run()"
   /// to the end of the parameter list.
   /// \relates BpGraphWriter
Index: lemon/list_graph.h
===================================================================
--- lemon/list_graph.h	(revision 1270)
+++ lemon/list_graph.h	(revision 1193)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -446,5 +446,5 @@
     ///or changeTarget(), thus \c ArcIt and \c OutArcIt iterators are
     ///invalidated for the outgoing arcs of node \c v and \c InArcIt
-    ///iterators are invalidated for the incoming arcs of \c v.
+    ///iterators are invalidated for the incomming arcs of \c v.
     ///Moreover all iterators referencing node \c v or the removed
     ///loops are also invalidated. Other iterators remain valid.
@@ -1766,5 +1766,5 @@
     void next(BlueNode& node) const {
       node.id = nodes[node.id].partition_next;
-    }
+    }    
 
     void first(Arc& e) const {
Index: lemon/lp.h
===================================================================
--- lemon/lp.h	(revision 1270)
+++ lemon/lp.h	(revision 956)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -60,5 +60,5 @@
   ///\ingroup lp_group
   ///
-  ///Currently, the possible values are \c GLPK, \c CPLEX or \c CBC
+  ///Currently, the possible values are \c GLPK or \c CPLEX
 #define LEMON_DEFAULT_MIP SOLVER
   ///The default MIP solver.
@@ -67,22 +67,23 @@
   ///\ingroup lp_group
   ///
-  ///Currently, it is either \c GlpkMip, \c CplexMip , \c CbcMip
+  ///Currently, it is either \c GlpkMip or \c CplexMip
   typedef GlpkMip Mip;
 #else
-#if LEMON_DEFAULT_LP == GLPK
+#ifdef LEMON_HAVE_GLPK
+# define LEMON_DEFAULT_LP GLPK
   typedef GlpkLp Lp;
-#elif LEMON_DEFAULT_LP == CPLEX
+# define LEMON_DEFAULT_MIP GLPK
+  typedef GlpkMip Mip;
+#elif LEMON_HAVE_CPLEX
+# define LEMON_DEFAULT_LP CPLEX
   typedef CplexLp Lp;
-#elif LEMON_DEFAULT_LP == SOPLEX
+# define LEMON_DEFAULT_MIP CPLEX
+  typedef CplexMip Mip;
+#elif LEMON_HAVE_SOPLEX
+# define DEFAULT_LP SOPLEX
   typedef SoplexLp Lp;
-#elif LEMON_DEFAULT_LP == CLP
+#elif LEMON_HAVE_CLP
+# define DEFAULT_LP CLP
   typedef ClpLp Lp;
-#endif
-#if LEMON_DEFAULT_MIP == GLPK
-  typedef GlpkLp Mip;
-#elif LEMON_DEFAULT_MIP == CPLEX
-  typedef CplexMip Mip;
-#elif LEMON_DEFAULT_MIP == CBC
-  typedef CbcMip Mip;
 #endif
 #endif
Index: lemon/lp_base.cc
===================================================================
--- lemon/lp_base.cc	(revision 1270)
+++ lemon/lp_base.cc	(revision 956)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: lemon/lp_base.h
===================================================================
--- lemon/lp_base.h	(revision 1270)
+++ lemon/lp_base.h	(revision 1143)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -1008,34 +1008,4 @@
   public:
 
-    ///Unsupported file format exception
-    class UnsupportedFormatError : public Exception
-    {
-      std::string _format;
-      mutable std::string _what;
-    public:
-      explicit UnsupportedFormatError(std::string format) throw()
-        : _format(format) { }
-      virtual ~UnsupportedFormatError() throw() {}
-      virtual const char* what() const throw() {
-        try {
-          _what.clear();
-          std::ostringstream oss;
-          oss << "lemon::UnsupportedFormatError: " << _format;
-          _what = oss.str();
-        }
-        catch (...) {}
-        if (!_what.empty()) return _what.c_str();
-        else return "lemon::UnsupportedFormatError";
-      }
-    };
-
-  protected:
-    virtual void _write(std::string, std::string format) const
-    {
-      throw UnsupportedFormatError(format);
-    }
-
-  public:
-
     /// Virtual destructor
     virtual ~LpBase() {}
@@ -1586,24 +1556,9 @@
     void min() { _setSense(MIN); }
 
-    ///Clear the problem
+    ///Clears the problem
     void clear() { _clear(); rows.clear(); cols.clear(); }
 
-    /// Set the message level of the solver
+    /// Sets the message level of the solver
     void messageLevel(MessageLevel level) { _messageLevel(level); }
-
-    /// Write the problem to a file in the given format
-
-    /// This function writes the problem to a file in the given format.
-    /// Different solver backends may support different formats.
-    /// Trying to write in an unsupported format will trigger
-    /// \ref UnsupportedFormatError. For the supported formats,
-    /// visit the documentation of the base class of the related backends
-    /// (\ref CplexBase, \ref GlpkBase etc.)
-    /// \param file The file path
-    /// \param format The output file format.
-    void write(std::string file, std::string format = "MPS") const
-    {
-      _write(file.c_str(),format.c_str());
-    }
 
     ///@}
Index: lemon/lp_skeleton.cc
===================================================================
--- lemon/lp_skeleton.cc	(revision 1270)
+++ lemon/lp_skeleton.cc	(revision 956)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -92,6 +92,4 @@
   void SkeletonSolverBase::_messageLevel(MessageLevel) {}
 
-  void SkeletonSolverBase::_write(std::string, std::string) const {}
-
   LpSkeleton::SolveExitStatus LpSkeleton::_solve() { return SOLVED; }
 
Index: lemon/lp_skeleton.h
===================================================================
--- lemon/lp_skeleton.h	(revision 1270)
+++ lemon/lp_skeleton.h	(revision 956)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -145,8 +145,4 @@
     ///\e
     virtual void _messageLevel(MessageLevel);
-
-    ///\e
-    virtual void _write(std::string file, std::string format) const;
-
   };
 
@@ -227,5 +223,4 @@
     ///\e
     virtual const char* _solverName() const;
-
   };
 
Index: lemon/maps.h
===================================================================
--- lemon/maps.h	(revision 1270)
+++ lemon/maps.h	(revision 1057)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: lemon/matching.h
===================================================================
--- lemon/matching.h	(revision 1270)
+++ lemon/matching.h	(revision 956)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: lemon/math.h
===================================================================
--- lemon/math.h	(revision 1270)
+++ lemon/math.h	(revision 956)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -66,12 +66,7 @@
     }
 
-  ///Round a value to its closest integer
-  inline double round(double r) {
-    return (r > 0.0) ? floor(r + 0.5) : ceil(r - 0.5);
-  }
-
   /// @}
 
 } //namespace lemon
 
-#endif //LEMON_MATH_H
+#endif //LEMON_TOLERANCE_H
Index: lemon/max_cardinality_search.h
===================================================================
--- lemon/max_cardinality_search.h	(revision 1271)
+++ lemon/max_cardinality_search.h	(revision 1129)
@@ -1,7 +1,7 @@
-/* -*- mode: C++; indent-tabs-mode: nil; -*-
+/* -*- C++ -*-
  *
- * This file is a part of LEMON, a generic C++ optimization library.
+ * This file is a part of LEMON, a generic C++ optimization library
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -22,5 +22,5 @@
 
 /// \ingroup search
-/// \file
+/// \file 
 /// \brief Maximum cardinality search in undirected digraphs.
 
@@ -42,5 +42,5 @@
   template <typename GR, typename CAP>
   struct MaxCardinalitySearchDefaultTraits {
-    /// The digraph type the algorithm runs on.
+    /// The digraph type the algorithm runs on. 
     typedef GR Digraph;
 
@@ -51,5 +51,5 @@
 
       static CapacityMap *createCapacityMap(const Digraph& g) {
-        return new CapacityMap(g);
+	return new CapacityMap(g);
       }
     };
@@ -61,5 +61,5 @@
 
       static CapacityMap *createCapacityMap(const Digraph&) {
-        return new CapacityMap;
+	return new CapacityMap;
       }
     };
@@ -91,15 +91,15 @@
     /// \brief Instantiates a HeapCrossRef.
     ///
-    /// This function instantiates a \ref HeapCrossRef.
-    /// \param digraph is the digraph, to which we would like to define the
+    /// This function instantiates a \ref HeapCrossRef. 
+    /// \param digraph is the digraph, to which we would like to define the 
     /// HeapCrossRef.
     static HeapCrossRef *createHeapCrossRef(const Digraph &digraph) {
       return new HeapCrossRef(digraph);
     }
-
+    
     template <typename CapacityMap>
     struct HeapSelector {
       template <typename Value, typename Ref>
-      struct Selector {
+      struct Selector { 
         typedef BinHeap<Value, Ref, std::greater<Value> > Heap;
       };
@@ -129,5 +129,5 @@
     /// \brief Instantiates a Heap.
     ///
-    /// This function instantiates a \ref Heap.
+    /// This function instantiates a \ref Heap. 
     /// \param crossref The cross reference of the heap.
     static Heap *createHeap(HeapCrossRef& crossref) {
@@ -144,5 +144,5 @@
     /// \brief Instantiates a ProcessedMap.
     ///
-    /// This function instantiates a \ref ProcessedMap.
+    /// This function instantiates a \ref ProcessedMap. 
     /// \param digraph is the digraph, to which
     /// we would like to define the \ref ProcessedMap
@@ -157,5 +157,5 @@
 
     /// \brief The type of the map that stores the cardinalities of the nodes.
-    ///
+    /// 
     /// The type of the map that stores the cardinalities of the nodes.
     /// It must meet the \ref concepts::WriteMap "WriteMap" concept.
@@ -164,7 +164,7 @@
     /// \brief Instantiates a CardinalityMap.
     ///
-    /// This function instantiates a \ref CardinalityMap.
-    /// \param digraph is the digraph, to which we would like to
-    /// define the \ref CardinalityMap
+    /// This function instantiates a \ref CardinalityMap. 
+    /// \param digraph is the digraph, to which we would like to define the \ref 
+    /// CardinalityMap
     static CardinalityMap *createCardinalityMap(const Digraph &digraph) {
       return new CardinalityMap(digraph);
@@ -173,14 +173,13 @@
 
   };
-
+  
   /// \ingroup search
   ///
   /// \brief Maximum Cardinality Search algorithm class.
   ///
-  /// This class provides an efficient implementation of Maximum Cardinality
-  /// Search algorithm. The maximum cardinality search first chooses any
+  /// This class provides an efficient implementation of Maximum Cardinality 
+  /// Search algorithm. The maximum cardinality search first chooses any 
   /// node of the digraph. Then every time it chooses one unprocessed node
-  /// with maximum cardinality, i.e the sum of capacities on out arcs
-  /// to the nodes
+  /// with maximum cardinality, i.e the sum of capacities on out arcs to the nodes
   /// which were previusly processed.
   /// If there is a cut in the digraph the algorithm should choose
@@ -188,8 +187,8 @@
 
   /// The arc capacities are passed to the algorithm using a
-  /// \ref concepts::ReadMap "ReadMap", so it is easy to change it to any
+  /// \ref concepts::ReadMap "ReadMap", so it is easy to change it to any 
   /// kind of capacity.
   ///
-  /// The type of the capacity is determined by the \ref
+  /// The type of the capacity is determined by the \ref 
   /// concepts::ReadMap::Value "Value" of the capacity map.
   ///
@@ -198,18 +197,18 @@
   ///
   /// \param GR The digraph type the algorithm runs on. The value of
-  /// Digraph is not used directly by the search algorithm, it
+  /// Digraph is not used directly by the search algorithm, it 
   /// is only passed to \ref MaxCardinalitySearchDefaultTraits.
-  /// \param CAP This read-only ArcMap determines the capacities of
+  /// \param CAP This read-only ArcMap determines the capacities of 
   /// the arcs. It is read once for each arc, so the map may involve in
   /// relatively time consuming process to compute the arc capacity if
   /// it is necessary. The default map type is \ref
   /// ConstMap "ConstMap<concepts::Digraph::Arc, Const<int,1> >". The value
-  /// of CapacityMap is not used directly by search algorithm, it is only
-  /// passed to \ref MaxCardinalitySearchDefaultTraits.
-  /// \param TR Traits class to set various data types used by the
-  /// algorithm.  The default traits class is
-  /// \ref MaxCardinalitySearchDefaultTraits
-  /// "MaxCardinalitySearchDefaultTraits<GR, CAP>".
-  /// See \ref MaxCardinalitySearchDefaultTraits
+  /// of CapacityMap is not used directly by search algorithm, it is only 
+  /// passed to \ref MaxCardinalitySearchDefaultTraits.  
+  /// \param TR Traits class to set various data types used by the 
+  /// algorithm.  The default traits class is 
+  /// \ref MaxCardinalitySearchDefaultTraits 
+  /// "MaxCardinalitySearchDefaultTraits<GR, CAP>".  
+  /// See \ref MaxCardinalitySearchDefaultTraits 
   /// for the documentation of a MaxCardinalitySearch traits class.
 
@@ -217,7 +216,7 @@
   template <typename GR, typename CAP, typename TR>
 #else
-  template <typename GR, typename CAP =
-            ConstMap<typename GR::Arc, Const<int,1> >,
-            typename TR =
+  template <typename GR, typename CAP = 
+	    ConstMap<typename GR::Arc, Const<int,1> >,
+	    typename TR = 
             MaxCardinalitySearchDefaultTraits<GR, CAP> >
 #endif
@@ -228,5 +227,5 @@
     ///The type of the underlying digraph.
     typedef typename Traits::Digraph Digraph;
-
+    
     ///The type of the capacity of the arcs.
     typedef typename Traits::CapacityMap::Value Value;
@@ -268,5 +267,5 @@
 
     typedef MaxCardinalitySearch Create;
-
+ 
     ///\name Named template parameters
 
@@ -277,9 +276,9 @@
       typedef T CapacityMap;
       static CapacityMap *createCapacityMap(const Digraph &) {
-               LEMON_ASSERT(false,"Uninitialized parameter.");
-        return 0;
-      }
-    };
-    /// \brief \ref named-templ-param "Named parameter" for setting
+       	LEMON_ASSERT(false,"Uninitialized parameter.");
+	return 0;
+      }
+    };
+    /// \brief \ref named-templ-param "Named parameter" for setting 
     /// CapacityMap type
     ///
@@ -287,8 +286,8 @@
     /// for the algorithm.
     template <class T>
-    struct SetCapacityMap
-      : public MaxCardinalitySearch<Digraph, CapacityMap,
-                                    DefCapacityMapTraits<T> > {
-      typedef MaxCardinalitySearch<Digraph, CapacityMap,
+    struct SetCapacityMap 
+      : public MaxCardinalitySearch<Digraph, CapacityMap, 
+                                    DefCapacityMapTraits<T> > { 
+      typedef MaxCardinalitySearch<Digraph, CapacityMap, 
                                    DefCapacityMapTraits<T> > Create;
     };
@@ -297,32 +296,32 @@
     struct DefCardinalityMapTraits : public Traits {
       typedef T CardinalityMap;
-      static CardinalityMap *createCardinalityMap(const Digraph &)
+      static CardinalityMap *createCardinalityMap(const Digraph &) 
       {
-        LEMON_ASSERT(false,"Uninitialized parameter.");
-        return 0;
-      }
-    };
-    /// \brief \ref named-templ-param "Named parameter" for setting
+	LEMON_ASSERT(false,"Uninitialized parameter.");
+	return 0;
+      }
+    };
+    /// \brief \ref named-templ-param "Named parameter" for setting 
     /// CardinalityMap type
     ///
-    /// \ref named-templ-param "Named parameter" for setting CardinalityMap
+    /// \ref named-templ-param "Named parameter" for setting CardinalityMap 
     /// type for the algorithm.
     template <class T>
-    struct SetCardinalityMap
-      : public MaxCardinalitySearch<Digraph, CapacityMap,
-                                    DefCardinalityMapTraits<T> > {
-      typedef MaxCardinalitySearch<Digraph, CapacityMap,
+    struct SetCardinalityMap 
+      : public MaxCardinalitySearch<Digraph, CapacityMap, 
+                                    DefCardinalityMapTraits<T> > { 
+      typedef MaxCardinalitySearch<Digraph, CapacityMap, 
                                    DefCardinalityMapTraits<T> > Create;
     };
-
+    
     template <class T>
     struct DefProcessedMapTraits : public Traits {
       typedef T ProcessedMap;
       static ProcessedMap *createProcessedMap(const Digraph &) {
-               LEMON_ASSERT(false,"Uninitialized parameter.");
-        return 0;
-      }
-    };
-    /// \brief \ref named-templ-param "Named parameter" for setting
+       	LEMON_ASSERT(false,"Uninitialized parameter.");
+	return 0;
+      }
+    };
+    /// \brief \ref named-templ-param "Named parameter" for setting 
     /// ProcessedMap type
     ///
@@ -330,11 +329,11 @@
     /// for the algorithm.
     template <class T>
-    struct SetProcessedMap
-      : public MaxCardinalitySearch<Digraph, CapacityMap,
-                                    DefProcessedMapTraits<T> > {
-      typedef MaxCardinalitySearch<Digraph, CapacityMap,
+    struct SetProcessedMap 
+      : public MaxCardinalitySearch<Digraph, CapacityMap, 
+                                    DefProcessedMapTraits<T> > { 
+      typedef MaxCardinalitySearch<Digraph, CapacityMap, 
                                    DefProcessedMapTraits<T> > Create;
     };
-
+    
     template <class H, class CR>
     struct DefHeapTraits : public Traits {
@@ -342,22 +341,22 @@
       typedef H Heap;
       static HeapCrossRef *createHeapCrossRef(const Digraph &) {
-             LEMON_ASSERT(false,"Uninitialized parameter.");
-        return 0;
+     	LEMON_ASSERT(false,"Uninitialized parameter.");
+	return 0;
       }
       static Heap *createHeap(HeapCrossRef &) {
-               LEMON_ASSERT(false,"Uninitialized parameter.");
-        return 0;
-      }
-    };
-    /// \brief \ref named-templ-param "Named parameter" for setting heap
+       	LEMON_ASSERT(false,"Uninitialized parameter.");
+	return 0;
+      }
+    };
+    /// \brief \ref named-templ-param "Named parameter" for setting heap 
     /// and cross reference type
     ///
-    /// \ref named-templ-param "Named parameter" for setting heap and cross
+    /// \ref named-templ-param "Named parameter" for setting heap and cross 
     /// reference type for the algorithm.
     template <class H, class CR = typename Digraph::template NodeMap<int> >
     struct SetHeap
-      : public MaxCardinalitySearch<Digraph, CapacityMap,
-                                    DefHeapTraits<H, CR> > {
-      typedef MaxCardinalitySearch< Digraph, CapacityMap,
+      : public MaxCardinalitySearch<Digraph, CapacityMap, 
+                                    DefHeapTraits<H, CR> > { 
+      typedef MaxCardinalitySearch< Digraph, CapacityMap, 
                                     DefHeapTraits<H, CR> > Create;
     };
@@ -368,27 +367,27 @@
       typedef H Heap;
       static HeapCrossRef *createHeapCrossRef(const Digraph &digraph) {
-        return new HeapCrossRef(digraph);
+	return new HeapCrossRef(digraph);
       }
       static Heap *createHeap(HeapCrossRef &crossref) {
-        return new Heap(crossref);
-      }
-    };
-
-    /// \brief \ref named-templ-param "Named parameter" for setting heap and
+	return new Heap(crossref);
+      }
+    };
+
+    /// \brief \ref named-templ-param "Named parameter" for setting heap and 
     /// cross reference type with automatic allocation
     ///
-    /// \ref named-templ-param "Named parameter" for setting heap and cross
-    /// reference type. It can allocate the heap and the cross reference
-    /// object if the cross reference's constructor waits for the digraph as
+    /// \ref named-templ-param "Named parameter" for setting heap and cross 
+    /// reference type. It can allocate the heap and the cross reference 
+    /// object if the cross reference's constructor waits for the digraph as 
     /// parameter and the heap's constructor waits for the cross reference.
     template <class H, class CR = typename Digraph::template NodeMap<int> >
     struct SetStandardHeap
-      : public MaxCardinalitySearch<Digraph, CapacityMap,
-                                    DefStandardHeapTraits<H, CR> > {
-      typedef MaxCardinalitySearch<Digraph, CapacityMap,
-                                   DefStandardHeapTraits<H, CR> >
+      : public MaxCardinalitySearch<Digraph, CapacityMap, 
+                                    DefStandardHeapTraits<H, CR> > { 
+      typedef MaxCardinalitySearch<Digraph, CapacityMap, 
+                                   DefStandardHeapTraits<H, CR> > 
       Create;
     };
-
+    
     ///@}
 
@@ -398,6 +397,6 @@
     MaxCardinalitySearch() {}
 
-  public:
-
+  public:      
+    
     /// \brief Constructor.
     ///
@@ -405,5 +404,5 @@
     ///\param capacity the capacity map used by the algorithm.
     MaxCardinalitySearch(const Digraph& digraph,
-                         const CapacityMap& capacity) :
+			 const CapacityMap& capacity) :
       _graph(&digraph),
       _capacity(&capacity), local_capacity(false),
@@ -443,6 +442,6 @@
     MaxCardinalitySearch &capacityMap(const CapacityMap &m) {
       if (local_capacity) {
-        delete _capacity;
-        local_capacity=false;
+	delete _capacity;
+	local_capacity=false;
       }
       _capacity=&m;
@@ -458,5 +457,5 @@
     }
 
-    /// \brief Sets the map storing the cardinalities calculated by the
+    /// \brief Sets the map storing the cardinalities calculated by the 
     /// algorithm.
     ///
@@ -468,6 +467,6 @@
     MaxCardinalitySearch &cardinalityMap(CardinalityMap &m) {
       if(local_cardinality) {
-        delete _cardinality;
-        local_cardinality=false;
+	delete _cardinality;
+	local_cardinality=false;
       }
       _cardinality = &m;
@@ -482,9 +481,9 @@
     /// automatically allocated map, of course.
     /// \return <tt> (*this) </tt>
-    MaxCardinalitySearch &processedMap(ProcessedMap &m)
+    MaxCardinalitySearch &processedMap(ProcessedMap &m) 
     {
       if(local_processed) {
-        delete _processed;
-        local_processed=false;
+	delete _processed;
+	local_processed=false;
       }
       _processed = &m;
@@ -509,11 +508,11 @@
     MaxCardinalitySearch &heap(Heap& hp, HeapCrossRef &cr) {
       if(local_heap_cross_ref) {
-        delete _heap_cross_ref;
-        local_heap_cross_ref = false;
+	delete _heap_cross_ref;
+	local_heap_cross_ref = false;
       }
       _heap_cross_ref = &cr;
       if(local_heap) {
-        delete _heap;
-        local_heap = false;
+	delete _heap;
+	local_heap = false;
       }
       _heap = &hp;
@@ -546,25 +545,25 @@
     void create_maps() {
       if(!_capacity) {
-        local_capacity = true;
-        _capacity = Traits::createCapacityMap(*_graph);
+	local_capacity = true;
+	_capacity = Traits::createCapacityMap(*_graph);
       }
       if(!_cardinality) {
-        local_cardinality = true;
-        _cardinality = Traits::createCardinalityMap(*_graph);
+	local_cardinality = true;
+	_cardinality = Traits::createCardinalityMap(*_graph);
       }
       if(!_processed) {
-        local_processed = true;
-        _processed = Traits::createProcessedMap(*_graph);
+	local_processed = true;
+	_processed = Traits::createProcessedMap(*_graph);
       }
       if (!_heap_cross_ref) {
-        local_heap_cross_ref = true;
-        _heap_cross_ref = Traits::createHeapCrossRef(*_graph);
+	local_heap_cross_ref = true;
+	_heap_cross_ref = Traits::createHeapCrossRef(*_graph);
       }
       if (!_heap) {
-        local_heap = true;
-        _heap = Traits::createHeap(*_heap_cross_ref);
-      }
-    }
-
+	local_heap = true;
+	_heap = Traits::createHeap(*_heap_cross_ref);
+      }
+    }
+    
     void finalizeNodeData(Node node, Value capacity) {
       _processed->set(node, true);
@@ -591,11 +590,11 @@
       _heap->clear();
       for (NodeIt it(*_graph) ; it != INVALID ; ++it) {
-        _processed->set(it, false);
-        _heap_cross_ref->set(it, Heap::PRE_HEAP);
-      }
-    }
-
+	_processed->set(it, false);
+	_heap_cross_ref->set(it, Heap::PRE_HEAP);
+      }
+    }
+    
     /// \brief Adds a new source node.
-    ///
+    /// 
     /// Adds a new source node to the priority heap.
     ///
@@ -603,8 +602,8 @@
     void addSource(Node source, Value capacity = 0) {
       if(_heap->state(source) == Heap::PRE_HEAP) {
-        _heap->push(source, capacity);
-      }
-    }
-
+	_heap->push(source, capacity);
+      } 
+    }
+    
     /// \brief Processes the next node in the priority heap
     ///
@@ -615,20 +614,20 @@
     /// \warning The priority heap must not be empty!
     Node processNextNode() {
-      Node node = _heap->top();
+      Node node = _heap->top(); 
       finalizeNodeData(node, _heap->prio());
       _heap->pop();
-
+      
       for (InArcIt it(*_graph, node); it != INVALID; ++it) {
-        Node source = _graph->source(it);
-        switch (_heap->state(source)) {
-        case Heap::PRE_HEAP:
-          _heap->push(source, (*_capacity)[it]);
-          break;
-        case Heap::IN_HEAP:
-          _heap->decrease(source, (*_heap)[source] + (*_capacity)[it]);
-          break;
-        case Heap::POST_HEAP:
-          break;
-        }
+	Node source = _graph->source(it);
+	switch (_heap->state(source)) {
+	case Heap::PRE_HEAP:
+	  _heap->push(source, (*_capacity)[it]);
+	  break;
+	case Heap::IN_HEAP:
+	  _heap->decrease(source, (*_heap)[source] + (*_capacity)[it]);
+	  break;
+	case Heap::POST_HEAP:
+	  break;
+	}
       }
       return node;
@@ -639,10 +638,10 @@
     /// Next node to be processed.
     ///
-    /// \return The next node to be processed or INVALID if the
+    /// \return The next node to be processed or INVALID if the 
     /// priority heap is empty.
-    Node nextNode() {
+    Node nextNode() { 
       return !_heap->empty() ? _heap->top() : INVALID;
     }
-
+ 
     /// \brief Returns \c false if there are nodes
     /// to be processed in the priority heap
@@ -651,10 +650,10 @@
     /// to be processed in the priority heap
     bool emptyQueue() { return _heap->empty(); }
-    /// \brief Returns the number of the nodes to be processed
+    /// \brief Returns the number of the nodes to be processed 
     /// in the priority heap
     ///
     /// Returns the number of the nodes to be processed in the priority heap
     int emptySize() { return _heap->size(); }
-
+    
     /// \brief Executes the algorithm.
     ///
@@ -664,10 +663,10 @@
     /// with addSource() before using this function.
     ///
-    /// This method runs the Maximum Cardinality Search algorithm from the
+    /// This method runs the Maximum Cardinality Search algorithm from the 
     /// source node(s).
     void start() {
       while ( !_heap->empty() ) processNextNode();
     }
-
+    
     /// \brief Executes the algorithm until \c dest is reached.
     ///
@@ -677,5 +676,5 @@
     /// with addSource() before using this function.
     ///
-    /// This method runs the %MaxCardinalitySearch algorithm from the source
+    /// This method runs the %MaxCardinalitySearch algorithm from the source 
     /// nodes.
     void start(Node dest) {
@@ -683,5 +682,5 @@
       if ( !_heap->empty() ) finalizeNodeData(_heap->top(), _heap->prio());
     }
-
+    
     /// \brief Executes the algorithm until a condition is met.
     ///
@@ -698,8 +697,8 @@
       if ( !_heap->empty() ) finalizeNodeData(_heap->top(),_heap->prio());
     }
-
+    
     /// \brief Runs the maximum cardinality search algorithm from node \c s.
     ///
-    /// This method runs the %MaxCardinalitySearch algorithm from a root
+    /// This method runs the %MaxCardinalitySearch algorithm from a root 
     /// node \c s.
     ///
@@ -716,8 +715,8 @@
     }
 
-    /// \brief Runs the maximum cardinality search algorithm for the
+    /// \brief Runs the maximum cardinality search algorithm for the 
     /// whole digraph.
     ///
-    /// This method runs the %MaxCardinalitySearch algorithm from all
+    /// This method runs the %MaxCardinalitySearch algorithm from all 
     /// unprocessed node of the digraph.
     ///
@@ -741,14 +740,14 @@
       }
     }
-
+    
     ///@}
 
     /// \name Query Functions
-    /// The results of the maximum cardinality search algorithm can be
+    /// The results of the maximum cardinality search algorithm can be 
     /// obtained using these functions.
     /// \n
-    /// Before the use of these functions, either run() or start() must be
+    /// Before the use of these functions, either run() or start() must be 
     /// called.
-
+    
     ///@{
 
@@ -769,8 +768,8 @@
     /// \brief Returns a reference to the NodeMap of cardinalities.
     ///
-    /// Returns a reference to the NodeMap of cardinalities. \pre \ref run()
+    /// Returns a reference to the NodeMap of cardinalities. \pre \ref run() 
     /// must be called before using this function.
     const CardinalityMap &cardinalityMap() const { return *_cardinality;}
-
+ 
     /// \brief Checks if a node is reachable from the root.
     ///
@@ -786,5 +785,5 @@
     /// \pre \ref run() must be called before using this function.
     bool processed(Node v) { return (*_heap_cross_ref)[v] == Heap::POST_HEAP; }
-
+    
     ///@}
   };
Index: lemon/min_cost_arborescence.h
===================================================================
--- lemon/min_cost_arborescence.h	(revision 1270)
+++ lemon/min_cost_arborescence.h	(revision 956)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -102,5 +102,5 @@
   /// the minimum cost subgraph that is the union of arborescences with the
   /// given sources and spans all the nodes which are reachable from the
-  /// sources. The time complexity of the algorithm is O(n<sup>2</sup>+m).
+  /// sources. The time complexity of the algorithm is O(n<sup>2</sup>+e).
   ///
   /// The algorithm also provides an optimal dual solution, therefore
@@ -129,5 +129,5 @@
   public:
 
-    /// \brief The \ref lemon::MinCostArborescenceDefaultTraits "traits class"
+    /// \brief The \ref MinCostArborescenceDefaultTraits "traits class"
     /// of the algorithm.
     typedef TR Traits;
Index: lemon/nagamochi_ibaraki.h
===================================================================
--- lemon/nagamochi_ibaraki.h	(revision 1270)
+++ lemon/nagamochi_ibaraki.h	(revision 1130)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -304,6 +304,6 @@
     //This is here to avoid a gcc-3.3 compilation error.
     //It should never be called.
-    NagamochiIbaraki() {}
-
+    NagamochiIbaraki() {} 
+    
   public:
 
@@ -415,10 +415,10 @@
         for (typename Graph::OutArcIt a(_graph, n); a != INVALID; ++a) {
           typename Graph::Node m = _graph.target(a);
-
+          
           if (!(n < m)) continue;
 
           (*_nodes)[n].sum += (*_capacity)[a];
           (*_nodes)[m].sum += (*_capacity)[a];
-
+          
           int c = (*_nodes)[m].curr_arc;
           if (c != -1 && _arcs[c ^ 1].target == n) {
@@ -426,5 +426,5 @@
           } else {
             _edges[index].capacity = (*_capacity)[a];
-
+            
             _arcs[index << 1].prev = -1;
             if ((*_nodes)[n].first_arc != -1) {
@@ -436,5 +436,5 @@
 
             (*_nodes)[m].curr_arc = (index << 1);
-
+            
             _arcs[(index << 1) | 1].prev = -1;
             if ((*_nodes)[m].first_arc != -1) {
@@ -444,5 +444,5 @@
             (*_nodes)[m].first_arc = ((index << 1) | 1);
             _arcs[(index << 1) | 1].target = n;
-
+            
             ++index;
           }
@@ -453,5 +453,5 @@
       _min_cut = std::numeric_limits<Value>::max();
 
-      for (typename Graph::Node n = _first_node;
+      for (typename Graph::Node n = _first_node; 
            n != INVALID; n = (*_nodes)[n].next) {
         if ((*_nodes)[n].sum < _min_cut) {
@@ -478,5 +478,5 @@
 
       _heap->clear();
-      for (typename Graph::Node n = _first_node;
+      for (typename Graph::Node n = _first_node; 
            n != INVALID; n = (*_nodes)[n].next) {
         (*_heap_cross_ref)[n] = Heap::PRE_HEAP;
@@ -498,5 +498,5 @@
         for (int a = (*_nodes)[n].first_arc; a != -1; a = _arcs[a].next) {
           switch (_heap->state(_arcs[a].target)) {
-          case Heap::PRE_HEAP:
+          case Heap::PRE_HEAP: 
             {
               Value nv = _edges[a >> 1].capacity;
@@ -564,5 +564,5 @@
             if (!merged) {
               for (int b = (*_nodes)[n].first_arc; b != -1; b = _arcs[b].next) {
-                (*_nodes)[_arcs[b].target].curr_arc = b;
+                (*_nodes)[_arcs[b].target].curr_arc = b;          
               }
               merged = true;
@@ -574,5 +574,5 @@
               if ((b ^ a) == 1) continue;
               typename Graph::Node o = _arcs[b].target;
-              int c = (*_nodes)[o].curr_arc;
+              int c = (*_nodes)[o].curr_arc; 
               if (c != -1 && _arcs[c ^ 1].target == n) {
                 _edges[c >> 1].capacity += _edges[b >> 1].capacity;
@@ -607,5 +607,5 @@
             } else {
               (*_nodes)[n].first_arc = _arcs[a].next;
-            }
+            }            
             if (_arcs[a].next != -1) {
               _arcs[_arcs[a].next].prev = _arcs[a].prev;
@@ -615,5 +615,5 @@
             (*_next_rep)[(*_nodes)[n].last_rep] = m;
             (*_nodes)[n].last_rep = (*_nodes)[m].last_rep;
-
+            
             if ((*_nodes)[m].prev != INVALID) {
               (*_nodes)[(*_nodes)[m].prev].next = (*_nodes)[m].next;
Index: lemon/nearest_neighbor_tsp.h
===================================================================
--- lemon/nearest_neighbor_tsp.h	(revision 1294)
+++ lemon/nearest_neighbor_tsp.h	(revision 1205)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -116,5 +116,5 @@
             for (IncEdgeIt e(_gr, n1); e != INVALID; ++e) {
               if (!used[_gr.runningNode(e)] &&
-                  (min_edge1 == INVALID || _cost[e] < _cost[min_edge1])) {
+                  (_cost[e] < _cost[min_edge1] || min_edge1 == INVALID)) {
                 min_edge1 = e;
               }
@@ -125,5 +125,5 @@
             for (IncEdgeIt e(_gr, n2); e != INVALID; ++e) {
               if (!used[_gr.runningNode(e)] &&
-                  (min_edge2 == INVALID||_cost[e] < _cost[min_edge2])) {
+                  (_cost[e] < _cost[min_edge2] || min_edge2 == INVALID)) {
                 min_edge2 = e;
               }
@@ -216,5 +216,5 @@
       ///
       /// This function copies the found tour as a list of arcs/edges into
-      /// the given \ref lemon::concepts::Path "path structure".
+      /// the given \ref concept::Path "path structure".
       ///
       /// \pre run() must be called before using this function.
Index: lemon/network_simplex.h
===================================================================
--- lemon/network_simplex.h	(revision 1270)
+++ lemon/network_simplex.h	(revision 1296)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -42,6 +42,6 @@
   /// \ref NetworkSimplex implements the primal Network Simplex algorithm
   /// for finding a \ref min_cost_flow "minimum cost flow"
-  /// \cite amo93networkflows, \cite dantzig63linearprog,
-  /// \cite kellyoneill91netsimplex.
+  /// \ref amo93networkflows, \ref dantzig63linearprog,
+  /// \ref kellyoneill91netsimplex.
   /// This algorithm is a highly efficient specialized version of the
   /// linear programming simplex method directly for the minimum cost
@@ -974,5 +974,5 @@
     ///
     /// This function returns the total cost of the found flow.
-    /// Its complexity is O(m).
+    /// Its complexity is O(e).
     ///
     /// \note The return type of the function can be specified as a
@@ -1235,6 +1235,6 @@
       return true;
     }
-
-    // Check if the upper bound is greater or equal to the lower bound
+    
+    // Check if the upper bound is greater than or equal to the lower bound
     // on each arc.
     bool checkBoundMaps() {
@@ -1517,5 +1517,5 @@
           }
         } else {
-          // Find the min. cost incoming arc for each demand node
+          // Find the min. cost incomming arc for each demand node
           for (int i = 0; i != int(demand_nodes.size()); ++i) {
             Node v = demand_nodes[i];
Index: lemon/opt2_tsp.h
===================================================================
--- lemon/opt2_tsp.h	(revision 1270)
+++ lemon/opt2_tsp.h	(revision 1205)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -253,5 +253,5 @@
       ///
       /// This function copies the found tour as a list of arcs/edges into
-      /// the given \ref lemon::concepts::Path "path structure".
+      /// the given \ref concept::Path "path structure".
       ///
       /// \pre run() must be called before using this function.
Index: lemon/path.h
===================================================================
--- lemon/path.h	(revision 1270)
+++ lemon/path.h	(revision 1162)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -318,5 +318,5 @@
       /// Constructor with starting point
       ArcIt(const SimplePath &_path, int _idx)
-        : path(&_path), idx(_idx) {}
+        : idx(_idx), path(&_path) {}
 
     public:
Index: lemon/planarity.h
===================================================================
--- lemon/planarity.h	(revision 1270)
+++ lemon/planarity.h	(revision 1160)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: lemon/preflow.h
===================================================================
--- lemon/preflow.h	(revision 1270)
+++ lemon/preflow.h	(revision 1111)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -103,10 +103,10 @@
   /// This class provides an implementation of Goldberg-Tarjan's \e preflow
   /// \e push-relabel algorithm producing a \ref max_flow
-  /// "flow of maximum value" in a digraph \cite clrs01algorithms,
-  /// \cite amo93networkflows, \cite goldberg88newapproach.
+  /// "flow of maximum value" in a digraph \ref clrs01algorithms,
+  /// \ref amo93networkflows, \ref goldberg88newapproach.
   /// The preflow algorithms are the fastest known maximum
   /// flow algorithms. The current implementation uses a mixture of the
   /// \e "highest label" and the \e "bound decrease" heuristics.
-  /// The worst case time complexity of the algorithm is \f$O(n^2\sqrt{m})\f$.
+  /// The worst case time complexity of the algorithm is \f$O(n^2\sqrt{e})\f$.
   ///
   /// The algorithm consists of two phases. After the first phase
@@ -135,5 +135,5 @@
   public:
 
-    ///The \ref lemon::PreflowDefaultTraits "traits class" of the algorithm.
+    ///The \ref PreflowDefaultTraits "traits class" of the algorithm.
     typedef TR Traits;
     ///The type of the digraph the algorithm runs on.
@@ -555,8 +555,8 @@
         }
       }
-      for (NodeIt n(_graph); n != INVALID; ++n)
+      for (NodeIt n(_graph); n != INVALID; ++n) 
         if(n!=_source && n!=_target && _tolerance.positive((*_excess)[n]))
           _level->activate(n);
-
+          
       return true;
     }
@@ -586,5 +586,5 @@
           level = _level->highestActiveLevel();
           --num;
-
+          
           Value excess = (*_excess)[n];
           int new_level = _level->maxLevel();
Index: lemon/radix_sort.h
===================================================================
--- lemon/radix_sort.h	(revision 1270)
+++ lemon/radix_sort.h	(revision 1210)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2009
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: lemon/smart_graph.h
===================================================================
--- lemon/smart_graph.h	(revision 1270)
+++ lemon/smart_graph.h	(revision 1193)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -1264,5 +1264,5 @@
             max_red = -1;
           }
-          Parent::notifier(RedNode()).erase(asRedNodeUnsafe(node));
+          Parent::notifier(RedNode()).erase(asRedNodeUnsafe(node));          
         } else {
           first_blue = nodes[n].partition_next;
Index: lemon/soplex.cc
===================================================================
--- lemon/soplex.cc	(revision 1270)
+++ lemon/soplex.cc	(revision 956)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: lemon/soplex.h
===================================================================
--- lemon/soplex.h	(revision 1270)
+++ lemon/soplex.h	(revision 956)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: lemon/suurballe.h
===================================================================
--- lemon/suurballe.h	(revision 1270)
+++ lemon/suurballe.h	(revision 956)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -138,5 +138,5 @@
     typedef typename TR::Heap Heap;
 
-    /// The \ref lemon::SuurballeDefaultTraits "traits class" of the algorithm.
+    /// The \ref SuurballeDefaultTraits "traits class" of the algorithm.
     typedef TR Traits;
 
@@ -683,5 +683,5 @@
     /// This function returns the total length of the found paths, i.e.
     /// the total cost of the found flow.
-    /// The complexity of the function is O(m).
+    /// The complexity of the function is O(e).
     ///
     /// \pre \ref run() or \ref findFlow() must be called before using
Index: lemon/time_measure.h
===================================================================
--- lemon/time_measure.h	(revision 1270)
+++ lemon/time_measure.h	(revision 833)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2009
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -35,5 +35,4 @@
 #include <fstream>
 #include <iostream>
-#include <lemon/math.h>
 
 namespace lemon {
@@ -65,19 +64,4 @@
     double rtime;
 
-  public:
-    ///Display format specifier
-
-    ///\e
-    ///
-    enum Format {
-      /// Reports all measured values
-      NORMAL = 0,
-      /// Only real time and an error indicator is displayed
-      SHORT = 1
-    };
-
-  private:
-    static Format _format;
-
     void _reset() {
       utime = stime = cutime = cstime = rtime = 0;
@@ -85,18 +69,4 @@
 
   public:
-
-    ///Set output format
-
-    ///Set output format.
-    ///
-    ///The output format is global for all timestamp instances.
-    static void format(Format f) { _format = f; }
-    ///Retrieve the current output format
-
-    ///Retrieve the current output format
-    ///
-    ///The output format is global for all timestamp instances.
-    static Format format() { return _format; }
-
 
     ///Read the current time values of the process
@@ -255,22 +225,9 @@
   inline std::ostream& operator<<(std::ostream& os,const TimeStamp &t)
   {
-    switch(t._format)
-      {
-      case TimeStamp::NORMAL:
-        os << "u: " << t.userTime() <<
-          "s, s: " << t.systemTime() <<
-          "s, cu: " << t.cUserTime() <<
-          "s, cs: " << t.cSystemTime() <<
-          "s, real: " << t.realTime() << "s";
-        break;
-      case TimeStamp::SHORT:
-        double total = t.userTime()+t.systemTime()+
-          t.cUserTime()+t.cSystemTime();
-        os << t.realTime()
-           << "s (err: " << round((t.realTime()-total)/
-                                  t.realTime()*10000)/100
-           << "%)";
-        break;
-      }
+    os << "u: " << t.userTime() <<
+      "s, s: " << t.systemTime() <<
+      "s, cu: " << t.cUserTime() <<
+      "s, cs: " << t.cSystemTime() <<
+      "s, real: " << t.realTime() << "s";
     return os;
   }
@@ -512,5 +469,4 @@
     std::string _title;
     std::ostream &_os;
-    bool _active;
   public:
     ///Constructor
@@ -520,25 +476,11 @@
     ///\param os The stream to print the report to.
     ///\param run Sets whether the timer should start immediately.
-    ///\param active Sets whether the report should actually be printed
-    ///       on destruction.
-    TimeReport(std::string title,std::ostream &os=std::cerr,bool run=true,
-               bool active=true)
-      : Timer(run), _title(title), _os(os), _active(active) {}
+    TimeReport(std::string title,std::ostream &os=std::cerr,bool run=true)
+      : Timer(run), _title(title), _os(os){}
     ///Destructor that prints the ellapsed time
     ~TimeReport()
     {
-      if(_active) _os << _title << *this << std::endl;
-    }
-
-    ///Retrieve the activity status
-
-    ///\e
-    ///
-    bool active() const { return _active; }
-    ///Set the activity status
-
-    /// This function set whether the time report should actually be printed
-    /// on destruction.
-    void active(bool a) { _active=a; }
+      _os << _title << *this << std::endl;
+    }
   };
 
Index: lemon/unionfind.h
===================================================================
--- lemon/unionfind.h	(revision 1270)
+++ lemon/unionfind.h	(revision 956)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: scripts/bib2dox.py
===================================================================
--- scripts/bib2dox.py	(revision 905)
+++ scripts/bib2dox.py	(revision 905)
@@ -0,0 +1,816 @@
+#! /usr/bin/env python
+"""
+  BibTeX to Doxygen converter
+  Usage: python bib2dox.py bibfile.bib > bibfile.dox
+
+  This file is a part of LEMON, a generic C++ optimization library.
+
+  **********************************************************************
+
+  This code is the modification of the BibTeX to XML converter
+  by Vidar Bronken Gundersen et al.
+  See the original copyright notices below. 
+
+  **********************************************************************
+
+  Decoder for bibliographic data, BibTeX
+  Usage: python bibtex2xml.py bibfile.bib > bibfile.xml
+
+  v.8
+  (c)2002-06-23 Vidar Bronken Gundersen
+  http://bibtexml.sf.net/
+  Reuse approved as long as this notification is kept.
+  Licence: GPL.
+
+  Contributions/thanks to:
+  Egon Willighagen, http://sf.net/projects/jreferences/
+  Richard Mahoney (for providing a test case)
+
+  Editted by Sara Sprenkle to be more robust and handle more bibtex features.
+  (c) 2003-01-15
+
+  1.  Changed bibtex: tags to bibxml: tags.
+  2.  Use xmlns:bibxml="http://bibtexml.sf.net/"
+  3.  Allow spaces between @type and first {
+  4.  "author" fields with multiple authors split by " and "
+      are put in separate xml "bibxml:author" tags.
+  5.  Option for Titles: words are capitalized
+      only if first letter in title or capitalized inside braces
+  6.  Removes braces from within field values
+  7.  Ignores comments in bibtex file (including @comment{ or % )
+  8.  Replaces some special latex tags, e.g., replaces ~ with '&#160;'
+  9.  Handles bibtex @string abbreviations
+        --> includes bibtex's default abbreviations for months
+        --> does concatenation of abbr # " more " and " more " # abbr
+  10. Handles @type( ... ) or @type{ ... }
+  11. The keywords field is split on , or ; and put into separate xml
+      "bibxml:keywords" tags
+  12. Ignores @preamble
+
+  Known Limitations
+  1.  Does not transform Latex encoding like math mode and special
+      latex symbols.
+  2.  Does not parse author fields into first and last names.
+      E.g., It does not do anything special to an author whose name is
+      in the form LAST_NAME, FIRST_NAME
+      In "author" tag, will show up as
+      <bibxml:author>LAST_NAME, FIRST_NAME</bibxml:author>
+  3.  Does not handle "crossref" fields other than to print
+      <bibxml:crossref>...</bibxml:crossref>
+  4.  Does not inform user of the input's format errors.  You just won't
+      be able to transform the file later with XSL
+
+  You will have to manually edit the XML output if you need to handle
+  these (and unknown) limitations.
+
+"""
+
+import string, re
+
+# set of valid name characters
+valid_name_chars = '[\w\-:]'
+
+#
+# define global regular expression variables
+#
+author_rex = re.compile('\s+and\s+')
+rembraces_rex = re.compile('[{}]')
+capitalize_rex = re.compile('({[^}]*})')
+
+# used by bibtexkeywords(data)
+keywords_rex = re.compile('[,;]')
+
+# used by concat_line(line)
+concatsplit_rex = re.compile('\s*#\s*')
+
+# split on {, }, or " in verify_out_of_braces
+delimiter_rex = re.compile('([{}"])',re.I)
+
+field_rex = re.compile('\s*(\w*)\s*=\s*(.*)')
+data_rex = re.compile('\s*(\w*)\s*=\s*([^,]*),?')
+
+url_rex = re.compile('\\\url\{([^}]*)\}')
+
+#
+# styles for html formatting
+#
+divstyle = 'margin-top: -4ex; margin-left: 8em;'
+
+#
+# return the string parameter without braces
+#
+def transformurls(str):
+    return url_rex.sub(r'<a href="\1">\1</a>', str)
+
+#
+# return the string parameter without braces
+#
+def removebraces(str):
+    return rembraces_rex.sub('', str)
+
+#
+# latex-specific replacements
+# (do this after braces were removed)
+#
+def latexreplacements(line):
+    line = string.replace(line, '~', '&nbsp;')
+    line = string.replace(line, '\\\'a', '&aacute;')
+    line = string.replace(line, '\\"a', '&auml;')
+    line = string.replace(line, '\\\'e', '&eacute;')
+    line = string.replace(line, '\\"e', '&euml;')
+    line = string.replace(line, '\\\'i', '&iacute;')
+    line = string.replace(line, '\\"i', '&iuml;')
+    line = string.replace(line, '\\\'o', '&oacute;')
+    line = string.replace(line, '\\"o', '&ouml;')
+    line = string.replace(line, '\\\'u', '&uacute;')
+    line = string.replace(line, '\\"u', '&uuml;')
+    line = string.replace(line, '\\H o', '&otilde;')
+    line = string.replace(line, '\\H u', '&uuml;')   # &utilde; does not exist
+    line = string.replace(line, '\\\'A', '&Aacute;')
+    line = string.replace(line, '\\"A', '&Auml;')
+    line = string.replace(line, '\\\'E', '&Eacute;')
+    line = string.replace(line, '\\"E', '&Euml;')
+    line = string.replace(line, '\\\'I', '&Iacute;')
+    line = string.replace(line, '\\"I', '&Iuml;')
+    line = string.replace(line, '\\\'O', '&Oacute;')
+    line = string.replace(line, '\\"O', '&Ouml;')
+    line = string.replace(line, '\\\'U', '&Uacute;')
+    line = string.replace(line, '\\"U', '&Uuml;')
+    line = string.replace(line, '\\H O', '&Otilde;')
+    line = string.replace(line, '\\H U', '&Uuml;')   # &Utilde; does not exist
+
+    return line
+
+#
+# copy characters form a string decoding html expressions (&xyz;)
+#
+def copychars(str, ifrom, count):
+    result = ''
+    i = ifrom
+    c = 0
+    html_spec = False
+    while (i < len(str)) and (c < count):
+        if str[i] == '&':
+            html_spec = True;
+            if i+1 < len(str):
+                result += str[i+1]
+            c += 1
+            i += 2
+        else:
+            if not html_spec:
+                if ((str[i] >= 'A') and (str[i] <= 'Z')) or \
+                   ((str[i] >= 'a') and (str[i] <= 'z')):
+                    result += str[i]
+                    c += 1
+            elif str[i] == ';':
+                html_spec = False;
+            i += 1
+    
+    return result
+
+
+# 
+# Handle a list of authors (separated by 'and').
+# It gives back an array of the follwing values:
+#  - num: the number of authors,
+#  - list: the list of the author names,
+#  - text: the bibtex text (separated by commas and/or 'and')
+#  - abbrev: abbreviation that can be used for indicate the
+#    bibliography entries
+#
+def bibtexauthor(data):
+    result = {}
+    bibtex = ''
+    result['list'] = author_rex.split(data)
+    result['num'] = len(result['list'])
+    for i, author in enumerate(result['list']):
+        # general transformations
+        author = latexreplacements(removebraces(author.strip()))
+        # transform "Xyz, A. B." to "A. B. Xyz"
+        pos = author.find(',')
+        if pos != -1:
+            author = author[pos+1:].strip() + ' ' + author[:pos].strip()
+        result['list'][i] = author
+        bibtex += author + '#'
+    bibtex = bibtex[:-1]
+    if result['num'] > 1:
+        ix = bibtex.rfind('#')
+        if result['num'] == 2:
+            bibtex = bibtex[:ix] + ' and ' + bibtex[ix+1:]
+        else:
+            bibtex = bibtex[:ix] + ', and ' + bibtex[ix+1:]
+    bibtex = bibtex.replace('#', ', ')
+    result['text'] = bibtex
+    
+    result['abbrev'] = ''
+    for author in result['list']:
+        pos = author.rfind(' ') + 1
+        count = 1
+        if result['num'] == 1:
+            count = 3
+        result['abbrev'] += copychars(author, pos, count)
+
+    return result
+
+
+#
+# data = title string
+# @return the capitalized title (first letter is capitalized), rest are capitalized
+# only if capitalized inside braces
+#
+def capitalizetitle(data):
+    title_list = capitalize_rex.split(data)
+    title = ''
+    count = 0
+    for phrase in title_list:
+         check = string.lstrip(phrase)
+
+         # keep phrase's capitalization the same
+         if check.find('{') == 0:
+              title += removebraces(phrase)
+         else:
+         # first word --> capitalize first letter (after spaces)
+              if count == 0:
+                  title += check.capitalize()
+              else:
+                  title += phrase.lower()
+         count = count + 1
+
+    return title
+
+
+#
+# @return the bibtex for the title
+# @param data --> title string
+# braces are removed from title
+#
+def bibtextitle(data, entrytype):
+    if entrytype in ('book', 'inbook'):
+        title = removebraces(data.strip())
+    else:
+        title = removebraces(capitalizetitle(data.strip()))
+    bibtex = title
+    return bibtex
+
+
+#
+# function to compare entry lists
+#
+def entry_cmp(x, y):
+    return cmp(x[0], y[0])
+
+
+#
+# print the XML for the transformed "filecont_source"
+#
+def bibtexdecoder(filecont_source):
+    filecont = []
+    file = []
+    
+    # want @<alphanumeric chars><spaces>{<spaces><any chars>,
+    pubtype_rex = re.compile('@(\w*)\s*{\s*(.*),')
+    endtype_rex = re.compile('}\s*$')
+    endtag_rex = re.compile('^\s*}\s*$')
+
+    bracefield_rex = re.compile('\s*(\w*)\s*=\s*(.*)')
+    bracedata_rex = re.compile('\s*(\w*)\s*=\s*{(.*)},?')
+
+    quotefield_rex = re.compile('\s*(\w*)\s*=\s*(.*)')
+    quotedata_rex = re.compile('\s*(\w*)\s*=\s*"(.*)",?')
+
+    for line in filecont_source:
+        line = line[:-1]
+
+        # encode character entities
+        line = string.replace(line, '&', '&amp;')
+        line = string.replace(line, '<', '&lt;')
+        line = string.replace(line, '>', '&gt;')
+
+        # start entry: publication type (store for later use)
+        if pubtype_rex.match(line):
+        # want @<alphanumeric chars><spaces>{<spaces><any chars>,
+            entrycont = {}
+            entry = []
+            entrytype = pubtype_rex.sub('\g<1>',line)
+            entrytype = string.lower(entrytype)
+            entryid   = pubtype_rex.sub('\g<2>', line)
+
+        # end entry if just a }
+        elif endtype_rex.match(line):
+            # generate doxygen code for the entry
+
+            # enty type related formattings
+            if entrytype in ('book', 'inbook'):
+                entrycont['title'] = '<em>' + entrycont['title'] + '</em>'
+                if not entrycont.has_key('author'):
+                    entrycont['author'] = entrycont['editor']
+                    entrycont['author']['text'] += ', editors'
+            elif entrytype == 'article':
+                entrycont['journal'] = '<em>' + entrycont['journal'] + '</em>'
+            elif entrytype in ('inproceedings', 'incollection', 'conference'):
+                entrycont['booktitle'] = '<em>' + entrycont['booktitle'] + '</em>'
+            elif entrytype == 'techreport':
+                if not entrycont.has_key('type'):
+                    entrycont['type'] = 'Technical report'
+            elif entrytype == 'mastersthesis':
+                entrycont['type'] = 'Master\'s thesis'
+            elif entrytype == 'phdthesis':
+                entrycont['type'] = 'PhD thesis'
+
+            for eline in entrycont:
+                if eline != '':
+                    eline = latexreplacements(eline)
+
+            if entrycont.has_key('pages') and (entrycont['pages'] != ''):
+                entrycont['pages'] = string.replace(entrycont['pages'], '--', '-')
+
+            if entrycont.has_key('author') and (entrycont['author'] != ''):
+                entry.append(entrycont['author']['text'] + '.')
+            if entrycont.has_key('title') and (entrycont['title'] != ''):
+                entry.append(entrycont['title'] + '.')
+            if entrycont.has_key('journal') and (entrycont['journal'] != ''):
+                entry.append(entrycont['journal'] + ',')
+            if entrycont.has_key('booktitle') and (entrycont['booktitle'] != ''):
+                entry.append('In ' + entrycont['booktitle'] + ',')
+            if entrycont.has_key('type') and (entrycont['type'] != ''):
+                eline = entrycont['type']
+                if entrycont.has_key('number') and (entrycont['number'] != ''):
+                    eline += ' ' + entrycont['number']
+                eline += ','
+                entry.append(eline)
+            if entrycont.has_key('institution') and (entrycont['institution'] != ''):
+                entry.append(entrycont['institution'] + ',')
+            if entrycont.has_key('publisher') and (entrycont['publisher'] != ''):
+                entry.append(entrycont['publisher'] + ',')
+            if entrycont.has_key('school') and (entrycont['school'] != ''):
+                entry.append(entrycont['school'] + ',')
+            if entrycont.has_key('address') and (entrycont['address'] != ''):
+                entry.append(entrycont['address'] + ',')
+            if entrycont.has_key('edition') and (entrycont['edition'] != ''):
+                entry.append(entrycont['edition'] + ' edition,')
+            if entrycont.has_key('howpublished') and (entrycont['howpublished'] != ''):
+                entry.append(entrycont['howpublished'] + ',')
+            if entrycont.has_key('volume') and (entrycont['volume'] != ''):
+                eline = entrycont['volume'];
+                if entrycont.has_key('number') and (entrycont['number'] != ''):
+                    eline += '(' + entrycont['number'] + ')'
+                if entrycont.has_key('pages') and (entrycont['pages'] != ''):
+                    eline += ':' + entrycont['pages']
+                eline += ','
+                entry.append(eline)
+            else:
+                if entrycont.has_key('pages') and (entrycont['pages'] != ''):
+                    entry.append('pages ' + entrycont['pages'] + ',')
+            if entrycont.has_key('year') and (entrycont['year'] != ''):
+                if entrycont.has_key('month') and (entrycont['month'] != ''):
+                    entry.append(entrycont['month'] + ' ' + entrycont['year'] + '.')
+                else:
+                    entry.append(entrycont['year'] + '.')
+            if entrycont.has_key('note') and (entrycont['note'] != ''):
+                entry.append(entrycont['note'] + '.')
+            if entrycont.has_key('url') and (entrycont['url'] != ''):
+                entry.append(entrycont['url'] + '.')
+
+            # generate keys for sorting and for the output
+            sortkey = ''
+            bibkey = ''
+            if entrycont.has_key('author'):
+                for author in entrycont['author']['list']:
+                    sortkey += copychars(author, author.rfind(' ')+1, len(author))
+                bibkey = entrycont['author']['abbrev']
+            else:
+                bibkey = 'x'
+            if entrycont.has_key('year'):
+                sortkey += entrycont['year']
+                bibkey += entrycont['year'][-2:]
+            if entrycont.has_key('title'):
+                sortkey += entrycont['title']
+            if entrycont.has_key('key'):
+                sortkey = entrycont['key'] + sortkey
+                bibkey = entrycont['key']
+            entry.insert(0, sortkey)
+            entry.insert(1, bibkey)
+            entry.insert(2, entryid)
+           
+            # add the entry to the file contents
+            filecont.append(entry)
+
+        else:
+            # field, publication info
+            field = ''
+            data = ''
+            
+            # field = {data} entries
+            if bracedata_rex.match(line):
+                field = bracefield_rex.sub('\g<1>', line)
+                field = string.lower(field)
+                data =  bracedata_rex.sub('\g<2>', line)
+
+            # field = "data" entries
+            elif quotedata_rex.match(line):
+                field = quotefield_rex.sub('\g<1>', line)
+                field = string.lower(field)
+                data =  quotedata_rex.sub('\g<2>', line)
+
+            # field = data entries
+            elif data_rex.match(line):
+                field = field_rex.sub('\g<1>', line)
+                field = string.lower(field)
+                data =  data_rex.sub('\g<2>', line)
+
+            if field == 'url':
+                data = '\\url{' + data.strip() + '}'
+            
+            if field in ('author', 'editor'):
+                entrycont[field] = bibtexauthor(data)
+                line = ''
+            elif field == 'title':
+                line = bibtextitle(data, entrytype)
+            elif field != '':
+                line = removebraces(transformurls(data.strip()))
+
+            if line != '':
+                line = latexreplacements(line)
+                entrycont[field] = line
+
+
+    # sort entries
+    filecont.sort(entry_cmp)
+    
+    # count the bibtex keys
+    keytable = {}
+    counttable = {}
+    for entry in filecont:
+        bibkey = entry[1]
+        if not keytable.has_key(bibkey):
+            keytable[bibkey] = 1
+        else:
+            keytable[bibkey] += 1
+
+    for bibkey in keytable.keys():
+        counttable[bibkey] = 0
+    
+    # generate output
+    for entry in filecont:
+        # generate output key form the bibtex key
+        bibkey = entry[1]
+        entryid = entry[2]
+        if keytable[bibkey] == 1:
+            outkey = bibkey
+        else:
+            outkey = bibkey + chr(97 + counttable[bibkey])
+        counttable[bibkey] += 1
+        
+        # append the entry code to the output
+        file.append('\\section ' + entryid + ' [' + outkey + ']')
+        file.append('<div style="' + divstyle + '">')
+        for line in entry[3:]:
+            file.append(line)
+        file.append('</div>')
+        file.append('')
+
+    return file
+
+
+#
+# return 1 iff abbr is in line but not inside braces or quotes
+# assumes that abbr appears only once on the line (out of braces and quotes)
+#
+def verify_out_of_braces(line, abbr):
+
+    phrase_split = delimiter_rex.split(line)
+
+    abbr_rex = re.compile( '\\b' + abbr + '\\b', re.I)
+
+    open_brace = 0
+    open_quote = 0
+
+    for phrase in phrase_split:
+        if phrase == "{":
+            open_brace = open_brace + 1
+        elif phrase == "}":
+            open_brace = open_brace - 1
+        elif phrase == '"':
+            if open_quote == 1:
+                open_quote = 0
+            else:
+                open_quote = 1
+        elif abbr_rex.search(phrase):
+            if open_brace == 0 and open_quote == 0:
+                return 1
+
+    return 0
+
+
+#
+# a line in the form phrase1 # phrase2 # ... # phrasen
+# is returned as phrase1 phrase2 ... phrasen
+# with the correct punctuation
+# Bug: Doesn't always work with multiple abbreviations plugged in
+#
+def concat_line(line):
+    # only look at part after equals
+    field = field_rex.sub('\g<1>',line)
+    rest = field_rex.sub('\g<2>',line)
+
+    concat_line = field + ' ='
+
+    pound_split = concatsplit_rex.split(rest)
+
+    phrase_count = 0
+    length = len(pound_split)
+
+    for phrase in pound_split:
+        phrase = phrase.strip()
+        if phrase_count != 0:
+            if phrase.startswith('"') or phrase.startswith('{'):
+                phrase = phrase[1:]
+        elif phrase.startswith('"'):
+            phrase = phrase.replace('"','{',1)
+
+        if phrase_count != length-1:
+            if phrase.endswith('"') or phrase.endswith('}'):
+                phrase = phrase[:-1]
+        else:
+            if phrase.endswith('"'):
+                phrase = phrase[:-1]
+                phrase = phrase + "}"
+            elif phrase.endswith('",'):
+                phrase = phrase[:-2]
+                phrase = phrase + "},"
+
+        # if phrase did have \#, add the \# back
+        if phrase.endswith('\\'):
+            phrase = phrase + "#"
+        concat_line = concat_line + ' ' + phrase
+
+        phrase_count = phrase_count + 1
+
+    return concat_line
+
+
+#
+# substitute abbreviations into filecont
+# @param filecont_source - string of data from file
+#
+def bibtex_replace_abbreviations(filecont_source):
+    filecont = filecont_source.splitlines()
+
+    #  These are defined in bibtex, so we'll define them too
+    abbr_list = ['jan','feb','mar','apr','may','jun',
+                 'jul','aug','sep','oct','nov','dec']
+    value_list = ['January','February','March','April',
+                  'May','June','July','August','September',
+                  'October','November','December']
+
+    abbr_rex = []
+    total_abbr_count = 0
+
+    front = '\\b'
+    back = '(,?)\\b'
+
+    for x in abbr_list:
+        abbr_rex.append( re.compile( front + abbr_list[total_abbr_count] + back, re.I ) )
+        total_abbr_count = total_abbr_count + 1
+
+
+    abbrdef_rex = re.compile('\s*@string\s*{\s*('+ valid_name_chars +'*)\s*=(.*)',
+                             re.I)
+
+    comment_rex = re.compile('@comment\s*{',re.I)
+    preamble_rex = re.compile('@preamble\s*{',re.I)
+
+    waiting_for_end_string = 0
+    i = 0
+    filecont2 = ''
+
+    for line in filecont:
+        if line == ' ' or line == '':
+            continue
+
+        if waiting_for_end_string:
+            if re.search('}',line):
+                waiting_for_end_string = 0
+                continue
+
+        if abbrdef_rex.search(line):
+            abbr = abbrdef_rex.sub('\g<1>', line)
+
+            if abbr_list.count(abbr) == 0:
+                val = abbrdef_rex.sub('\g<2>', line)
+                abbr_list.append(abbr)
+                value_list.append(string.strip(val))
+                abbr_rex.append( re.compile( front + abbr_list[total_abbr_count] + back, re.I ) )
+                total_abbr_count = total_abbr_count + 1
+            waiting_for_end_string = 1
+            continue
+
+        if comment_rex.search(line):
+            waiting_for_end_string = 1
+            continue
+
+        if preamble_rex.search(line):
+            waiting_for_end_string = 1
+            continue
+
+
+        # replace subsequent abbreviations with the value
+        abbr_count = 0
+
+        for x in abbr_list:
+
+            if abbr_rex[abbr_count].search(line):
+                if verify_out_of_braces(line,abbr_list[abbr_count]) == 1:
+                    line = abbr_rex[abbr_count].sub( value_list[abbr_count] + '\g<1>', line)
+                # Check for # concatenations
+                if concatsplit_rex.search(line):
+                    line = concat_line(line)
+            abbr_count = abbr_count + 1
+
+
+        filecont2 = filecont2 + line + '\n'
+        i = i+1
+
+
+    # Do one final pass over file
+
+    # make sure that didn't end up with {" or }" after the substitution
+    filecont2 = filecont2.replace('{"','{{')
+    filecont2 = filecont2.replace('"}','}}')
+
+    afterquotevalue_rex = re.compile('"\s*,\s*')
+    afterbrace_rex = re.compile('"\s*}')
+    afterbracevalue_rex = re.compile('(=\s*{[^=]*)},\s*')
+
+    # add new lines to data that changed because of abbreviation substitutions
+    filecont2 = afterquotevalue_rex.sub('",\n', filecont2)
+    filecont2 = afterbrace_rex.sub('"\n}', filecont2)
+    filecont2 = afterbracevalue_rex.sub('\g<1>},\n', filecont2)
+
+    return filecont2
+
+#
+# convert @type( ... ) to @type{ ... }
+#
+def no_outer_parens(filecont):
+
+    # do checking for open parens
+    # will convert to braces
+    paren_split = re.split('([(){}])',filecont)
+
+    open_paren_count = 0
+    open_type = 0
+    look_next = 0
+
+    # rebuild filecont
+    filecont = ''
+
+    at_rex = re.compile('@\w*')
+
+    for phrase in paren_split:
+        if look_next == 1:
+            if phrase == '(':
+                phrase = '{'
+                open_paren_count = open_paren_count + 1
+            else:
+                open_type = 0
+            look_next = 0
+
+        if phrase == '(':
+            open_paren_count = open_paren_count + 1
+
+        elif phrase == ')':
+            open_paren_count = open_paren_count - 1
+            if open_type == 1 and open_paren_count == 0:
+                phrase = '}'
+                open_type = 0
+
+        elif at_rex.search( phrase ):
+            open_type = 1
+            look_next = 1
+
+        filecont = filecont + phrase
+
+    return filecont
+
+
+#
+# make all whitespace into just one space
+# format the bibtex file into a usable form.
+#
+def bibtexwasher(filecont_source):
+
+    space_rex = re.compile('\s+')
+    comment_rex = re.compile('\s*%')
+
+    filecont = []
+
+    # remove trailing and excessive whitespace
+    # ignore comments
+    for line in filecont_source:
+        line = string.strip(line)
+        line = space_rex.sub(' ', line)
+        # ignore comments
+        if not comment_rex.match(line) and line != '':
+            filecont.append(' '+ line)
+
+    filecont = string.join(filecont, '')
+
+    # the file is in one long string
+
+    filecont = no_outer_parens(filecont)
+
+    #
+    # split lines according to preferred syntax scheme
+    #
+    filecont = re.sub('(=\s*{[^=]*)},', '\g<1>},\n', filecont)
+
+    # add new lines after commas that are after values
+    filecont = re.sub('"\s*,', '",\n', filecont)
+    filecont = re.sub('=\s*([\w\d]+)\s*,', '= \g<1>,\n', filecont)
+    filecont = re.sub('(@\w*)\s*({(\s*)[^,\s]*)\s*,',
+                          '\n\n\g<1>\g<2>,\n', filecont)
+
+    # add new lines after }
+    filecont = re.sub('"\s*}','"\n}\n', filecont)
+    filecont = re.sub('}\s*,','},\n', filecont)
+
+
+    filecont = re.sub('@(\w*)', '\n@\g<1>', filecont)
+
+    # character encoding, reserved latex characters
+    filecont = re.sub('{\\\&}', '&', filecont)
+    filecont = re.sub('\\\&', '&', filecont)
+
+    # do checking for open braces to get format correct
+    open_brace_count = 0
+    brace_split = re.split('([{}])',filecont)
+
+    # rebuild filecont
+    filecont = ''
+
+    for phrase in brace_split:
+        if phrase == '{':
+            open_brace_count = open_brace_count + 1
+        elif phrase == '}':
+            open_brace_count = open_brace_count - 1
+            if open_brace_count == 0:
+                filecont = filecont + '\n'
+
+        filecont = filecont + phrase
+
+    filecont2 = bibtex_replace_abbreviations(filecont)
+
+    # gather
+    filecont = filecont2.splitlines()
+    i=0
+    j=0         # count the number of blank lines
+    for line in filecont:
+        # ignore blank lines
+        if line == '' or line == ' ':
+            j = j+1
+            continue
+        filecont[i] = line + '\n'
+        i = i+1
+
+    # get rid of the extra stuff at the end of the array
+    # (The extra stuff are duplicates that are in the array because
+    # blank lines were removed.)
+    length = len( filecont)
+    filecont[length-j:length] = []
+
+    return filecont
+
+
+def filehandler(filepath):
+    try:
+        fd = open(filepath, 'r')
+        filecont_source = fd.readlines()
+        fd.close()
+    except:
+        print 'Could not open file:', filepath
+    washeddata = bibtexwasher(filecont_source)
+    outdata = bibtexdecoder(washeddata)
+    print '/**'
+    print '\page references References'
+    print
+    for line in outdata:
+        print line
+    print '*/'
+
+
+# main program
+
+def main():
+    import sys
+    if sys.argv[1:]:
+        filepath = sys.argv[1]
+    else:
+        print "No input file"
+        sys.exit()
+    filehandler(filepath)
+
+if __name__ == "__main__": main()
+
+
+# end python script
Index: test/CMakeLists.txt
===================================================================
--- test/CMakeLists.txt	(revision 1264)
+++ test/CMakeLists.txt	(revision 1206)
@@ -42,5 +42,4 @@
   max_cardinality_search_test
   max_clique_test
-  max_flow_test
   min_cost_arborescence_test
   min_cost_flow_test
@@ -49,4 +48,5 @@
   path_test
   planarity_test
+  preflow_test
   radix_sort_test
   random_test
@@ -70,11 +70,8 @@
   ENDIF()
   IF(LEMON_HAVE_CPLEX)
-    SET(LP_TEST_LIBS ${LP_TEST_LIBS} ${ILOG_LIBRARIES})
+    SET(LP_TEST_LIBS ${LP_TEST_LIBS} ${CPLEX_LIBRARIES})
   ENDIF()
   IF(LEMON_HAVE_CLP)
     SET(LP_TEST_LIBS ${LP_TEST_LIBS} ${COIN_CLP_LIBRARIES})
-  ENDIF()
-  IF(LEMON_HAVE_SOPLEX)
-    SET(LP_TEST_LIBS ${LP_TEST_LIBS} ${SOPLEX_LIBRARIES})
   ENDIF()
 
@@ -97,5 +94,5 @@
     GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
     ADD_CUSTOM_COMMAND(TARGET lp_test POST_BUILD
-      COMMAND ${CMAKE_COMMAND} -E copy ${ILOG_CPLEX_DLL} ${TARGET_PATH}
+      COMMAND ${CMAKE_COMMAND} -E copy ${CPLEX_BIN_DIR}/cplex.dll ${TARGET_PATH}
     )
   ENDIF()
@@ -115,5 +112,5 @@
   ENDIF()
   IF(LEMON_HAVE_CPLEX)
-    SET(MIP_TEST_LIBS ${MIP_TEST_LIBS} ${ILOG_LIBRARIES})
+    SET(MIP_TEST_LIBS ${MIP_TEST_LIBS} ${CPLEX_LIBRARIES})
   ENDIF()
   IF(LEMON_HAVE_CBC)
@@ -139,5 +136,5 @@
     GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
     ADD_CUSTOM_COMMAND(TARGET mip_test POST_BUILD
-      COMMAND ${CMAKE_COMMAND} -E copy ${ILOG_CPLEX_DLL} ${TARGET_PATH}
+      COMMAND ${CMAKE_COMMAND} -E copy ${CPLEX_BIN_DIR}/cplex.dll ${TARGET_PATH}
     )
   ENDIF()
Index: test/adaptors_test.cc
===================================================================
--- test/adaptors_test.cc	(revision 1270)
+++ test/adaptors_test.cc	(revision 1159)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2009
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -66,5 +66,5 @@
   Digraph::Arc a2 = digraph.addArc(n1, n3);
   Digraph::Arc a3 = digraph.addArc(n2, n3);
-  ::lemon::ignore_unused_variable_warning(a3);
+  ignore_unused_variable_warning(a3);
 
   // Check the adaptor
@@ -101,5 +101,5 @@
   Adaptor::Arc a7 = adaptor.addArc(n1, n4);
   Adaptor::Arc a8 = adaptor.addArc(n1, n2);
-  ::lemon::ignore_unused_variable_warning(a6,a7,a8);
+  ignore_unused_variable_warning(a6,a7,a8);
 
   adaptor.erase(a1);
@@ -761,5 +761,5 @@
   Digraph::Arc a2 = digraph.addArc(n1, n3);
   Digraph::Arc a3 = digraph.addArc(n2, n3);
-  ::lemon::ignore_unused_variable_warning(a1,a2,a3);
+  ignore_unused_variable_warning(a1,a2,a3);
 
   checkGraphNodeList(adaptor, 6);
Index: test/arc_look_up_test.cc
===================================================================
--- test/arc_look_up_test.cc	(revision 1270)
+++ test/arc_look_up_test.cc	(revision 1149)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2009
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -69,15 +69,15 @@
   std::istringstream lgfs(lgf);
   DigraphReader<ListDigraph>(graph, lgfs).run();
-
+  
   AllArcLookUp<ListDigraph> lookup(graph);
-
+	
   int numArcs = countArcs(graph);
-
+	
   int arcCnt = 0;
   for(ListDigraph::NodeIt n1(graph); n1 != INVALID; ++n1)
     for(ListDigraph::NodeIt n2(graph); n2 != INVALID; ++n2)
       for(ListDigraph::Arc a = lookup(n1, n2); a != INVALID;
-          a = lookup(n1, n2, a))
-        ++arcCnt;
+	  a = lookup(n1, n2, a))
+	++arcCnt;
   check(arcCnt==numArcs, "Wrong total number of arcs");
 
Index: test/bellman_ford_test.cc
===================================================================
--- test/bellman_ford_test.cc	(revision 1270)
+++ test/bellman_ford_test.cc	(revision 1174)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -66,8 +66,8 @@
   Arc e;
   Value l;
-  ::lemon::ignore_unused_variable_warning(l);
+  ignore_unused_variable_warning(l);
   int k=3;
   bool b;
-  ::lemon::ignore_unused_variable_warning(b);
+  ignore_unused_variable_warning(b);
   BF::DistMap d(gr);
   BF::PredMap p(gr);
@@ -150,5 +150,5 @@
   Digraph g;
   bool b;
-  ::lemon::ignore_unused_variable_warning(b);
+  ignore_unused_variable_warning(b);
 
   bellmanFord(g,LengthMap()).run(Node());
Index: test/bfs_test.cc
===================================================================
--- test/bfs_test.cc	(revision 1270)
+++ test/bfs_test.cc	(revision 1173)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -62,5 +62,5 @@
   Arc e;
   int l, i;
-  ::lemon::ignore_unused_variable_warning(l,i);
+  ignore_unused_variable_warning(l,i);
   bool b;
   BType::DistMap d(G);
@@ -152,5 +152,5 @@
   Digraph g;
   bool b;
-  ::lemon::ignore_unused_variable_warning(b);
+  ignore_unused_variable_warning(b);
 
   bfs(g).run(Node());
Index: test/bpgraph_test.cc
===================================================================
--- test/bpgraph_test.cc	(revision 1292)
+++ test/bpgraph_test.cc	(revision 1194)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -79,5 +79,4 @@
     e2 = G.addEdge(bn1, rn1),
     e3 = G.addEdge(rn1, bn2);
-  ::lemon::ignore_unused_variable_warning(e2,e3);
 
   checkGraphNodeList(G, 3);
@@ -115,5 +114,5 @@
   BpGraph G;
   RedNode
-    n1 = G.addRedNode(), n4 = G.addRedNode();
+    n1 = G.addRedNode(), n4 = G.addRedNode(); 
   BlueNode
     n2 = G.addBlueNode(), n3 = G.addBlueNode();
@@ -121,5 +120,4 @@
     e1 = G.addEdge(n1, n2), e2 = G.addEdge(n1, n3),
     e3 = G.addEdge(n4, n2), e4 = G.addEdge(n4, n3);
-  ::lemon::ignore_unused_variable_warning(e1,e3,e4);
 
   // Check edge deletion
@@ -164,5 +162,5 @@
   BpGraph G;
   RedNode
-    n1 = G.addRedNode(), n4 = G.addRedNode();
+    n1 = G.addRedNode(), n4 = G.addRedNode(); 
   BlueNode
     n2 = G.addBlueNode(), n3 = G.addBlueNode();
@@ -170,5 +168,4 @@
     e1 = G.addEdge(n1, n2), e2 = G.addEdge(n1, n3),
     e3 = G.addEdge(n4, n2), e4 = G.addEdge(n4, n3);
-  ::lemon::ignore_unused_variable_warning(e1,e3,e4);
 
   G.changeRed(e2, n4);
@@ -220,8 +217,7 @@
     n2 = G.addBlueNode(),
     n3 = G.addBlueNode();
-  Edge
+  Edge 
     e1 = G.addEdge(n1, n2),
     e2 = G.addEdge(n1, n3);
-  ::lemon::ignore_unused_variable_warning(e1,e2);
 
   checkGraphNodeList(G, 3);
@@ -309,5 +305,4 @@
     e1 = g.addEdge(n1, n2),
     e2 = g.addEdge(n1, n3);
-  ::lemon::ignore_unused_variable_warning(e2);
 
   check(g.valid(n1), "Wrong validity check");
Index: test/circulation_test.cc
===================================================================
--- test/circulation_test.cc	(revision 1270)
+++ test/circulation_test.cc	(revision 1173)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -74,5 +74,5 @@
   VType v;
   bool b;
-  ::lemon::ignore_unused_variable_warning(v,b);
+  ignore_unused_variable_warning(v,b);
 
   typedef Circulation<Digraph, CapMap, CapMap, SupplyMap>
@@ -105,5 +105,5 @@
   const_circ_test.barrierMap(bar);
 
-  ::lemon::ignore_unused_variable_warning(fm);
+  ignore_unused_variable_warning(fm);
 }
 
Index: test/connectivity_test.cc
===================================================================
--- test/connectivity_test.cc	(revision 1270)
+++ test/connectivity_test.cc	(revision 1159)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -69,5 +69,5 @@
     Graph g(d);
     Digraph::Node n = d.addNode();
-    ::lemon::ignore_unused_variable_warning(n);
+    ignore_unused_variable_warning(n);
 
     check(stronglyConnected(d), "This digraph is strongly connected");
@@ -98,21 +98,4 @@
     check(simpleGraph(g), "This graph is simple.");
   }
-
-  {
-    ListGraph g;
-    ListGraph::NodeMap<bool> map(g);
-
-    ListGraph::Node n1 = g.addNode();
-    ListGraph::Node n2 = g.addNode();
-
-    ListGraph::Edge e1 = g.addEdge(n1, n2);
-    ::lemon::ignore_unused_variable_warning(e1);
-    check(biNodeConnected(g), "Graph is bi-node-connected");
-
-    ListGraph::Node n3 = g.addNode();
-    ::lemon::ignore_unused_variable_warning(n3);
-    check(!biNodeConnected(g), "Graph is not bi-node-connected");
-  }
-
 
   {
@@ -264,5 +247,5 @@
     Digraph::Node watch = d.addNode();
     Digraph::Node pants = d.addNode();
-    ::lemon::ignore_unused_variable_warning(watch);
+    ignore_unused_variable_warning(watch);
 
     d.addArc(socks, shoe);
Index: test/dfs_test.cc
===================================================================
--- test/dfs_test.cc	(revision 1270)
+++ test/dfs_test.cc	(revision 1176)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -68,5 +68,5 @@
   int l, i;
   bool b;
-  ::lemon::ignore_unused_variable_warning(l,i,b);
+  ignore_unused_variable_warning(l,i,b);
 
   DType::DistMap d(G);
@@ -154,5 +154,5 @@
   Digraph g;
   bool b;
-  ::lemon::ignore_unused_variable_warning(b);
+  ignore_unused_variable_warning(b);
 
   dfs(g).run(Node());
@@ -224,5 +224,5 @@
   check(dfs.run(s1,t1) && dfs.reached(t1),"Node 3 is reachable from Node 6.");
   }
-
+  
   {
     NullMap<Node,Arc> myPredMap;
Index: test/digraph_test.cc
===================================================================
--- test/digraph_test.cc	(revision 1270)
+++ test/digraph_test.cc	(revision 1160)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -65,5 +65,5 @@
       a3 = G.addArc(n2, n3),
       a4 = G.addArc(n2, n3);
-  ::lemon::ignore_unused_variable_warning(a2,a3,a4);
+  ignore_unused_variable_warning(a2,a3,a4);
 
   checkGraphNodeList(G, 3);
@@ -94,5 +94,5 @@
   Arc a1 = G.addArc(n1, n2), a2 = G.addArc(n2, n1),
       a3 = G.addArc(n2, n3), a4 = G.addArc(n2, n3);
-  ::lemon::ignore_unused_variable_warning(a1,a2,a3,a4);
+  ignore_unused_variable_warning(a1,a2,a3,a4);
 
   Node n4 = G.split(n2);
@@ -128,5 +128,5 @@
       a3 = G.addArc(n4, n3), a4 = G.addArc(n4, n3),
       a5 = G.addArc(n2, n4);
-  ::lemon::ignore_unused_variable_warning(a1,a2,a3,a5);
+  ignore_unused_variable_warning(a1,a2,a3,a5);
 
   checkGraphNodeList(G, 4);
@@ -208,5 +208,5 @@
       a3 = G.addArc(n4, n3), a4 = G.addArc(n3, n1),
       a5 = G.addArc(n2, n4);
-  ::lemon::ignore_unused_variable_warning(a2,a3,a4,a5);
+  ignore_unused_variable_warning(a2,a3,a4,a5);
 
   // Check arc deletion
@@ -256,5 +256,5 @@
   Arc a1 = G.addArc(n1, n2), a2 = G.addArc(n2, n1),
       a3 = G.addArc(n2, n3), a4 = G.addArc(n2, n3);
-  ::lemon::ignore_unused_variable_warning(a1,a2,a3,a4);
+  ignore_unused_variable_warning(a1,a2,a3,a4);
 
   typename Digraph::Snapshot snapshot(G);
@@ -357,5 +357,5 @@
     e1 = g.addArc(n1, n2),
     e2 = g.addArc(n2, n3);
-  ::lemon::ignore_unused_variable_warning(e2);
+  ignore_unused_variable_warning(e2);
 
   check(g.valid(n1), "Wrong validity check");
@@ -443,5 +443,5 @@
     a3 = g.addArc(n2, n3),
     a4 = g.addArc(n2, n3);
-  ::lemon::ignore_unused_variable_warning(a2,a3,a4);
+  ignore_unused_variable_warning(a2,a3,a4);
 
   digraphCopy(g, G).nodeRef(nref).run();
Index: test/dijkstra_test.cc
===================================================================
--- test/dijkstra_test.cc	(revision 1270)
+++ test/dijkstra_test.cc	(revision 1173)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -66,5 +66,5 @@
   int i;
   bool b;
-  ::lemon::ignore_unused_variable_warning(l,i,b);
+  ignore_unused_variable_warning(l,i,b);
 
   DType::DistMap d(G);
@@ -165,5 +165,5 @@
   Digraph g;
   bool b;
-  ::lemon::ignore_unused_variable_warning(b);
+  ignore_unused_variable_warning(b);
 
   dijkstra(g,LengthMap()).run(Node());
Index: test/edge_set_test.cc
===================================================================
--- test/edge_set_test.cc	(revision 1270)
+++ test/edge_set_test.cc	(revision 1159)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -45,10 +45,10 @@
 
   Digraph::Arc ga1 = digraph.addArc(n1, n2);
-  ::lemon::ignore_unused_variable_warning(ga1);
+  ignore_unused_variable_warning(ga1);
 
   ArcSet arc_set(digraph);
 
   Digraph::Arc ga2 = digraph.addArc(n2, n1);
-  ::lemon::ignore_unused_variable_warning(ga2);
+  ignore_unused_variable_warning(ga2);
 
   checkGraphNodeList(arc_set, 2);
@@ -78,5 +78,5 @@
     a3 = arc_set.addArc(n2, n3),
     a4 = arc_set.addArc(n2, n3);
-  ::lemon::ignore_unused_variable_warning(a2,a3,a4);
+  ignore_unused_variable_warning(a2,a3,a4);
 
   checkGraphNodeList(arc_set, 3);
@@ -115,10 +115,10 @@
 
   Digraph::Arc ga1 = digraph.addArc(n1, n2);
-  ::lemon::ignore_unused_variable_warning(ga1);
+  ignore_unused_variable_warning(ga1);
 
   ArcSet arc_set(digraph);
 
   Digraph::Arc ga2 = digraph.addArc(n2, n1);
-  ::lemon::ignore_unused_variable_warning(ga2);
+  ignore_unused_variable_warning(ga2);
 
   checkGraphNodeList(arc_set, 2);
@@ -148,5 +148,5 @@
     a3 = arc_set.addArc(n2, n3),
     a4 = arc_set.addArc(n2, n3);
-  ::lemon::ignore_unused_variable_warning(a2,a3,a4);
+  ignore_unused_variable_warning(a2,a3,a4);
 
   checkGraphNodeList(arc_set, 3);
@@ -199,10 +199,10 @@
 
   Digraph::Arc ga1 = digraph.addArc(n1, n2);
-  ::lemon::ignore_unused_variable_warning(ga1);
+  ignore_unused_variable_warning(ga1);
 
   EdgeSet edge_set(digraph);
 
   Digraph::Arc ga2 = digraph.addArc(n2, n1);
-  ::lemon::ignore_unused_variable_warning(ga2);
+  ignore_unused_variable_warning(ga2);
 
   checkGraphNodeList(edge_set, 2);
@@ -241,5 +241,5 @@
     e3 = edge_set.addEdge(n2, n3),
     e4 = edge_set.addEdge(n2, n3);
-  ::lemon::ignore_unused_variable_warning(e2,e3,e4);
+  ignore_unused_variable_warning(e2,e3,e4);
 
   checkGraphNodeList(edge_set, 3);
@@ -287,10 +287,10 @@
 
   Digraph::Arc ga1 = digraph.addArc(n1, n2);
-  ::lemon::ignore_unused_variable_warning(ga1);
+  ignore_unused_variable_warning(ga1);
 
   EdgeSet edge_set(digraph);
 
   Digraph::Arc ga2 = digraph.addArc(n2, n1);
-  ::lemon::ignore_unused_variable_warning(ga2);
+  ignore_unused_variable_warning(ga2);
 
   checkGraphNodeList(edge_set, 2);
@@ -329,5 +329,5 @@
     e3 = edge_set.addEdge(n2, n3),
     e4 = edge_set.addEdge(n2, n3);
-  ::lemon::ignore_unused_variable_warning(e2,e3,e4);
+  ignore_unused_variable_warning(e2,e3,e4);
 
   checkGraphNodeList(edge_set, 3);
Index: test/euler_test.cc
===================================================================
--- test/euler_test.cc	(revision 1270)
+++ test/euler_test.cc	(revision 1159)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -102,6 +102,6 @@
     Graph g(d);
     Digraph::Node n = d.addNode();
-    ::lemon::ignore_unused_variable_warning(n);
-
+    ignore_unused_variable_warning(n);
+  
     checkDiEulerIt(d);
     checkDiEulerIt(g);
@@ -191,5 +191,5 @@
     Digraph::Node n4 = d.addNode();
     Digraph::Node n5 = d.addNode();
-    ::lemon::ignore_unused_variable_warning(n0,n4,n5);
+    ignore_unused_variable_warning(n0,n4,n5);
 
     d.addArc(n1, n2);
Index: test/fractional_matching_test.cc
===================================================================
--- test/fractional_matching_test.cc	(revision 1270)
+++ test/fractional_matching_test.cc	(revision 1160)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -343,5 +343,5 @@
       pv += weight[mwfm.matching(n)];
       SmartGraph::Node o = graph.target(mwfm.matching(n));
-      ::lemon::ignore_unused_variable_warning(o);
+      ignore_unused_variable_warning(o);
     } else {
       check(mwfm.nodeValue(n) == 0, "Invalid matching");
@@ -408,5 +408,5 @@
     pv += weight[mwpfm.matching(n)];
     SmartGraph::Node o = graph.target(mwpfm.matching(n));
-    ::lemon::ignore_unused_variable_warning(o);
+    ignore_unused_variable_warning(o);
   }
 
Index: test/gomory_hu_test.cc
===================================================================
--- test/gomory_hu_test.cc	(revision 1270)
+++ test/gomory_hu_test.cc	(revision 1173)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -69,5 +69,5 @@
   Value v;
   int d;
-  ::lemon::ignore_unused_variable_warning(v,d);
+  ignore_unused_variable_warning(v,d);
 
   GomoryHu<Graph, CapMap> gh_test(g, cap);
Index: test/graph_copy_test.cc
===================================================================
--- test/graph_copy_test.cc	(revision 1270)
+++ test/graph_copy_test.cc	(revision 1194)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2009
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -54,5 +54,5 @@
     }
   }
-
+  
   // Test digraph copy
   GR to;
@@ -73,5 +73,5 @@
     nodeCrossRef(ncr).arcCrossRef(ecr).
     node(fn, tn).arc(fa, ta).run();
-
+  
   check(countNodes(from) == countNodes(to), "Wrong copy.");
   check(countArcs(from) == countArcs(to), "Wrong copy.");
@@ -101,5 +101,5 @@
   // Test repeated copy
   digraphCopy(from, to).run();
-
+  
   check(countNodes(from) == countNodes(to), "Wrong copy.");
   check(countArcs(from) == countArcs(to), "Wrong copy.");
@@ -204,5 +204,5 @@
   // Test repeated copy
   graphCopy(from, to).run();
-
+  
   check(countNodes(from) == countNodes(to), "Wrong copy.");
   check(countEdges(from) == countEdges(to), "Wrong copy.");
@@ -367,5 +367,5 @@
   // Test repeated copy
   bpGraphCopy(from, to).run();
-
+  
   check(countNodes(from) == countNodes(to), "Wrong copy.");
   check(countRedNodes(from) == countRedNodes(to), "Wrong copy.");
Index: test/graph_test.cc
===================================================================
--- test/graph_test.cc	(revision 1270)
+++ test/graph_test.cc	(revision 1159)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -67,5 +67,5 @@
   Edge e2 = G.addEdge(n2, n1),
        e3 = G.addEdge(n2, n3);
-  ::lemon::ignore_unused_variable_warning(e2,e3);
+  ignore_unused_variable_warning(e2,e3);
 
   checkGraphNodeList(G, 3);
@@ -100,5 +100,5 @@
        e3 = G.addEdge(n2, n3), e4 = G.addEdge(n1, n4),
        e5 = G.addEdge(n4, n3);
-  ::lemon::ignore_unused_variable_warning(e1,e3,e4,e5);
+  ignore_unused_variable_warning(e1,e3,e4,e5);
 
   checkGraphNodeList(G, 4);
@@ -180,5 +180,5 @@
        e3 = G.addEdge(n2, n3), e4 = G.addEdge(n1, n4),
        e5 = G.addEdge(n4, n3);
-  ::lemon::ignore_unused_variable_warning(e1,e3,e4,e5);
+  ignore_unused_variable_warning(e1,e3,e4,e5);
 
   // Check edge deletion
@@ -221,5 +221,5 @@
   Edge e1 = G.addEdge(n1, n2), e2 = G.addEdge(n2, n1),
        e3 = G.addEdge(n2, n3);
-  ::lemon::ignore_unused_variable_warning(e1,e2,e3);
+  ignore_unused_variable_warning(e1,e2,e3);
 
   checkGraphNodeList(G, 3);
@@ -386,5 +386,5 @@
     e1 = g.addEdge(n1, n2),
     e2 = g.addEdge(n2, n3);
-  ::lemon::ignore_unused_variable_warning(e2);
+  ignore_unused_variable_warning(e2);
 
   check(g.valid(n1), "Wrong validity check");
@@ -525,5 +525,5 @@
 
   Node n = G.nodeFromId(dim);
-  ::lemon::ignore_unused_variable_warning(n);
+  ignore_unused_variable_warning(n);
 
   for (NodeIt n(G); n != INVALID; ++n) {
Index: test/graph_test.h
===================================================================
--- test/graph_test.h	(revision 1270)
+++ test/graph_test.h	(revision 1195)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2009
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: test/hao_orlin_test.cc
===================================================================
--- test/hao_orlin_test.cc	(revision 1270)
+++ test/hao_orlin_test.cc	(revision 1173)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -67,5 +67,5 @@
   CutMap cut;
   Value v;
-  ::lemon::ignore_unused_variable_warning(v);
+  ignore_unused_variable_warning(v);
 
   HaoOrlin<Digraph, CapMap> ho_test(g, cap);
Index: test/heap_test.cc
===================================================================
--- test/heap_test.cc	(revision 1270)
+++ test/heap_test.cc	(revision 1065)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2009
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: test/lgf_reader_writer_test.cc
===================================================================
--- test/lgf_reader_writer_test.cc	(revision 1270)
+++ test/lgf_reader_writer_test.cc	(revision 1198)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -386,5 +386,5 @@
   writer.arcMap("arc_map1", arc_map);
   writer.arcMap("arc_map2", arc_map, WriterConverter());
-  writer.node("node", n2);
+  writer.node("node", n2); 
   writer.edge("edge", e1);
   writer.arc("arc", graph.direct(e1, false));
@@ -493,5 +493,5 @@
   writer.arcMap("arc_map2", arc_map, WriterConverter());
   writer.node("node", n);
-  writer.redNode("red_node", rn1);
+  writer.redNode("red_node", rn1); 
   writer.blueNode("blue_node", bn2);
   writer.edge("edge", e1);
Index: test/lgf_test.cc
===================================================================
--- test/lgf_test.cc	(revision 1270)
+++ test/lgf_test.cc	(revision 1087)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2011
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -64,8 +64,8 @@
 
 
-int main()
+int main() 
 {
   {
-    ListDigraph d;
+    ListDigraph d; 
     ListDigraph::Node s,t;
     ListDigraph::ArcMap<int> label(d);
@@ -94,5 +94,5 @@
 
   {
-    ListDigraph d;
+    ListDigraph d; 
     std::istringstream input(test_lgf_nomap);
     digraphReader(d, input).
@@ -111,5 +111,5 @@
 
   {
-    ListDigraph d;
+    ListDigraph d; 
     std::istringstream input(test_lgf_bad1);
     bool ok=false;
@@ -118,5 +118,5 @@
         run();
     }
-    catch (FormatError&)
+    catch (FormatError&) 
       {
         ok = true;
@@ -140,5 +140,5 @@
 
   {
-    ListDigraph d;
+    ListDigraph d; 
     std::istringstream input(test_lgf_bad2);
     bool ok=false;
Index: test/lp_test.cc
===================================================================
--- test/lp_test.cc	(revision 1270)
+++ test/lp_test.cc	(revision 1140)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2009
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -199,10 +199,5 @@
       c = c <= 4;
       LP::Constr c2;
-#if ( __GNUC__ == 4 ) && ( __GNUC_MINOR__ == 3 )
-      c2 = ( -3 <= v ) <= 4;
-#else
       c2 = -3 <= v <= 4;
-#endif
-
     }
 
@@ -246,5 +241,6 @@
   {
     LP::DualExpr e,f,g;
-    LP::Row p1 = INVALID, p2 = INVALID;
+    LP::Row p1 = INVALID, p2 = INVALID, p3 = INVALID,
+      p4 = INVALID, p5 = INVALID;
 
     e[p1]=2;
Index: test/maps_test.cc
===================================================================
--- test/maps_test.cc	(revision 1270)
+++ test/maps_test.cc	(revision 1159)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -104,5 +104,5 @@
     NullMap<A,B> map1;
     NullMap<A,B> map2 = map1;
-    ::lemon::ignore_unused_variable_warning(map2);
+    ignore_unused_variable_warning(map2);
     map1 = nullMap<A,B>();
   }
@@ -115,5 +115,5 @@
     ConstMap<A,B> map2 = B();
     ConstMap<A,B> map3 = map1;
-    ::lemon::ignore_unused_variable_warning(map2,map3);
+    ignore_unused_variable_warning(map2,map3);
 
     map1 = constMap<A>(B());
@@ -122,5 +122,5 @@
     ConstMap<A,C> map4(C(1));
     ConstMap<A,C> map5 = map4;
-    ::lemon::ignore_unused_variable_warning(map5);
+    ignore_unused_variable_warning(map5);
 
     map4 = constMap<A>(C(2));
@@ -144,5 +144,5 @@
     IdentityMap<A> map1;
     IdentityMap<A> map2 = map1;
-    ::lemon::ignore_unused_variable_warning(map2);
+    ignore_unused_variable_warning(map2);
 
     map1 = identityMap<A>();
@@ -205,7 +205,7 @@
     checkConcept<ReadMap<B,double>, CompMap>();
     CompMap map1 = CompMap(DoubleMap(),ReadMap<B,A>());
-    ::lemon::ignore_unused_variable_warning(map1);
+    ignore_unused_variable_warning(map1);
     CompMap map2 = composeMap(DoubleMap(), ReadMap<B,A>());
-    ::lemon::ignore_unused_variable_warning(map2);
+    ignore_unused_variable_warning(map2);
 
     SparseMap<double, bool> m1(false); m1[3.14] = true;
@@ -220,7 +220,7 @@
     checkConcept<ReadMap<A,double>, CombMap>();
     CombMap map1 = CombMap(DoubleMap(), DoubleMap());
-    ::lemon::ignore_unused_variable_warning(map1);
+    ignore_unused_variable_warning(map1);
     CombMap map2 = combineMap(DoubleMap(), DoubleMap(), std::plus<double>());
-    ::lemon::ignore_unused_variable_warning(map2);
+    ignore_unused_variable_warning(map2);
 
     check(combineMap(constMap<B,int,2>(), identityMap<B>(), &binc)[B()] == 3,
@@ -234,13 +234,13 @@
     FunctorToMap<F> map1;
     FunctorToMap<F> map2 = FunctorToMap<F>(F());
-    ::lemon::ignore_unused_variable_warning(map2);
+    ignore_unused_variable_warning(map2);
 
     B b = functorToMap(F())[A()];
-    ::lemon::ignore_unused_variable_warning(b);
+    ignore_unused_variable_warning(b);
 
     checkConcept<ReadMap<A,B>, MapToFunctor<ReadMap<A,B> > >();
     MapToFunctor<ReadMap<A,B> > map =
       MapToFunctor<ReadMap<A,B> >(ReadMap<A,B>());
-    ::lemon::ignore_unused_variable_warning(map);
+    ignore_unused_variable_warning(map);
 
     check(functorToMap(&func)[A()] == 3,
@@ -260,7 +260,7 @@
       ConvertMap<ReadMap<double, int>, double> >();
     ConvertMap<RangeMap<bool>, int> map1(rangeMap(1, true));
-    ::lemon::ignore_unused_variable_warning(map1);
+    ignore_unused_variable_warning(map1);
     ConvertMap<RangeMap<bool>, int> map2 = convertMap<int>(rangeMap(2, false));
-    ::lemon::ignore_unused_variable_warning(map2);
+    ignore_unused_variable_warning(map2);
 
   }
@@ -536,6 +536,5 @@
 
     typedef Orienter<Graph, const ConstMap<Edge, bool> > Digraph;
-    ConstMap<Edge, bool> true_edge_map(true);
-    Digraph dgr(gr, true_edge_map);
+    Digraph dgr(gr, constMap<Edge, bool>(true));
     OutDegMap<Digraph> odm(dgr);
     InDegMap<Digraph> idm(dgr);
Index: test/matching_test.cc
===================================================================
--- test/matching_test.cc	(revision 1270)
+++ test/matching_test.cc	(revision 1173)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -146,5 +146,5 @@
   MaxMatching<Graph>::Status stat =
     const_mat_test.status(n);
-  ::lemon::ignore_unused_variable_warning(stat);
+  ignore_unused_variable_warning(stat);
   const MaxMatching<Graph>::StatusMap& smap =
     const_mat_test.statusMap();
Index: test/max_cardinality_search_test.cc
===================================================================
--- test/max_cardinality_search_test.cc	(revision 1270)
+++ test/max_cardinality_search_test.cc	(revision 1088)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -68,5 +68,5 @@
   ProcMap proc;
   HeapCrossRef crossref(g);
-
+  
   typedef MaxCardinalitySearch<Digraph,CapMap>
     ::SetCapacityMap<CapMap>
@@ -82,5 +82,5 @@
   MaxCardType::Heap& heap = const_cast<MaxCardType::Heap&>(heap_const);
   maxcard.heap(heap,crossref);
-
+  
   maxcard.capacityMap(cap).cardinalityMap(card).processedMap(proc);
 
Index: test/max_clique_test.cc
===================================================================
--- test/max_clique_test.cc	(revision 1270)
+++ test/max_clique_test.cc	(revision 1022)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -55,5 +55,5 @@
   "5 7    14\n"
   "6 7    15\n";
-
+      
 
 // Check with general graphs
@@ -63,5 +63,5 @@
   typedef GrossoLocatelliPullanMc<GR> McAlg;
   typedef McAlg::CliqueNodeIt CliqueIt;
-
+  
   // Basic tests
   {
@@ -82,5 +82,5 @@
     check(static_cast<GR::Node>(it1) == u && ++it1 == INVALID,
           "Wrong CliqueNodeIt");
-
+    
     GR::Node v = g.addNode();
     check(mc.run(rule) == McAlg::ITERATION_LIMIT, "Wrong termination cause");
@@ -110,5 +110,5 @@
       .nodeMap("max_clique", max_clique)
       .run();
-
+    
     McAlg mc(g);
     mc.iterationLimit(50);
@@ -134,5 +134,5 @@
   typedef GrossoLocatelliPullanMc<FullGraph> McAlg;
   typedef McAlg::CliqueNodeIt CliqueIt;
-
+  
   for (int size = 0; size <= 40; size = size * 3 + 1) {
     GR g(size);
@@ -157,5 +157,5 @@
   GridGraph::NodeMap<char> map(g);
   GrossoLocatelliPullanMc<GridGraph> mc(g);
-
+  
   mc.iterationLimit(100);
   check(mc.run(rule) == mc.ITERATION_LIMIT, "Wrong termination cause");
@@ -180,9 +180,9 @@
   checkMaxCliqueFullGraph(GrossoLocatelliPullanMc<FullGraph>::DEGREE_BASED);
   checkMaxCliqueFullGraph(GrossoLocatelliPullanMc<FullGraph>::PENALTY_BASED);
-
+                       
   checkMaxCliqueGridGraph(GrossoLocatelliPullanMc<GridGraph>::RANDOM);
   checkMaxCliqueGridGraph(GrossoLocatelliPullanMc<GridGraph>::DEGREE_BASED);
   checkMaxCliqueGridGraph(GrossoLocatelliPullanMc<GridGraph>::PENALTY_BASED);
-
+                       
   return 0;
 }
Index: st/max_flow_test.cc
===================================================================
--- test/max_flow_test.cc	(revision 1270)
+++ 	(revision )
@@ -1,395 +1,0 @@
-/* -*- mode: C++; indent-tabs-mode: nil; -*-
- *
- * This file is a part of LEMON, a generic C++ optimization library.
- *
- * Copyright (C) 2003-2013
- * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
- * (Egervary Research Group on Combinatorial Optimization, EGRES).
- *
- * Permission to use, modify and distribute this software is granted
- * provided that this copyright notice appears in all copies. For
- * precise terms see the accompanying LICENSE file.
- *
- * This software is provided "AS IS" with no warranty of any kind,
- * express or implied, and with no claim as to its suitability for any
- * purpose.
- *
- */
-
-#include <iostream>
-
-#include "test_tools.h"
-#include <lemon/smart_graph.h>
-#include <lemon/preflow.h>
-#include <lemon/edmonds_karp.h>
-#include <lemon/concepts/digraph.h>
-#include <lemon/concepts/maps.h>
-#include <lemon/lgf_reader.h>
-#include <lemon/elevator.h>
-
-using namespace lemon;
-
-char test_lgf[] =
-  "@nodes\n"
-  "label\n"
-  "0\n"
-  "1\n"
-  "2\n"
-  "3\n"
-  "4\n"
-  "5\n"
-  "6\n"
-  "7\n"
-  "8\n"
-  "9\n"
-  "@arcs\n"
-  "    label capacity\n"
-  "0 1 0     20\n"
-  "0 2 1     0\n"
-  "1 1 2     3\n"
-  "1 2 3     8\n"
-  "1 3 4     8\n"
-  "2 5 5     5\n"
-  "3 2 6     5\n"
-  "3 5 7     5\n"
-  "3 6 8     5\n"
-  "4 3 9     3\n"
-  "5 7 10    3\n"
-  "5 6 11    10\n"
-  "5 8 12    10\n"
-  "6 8 13    8\n"
-  "8 9 14    20\n"
-  "8 1 15    5\n"
-  "9 5 16    5\n"
-  "@attributes\n"
-  "source 1\n"
-  "target 8\n";
-
-
-// Checks the general interface of a max flow algorithm
-template <typename GR, typename CAP>
-struct MaxFlowClassConcept
-{
-
-  template <typename MF>
-  struct Constraints {
-
-    typedef typename GR::Node Node;
-    typedef typename GR::Arc Arc;
-    typedef typename CAP::Value Value;
-    typedef concepts::ReadWriteMap<Arc, Value> FlowMap;
-    typedef concepts::WriteMap<Node, bool> CutMap;
-
-    GR g;
-    Node n;
-    Arc e;
-    CAP cap;
-    FlowMap flow;
-    CutMap cut;
-    Value v;
-    bool b;
-
-    void constraints() {
-      checkConcept<concepts::Digraph, GR>();
-
-      const Constraints& me = *this;
-
-      typedef typename MF
-          ::template SetFlowMap<FlowMap>
-          ::Create MaxFlowType;
-      typedef typename MF::Create MaxFlowType2;
-      MaxFlowType max_flow(me.g, me.cap, me.n, me.n);
-      const MaxFlowType& const_max_flow = max_flow;
-
-      max_flow
-          .capacityMap(cap)
-          .flowMap(flow)
-          .source(n)
-          .target(n);
-
-      typename MaxFlowType::Tolerance tol = const_max_flow.tolerance();
-      max_flow.tolerance(tol);
-
-      max_flow.init();
-      max_flow.init(cap);
-      max_flow.run();
-
-      v = const_max_flow.flowValue();
-      v = const_max_flow.flow(e);
-      const FlowMap& fm = const_max_flow.flowMap();
-
-      b = const_max_flow.minCut(n);
-      const_max_flow.minCutMap(cut);
-
-      ::lemon::ignore_unused_variable_warning(fm);
-    }
-
-  };
-
-};
-
-// Checks the specific parts of Preflow's interface
-void checkPreflowCompile()
-{
-  typedef int Value;
-  typedef concepts::Digraph Digraph;
-  typedef concepts::ReadMap<Digraph::Arc, Value> CapMap;
-  typedef Elevator<Digraph, Digraph::Node> Elev;
-  typedef LinkedElevator<Digraph, Digraph::Node> LinkedElev;
-
-  Digraph g;
-  Digraph::Node n;
-  CapMap cap;
-
-  typedef Preflow<Digraph, CapMap>
-      ::SetElevator<Elev>
-      ::SetStandardElevator<LinkedElev>
-      ::Create PreflowType;
-  PreflowType preflow_test(g, cap, n, n);
-  const PreflowType& const_preflow_test = preflow_test;
-
-  const PreflowType::Elevator& elev = const_preflow_test.elevator();
-  preflow_test.elevator(const_cast<PreflowType::Elevator&>(elev));
-
-  bool b = preflow_test.init(cap);
-  preflow_test.startFirstPhase();
-  preflow_test.startSecondPhase();
-  preflow_test.runMinCut();
-
-  ::lemon::ignore_unused_variable_warning(b);
-}
-
-// Checks the specific parts of EdmondsKarp's interface
-void checkEdmondsKarpCompile()
-{
-  typedef int Value;
-  typedef concepts::Digraph Digraph;
-  typedef concepts::ReadMap<Digraph::Arc, Value> CapMap;
-  typedef Elevator<Digraph, Digraph::Node> Elev;
-  typedef LinkedElevator<Digraph, Digraph::Node> LinkedElev;
-
-  Digraph g;
-  Digraph::Node n;
-  CapMap cap;
-
-  EdmondsKarp<Digraph, CapMap> ek_test(g, cap, n, n);
-
-  ek_test.init(cap);
-  bool b = ek_test.checkedInit(cap);
-  b = ek_test.augment();
-  ek_test.start();
-
-  ::lemon::ignore_unused_variable_warning(b);
-}
-
-
-template <typename T>
-T cutValue (const SmartDigraph& g,
-              const SmartDigraph::NodeMap<bool>& cut,
-              const SmartDigraph::ArcMap<T>& cap) {
-
-  T c=0;
-  for(SmartDigraph::ArcIt e(g); e!=INVALID; ++e) {
-    if (cut[g.source(e)] && !cut[g.target(e)]) c+=cap[e];
-  }
-  return c;
-}
-
-template <typename T>
-bool checkFlow(const SmartDigraph& g,
-               const SmartDigraph::ArcMap<T>& flow,
-               const SmartDigraph::ArcMap<T>& cap,
-               SmartDigraph::Node s, SmartDigraph::Node t) {
-
-  for (SmartDigraph::ArcIt e(g); e != INVALID; ++e) {
-    if (flow[e] < 0 || flow[e] > cap[e]) return false;
-  }
-
-  for (SmartDigraph::NodeIt n(g); n != INVALID; ++n) {
-    if (n == s || n == t) continue;
-    T sum = 0;
-    for (SmartDigraph::OutArcIt e(g, n); e != INVALID; ++e) {
-      sum += flow[e];
-    }
-    for (SmartDigraph::InArcIt e(g, n); e != INVALID; ++e) {
-      sum -= flow[e];
-    }
-    if (sum != 0) return false;
-  }
-  return true;
-}
-
-void initFlowTest()
-{
-  DIGRAPH_TYPEDEFS(SmartDigraph);
-
-  SmartDigraph g;
-  SmartDigraph::ArcMap<int> cap(g),iflow(g);
-  Node s=g.addNode(); Node t=g.addNode();
-  Node n1=g.addNode(); Node n2=g.addNode();
-  Arc a;
-  a=g.addArc(s,n1); cap[a]=20; iflow[a]=20;
-  a=g.addArc(n1,n2); cap[a]=10; iflow[a]=0;
-  a=g.addArc(n2,t); cap[a]=20; iflow[a]=0;
-
-  Preflow<SmartDigraph> pre(g,cap,s,t);
-  pre.init(iflow);
-  pre.startFirstPhase();
-  check(pre.flowValue() == 10, "The incorrect max flow value.");
-  check(pre.minCut(s), "Wrong min cut (Node s).");
-  check(pre.minCut(n1), "Wrong min cut (Node n1).");
-  check(!pre.minCut(n2), "Wrong min cut (Node n2).");
-  check(!pre.minCut(t), "Wrong min cut (Node t).");
-}
-
-template <typename MF, typename SF>
-void checkMaxFlowAlg() {
-  typedef SmartDigraph Digraph;
-  DIGRAPH_TYPEDEFS(Digraph);
-
-  typedef typename MF::Value Value;
-  typedef Digraph::ArcMap<Value> CapMap;
-  typedef CapMap FlowMap;
-  typedef BoolNodeMap CutMap;
-
-  Digraph g;
-  Node s, t;
-  CapMap cap(g);
-  std::istringstream input(test_lgf);
-  DigraphReader<Digraph>(g,input)
-      .arcMap("capacity", cap)
-      .node("source",s)
-      .node("target",t)
-      .run();
-
-  MF max_flow(g, cap, s, t);
-  max_flow.run();
-
-  check(checkFlow(g, max_flow.flowMap(), cap, s, t),
-        "The flow is not feasible.");
-
-  CutMap min_cut(g);
-  max_flow.minCutMap(min_cut);
-  Value min_cut_value = cutValue(g, min_cut, cap);
-
-  check(max_flow.flowValue() == min_cut_value,
-        "The max flow value is not equal to the min cut value.");
-
-  FlowMap flow(g);
-  for (ArcIt e(g); e != INVALID; ++e) flow[e] = max_flow.flowMap()[e];
-
-  Value flow_value = max_flow.flowValue();
-
-  for (ArcIt e(g); e != INVALID; ++e) cap[e] = 2 * cap[e];
-  max_flow.init(flow);
-
-  SF::startFirstPhase(max_flow);       // start first phase of the algorithm
-
-  CutMap min_cut1(g);
-  max_flow.minCutMap(min_cut1);
-  min_cut_value = cutValue(g, min_cut1, cap);
-
-  check(max_flow.flowValue() == min_cut_value &&
-        min_cut_value == 2 * flow_value,
-        "The max flow value or the min cut value is wrong.");
-
-  SF::startSecondPhase(max_flow);       // start second phase of the algorithm
-
-  check(checkFlow(g, max_flow.flowMap(), cap, s, t),
-        "The flow is not feasible.");
-
-  CutMap min_cut2(g);
-  max_flow.minCutMap(min_cut2);
-  min_cut_value = cutValue(g, min_cut2, cap);
-
-  check(max_flow.flowValue() == min_cut_value &&
-        min_cut_value == 2 * flow_value,
-        "The max flow value or the min cut value was not doubled");
-
-
-  max_flow.flowMap(flow);
-
-  NodeIt tmp1(g, s);
-  ++tmp1;
-  if (tmp1 != INVALID) s = tmp1;
-
-  NodeIt tmp2(g, t);
-  ++tmp2;
-  if (tmp2 != INVALID) t = tmp2;
-
-  max_flow.source(s);
-  max_flow.target(t);
-
-  max_flow.run();
-
-  CutMap min_cut3(g);
-  max_flow.minCutMap(min_cut3);
-  min_cut_value=cutValue(g, min_cut3, cap);
-
-  check(max_flow.flowValue() == min_cut_value,
-        "The max flow value or the min cut value is wrong.");
-}
-
-// Struct for calling start functions of a general max flow algorithm
-template <typename MF>
-struct GeneralStartFunctions {
-
-  static void startFirstPhase(MF& mf) {
-    mf.start();
-  }
-
-  static void startSecondPhase(MF& mf) {
-    ::lemon::ignore_unused_variable_warning(mf);
-  }
-
-};
-
-// Struct for calling start functions of Preflow
-template <typename MF>
-struct PreflowStartFunctions {
-
-  static void startFirstPhase(MF& mf) {
-    mf.startFirstPhase();
-  }
-
-  static void startSecondPhase(MF& mf) {
-    mf.startSecondPhase();
-  }
-
-};
-
-int main() {
-
-  typedef concepts::Digraph GR;
-  typedef concepts::ReadMap<GR::Arc, int> CM1;
-  typedef concepts::ReadMap<GR::Arc, double> CM2;
-
-  // Check the interface of Preflow
-  checkConcept< MaxFlowClassConcept<GR, CM1>,
-                Preflow<GR, CM1> >();
-  checkConcept< MaxFlowClassConcept<GR, CM2>,
-                Preflow<GR, CM2> >();
-
-  // Check the interface of EdmondsKarp
-  checkConcept< MaxFlowClassConcept<GR, CM1>,
-                EdmondsKarp<GR, CM1> >();
-  checkConcept< MaxFlowClassConcept<GR, CM2>,
-                EdmondsKarp<GR, CM2> >();
-
-  // Check Preflow
-  typedef Preflow<SmartDigraph, SmartDigraph::ArcMap<int> > PType1;
-  typedef Preflow<SmartDigraph, SmartDigraph::ArcMap<float> > PType2;
-  checkMaxFlowAlg<PType1, PreflowStartFunctions<PType1> >();
-  checkMaxFlowAlg<PType2, PreflowStartFunctions<PType2> >();
-  initFlowTest();
-
-  // Check EdmondsKarp
-  typedef EdmondsKarp<SmartDigraph, SmartDigraph::ArcMap<int> > EKType1;
-  typedef EdmondsKarp<SmartDigraph, SmartDigraph::ArcMap<float> > EKType2;
-  checkMaxFlowAlg<EKType1, GeneralStartFunctions<EKType1> >();
-  checkMaxFlowAlg<EKType2, GeneralStartFunctions<EKType2> >();
-
-  initFlowTest();
-
-  return 0;
-}
Index: test/min_cost_arborescence_test.cc
===================================================================
--- test/min_cost_arborescence_test.cc	(revision 1270)
+++ test/min_cost_arborescence_test.cc	(revision 1173)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -92,5 +92,5 @@
   VType c;
   bool b;
-  ::lemon::ignore_unused_variable_warning(c,b);
+  ignore_unused_variable_warning(c,b);
   int i;
   CostMap cost;
@@ -128,6 +128,6 @@
   c = const_mcarb_test.dualValue(i);
 
-  ::lemon::ignore_unused_variable_warning(am);
-  ::lemon::ignore_unused_variable_warning(pm);
+  ignore_unused_variable_warning(am);
+  ignore_unused_variable_warning(pm);
 }
 
Index: test/min_cost_flow_test.cc
===================================================================
--- test/min_cost_flow_test.cc	(revision 1270)
+++ test/min_cost_flow_test.cc	(revision 956)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
Index: test/min_mean_cycle_test.cc
===================================================================
--- test/min_mean_cycle_test.cc	(revision 1270)
+++ test/min_mean_cycle_test.cc	(revision 1178)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -211,5 +211,5 @@
     checkMmcAlg<HowardMmc<GR, IntArcMap> >(gr, l3, c3,  0, 1);
     checkMmcAlg<HowardMmc<GR, IntArcMap> >(gr, l4, c4, -1, 1);
-
+    
     // Howard with iteration limit
     HowardMmc<GR, IntArcMap> mmc(gr, l1);
Index: test/nagamochi_ibaraki_test.cc
===================================================================
--- test/nagamochi_ibaraki_test.cc	(revision 1270)
+++ test/nagamochi_ibaraki_test.cc	(revision 1177)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -66,5 +66,5 @@
   Value v;
   bool b;
-  ::lemon::ignore_unused_variable_warning(v,b);
+  ignore_unused_variable_warning(v,b);
 
   NagamochiIbaraki<Graph, CapMap> ni_test(g, cap);
Index: test/path_test.cc
===================================================================
--- test/path_test.cc	(revision 1270)
+++ test/path_test.cc	(revision 1144)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2009
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -22,5 +22,4 @@
 #include <lemon/concepts/path.h>
 #include <lemon/concepts/digraph.h>
-#include <lemon/concept_check.h>
 
 #include <lemon/path.h>
@@ -32,307 +31,42 @@
 using namespace lemon;
 
-template <typename GR>
-void checkConcepts() {
-  checkConcept<concepts::Path<GR>, concepts::Path<GR> >();
-  checkConcept<concepts::Path<GR>, Path<GR> >();
-  checkConcept<concepts::Path<GR>, SimplePath<GR> >();
-  checkConcept<concepts::Path<GR>, StaticPath<GR> >();
-  checkConcept<concepts::Path<GR>, ListPath<GR> >();
-}
-
-// Conecpt checking for path structures
-void checkPathConcepts() {
-  checkConcepts<concepts::Digraph>();
-  checkConcepts<ListDigraph>();
+void check_concepts() {
+  checkConcept<concepts::Path<ListDigraph>, concepts::Path<ListDigraph> >();
+  checkConcept<concepts::Path<ListDigraph>, Path<ListDigraph> >();
+  checkConcept<concepts::Path<ListDigraph>, SimplePath<ListDigraph> >();
+  checkConcept<concepts::Path<ListDigraph>, StaticPath<ListDigraph> >();
+  checkConcept<concepts::Path<ListDigraph>, ListPath<ListDigraph> >();
 }
 
 // Check if proper copy consructor is called (use valgrind for testing)
-template <typename GR, typename P1, typename P2>
-void checkCopy(typename GR::Arc a) {
-  P1 p;
+template<class _Path>
+void checkCopy()
+{
+  ListDigraph g;
+  ListDigraph::Arc a  = g.addArc(g.addNode(), g.addNode());
+  
+  _Path p,q;
   p.addBack(a);
-  P1 q;
-  q = p;
-  P1 r(p);
-  P2 q2;
-  q2 = p;
-  P2 r2(p);
+  q=p;
+  _Path r(p);
+  StaticPath<ListDigraph> s(r);
 }
+  
+int main() {
+  check_concepts();
 
-// Tests for copy constructors and assignment operators of paths
-void checkPathCopy() {
+  checkCopy<Path<ListDigraph> >();
+  checkCopy<SimplePath<ListDigraph> >();
+  checkCopy<ListPath<ListDigraph> >();
+
   ListDigraph g;
-  ListDigraph::Arc a = g.addArc(g.addNode(), g.addNode());
-
-  typedef Path<ListDigraph> Path1;
-  typedef SimplePath<ListDigraph> Path2;
-  typedef ListPath<ListDigraph> Path3;
-  typedef StaticPath<ListDigraph> Path4;
-  checkCopy<ListDigraph, Path1, Path2>(a);
-  checkCopy<ListDigraph, Path1, Path3>(a);
-  checkCopy<ListDigraph, Path1, Path4>(a);
-  checkCopy<ListDigraph, Path2, Path1>(a);
-  checkCopy<ListDigraph, Path2, Path3>(a);
-  checkCopy<ListDigraph, Path2, Path4>(a);
-  checkCopy<ListDigraph, Path3, Path1>(a);
-  checkCopy<ListDigraph, Path3, Path2>(a);
-  checkCopy<ListDigraph, Path3, Path4>(a);
-}
-
-// Class for testing path functions
-class CheckPathFunctions {
-  typedef ListDigraph GR;
-  DIGRAPH_TYPEDEFS(GR);
-  GR gr;
-  const GR& cgr;
-  Node n1, n2, n3, n4;
-  Node tmp_n;
-  Arc a1, a2, a3, a4;
-  Arc tmp_a;
-
-public:
-
-  CheckPathFunctions() : cgr(gr) {
-    n1 = gr.addNode();
-    n2 = gr.addNode();
-    n3 = gr.addNode();
-    n4 = gr.addNode();
-    a1 = gr.addArc(n1, n2);
-    a2 = gr.addArc(n2, n3);
-    a3 = gr.addArc(n3, n4);
-    a4 = gr.addArc(n4, n1);
-  }
-
-  void run() {
-    checkBackAndFrontInsertablePath<Path<GR> >();
-    checkBackAndFrontInsertablePath<ListPath<GR> >();
-    checkBackInsertablePath<SimplePath<GR> >();
-
-    checkListPathSplitAndSplice();
-  }
-
-private:
-
-  template <typename P>
-  void checkBackInsertablePath() {
-
-    // Create and check empty path
-    P p;
-    const P& cp = p;
-    check(cp.empty(), "The path is not empty");
-    check(cp.length() == 0, "The path is not empty");
-//    check(cp.front() == INVALID, "Wrong front()");
-//    check(cp.back() == INVALID, "Wrong back()");
-    typename P::ArcIt ai(cp);
-    check(ai == INVALID, "Wrong ArcIt");
-    check(pathSource(cgr, cp) == INVALID, "Wrong pathSource()");
-    check(pathTarget(cgr, cp) == INVALID, "Wrong pathTarget()");
-    check(checkPath(cgr, cp), "Wrong checkPath()");
-    PathNodeIt<P> ni(cgr, cp);
-    check(ni == INVALID, "Wrong PathNodeIt");
-
-    // Check single-arc path
-    p.addBack(a1);
-    check(!cp.empty(), "Wrong empty()");
-    check(cp.length() == 1, "Wrong length");
-    check(cp.front() == a1, "Wrong front()");
-    check(cp.back() == a1, "Wrong back()");
-    check(cp.nth(0) == a1, "Wrong nth()");
-    ai = cp.nthIt(0);
-    check((tmp_a = ai) == a1, "Wrong nthIt()");
-    check(++ai == INVALID, "Wrong nthIt()");
-    typename P::ArcIt ai2(cp);
-    check((tmp_a = ai2) == a1, "Wrong ArcIt");
-    check(++ai2 == INVALID, "Wrong ArcIt");
-    check(pathSource(cgr, cp) == n1, "Wrong pathSource()");
-    check(pathTarget(cgr, cp) == n2, "Wrong pathTarget()");
-    check(checkPath(cgr, cp), "Wrong checkPath()");
-    PathNodeIt<P> ni2(cgr, cp);
-    check((tmp_n = ni2) == n1, "Wrong PathNodeIt");
-    check((tmp_n = ++ni2) == n2, "Wrong PathNodeIt");
-    check(++ni2 == INVALID, "Wrong PathNodeIt");
-
-    // Check adding more arcs
-    p.addBack(a2);
-    p.addBack(a3);
-    check(!cp.empty(), "Wrong empty()");
-    check(cp.length() == 3, "Wrong length");
-    check(cp.front() == a1, "Wrong front()");
-    check(cp.back() == a3, "Wrong back()");
-    check(cp.nth(0) == a1, "Wrong nth()");
-    check(cp.nth(1) == a2, "Wrong nth()");
-    check(cp.nth(2) == a3, "Wrong nth()");
-    typename P::ArcIt ai3(cp);
-    check((tmp_a = ai3) == a1, "Wrong ArcIt");
-    check((tmp_a = ++ai3) == a2, "Wrong nthIt()");
-    check((tmp_a = ++ai3) == a3, "Wrong nthIt()");
-    check(++ai3 == INVALID, "Wrong nthIt()");
-    ai = cp.nthIt(0);
-    check((tmp_a = ai) == a1, "Wrong nthIt()");
-    check((tmp_a = ++ai) == a2, "Wrong nthIt()");
-    ai = cp.nthIt(2);
-    check((tmp_a = ai) == a3, "Wrong nthIt()");
-    check(++ai == INVALID, "Wrong nthIt()");
-    check(pathSource(cgr, cp) == n1, "Wrong pathSource()");
-    check(pathTarget(cgr, cp) == n4, "Wrong pathTarget()");
-    check(checkPath(cgr, cp), "Wrong checkPath()");
-    PathNodeIt<P> ni3(cgr, cp);
-    check((tmp_n = ni3) == n1, "Wrong PathNodeIt");
-    check((tmp_n = ++ni3) == n2, "Wrong PathNodeIt");
-    check((tmp_n = ++ni3) == n3, "Wrong PathNodeIt");
-    check((tmp_n = ++ni3) == n4, "Wrong PathNodeIt");
-    check(++ni3 == INVALID, "Wrong PathNodeIt");
-
-    // Check arc removal and addition
-    p.eraseBack();
-    p.eraseBack();
-    p.addBack(a2);
-    check(!cp.empty(), "Wrong empty()");
-    check(cp.length() == 2, "Wrong length");
-    check(cp.front() == a1, "Wrong front()");
-    check(cp.back() == a2, "Wrong back()");
-    check(pathSource(cgr, cp) == n1, "Wrong pathSource()");
-    check(pathTarget(cgr, cp) == n3, "Wrong pathTarget()");
-    check(checkPath(cgr, cp), "Wrong checkPath()");
-
-    // Check clear()
-    p.clear();
-    check(cp.empty(), "The path is not empty");
-    check(cp.length() == 0, "The path is not empty");
-
-    // Check inconsistent path
-    p.addBack(a4);
-    p.addBack(a2);
-    p.addBack(a1);
-    check(!cp.empty(), "Wrong empty()");
-    check(cp.length() == 3, "Wrong length");
-    check(cp.front() == a4, "Wrong front()");
-    check(cp.back() == a1, "Wrong back()");
-    check(pathSource(cgr, cp) == n4, "Wrong pathSource()");
-    check(pathTarget(cgr, cp) == n2, "Wrong pathTarget()");
-    check(!checkPath(cgr, cp), "Wrong checkPath()");
-  }
-
-  template <typename P>
-  void checkBackAndFrontInsertablePath() {
-
-    // Include back insertable test cases
-    checkBackInsertablePath<P>();
-
-    // Check front and back insertion
-    P p;
-    const P& cp = p;
-    p.addFront(a4);
-    p.addBack(a1);
-    p.addFront(a3);
-    check(!cp.empty(), "Wrong empty()");
-    check(cp.length() == 3, "Wrong length");
-    check(cp.front() == a3, "Wrong front()");
-    check(cp.back() == a1, "Wrong back()");
-    check(cp.nth(0) == a3, "Wrong nth()");
-    check(cp.nth(1) == a4, "Wrong nth()");
-    check(cp.nth(2) == a1, "Wrong nth()");
-    typename P::ArcIt ai(cp);
-    check((tmp_a = ai) == a3, "Wrong ArcIt");
-    check((tmp_a = ++ai) == a4, "Wrong nthIt()");
-    check((tmp_a = ++ai) == a1, "Wrong nthIt()");
-    check(++ai == INVALID, "Wrong nthIt()");
-    ai = cp.nthIt(0);
-    check((tmp_a = ai) == a3, "Wrong nthIt()");
-    check((tmp_a = ++ai) == a4, "Wrong nthIt()");
-    ai = cp.nthIt(2);
-    check((tmp_a = ai) == a1, "Wrong nthIt()");
-    check(++ai == INVALID, "Wrong nthIt()");
-    check(pathSource(cgr, cp) == n3, "Wrong pathSource()");
-    check(pathTarget(cgr, cp) == n2, "Wrong pathTarget()");
-    check(checkPath(cgr, cp), "Wrong checkPath()");
-
-    // Check eraseFront()
-    p.eraseFront();
-    p.addBack(a2);
-    check(!cp.empty(), "Wrong empty()");
-    check(cp.length() == 3, "Wrong length");
-    check(cp.front() == a4, "Wrong front()");
-    check(cp.back() == a2, "Wrong back()");
-    check(cp.nth(0) == a4, "Wrong nth()");
-    check(cp.nth(1) == a1, "Wrong nth()");
-    check(cp.nth(2) == a2, "Wrong nth()");
-    typename P::ArcIt ai2(cp);
-    check((tmp_a = ai2) == a4, "Wrong ArcIt");
-    check((tmp_a = ++ai2) == a1, "Wrong nthIt()");
-    check((tmp_a = ++ai2) == a2, "Wrong nthIt()");
-    check(++ai2 == INVALID, "Wrong nthIt()");
-    ai = cp.nthIt(0);
-    check((tmp_a = ai) == a4, "Wrong nthIt()");
-    check((tmp_a = ++ai) == a1, "Wrong nthIt()");
-    ai = cp.nthIt(2);
-    check((tmp_a = ai) == a2, "Wrong nthIt()");
-    check(++ai == INVALID, "Wrong nthIt()");
-    check(pathSource(cgr, cp) == n4, "Wrong pathSource()");
-    check(pathTarget(cgr, cp) == n3, "Wrong pathTarget()");
-    check(checkPath(cgr, cp), "Wrong checkPath()");
-  }
-
-  void checkListPathSplitAndSplice() {
-
-    // Build a path with spliceFront() and spliceBack()
-    ListPath<GR> p1, p2, p3, p4;
-    p1.addBack(a3);
-    p1.addFront(a2);
-    p2.addBack(a1);
-    p1.spliceFront(p2);
-    p3.addFront(a4);
-    p1.spliceBack(p3);
-    check(p1.length() == 4, "Wrong length");
-    check(p1.front() == a1, "Wrong front()");
-    check(p1.back() == a4, "Wrong back()");
-    ListPath<GR>::ArcIt ai(p1);
-    check((tmp_a = ai) == a1, "Wrong ArcIt");
-    check((tmp_a = ++ai) == a2, "Wrong nthIt()");
-    check((tmp_a = ++ai) == a3, "Wrong nthIt()");
-    check((tmp_a = ++ai) == a4, "Wrong nthIt()");
-    check(++ai == INVALID, "Wrong nthIt()");
-    check(checkPath(cgr, p1), "Wrong checkPath()");
-
-    // Check split()
-    p1.split(p1.nthIt(2), p2);
-    check(p1.length() == 2, "Wrong length");
-    ai = p1.nthIt(0);
-    check((tmp_a = ai) == a1, "Wrong ArcIt");
-    check((tmp_a = ++ai) == a2, "Wrong nthIt()");
-    check(++ai == INVALID, "Wrong nthIt()");
-    check(checkPath(cgr, p1), "Wrong checkPath()");
-    check(p2.length() == 2, "Wrong length");
-    ai = p2.nthIt(0);
-    check((tmp_a = ai) == a3, "Wrong ArcIt");
-    check((tmp_a = ++ai) == a4, "Wrong nthIt()");
-    check(++ai == INVALID, "Wrong nthIt()");
-    check(checkPath(cgr, p2), "Wrong checkPath()");
-
-    // Check split() and splice()
-    p1.spliceFront(p2);
-    p1.split(p1.nthIt(2), p2);
-    p2.split(p2.nthIt(1), p3);
-    p2.spliceBack(p1);
-    p2.splice(p2.nthIt(1), p3);
-    check(p2.length() == 4, "Wrong length");
-    check(p2.front() == a1, "Wrong front()");
-    check(p2.back() == a4, "Wrong back()");
-    ai = p2.nthIt(0);
-    check((tmp_a = ai) == a1, "Wrong ArcIt");
-    check((tmp_a = ++ai) == a2, "Wrong nthIt()");
-    check((tmp_a = ++ai) == a3, "Wrong nthIt()");
-    check((tmp_a = ++ai) == a4, "Wrong nthIt()");
-    check(++ai == INVALID, "Wrong nthIt()");
-    check(checkPath(cgr, p2), "Wrong checkPath()");
-  }
-
-};
-
-int main() {
-  checkPathConcepts();
-  checkPathCopy();
-  CheckPathFunctions cpf;
-  cpf.run();
+  ListDigraph::Arc a  = g.addArc(g.addNode(), g.addNode());
+  
+  Path<ListDigraph> p;
+  StaticPath<ListDigraph> q,r;
+  p.addBack(a);
+  q=p;
+  r=q;
+  StaticPath<ListDigraph> s(q);
 
   return 0;
Index: test/preflow_test.cc
===================================================================
--- test/preflow_test.cc	(revision 1173)
+++ test/preflow_test.cc	(revision 1173)
@@ -0,0 +1,277 @@
+/* -*- mode: C++; indent-tabs-mode: nil; -*-
+ *
+ * This file is a part of LEMON, a generic C++ optimization library.
+ *
+ * Copyright (C) 2003-2010
+ * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
+ * (Egervary Research Group on Combinatorial Optimization, EGRES).
+ *
+ * Permission to use, modify and distribute this software is granted
+ * provided that this copyright notice appears in all copies. For
+ * precise terms see the accompanying LICENSE file.
+ *
+ * This software is provided "AS IS" with no warranty of any kind,
+ * express or implied, and with no claim as to its suitability for any
+ * purpose.
+ *
+ */
+
+#include <iostream>
+
+#include "test_tools.h"
+#include <lemon/smart_graph.h>
+#include <lemon/preflow.h>
+#include <lemon/concepts/digraph.h>
+#include <lemon/concepts/maps.h>
+#include <lemon/lgf_reader.h>
+#include <lemon/elevator.h>
+
+using namespace lemon;
+
+char test_lgf[] =
+  "@nodes\n"
+  "label\n"
+  "0\n"
+  "1\n"
+  "2\n"
+  "3\n"
+  "4\n"
+  "5\n"
+  "6\n"
+  "7\n"
+  "8\n"
+  "9\n"
+  "@arcs\n"
+  "    label capacity\n"
+  "0 1 0     20\n"
+  "0 2 1     0\n"
+  "1 1 2     3\n"
+  "1 2 3     8\n"
+  "1 3 4     8\n"
+  "2 5 5     5\n"
+  "3 2 6     5\n"
+  "3 5 7     5\n"
+  "3 6 8     5\n"
+  "4 3 9     3\n"
+  "5 7 10    3\n"
+  "5 6 11    10\n"
+  "5 8 12    10\n"
+  "6 8 13    8\n"
+  "8 9 14    20\n"
+  "8 1 15    5\n"
+  "9 5 16    5\n"
+  "@attributes\n"
+  "source 1\n"
+  "target 8\n";
+
+void checkPreflowCompile()
+{
+  typedef int VType;
+  typedef concepts::Digraph Digraph;
+
+  typedef Digraph::Node Node;
+  typedef Digraph::Arc Arc;
+  typedef concepts::ReadMap<Arc,VType> CapMap;
+  typedef concepts::ReadWriteMap<Arc,VType> FlowMap;
+  typedef concepts::WriteMap<Node,bool> CutMap;
+
+  typedef Elevator<Digraph, Digraph::Node> Elev;
+  typedef LinkedElevator<Digraph, Digraph::Node> LinkedElev;
+
+  Digraph g;
+  Node n;
+  Arc e;
+  CapMap cap;
+  FlowMap flow;
+  CutMap cut;
+  VType v;
+  bool b;
+  ignore_unused_variable_warning(v,b);
+
+  typedef Preflow<Digraph, CapMap>
+            ::SetFlowMap<FlowMap>
+            ::SetElevator<Elev>
+            ::SetStandardElevator<LinkedElev>
+            ::Create PreflowType;
+  PreflowType preflow_test(g, cap, n, n);
+  const PreflowType& const_preflow_test = preflow_test;
+
+  const PreflowType::Elevator& elev = const_preflow_test.elevator();
+  preflow_test.elevator(const_cast<PreflowType::Elevator&>(elev));
+  PreflowType::Tolerance tol = const_preflow_test.tolerance();
+  preflow_test.tolerance(tol);
+
+  preflow_test
+    .capacityMap(cap)
+    .flowMap(flow)
+    .source(n)
+    .target(n);
+
+  preflow_test.init();
+  preflow_test.init(cap);
+  preflow_test.startFirstPhase();
+  preflow_test.startSecondPhase();
+  preflow_test.run();
+  preflow_test.runMinCut();
+
+  v = const_preflow_test.flowValue();
+  v = const_preflow_test.flow(e);
+  const FlowMap& fm = const_preflow_test.flowMap();
+  b = const_preflow_test.minCut(n);
+  const_preflow_test.minCutMap(cut);
+
+  ignore_unused_variable_warning(fm);
+}
+
+int cutValue (const SmartDigraph& g,
+              const SmartDigraph::NodeMap<bool>& cut,
+              const SmartDigraph::ArcMap<int>& cap) {
+
+  int c=0;
+  for(SmartDigraph::ArcIt e(g); e!=INVALID; ++e) {
+    if (cut[g.source(e)] && !cut[g.target(e)]) c+=cap[e];
+  }
+  return c;
+}
+
+bool checkFlow(const SmartDigraph& g,
+               const SmartDigraph::ArcMap<int>& flow,
+               const SmartDigraph::ArcMap<int>& cap,
+               SmartDigraph::Node s, SmartDigraph::Node t) {
+
+  for (SmartDigraph::ArcIt e(g); e != INVALID; ++e) {
+    if (flow[e] < 0 || flow[e] > cap[e]) return false;
+  }
+
+  for (SmartDigraph::NodeIt n(g); n != INVALID; ++n) {
+    if (n == s || n == t) continue;
+    int sum = 0;
+    for (SmartDigraph::OutArcIt e(g, n); e != INVALID; ++e) {
+      sum += flow[e];
+    }
+    for (SmartDigraph::InArcIt e(g, n); e != INVALID; ++e) {
+      sum -= flow[e];
+    }
+    if (sum != 0) return false;
+  }
+  return true;
+}
+
+void initFlowTest()
+{
+  DIGRAPH_TYPEDEFS(SmartDigraph);
+  
+  SmartDigraph g;
+  SmartDigraph::ArcMap<int> cap(g),iflow(g);
+  Node s=g.addNode(); Node t=g.addNode();
+  Node n1=g.addNode(); Node n2=g.addNode();
+  Arc a;
+  a=g.addArc(s,n1); cap[a]=20; iflow[a]=20;
+  a=g.addArc(n1,n2); cap[a]=10; iflow[a]=0;
+  a=g.addArc(n2,t); cap[a]=20; iflow[a]=0;
+
+  Preflow<SmartDigraph> pre(g,cap,s,t);
+  pre.init(iflow);
+  pre.startFirstPhase();
+  check(pre.flowValue() == 10, "The incorrect max flow value.");
+  check(pre.minCut(s), "Wrong min cut (Node s).");
+  check(pre.minCut(n1), "Wrong min cut (Node n1).");
+  check(!pre.minCut(n2), "Wrong min cut (Node n2).");
+  check(!pre.minCut(t), "Wrong min cut (Node t).");
+}
+
+
+int main() {
+
+  typedef SmartDigraph Digraph;
+
+  typedef Digraph::Node Node;
+  typedef Digraph::NodeIt NodeIt;
+  typedef Digraph::ArcIt ArcIt;
+  typedef Digraph::ArcMap<int> CapMap;
+  typedef Digraph::ArcMap<int> FlowMap;
+  typedef Digraph::NodeMap<bool> CutMap;
+
+  typedef Preflow<Digraph, CapMap> PType;
+
+  Digraph g;
+  Node s, t;
+  CapMap cap(g);
+  std::istringstream input(test_lgf);
+  DigraphReader<Digraph>(g,input).
+    arcMap("capacity", cap).
+    node("source",s).
+    node("target",t).
+    run();
+
+  PType preflow_test(g, cap, s, t);
+  preflow_test.run();
+
+  check(checkFlow(g, preflow_test.flowMap(), cap, s, t),
+        "The flow is not feasible.");
+
+  CutMap min_cut(g);
+  preflow_test.minCutMap(min_cut);
+  int min_cut_value=cutValue(g,min_cut,cap);
+
+  check(preflow_test.flowValue() == min_cut_value,
+        "The max flow value is not equal to the three min cut values.");
+
+  FlowMap flow(g);
+  for(ArcIt e(g); e!=INVALID; ++e) flow[e] = preflow_test.flowMap()[e];
+
+  int flow_value=preflow_test.flowValue();
+
+  for(ArcIt e(g); e!=INVALID; ++e) cap[e]=2*cap[e];
+  preflow_test.init(flow);
+  preflow_test.startFirstPhase();
+
+  CutMap min_cut1(g);
+  preflow_test.minCutMap(min_cut1);
+  min_cut_value=cutValue(g,min_cut1,cap);
+
+  check(preflow_test.flowValue() == min_cut_value &&
+        min_cut_value == 2*flow_value,
+        "The max flow value or the min cut value is wrong.");
+
+  preflow_test.startSecondPhase();
+
+  check(checkFlow(g, preflow_test.flowMap(), cap, s, t),
+        "The flow is not feasible.");
+
+  CutMap min_cut2(g);
+  preflow_test.minCutMap(min_cut2);
+  min_cut_value=cutValue(g,min_cut2,cap);
+
+  check(preflow_test.flowValue() == min_cut_value &&
+        min_cut_value == 2*flow_value,
+        "The max flow value or the three min cut values were not doubled");
+
+
+  preflow_test.flowMap(flow);
+
+  NodeIt tmp1(g,s);
+  ++tmp1;
+  if ( tmp1 != INVALID ) s=tmp1;
+
+  NodeIt tmp2(g,t);
+  ++tmp2;
+  if ( tmp2 != INVALID ) t=tmp2;
+
+  preflow_test.source(s);
+  preflow_test.target(t);
+
+  preflow_test.run();
+
+  CutMap min_cut3(g);
+  preflow_test.minCutMap(min_cut3);
+  min_cut_value=cutValue(g,min_cut3,cap);
+
+
+  check(preflow_test.flowValue() == min_cut_value,
+        "The max flow value or the three min cut values are incorrect.");
+
+  initFlowTest();
+  
+  return 0;
+}
Index: test/radix_sort_test.cc
===================================================================
--- test/radix_sort_test.cc	(revision 1270)
+++ test/radix_sort_test.cc	(revision 1211)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2009
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -53,5 +53,5 @@
 template<class T>
 T listsort(typename T::iterator b, typename T::iterator e)
-{
+{ 
   if(b==e) return T();
   typename T::iterator bn=b;
Index: test/suurballe_test.cc
===================================================================
--- test/suurballe_test.cc	(revision 1270)
+++ test/suurballe_test.cc	(revision 1173)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -118,5 +118,5 @@
   int f;
   VType c;
-  ::lemon::ignore_unused_variable_warning(f,c);
+  ignore_unused_variable_warning(f,c);
 
   c = const_suurb_test.totalLength();
@@ -130,6 +130,6 @@
   Path<Digraph> p = const_suurb_test.path(k);
 
-  ::lemon::ignore_unused_variable_warning(fm);
-  ::lemon::ignore_unused_variable_warning(pm);
+  ignore_unused_variable_warning(fm);
+  ignore_unused_variable_warning(pm);
 }
 
Index: test/time_measure_test.cc
===================================================================
--- test/time_measure_test.cc	(revision 1270)
+++ test/time_measure_test.cc	(revision 1157)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2009
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -36,5 +36,5 @@
     {
       TimeStamp x(T);
-      ::lemon::ignore_unused_variable_warning(x);
+      ignore_unused_variable_warning(x);
     }
 }
Index: test/tsp_test.cc
===================================================================
--- test/tsp_test.cc	(revision 1271)
+++ test/tsp_test.cc	(revision 1205)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -42,5 +42,5 @@
 //   check(checkMetricCost(g, constMap<Edge>(1)), "Wrong checkMetricCost()");
 //   check(!checkMetricCost(g, constMap<Edge>(-1)), "Wrong checkMetricCost()");
-//
+//   
 //   FullGraph::EdgeMap<float> cost(g);
 //   for (NodeIt u(g); u != INVALID; ++u) {
@@ -65,14 +65,13 @@
 bool checkTour(const FullGraph &gr, const Container &p) {
   FullGraph::NodeMap<bool> used(gr, false);
-
+  
   int node_cnt = 0;
-  for (typename Container::const_iterator it = p.begin(); it != p.end(); ++it)
-    {
-      FullGraph::Node node = *it;
-      if (used[node]) return false;
-      used[node] = true;
-      ++node_cnt;
-    }
-
+  for (typename Container::const_iterator it = p.begin(); it != p.end(); ++it) {
+    FullGraph::Node node = *it;
+    if (used[node]) return false;
+    used[node] = true;
+    ++node_cnt;
+  }
+  
   return (node_cnt == gr.nodeNum());
 }
@@ -81,5 +80,5 @@
 bool checkTourPath(const FullGraph &gr, const Path<FullGraph> &p) {
   FullGraph::NodeMap<bool> used(gr, false);
-
+  
   if (!checkPath(gr, p)) return false;
   if (gr.nodeNum() <= 1 && p.length() != 0) return false;
@@ -183,5 +182,5 @@
       }
     }
-
+    
     check(alg.run() > 0, alg_name + ": Wrong total cost");
 
@@ -197,5 +196,5 @@
     check(checkCost(g, path, cost, alg.tourCost()),
       alg_name + ": Wrong tour cost");
-
+    
     check(!Tolerance<double>().less(alg.tourCost(), opt2.run(alg.tourNodes())),
       "2-opt improvement: Wrong total cost");
@@ -204,5 +203,5 @@
     check(checkCost(g, opt2.tourNodes(), cost, opt2.tourCost()),
       "2-opt improvement: Wrong tour cost");
-
+    
     check(!Tolerance<double>().less(alg.tourCost(), opt2.run(path)),
       "2-opt improvement: Wrong total cost");
@@ -214,5 +213,5 @@
 }
 
-// Algorithm class for Nearest Insertion
+// Algorithm class for Nearest Insertion 
 template <typename CM>
 class NearestInsertionTsp : public InsertionTsp<CM> {
@@ -225,5 +224,5 @@
 };
 
-// Algorithm class for Farthest Insertion
+// Algorithm class for Farthest Insertion 
 template <typename CM>
 class FarthestInsertionTsp : public InsertionTsp<CM> {
@@ -236,5 +235,5 @@
 };
 
-// Algorithm class for Cheapest Insertion
+// Algorithm class for Cheapest Insertion 
 template <typename CM>
 class CheapestInsertionTsp : public InsertionTsp<CM> {
@@ -247,5 +246,5 @@
 };
 
-// Algorithm class for Random Insertion
+// Algorithm class for Random Insertion 
 template <typename CM>
 class RandomInsertionTsp : public InsertionTsp<CM> {
@@ -266,8 +265,6 @@
   tspTestSmall<GreedyTsp<ConstMap<Edge, int> > >("Greedy");
   tspTestSmall<NearestInsertionTsp<ConstMap<Edge, int> > >("Nearest Insertion");
-  tspTestSmall<FarthestInsertionTsp<ConstMap<Edge, int> > >
-    ("Farthest Insertion");
-  tspTestSmall<CheapestInsertionTsp<ConstMap<Edge, int> > >
-    ("Cheapest Insertion");
+  tspTestSmall<FarthestInsertionTsp<ConstMap<Edge, int> > >("Farthest Insertion");
+  tspTestSmall<CheapestInsertionTsp<ConstMap<Edge, int> > >("Cheapest Insertion");
   tspTestSmall<RandomInsertionTsp<ConstMap<Edge, int> > >("Random Insertion");
   tspTestSmall<ChristofidesTsp<ConstMap<Edge, int> > >("Christofides");
Index: tools/dimacs-solver.cc
===================================================================
--- tools/dimacs-solver.cc	(revision 1271)
+++ tools/dimacs-solver.cc	(revision 1169)
@@ -3,5 +3,5 @@
  * This file is a part of LEMON, a generic C++ optimization library.
  *
- * Copyright (C) 2003-2013
+ * Copyright (C) 2003-2010
  * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
  * (Egervary Research Group on Combinatorial Optimization, EGRES).
@@ -128,6 +128,5 @@
   if (report) {
     std::cerr << "Run NetworkSimplex: " << ti << "\n\n";
-    std::cerr << "Feasible flow: " << (res == MCF::OPTIMAL ? "found" :
-                                       "not found") << '\n';
+    std::cerr << "Feasible flow: " << (res == MCF::OPTIMAL ? "found" : "not found") << '\n';
     if (res) std::cerr << "Min flow cost: "
                        << ns.template totalCost<LargeValue>() << '\n';
