[Lemon-commits] Alpar Juttner: Merge #302

Lemon HG hg at lemon.cs.elte.hu
Sat Sep 26 07:12:02 CEST 2009


details:   http://lemon.cs.elte.hu/hg/lemon/rev/3fc2a801c39e
changeset: 779:3fc2a801c39e
user:      Alpar Juttner <alpar [at] cs.elte.hu>
date:      Sat Sep 26 07:08:10 2009 +0200
description:
	Merge #302

diffstat:

 doc/groups.dox                 |   157 ++++--
 lemon/Makefile.am              |     6 +-
 lemon/bellman_ford.h           |  1100 ++++++++++++++++++++++++++++++++++++++++++++
 lemon/bfs.h                    |   121 ++--
 lemon/bin_heap.h               |   220 ++++----
 lemon/binom_heap.h             |   445 +++++++++++++++++
 lemon/bits/edge_set_extender.h |     4 +-
 lemon/bits/graph_extender.h    |     6 +-
 lemon/bits/map_extender.h      |     4 +
 lemon/bucket_heap.h            |   305 ++++++-----
 lemon/circulation.h            |    27 +-
 lemon/concepts/heap.h          |   130 +++--
 lemon/concepts/maps.h          |     3 +-
 lemon/dfs.h                    |   115 ++--
 lemon/dijkstra.h               |   120 ++--
 lemon/dim2.h                   |    11 +-
 lemon/fib_heap.h               |   243 +++++----
 lemon/fourary_heap.h           |   342 +++++++++++++
 lemon/gomory_hu.h              |     8 +-
 lemon/kary_heap.h              |   352 ++++++++++++++
 lemon/maps.h                   |     4 +-
 lemon/min_cost_arborescence.h  |     4 +-
 lemon/pairing_heap.h           |   474 ++++++++++++++++++
 lemon/preflow.h                |    31 +-
 lemon/radix_heap.h             |   363 +++++++-------
 test/CMakeLists.txt            |     1 +
 test/Makefile.am               |     2 +
 test/bellman_ford_test.cc      |   283 +++++++++++
 test/circulation_test.cc       |     5 +
 test/heap_test.cc              |    74 ++-
 test/maps_test.cc              |    34 +
 test/preflow_test.cc           |     5 +
 tools/lemon-0.x-to-1.x.sh      |     9 +-
 33 files changed, 4112 insertions(+), 896 deletions(-)

diffs (truncated from 7156 to 300 lines):

diff --git a/doc/groups.dox b/doc/groups.dox
--- a/doc/groups.dox
+++ b/doc/groups.dox
@@ -226,14 +226,6 @@
 */
 
 /**
- at defgroup matrices Matrices
- at ingroup datas
-\brief Two dimensional data storages implemented in LEMON.
-
-This group contains two dimensional data storages implemented in LEMON.
-*/
-
-/**
 @defgroup paths Path Structures
 @ingroup datas
 \brief %Path structures implemented in LEMON.
@@ -246,7 +238,36 @@
 efficient to have e.g. the Dijkstra algorithm to store its result in
 any kind of path structure.
 
-\sa lemon::concepts::Path
+\sa \ref concepts::Path "Path concept"
+*/
+
+/**
+ at defgroup heaps Heap Structures
+ at ingroup datas
+\brief %Heap structures implemented in LEMON.
+
+This group contains the heap structures implemented in LEMON.
+
+LEMON provides several heap classes. They are efficient implementations
+of the abstract data type \e priority \e queue. They store items with
+specified values called \e priorities in such a way that finding and
+removing the item with minimum priority are efficient.
+The basic operations are adding and erasing items, changing the priority
+of an item, etc.
+
+Heaps are crucial in several algorithms, such as Dijkstra and Prim.
+The heap implementations have the same interface, thus any of them can be
+used easily in such algorithms.
+
+\sa \ref concepts::Heap "Heap concept"
+*/
+
+/**
+ at defgroup matrices Matrices
+ at ingroup datas
+\brief Two dimensional data storages implemented in LEMON.
+
+This group contains two dimensional data storages implemented in LEMON.
 */
 
 /**
@@ -259,6 +280,28 @@
 */
 
 /**
+ at defgroup geomdat Geometric Data Structures
+ at ingroup auxdat
+\brief Geometric data structures implemented in LEMON.
+
+This group contains geometric data structures implemented in LEMON.
+
+ - \ref lemon::dim2::Point "dim2::Point" implements a two dimensional
+   vector with the usual operations.
+ - \ref lemon::dim2::Box "dim2::Box" can be used to determine the
+   rectangular bounding box of a set of \ref lemon::dim2::Point
+   "dim2::Point"'s.
+*/
+
+/**
+ at defgroup matrices Matrices
+ at 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
 implemented in LEMON.
@@ -298,6 +341,15 @@
 */
 
 /**
+ at defgroup spantree Minimum Spanning Tree Algorithms
+ at ingroup algs
+\brief Algorithms for finding minimum cost spanning trees and arborescences.
+
+This group contains the algorithms for finding minimum cost spanning
+trees and arborescences.
+*/
+
+/**
 @defgroup max_flow Maximum Flow Algorithms
 @ingroup algs
 \brief Algorithms for finding maximum flows.
@@ -375,7 +427,7 @@
 cut is the \f$X\f$ solution of the next optimization problem:
 
 \f[ \min_{X \subset V, X\not\in \{\emptyset, V\}}
-    \sum_{uv\in A, u\in X, v\not\in X}cap(uv) \f]
+    \sum_{uv\in A: u\in X, v\not\in X}cap(uv) \f]
 
 LEMON contains several algorithms related to minimum cut problems:
 
@@ -391,30 +443,6 @@
 */
 
 /**
- at defgroup graph_properties Connectivity and Other Graph Properties
- at ingroup algs
-\brief Algorithms for discovering the graph properties
-
-This group contains the algorithms for discovering the graph properties
-like connectivity, bipartiteness, euler property, simplicity etc.
-
-\image html edge_biconnected_components.png
-\image latex edge_biconnected_components.eps "bi-edge-connected components" width=\textwidth
-*/
-
-/**
- at defgroup planar Planarity Embedding and Drawing
- at ingroup algs
-\brief Algorithms for planarity checking, embedding and drawing
-
-This group contains the algorithms for planarity checking,
-embedding and drawing.
-
-\image html planar.png
-\image latex planar.eps "Plane graph" width=\textwidth
-*/
-
-/**
 @defgroup matching Matching Algorithms
 @ingroup algs
 \brief Algorithms for finding matchings in graphs and bipartite graphs.
@@ -455,12 +483,36 @@
 */
 
 /**
- at defgroup spantree Minimum Spanning Tree Algorithms
+ at defgroup graph_properties Connectivity and Other Graph Properties
 @ingroup algs
-\brief Algorithms for finding minimum cost spanning trees and arborescences.
+\brief Algorithms for discovering the graph properties
 
-This group contains the algorithms for finding minimum cost spanning
-trees and arborescences.
+This group contains the algorithms for discovering the graph properties
+like connectivity, bipartiteness, euler property, simplicity etc.
+
+\image html connected_components.png
+\image latex connected_components.eps "Connected components" width=\textwidth
+*/
+
+/**
+ at defgroup planar Planarity Embedding and Drawing
+ at ingroup algs
+\brief Algorithms for planarity checking, embedding and drawing
+
+This group contains the algorithms for planarity checking,
+embedding and drawing.
+
+\image html planar.png
+\image latex planar.eps "Plane graph" width=\textwidth
+*/
+
+/**
+ at defgroup approx Approximation Algorithms
+ at ingroup algs
+\brief Approximation algorithms.
+
+This group contains the approximation and heuristic algorithms
+implemented in LEMON.
 */
 
 /**
@@ -473,15 +525,6 @@
 */
 
 /**
- at defgroup approx Approximation Algorithms
- at ingroup algs
-\brief Approximation algorithms.
-
-This group contains the approximation and heuristic algorithms
-implemented in LEMON.
-*/
-
-/**
 @defgroup gen_opt_group General Optimization Tools
 \brief This group contains some general optimization frameworks
 implemented in LEMON.
@@ -587,7 +630,7 @@
 */
 
 /**
- at defgroup dimacs_group DIMACS format
+ at defgroup dimacs_group DIMACS Format
 @ingroup io_group
 \brief Read and write files in DIMACS format
 
@@ -649,6 +692,15 @@
 */
 
 /**
+ at defgroup tools Standalone Utility Applications
+
+Some utility applications are listed here.
+
+The standard compilation procedure (<tt>./configure;make</tt>) will compile
+them, as well.
+*/
+
+/**
 \anchor demoprograms
 
 @defgroup demos Demo Programs
@@ -660,13 +712,4 @@
 <tt>make check</tt> commands.
 */
 
-/**
- at defgroup tools Standalone Utility Applications
-
-Some utility applications are listed here.
-
-The standard compilation procedure (<tt>./configure;make</tt>) will compile
-them, as well.
-*/
-
 }
diff --git a/lemon/Makefile.am b/lemon/Makefile.am
--- a/lemon/Makefile.am
+++ b/lemon/Makefile.am
@@ -57,8 +57,10 @@
 	lemon/adaptors.h \
 	lemon/arg_parser.h \
 	lemon/assert.h \
+	lemon/bellman_ford.h \
 	lemon/bfs.h \
 	lemon/bin_heap.h \
+	lemon/binom_heap.h \
 	lemon/bucket_heap.h \
 	lemon/cbc.h \
 	lemon/circulation.h \
@@ -78,12 +80,14 @@
 	lemon/error.h \
 	lemon/euler.h \
 	lemon/fib_heap.h \
+	lemon/fourary_heap.h \
 	lemon/full_graph.h \
 	lemon/glpk.h \
 	lemon/gomory_hu.h \
 	lemon/graph_to_eps.h \
 	lemon/grid_graph.h \
 	lemon/hypercube_graph.h \
+	lemon/kary_heap.h \
 	lemon/kruskal.h \
 	lemon/hao_orlin.h \
 	lemon/lgf_reader.h \
@@ -92,13 +96,13 @@
 	lemon/lp.h \
 	lemon/lp_base.h \
 	lemon/lp_skeleton.h \
-	lemon/list_graph.h \
 	lemon/maps.h \
 	lemon/matching.h \
 	lemon/math.h \
 	lemon/min_cost_arborescence.h \
 	lemon/nauty_reader.h \
 	lemon/network_simplex.h \
+	lemon/pairing_heap.h \
 	lemon/path.h \
 	lemon/preflow.h \
 	lemon/radix_heap.h \
diff --git a/lemon/bellman_ford.h b/lemon/bellman_ford.h
new file mode 100644
--- /dev/null
+++ b/lemon/bellman_ford.h
@@ -0,0 +1,1100 @@
+/* -*- C++ -*-
+ *
+ * This file is a part of LEMON, a generic C++ optimization library
+ *
+ * Copyright (C) 2003-2008
+ * 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



More information about the Lemon-commits mailing list