Reorganization of the modules and groups
authordeba
Wed, 21 Feb 2007 13:30:21 +0000
changeset 23760ed45a6c74b1
parent 2375 e30a0fdad0d7
child 2377 83775fab25dc
Reorganization of the modules and groups
doc/groups.dox
lemon/bellman_ford.h
lemon/bfs.h
lemon/circulation.h
lemon/csp.h
lemon/dfs.h
lemon/dijkstra.h
lemon/edmonds_karp.h
lemon/floyd_warshall.h
lemon/hao_orlin.h
lemon/johnson.h
lemon/matrix_maps.h
lemon/nagamochi_ibaraki.h
lemon/preflow.h
lemon/ssp_min_cost_flow.h
lemon/suurballe.h
     1.1 --- a/doc/groups.dox	Tue Feb 20 15:53:33 2007 +0000
     1.2 +++ b/doc/groups.dox	Wed Feb 21 13:30:21 2007 +0000
     1.3 @@ -115,14 +115,6 @@
     1.4  order to make it easier to implement combinatorial algorithms.
     1.5  */
     1.6  
     1.7 -/**
     1.8 -@defgroup graphbits Tools to Make It Easier to Make Graphs
     1.9 -@ingroup auxdat
    1.10 -\brief Tools to Make It Easier to Make Graphs.
    1.11 -
    1.12 -This group describes the tools that makes it easier to make graphs and
    1.13 -the maps that dynamically update with the graph changes.
    1.14 -*/
    1.15  
    1.16  /**
    1.17  @defgroup algs Algorithms
    1.18 @@ -134,27 +126,59 @@
    1.19  */
    1.20  
    1.21  /**
    1.22 -@defgroup gutils Basic Graph Utilities
    1.23 +@defgroup search Graph Search
    1.24  @ingroup algs
    1.25 -\brief This group describes some simple basic graph utilities.
    1.26 +\brief This group contains the common graph
    1.27 +search algorithms.
    1.28  
    1.29 -This group describes some simple basic graph utilities.
    1.30 +This group contains the common graph
    1.31 +search algorithms like Bfs and Dfs.
    1.32  */
    1.33  
    1.34  /**
    1.35 -@defgroup flowalgs Path and Flow Algorithms
    1.36 +@defgroup shortest_path Shortest Path algorithms
    1.37  @ingroup algs
    1.38  \brief This group describes the algorithms
    1.39 -for finding paths and flows in graphs.
    1.40 +for finding shortest paths.
    1.41  
    1.42 -This group describes the algorithms
    1.43 -for finding paths and flows in graphs.
    1.44 +This group describes the algorithms for finding shortest paths in
    1.45 +graphs.
    1.46 +
    1.47 +*/
    1.48 +
    1.49 +/** 
    1.50 +@defgroup max_flow Maximum Flow algorithms 
    1.51 +@ingroup algs 
    1.52 +\brief This group describes the algorithms for finding maximum flows.
    1.53 +
    1.54 +This group describes the algorithms for finding maximum flows.
    1.55  
    1.56  \image html flow.png
    1.57  \image latex flow.eps "Graph flow" width=\textwidth
    1.58  */
    1.59  
    1.60  /**
    1.61 +@defgroup min_cost_flow Minimum Cost Flow algorithms
    1.62 +@ingroup algs
    1.63 +
    1.64 +\brief This group describes the algorithms
    1.65 +for finding minimum cost flows and circulations.
    1.66 +
    1.67 +This group describes the algorithms for finding minimum cost flows and
    1.68 +circulations.  
    1.69 +*/
    1.70 +
    1.71 +/**
    1.72 +@defgroup min_cut Minimum Cut algorithms
    1.73 +@ingroup algs
    1.74 +\brief This group describes the algorithms
    1.75 +for finding minimum cut in graphs.
    1.76 +
    1.77 +This group describes the algorithms
    1.78 +for finding minimum cut in graphs.
    1.79 +*/
    1.80 +
    1.81 +/**
    1.82  @defgroup topology Topology related algorithms
    1.83  @ingroup algs
    1.84  \brief This group describes the algorithms
    1.85 @@ -168,7 +192,7 @@
    1.86  */
    1.87  
    1.88  /**
    1.89 -@defgroup matching Matching algorithms in graphs and bipartite graphs
    1.90 +@defgroup matching Matching algorithms 
    1.91  @ingroup algs
    1.92  \brief This group describes the algorithms
    1.93  for find matchings in graphs and bipartite graphs.
    1.94 @@ -182,7 +206,7 @@
    1.95  */
    1.96  
    1.97  /**
    1.98 -@defgroup spantree Minimum Cost Spanning Tree Algorithms
    1.99 +@defgroup spantree Minimum Spanning Tree algorithms
   1.100  @ingroup algs
   1.101  \brief This group contains the algorithms for finding a minimum cost spanning
   1.102  tree in a graph
   1.103 @@ -193,13 +217,19 @@
   1.104  
   1.105  
   1.106  /**
   1.107 -@defgroup auxalg Auxiliary Algorithms
   1.108 +@defgroup auxalg Auxiliary algorithms
   1.109  @ingroup algs
   1.110  \brief Some algorithms implemented in LEMON.
   1.111  
   1.112  This group describes the algorithms in LEMON in order to make 
   1.113  it easier to implement complex algorithms.
   1.114 +*/
   1.115  
   1.116 +/**
   1.117 +@defgroup approx Approximation algorithms
   1.118 +\brief Approximation algorithms
   1.119 +
   1.120 +Approximation and heuristic algorithms
   1.121  */
   1.122  
   1.123  /**
   1.124 @@ -231,7 +261,6 @@
   1.125  
   1.126  This group adds some helper tools to general optimization framework
   1.127  implemented in LEMON.
   1.128 -
   1.129  */
   1.130  
   1.131  /**
   1.132 @@ -243,11 +272,28 @@
   1.133  */
   1.134  
   1.135  /**
   1.136 +@defgroup utils Tools and Utilities 
   1.137 +\brief Tools and Utilities for Programming in LEMON
   1.138 +
   1.139 +Tools and Utilities for Programming in LEMON
   1.140 +*/
   1.141 +
   1.142 +/**
   1.143 +@defgroup gutils Basic Graph Utilities
   1.144 +@ingroup utils
   1.145 +\brief This group describes some simple basic graph utilities.
   1.146 +
   1.147 +This group describes some simple basic graph utilities.
   1.148 +*/
   1.149 +
   1.150 +/**
   1.151  @defgroup misc Miscellaneous Tools
   1.152 +@ingroup utils
   1.153  Here you can find several useful tools for development,
   1.154  debugging and testing.
   1.155  */
   1.156  
   1.157 +
   1.158  /**
   1.159  @defgroup timecount Time measuring and Counting
   1.160  @ingroup misc
   1.161 @@ -256,6 +302,21 @@
   1.162  */
   1.163  
   1.164  /**
   1.165 +@defgroup graphbits Tools for Graph Implementation
   1.166 +@ingroup utils
   1.167 +\brief Tools to Make It Easier to Make Graphs.
   1.168 +
   1.169 +This group describes the tools that makes it easier to make graphs and
   1.170 +the maps that dynamically update with the graph changes.
   1.171 +*/
   1.172 +
   1.173 +/**
   1.174 +@defgroup exceptions Exceptions
   1.175 +@ingroup utils
   1.176 +This group contains the exceptions thrown by LEMON library
   1.177 +*/
   1.178 +
   1.179 +/**
   1.180  @defgroup io_group Input-Output
   1.181  \brief Several Graph Input-Output methods
   1.182  
   1.183 @@ -302,10 +363,6 @@
   1.184  graph exporting tools. 
   1.185  */
   1.186  
   1.187 -/**
   1.188 -@defgroup exceptions Exceptions
   1.189 -This group contains the exceptions thrown by LEMON library
   1.190 -*/
   1.191  
   1.192  /**
   1.193  @defgroup concept Concepts
     2.1 --- a/lemon/bellman_ford.h	Tue Feb 20 15:53:33 2007 +0000
     2.2 +++ b/lemon/bellman_ford.h	Wed Feb 21 13:30:21 2007 +0000
     2.3 @@ -19,7 +19,7 @@
     2.4  #ifndef LEMON_BELMANN_FORD_H
     2.5  #define LEMON_BELMANN_FORD_H
     2.6  
     2.7 -/// \ingroup flowalgs
     2.8 +/// \ingroup shortest_path
     2.9  /// \file
    2.10  /// \brief BellmanFord algorithm.
    2.11  ///
    2.12 @@ -144,7 +144,7 @@
    2.13    
    2.14    /// \brief %BellmanFord algorithm class.
    2.15    ///
    2.16 -  /// \ingroup flowalgs
    2.17 +  /// \ingroup shortest_path
    2.18    /// This class provides an efficient implementation of \c Bellman-Ford 
    2.19    /// algorithm. The edge lengths are passed to the algorithm using a
    2.20    /// \ref concepts::ReadMap "ReadMap", so it is easy to change it to any 
    2.21 @@ -1022,7 +1022,7 @@
    2.22    
    2.23    /// \brief Function type interface for BellmanFord algorithm.
    2.24    ///
    2.25 -  /// \ingroup flowalgs
    2.26 +  /// \ingroup shortest_path
    2.27    /// Function type interface for BellmanFord algorithm.
    2.28    ///
    2.29    /// This function also has several \ref named-templ-func-param 
     3.1 --- a/lemon/bfs.h	Tue Feb 20 15:53:33 2007 +0000
     3.2 +++ b/lemon/bfs.h	Wed Feb 21 13:30:21 2007 +0000
     3.3 @@ -19,7 +19,7 @@
     3.4  #ifndef LEMON_BFS_H
     3.5  #define LEMON_BFS_H
     3.6  
     3.7 -///\ingroup flowalgs
     3.8 +///\ingroup search
     3.9  ///\file
    3.10  ///\brief Bfs algorithm.
    3.11  
    3.12 @@ -112,7 +112,7 @@
    3.13    
    3.14    ///%BFS algorithm class.
    3.15    
    3.16 -  ///\ingroup flowalgs
    3.17 +  ///\ingroup search
    3.18    ///This class provides an efficient implementation of the %BFS algorithm.
    3.19    ///
    3.20    ///\param GR The graph type the algorithm runs on. The default value is
    3.21 @@ -1073,7 +1073,7 @@
    3.22    
    3.23    ///Function type interface for Bfs algorithm.
    3.24  
    3.25 -  /// \ingroup flowalgs
    3.26 +  /// \ingroup search
    3.27    ///Function type interface for Bfs algorithm.
    3.28    ///
    3.29    ///This function also has several
    3.30 @@ -1187,7 +1187,7 @@
    3.31    
    3.32    /// %BFS Visit algorithm class.
    3.33    
    3.34 -  /// \ingroup flowalgs
    3.35 +  /// \ingroup search
    3.36    /// This class provides an efficient implementation of the %BFS algorithm
    3.37    /// with visitor interface.
    3.38    ///
     4.1 --- a/lemon/circulation.h	Tue Feb 20 15:53:33 2007 +0000
     4.2 +++ b/lemon/circulation.h	Wed Feb 21 13:30:21 2007 +0000
     4.3 @@ -23,7 +23,7 @@
     4.4  #include <lemon/tolerance.h>
     4.5  #include <lemon/elevator.h>
     4.6  
     4.7 -///\ingroup flowalgs
     4.8 +///\ingroup max_flow
     4.9  ///\file
    4.10  ///\brief Push-prelabel algorithm for finding a feasible circulation.
    4.11  ///
     5.1 --- a/lemon/csp.h	Tue Feb 20 15:53:33 2007 +0000
     5.2 +++ b/lemon/csp.h	Wed Feb 21 13:30:21 2007 +0000
     5.3 @@ -19,7 +19,7 @@
     5.4  #ifndef LEMON_CSP_H
     5.5  #define LEMON_CSP_H
     5.6  
     5.7 -///\ingroup flowalgs
     5.8 +///\ingroup approx
     5.9  ///\file
    5.10  ///\brief Algorithm for the Resource Constrained Shortest Path problem.
    5.11  ///
     6.1 --- a/lemon/dfs.h	Tue Feb 20 15:53:33 2007 +0000
     6.2 +++ b/lemon/dfs.h	Wed Feb 21 13:30:21 2007 +0000
     6.3 @@ -19,7 +19,7 @@
     6.4  #ifndef LEMON_DFS_H
     6.5  #define LEMON_DFS_H
     6.6  
     6.7 -///\ingroup flowalgs
     6.8 +///\ingroup search
     6.9  ///\file
    6.10  ///\brief Dfs algorithm.
    6.11  
    6.12 @@ -114,7 +114,7 @@
    6.13    
    6.14    ///%DFS algorithm class.
    6.15    
    6.16 -  ///\ingroup flowalgs
    6.17 +  ///\ingroup search
    6.18    ///This class provides an efficient implementation of the %DFS algorithm.
    6.19    ///
    6.20    ///\param GR The graph type the algorithm runs on. The default value is
    6.21 @@ -1047,7 +1047,7 @@
    6.22    
    6.23    ///Function type interface for Dfs algorithm.
    6.24  
    6.25 -  /// \ingroup flowalgs
    6.26 +  ///\ingroup search
    6.27    ///Function type interface for Dfs algorithm.
    6.28    ///
    6.29    ///This function also has several
    6.30 @@ -1174,7 +1174,7 @@
    6.31    
    6.32    /// %DFS Visit algorithm class.
    6.33    
    6.34 -  /// \ingroup flowalgs
    6.35 +  /// \ingroup search
    6.36    /// This class provides an efficient implementation of the %DFS algorithm
    6.37    /// with visitor interface.
    6.38    ///
     7.1 --- a/lemon/dijkstra.h	Tue Feb 20 15:53:33 2007 +0000
     7.2 +++ b/lemon/dijkstra.h	Wed Feb 21 13:30:21 2007 +0000
     7.3 @@ -19,7 +19,7 @@
     7.4  #ifndef LEMON_DIJKSTRA_H
     7.5  #define LEMON_DIJKSTRA_H
     7.6  
     7.7 -///\ingroup flowalgs
     7.8 +///\ingroup shortest_path
     7.9  ///\file
    7.10  ///\brief Dijkstra algorithm.
    7.11  ///
    7.12 @@ -140,7 +140,7 @@
    7.13    
    7.14    ///%Dijkstra algorithm class.
    7.15    
    7.16 -  /// \ingroup flowalgs
    7.17 +  /// \ingroup shortest_path
    7.18    ///This class provides an efficient implementation of %Dijkstra algorithm.
    7.19    ///The edge lengths are passed to the algorithm using a
    7.20    ///\ref concepts::ReadMap "ReadMap",
    7.21 @@ -1107,7 +1107,7 @@
    7.22    
    7.23    ///Function type interface for Dijkstra algorithm.
    7.24  
    7.25 -  /// \ingroup flowalgs
    7.26 +  /// \ingroup shortest_path
    7.27    ///Function type interface for Dijkstra algorithm.
    7.28    ///
    7.29    ///This function also has several
     8.1 --- a/lemon/edmonds_karp.h	Tue Feb 20 15:53:33 2007 +0000
     8.2 +++ b/lemon/edmonds_karp.h	Wed Feb 21 13:30:21 2007 +0000
     8.3 @@ -20,7 +20,7 @@
     8.4  #define LEMON_EDMONDS_KARP_H
     8.5  
     8.6  /// \file
     8.7 -/// \ingroup flowalgs
     8.8 +/// \ingroup max_flow
     8.9  /// \brief Implementation of the Edmonds-Karp algorithm.
    8.10  
    8.11  #include <lemon/graph_adaptor.h>
    8.12 @@ -29,7 +29,7 @@
    8.13  
    8.14  namespace lemon {
    8.15  
    8.16 -  /// \ingroup flowalgs
    8.17 +  /// \ingroup max_flow
    8.18    /// \brief Edmonds-Karp algorithms class.
    8.19    ///
    8.20    /// This class provides an implementation of the \e Edmonds-Karp \e
     9.1 --- a/lemon/floyd_warshall.h	Tue Feb 20 15:53:33 2007 +0000
     9.2 +++ b/lemon/floyd_warshall.h	Wed Feb 21 13:30:21 2007 +0000
     9.3 @@ -19,7 +19,7 @@
     9.4  #ifndef LEMON_FLOYD_WARSHALL_H
     9.5  #define LEMON_FLOYD_WARSHALL_H
     9.6  
     9.7 -///\ingroup flowalgs
     9.8 +///\ingroup shortest_path
     9.9  /// \file
    9.10  /// \brief FloydWarshall algorithm.
    9.11  ///
    9.12 @@ -147,7 +147,7 @@
    9.13    
    9.14    /// \brief %FloydWarshall algorithm class.
    9.15    ///
    9.16 -  /// \ingroup flowalgs
    9.17 +  /// \ingroup shortest_path
    9.18    /// This class provides an efficient implementation of \c Floyd-Warshall 
    9.19    /// algorithm. The edge lengths are passed to the algorithm using a
    9.20    /// \ref concepts::ReadMap "ReadMap", so it is easy to change it to any 
    10.1 --- a/lemon/hao_orlin.h	Tue Feb 20 15:53:33 2007 +0000
    10.2 +++ b/lemon/hao_orlin.h	Wed Feb 21 13:30:21 2007 +0000
    10.3 @@ -34,7 +34,7 @@
    10.4  #include <lemon/iterable_maps.h>
    10.5  
    10.6  /// \file
    10.7 -/// \ingroup flowalgs
    10.8 +/// \ingroup min_cut
    10.9  /// \brief Implementation of the Hao-Orlin algorithm.
   10.10  ///
   10.11  /// Implementation of the HaoOrlin algorithms class for testing network 
   10.12 @@ -42,7 +42,7 @@
   10.13  
   10.14  namespace lemon {
   10.15  
   10.16 -  /// \ingroup flowalgs
   10.17 +  /// \ingroup min_cut
   10.18    ///
   10.19    /// \brief %Hao-Orlin algorithm to find a minimum cut in directed graphs.
   10.20    ///
    11.1 --- a/lemon/johnson.h	Tue Feb 20 15:53:33 2007 +0000
    11.2 +++ b/lemon/johnson.h	Wed Feb 21 13:30:21 2007 +0000
    11.3 @@ -19,7 +19,7 @@
    11.4  #ifndef LEMON_JOHNSON_H
    11.5  #define LEMON_JOHNSON_H
    11.6  
    11.7 -///\ingroup flowalgs
    11.8 +///\ingroup shortest_path
    11.9  /// \file
   11.10  /// \brief Johnson algorithm.
   11.11  ///
   11.12 @@ -180,7 +180,7 @@
   11.13  
   11.14    /// \brief %Johnson algorithm class.
   11.15    ///
   11.16 -  /// \ingroup flowalgs
   11.17 +  /// \ingroup shortest_path
   11.18    /// This class provides an efficient implementation of \c %Johnson 
   11.19    /// algorithm. The edge lengths are passed to the algorithm using a
   11.20    /// \ref concepts::ReadMap "ReadMap", so it is easy to change it to any 
    12.1 --- a/lemon/matrix_maps.h	Tue Feb 20 15:53:33 2007 +0000
    12.2 +++ b/lemon/matrix_maps.h	Wed Feb 21 13:30:21 2007 +0000
    12.3 @@ -551,6 +551,9 @@
    12.4    ///typename K2, typename V, typename R, typename CR> called as
    12.5    ///"ReferenceMatrixMap".
    12.6    ///
    12.7 +  ///\warning Do not use this map type when the two item sets are
    12.8 +  ///equal or based on the same item set.
    12.9 +  ///
   12.10    ///\param _FirstContainer the desired type of first container. It is
   12.11    ///ususally a Graph type, but can be any type with alteration
   12.12    ///property.
    13.1 --- a/lemon/nagamochi_ibaraki.h	Tue Feb 20 15:53:33 2007 +0000
    13.2 +++ b/lemon/nagamochi_ibaraki.h	Wed Feb 21 13:30:21 2007 +0000
    13.3 @@ -18,7 +18,7 @@
    13.4  #define LEMON_NAGAMOCHI_IBARAKI_H
    13.5  
    13.6  
    13.7 -/// \ingroup topology 
    13.8 +/// \ingroup min_cut
    13.9  /// \file 
   13.10  /// \brief Maximum cardinality search and minimum cut in undirected
   13.11  /// graphs.
   13.12 @@ -156,7 +156,7 @@
   13.13  
   13.14    };
   13.15    
   13.16 -  /// \ingroup topology
   13.17 +  /// \ingroup search
   13.18    ///
   13.19    /// \brief Maximum Cardinality Search algorithm class.
   13.20    ///
   13.21 @@ -832,7 +832,7 @@
   13.22  
   13.23    };
   13.24  
   13.25 -  /// \ingroup topology
   13.26 +  /// \ingroup min_cut
   13.27    ///
   13.28    /// \brief Calculates the minimum cut in an undirected graph.
   13.29    ///
    14.1 --- a/lemon/preflow.h	Tue Feb 20 15:53:33 2007 +0000
    14.2 +++ b/lemon/preflow.h	Wed Feb 21 13:30:21 2007 +0000
    14.3 @@ -29,12 +29,12 @@
    14.4  #include <lemon/graph_utils.h>
    14.5  
    14.6  /// \file
    14.7 -/// \ingroup flowalgs
    14.8 +/// \ingroup max_flow
    14.9  /// \brief Implementation of the preflow algorithm.
   14.10  
   14.11  namespace lemon {
   14.12  
   14.13 -  ///\ingroup flowalgs
   14.14 +  ///\ingroup max_flow
   14.15    ///\brief %Preflow algorithms class.
   14.16    ///
   14.17    ///This class provides an implementation of the \e preflow \e
   14.18 @@ -890,7 +890,7 @@
   14.19  
   14.20    }; 
   14.21  
   14.22 -  ///\ingroup flowalgs
   14.23 +  ///\ingroup max_flow
   14.24    ///\brief Function type interface for Preflow algorithm.
   14.25    ///
   14.26    ///Function type interface for Preflow algorithm.
    15.1 --- a/lemon/ssp_min_cost_flow.h	Tue Feb 20 15:53:33 2007 +0000
    15.2 +++ b/lemon/ssp_min_cost_flow.h	Wed Feb 21 13:30:21 2007 +0000
    15.3 @@ -19,7 +19,7 @@
    15.4  #ifndef LEMON_MIN_COST_FLOW_H
    15.5  #define LEMON_MIN_COST_FLOW_H
    15.6  
    15.7 -///\ingroup flowalgs 
    15.8 +///\ingroup min_cost_flow 
    15.9  ///
   15.10  ///\file
   15.11  ///\brief An algorithm for finding a flow of value \c k (for
   15.12 @@ -33,7 +33,7 @@
   15.13  
   15.14  namespace lemon {
   15.15  
   15.16 -  /// \addtogroup flowalgs
   15.17 +  /// \addtogroup min_cost_flow
   15.18    /// @{
   15.19  
   15.20    /// \brief Implementation of an algorithm for finding a flow of
    16.1 --- a/lemon/suurballe.h	Tue Feb 20 15:53:33 2007 +0000
    16.2 +++ b/lemon/suurballe.h	Wed Feb 21 13:30:21 2007 +0000
    16.3 @@ -31,7 +31,7 @@
    16.4  
    16.5  namespace lemon {
    16.6  
    16.7 -/// \addtogroup flowalgs
    16.8 +/// \addtogroup shortest_path
    16.9  /// @{
   16.10  
   16.11    ///\brief Implementation of an algorithm for finding k edge-disjoint