[Lemon-commits] Alpar Juttner: Merge >=1.2 branch heads

Lemon HG hg at lemon.cs.elte.hu
Sun Aug 11 22:38:35 CEST 2013


details:   http://lemon.cs.elte.hu/hg/lemon/rev/ad40f7d32846
changeset: 1284:ad40f7d32846
user:      Alpar Juttner <alpar [at] cs.elte.hu>
date:      Sun Aug 11 15:28:12 2013 +0200
description:
	Merge >=1.2 branch heads

diffstat:

 .hgignore                          |     1 +
 CMakeLists.txt                     |     2 +
 INSTALL                            |    22 +
 LICENSE                            |     2 +-
 Makefile.am                        |     1 +
 NEWS                               |   160 +-
 README                             |     8 +
 configure.ac                       |    17 +
 demo/arg_parser_demo.cc            |    13 +-
 doc/CMakeLists.txt                 |     5 +-
 doc/Doxyfile.in                    |     3 +-
 doc/Makefile.am                    |    17 +-
 doc/groups.dox                     |   242 ++-
 doc/images/matching.eps            |   130 +
 doc/images/planar.eps              |   181 ++
 doc/mainpage.dox.in                |    30 +-
 doc/min_cost_flow.dox              |    12 +-
 doc/references.bib                 |   301 +++
 lemon/Makefile.am                  |    16 +-
 lemon/adaptors.h                   |   108 +-
 lemon/arg_parser.cc                |    21 +-
 lemon/arg_parser.h                 |    56 +-
 lemon/bellman_ford.h               |  1115 ++++++++++++++
 lemon/bfs.h                        |   167 +-
 lemon/bin_heap.h                   |   220 +-
 lemon/binomial_heap.h              |   445 +++++
 lemon/bits/array_map.h             |     4 +-
 lemon/bits/default_map.h           |     4 +-
 lemon/bits/edge_set_extender.h     |   222 +-
 lemon/bits/graph_extender.h        |    10 +-
 lemon/bits/solver_bits.h           |     2 +-
 lemon/bits/windows.cc              |     4 +-
 lemon/bucket_heap.h                |   307 ++-
 lemon/capacity_scaling.h           |   990 ++++++++++++
 lemon/cbc.cc                       |    12 +
 lemon/cbc.h                        |     5 +-
 lemon/circulation.h                |    42 +-
 lemon/clp.cc                       |    15 +-
 lemon/clp.h                        |     5 +-
 lemon/concepts/digraph.h           |   347 ++--
 lemon/concepts/graph.h             |   670 ++++----
 lemon/concepts/graph_components.h  |    50 +-
 lemon/concepts/heap.h              |   176 +-
 lemon/concepts/path.h              |    85 +-
 lemon/connectivity.h               |    18 +-
 lemon/core.h                       |     7 +-
 lemon/cost_scaling.h               |  1316 +++++++++++++++++
 lemon/counter.h                    |     2 +-
 lemon/cplex.cc                     |    37 +-
 lemon/cplex.h                      |     1 +
 lemon/cycle_canceling.h            |  1170 +++++++++++++++
 lemon/dfs.h                        |   161 +-
 lemon/dheap.h                      |   352 ++++
 lemon/dijkstra.h                   |   138 +-
 lemon/dim2.h                       |    11 +-
 lemon/dimacs.h                     |    14 +-
 lemon/edge_set.h                   |    36 +-
 lemon/euler.h                      |    12 +-
 lemon/fib_heap.h                   |   243 +-
 lemon/fractional_matching.h        |  2139 +++++++++++++++++++++++++++
 lemon/full_graph.h                 |   128 +-
 lemon/glpk.cc                      |    38 +-
 lemon/glpk.h                       |    15 +-
 lemon/gomory_hu.h                  |   192 +-
 lemon/graph_to_eps.h               |    10 +-
 lemon/grid_graph.h                 |    74 +-
 lemon/hao_orlin.h                  |    37 +-
 lemon/hartmann_orlin_mmc.h         |   650 ++++++++
 lemon/howard_mmc.h                 |   605 +++++++
 lemon/hypercube_graph.h            |    39 +-
 lemon/karp_mmc.h                   |   590 +++++++
 lemon/lgf_reader.h                 |    18 +-
 lemon/lgf_writer.h                 |    16 +-
 lemon/list_graph.h                 |   491 +++--
 lemon/lp.h                         |     4 +-
 lemon/lp_base.cc                   |     2 +-
 lemon/lp_base.h                    |   116 +-
 lemon/lp_skeleton.cc               |     7 +-
 lemon/lp_skeleton.h                |     8 +-
 lemon/maps.h                       |  1387 +++++++++++++++++-
 lemon/matching.h                   |   935 +++++++----
 lemon/math.h                       |     4 +-
 lemon/min_cost_arborescence.h      |    21 +-
 lemon/network_simplex.h            |   504 ++++--
 lemon/pairing_heap.h               |   474 ++++++
 lemon/path.h                       |     8 +-
 lemon/planarity.h                  |  2754 ++++++++++++++++++++++++++++++++++++
 lemon/preflow.h                    |    42 +-
 lemon/quad_heap.h                  |   343 ++++
 lemon/radix_heap.h                 |   363 ++--
 lemon/smart_graph.h                |   346 ++--
 lemon/soplex.cc                    |    17 +-
 lemon/soplex.h                     |     3 +-
 lemon/static_graph.h               |   476 ++++++
 lemon/suurballe.h                  |   474 ++++-
 lemon/time_measure.h               |     2 +-
 lemon/unionfind.h                  |     4 +-
 scripts/Makefile.am                |     7 +
 scripts/bib2dox.py                 |   816 ++++++++++
 scripts/bootstrap.sh               |   157 ++
 scripts/chg-len.py                 |    14 +
 scripts/mk-release.sh              |    14 +
 scripts/unify-sources.sh           |    14 +
 scripts/valgrind-wrapper.sh        |    22 +
 test/CMakeLists.txt                |     4 +
 test/Makefile.am                   |    12 +
 test/adaptors_test.cc              |    87 +-
 test/bellman_ford_test.cc          |   289 +++
 test/bfs_test.cc                   |    12 +-
 test/circulation_test.cc           |    11 +-
 test/connectivity_test.cc          |    38 +-
 test/dfs_test.cc                   |     8 +-
 test/digraph_test.cc               |   134 +-
 test/dijkstra_test.cc              |    10 +-
 test/edge_set_test.cc              |     2 +-
 test/euler_test.cc                 |    12 +-
 test/fractional_matching_test.cc   |   527 ++++++
 test/gomory_hu_test.cc             |    26 +-
 test/graph_test.cc                 |    30 +-
 test/hao_orlin_test.cc             |    18 +-
 test/heap_test.cc                  |   106 +-
 test/maps_test.cc                  |   628 ++++++++-
 test/matching_test.cc              |    62 +-
 test/min_cost_arborescence_test.cc |     8 +-
 test/min_cost_flow_test.cc         |   412 +++--
 test/min_mean_cycle_test.cc        |   216 ++
 test/planarity_test.cc             |   262 +++
 test/preflow_test.cc               |     9 +-
 test/suurballe_test.cc             |    52 +-
 test/test_tools.h                  |    16 +-
 tools/dimacs-solver.cc             |    31 +-
 tools/lemon-0.x-to-1.x.sh          |     9 +-
 132 files changed, 23586 insertions(+), 3588 deletions(-)

diffs (truncated from 36123 to 300 lines):

diff --git a/.hgignore b/.hgignore
--- a/.hgignore
+++ b/.hgignore
@@ -22,6 +22,7 @@
 lemon/libemon.la
 lemon/stamp-h2
 doc/Doxyfile
+doc/references.dox
 cmake/version.cmake
 .dirstamp
 .libs/*
diff --git a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -114,6 +114,8 @@
 CHECK_TYPE_SIZE("long long" LONG_LONG)
 SET(LEMON_HAVE_LONG_LONG ${HAVE_LONG_LONG})
 
+INCLUDE(FindPythonInterp)
+
 ENABLE_TESTING()
 
 IF(${CMAKE_BUILD_TYPE} STREQUAL "Maintainer")
diff --git a/INSTALL b/INSTALL
--- a/INSTALL
+++ b/INSTALL
@@ -173,3 +173,25 @@
 --without-coin
 
    Disable COIN-OR support.
+
+
+Makefile Variables
+==================
+
+Some Makefile variables are reserved by the GNU Coding Standards for
+the use of the "user" - the person building the package. For instance,
+CXX and CXXFLAGS are such variables, and have the same meaning as
+explained in the previous section. These variables can be set on the
+command line when invoking `make' like this:
+`make [VARIABLE=VALUE]...'
+
+WARNINGCXXFLAGS is a non-standard Makefile variable introduced by us
+to hold several compiler flags related to warnings. Its default value
+can be overridden when invoking `make'. For example to disable all
+warning flags use `make WARNINGCXXFLAGS='.
+
+In order to turn off a single flag from the default set of warning
+flags, you can use the CXXFLAGS variable, since this is passed after
+WARNINGCXXFLAGS. For example to turn off `-Wold-style-cast' (which is
+used by default when g++ is detected) you can use
+`make CXXFLAGS="-g -O2 -Wno-old-style-cast"'.
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,7 +1,7 @@
 LEMON code without an explicit copyright notice is covered by the following
 copyright/license.
 
-Copyright (C) 2003-2009 Egervary Jeno Kombinatorikus Optimalizalasi
+Copyright (C) 2003-2010 Egervary Jeno Kombinatorikus Optimalizalasi
 Kutatocsoport (Egervary Combinatorial Optimization Research Group,
 EGRES).
 
diff --git a/Makefile.am b/Makefile.am
--- a/Makefile.am
+++ b/Makefile.am
@@ -44,6 +44,7 @@
 include test/Makefile.am
 include doc/Makefile.am
 include tools/Makefile.am
+include scripts/Makefile.am
 
 DIST_SUBDIRS = demo
 
diff --git a/NEWS b/NEWS
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,83 @@
+2010-03-19 Version 1.2 released
+
+        This is major feature release
+
+        * New algorithms
+          * Bellman-Ford algorithm (#51)
+          * Minimum mean cycle algorithms (#179)
+            * Karp, Hartman-Orlin and Howard algorithms
+          * New minimum cost flow algorithms (#180)
+            * Cost Scaling algorithms
+            * Capacity Scaling algorithm
+            * Cycle-Canceling algorithms
+          * Planarity related algorithms (#62)
+            * Planarity checking algorithm
+            * Planar embedding algorithm
+            * Schnyder's planar drawing algorithm
+            * Coloring planar graphs with five or six colors
+          * Fractional matching algorithms (#314)
+        * New data structures
+          * StaticDigraph structure (#68)
+          * Several new priority queue structures (#50, #301)
+            * Fibonacci, Radix, Bucket, Pairing, Binomial
+              D-ary and fourary heaps (#301)
+          * Iterable map structures (#73)
+        * Other new tools and functionality
+          * Map utility functions (#320)
+          * Reserve functions are added to ListGraph and SmartGraph (#311)
+          * A resize() function is added to HypercubeGraph (#311)
+          * A count() function is added to CrossRefMap (#302)
+          * Support for multiple targets in Suurballe using fullInit() (#181)
+          * Traits class and named parameters for Suurballe (#323)
+          * Separate reset() and resetParams() functions in NetworkSimplex
+            to handle graph changes (#327)
+          * tolerance() functions are added to HaoOrlin (#306)
+        * Implementation improvements
+          * Improvements in weighted matching algorithms (#314)
+            * Jumpstart initialization
+          * ArcIt iteration is based on out-arc lists instead of in-arc lists
+            in ListDigraph (#311)
+          * Faster add row operation in CbcMip (#203)
+          * Better implementation for split() in ListDigraph (#311)
+          * ArgParser can also throw exception instead of exit(1) (#332)
+        * Miscellaneous
+          * A simple interactive bootstrap script
+          * Doc improvements (#62,#180,#299,#302,#303,#304,#307,#311,#331,#315,
+                #316,#319)
+            * BibTeX references in the doc (#184)
+          * Optionally use valgrind when running tests
+          * Also check ReferenceMapTag in concept checks (#312)
+          * dimacs-solver uses long long type by default.
+        * Several bugfixes (compared to release 1.1):
+          #295: Suppress MSVC warnings using pragmas
+          ----: Various CMAKE related improvements
+                * Remove duplications from doc/CMakeLists.txt
+                * Rename documentation install folder from 'docs' to 'html'
+                * Add tools/CMakeLists.txt to the tarball
+                * Generate and install LEMONConfig.cmake
+                * Change the label of the html project in Visual Studio
+                * Fix the check for the 'long long' type
+                * Put the version string into config.h
+                * Minor CMake improvements
+                * Set the version to 'hg-tip' if everything fails
+          #311: Add missing 'explicit' keywords
+          #302: Fix the implementation and doc of CrossRefMap
+          #308: Remove duplicate list_graph.h entry from source list
+          #307: Bugfix in Preflow and Circulation
+          #305: Bugfix and extension in the rename script
+          #312: Also check ReferenceMapTag in concept checks
+          #250: Bugfix in pathSource() and pathTarget()
+          #321: Use pathCopy(from,to) instead of copyPath(to,from)
+          #322: Distribure LEMONConfig.cmake.in
+          #330: Bug fix in map_extender.h
+          #336: Fix the date field comment of graphToEps() output
+          #323: Bug fix in Suurballe
+          #335: Fix clear() function in ExtendFindEnum
+          #337: Use void* as the LPX object pointer
+          #317: Fix (and improve) error message in mip_test.cc
+                Remove unnecessary OsiCbc dependency
+          #356: Allow multiple executions of weighted matching algorithms (#356)
+
 2009-05-13 Version 1.1 released
 
         This is the second stable release of the 1.x series. It
@@ -72,7 +152,7 @@
           ----: Minor clarification in the LICENSE file
           ----: Add missing unistd.h include to time_measure.h
           #204: Compilation bug fixed in graph_to_eps.h with VS2005
-          #214,#215: windows.h should never be included by lemon headers
+          #214,#215: windows.h should never be included by LEMON headers
           #230: Build systems check the availability of 'long long' type
           #229: Default implementation of Tolerance<> is used for integer types
           #211,#212: Various fixes for compiling on AIX
@@ -94,51 +174,51 @@
 
 2008-10-13 Version 1.0 released
 
-	This is the first stable release of LEMON. Compared to the 0.x
-	release series, it features a considerably smaller but more
-	matured set of tools. The API has also completely revised and
-	changed in several places.
+        This is the first stable release of LEMON. Compared to the 0.x
+        release series, it features a considerably smaller but more
+        matured set of tools. The API has also completely revised and
+        changed in several places.
 
-	* The major name changes compared to the 0.x series (see the
+        * The major name changes compared to the 0.x series (see the
           Migration Guide in the doc for more details)
           * Graph -> Digraph, UGraph -> Graph
           * Edge -> Arc, UEdge -> Edge
-	  * source(UEdge)/target(UEdge) -> u(Edge)/v(Edge)
-	* Other improvements
-	  * Better documentation
-	  * Reviewed and cleaned up codebase
-	  * CMake based build system (along with the autotools based one)
-	* Contents of the library (ported from 0.x)
-	  * Algorithms
-       	    * breadth-first search (bfs.h)
-       	    * depth-first search (dfs.h)
-       	    * Dijkstra's algorithm (dijkstra.h)
-       	    * Kruskal's algorithm (kruskal.h)
-    	  * Data structures
-       	    * graph data structures (list_graph.h, smart_graph.h)
-       	    * path data structures (path.h)
-       	    * binary heap data structure (bin_heap.h)
-       	    * union-find data structures (unionfind.h)
-       	    * miscellaneous property maps (maps.h)
-       	    * two dimensional vector and bounding box (dim2.h)
+          * source(UEdge)/target(UEdge) -> u(Edge)/v(Edge)
+        * Other improvements
+          * Better documentation
+          * Reviewed and cleaned up codebase
+          * CMake based build system (along with the autotools based one)
+        * Contents of the library (ported from 0.x)
+          * Algorithms
+            * breadth-first search (bfs.h)
+            * depth-first search (dfs.h)
+            * Dijkstra's algorithm (dijkstra.h)
+            * Kruskal's algorithm (kruskal.h)
+          * Data structures
+            * graph data structures (list_graph.h, smart_graph.h)
+            * path data structures (path.h)
+            * binary heap data structure (bin_heap.h)
+            * union-find data structures (unionfind.h)
+            * miscellaneous property maps (maps.h)
+            * two dimensional vector and bounding box (dim2.h)
           * Concepts
-       	    * graph structure concepts (concepts/digraph.h, concepts/graph.h,
+            * graph structure concepts (concepts/digraph.h, concepts/graph.h,
               concepts/graph_components.h)
-       	    * concepts for other structures (concepts/heap.h, concepts/maps.h,
-	      concepts/path.h)
-    	  * Tools
-       	    * Mersenne twister random number generator (random.h)
-       	    * tools for measuring cpu and wall clock time (time_measure.h)
-       	    * tools for counting steps and events (counter.h)
-       	    * tool for parsing command line arguments (arg_parser.h)
-       	    * tool for visualizing graphs (graph_to_eps.h)
-       	    * tools for reading and writing data in LEMON Graph Format
+            * concepts for other structures (concepts/heap.h, concepts/maps.h,
+              concepts/path.h)
+          * Tools
+            * Mersenne twister random number generator (random.h)
+            * tools for measuring cpu and wall clock time (time_measure.h)
+            * tools for counting steps and events (counter.h)
+            * tool for parsing command line arguments (arg_parser.h)
+            * tool for visualizing graphs (graph_to_eps.h)
+            * tools for reading and writing data in LEMON Graph Format
               (lgf_reader.h, lgf_writer.h)
             * tools to handle the anomalies of calculations with
-	      floating point numbers (tolerance.h)
+              floating point numbers (tolerance.h)
             * tools to manage RGB colors (color.h)
-    	  * Infrastructure
-       	    * extended assertion handling (assert.h)
-       	    * exception classes and error handling (error.h)
-      	    * concept checking (concept_check.h)
-       	    * commonly used mathematical constants (math.h)
+          * Infrastructure
+            * extended assertion handling (assert.h)
+            * exception classes and error handling (error.h)
+            * concept checking (concept_check.h)
+            * commonly used mathematical constants (math.h)
diff --git a/README b/README
--- a/README
+++ b/README
@@ -17,6 +17,10 @@
 
    Copying, distribution and modification conditions and terms.
 
+NEWS
+
+   News and version history.
+
 INSTALL
 
    General building and installation instructions.
@@ -33,6 +37,10 @@
 
    Some example programs to make you easier to get familiar with LEMON.
 
+scripts/
+
+   Scripts that make it easier to develop LEMON.
+
 test/
 
    Programs to check the integrity and correctness of LEMON.
diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
@@ -41,6 +41,7 @@
 AC_PROG_LIBTOOL
 
 AC_CHECK_PROG([doxygen_found],[doxygen],[yes],[no])
+AC_CHECK_PROG([python_found],[python],[yes],[no])
 AC_CHECK_PROG([gs_found],[gs],[yes],[no])
 
 dnl Detect Intel compiler.
@@ -82,6 +83,21 @@
 fi


More information about the Lemon-commits mailing list