1.1 --- a/Makefile.am Thu Oct 09 16:47:01 2008 +0200
1.2 +++ b/Makefile.am Thu Oct 09 16:20:37 2008 +0100
1.3 @@ -24,6 +24,7 @@
1.4 noinst_PROGRAMS =
1.5 bin_PROGRAMS =
1.6 check_PROGRAMS =
1.7 +dist_bin_SCRIPTS =
1.8 TESTS =
1.9 XFAIL_TESTS =
1.10
1.11 @@ -31,7 +32,6 @@
1.12 include test/Makefile.am
1.13 include doc/Makefile.am
1.14 include demo/Makefile.am
1.15 -include benchmark/Makefile.am
1.16 include tools/Makefile.am
1.17
1.18 MRPROPERFILES = \
2.1 --- a/README Thu Oct 09 16:47:01 2008 +0200
2.2 +++ b/README Thu Oct 09 16:20:37 2008 +0100
2.3 @@ -37,10 +37,6 @@
2.4
2.5 Contains programs to check the integrity and correctness of LEMON.
2.6
2.7 -benchmark/
2.8 -
2.9 - Contains programs for measuring the performance of algorithms.
2.10 -
2.11 tools/
2.12
2.13 Various utilities related to LEMON.
3.1 --- a/benchmark/Makefile.am Thu Oct 09 16:47:01 2008 +0200
3.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
3.3 @@ -1,7 +0,0 @@
3.4 -if WANT_BENCHMARK
3.5 -
3.6 -noinst_HEADERS +=
3.7 -
3.8 -noinst_PROGRAMS +=
3.9 -
3.10 -endif WANT_BENCHMARK
4.1 --- a/configure.ac Thu Oct 09 16:47:01 2008 +0200
4.2 +++ b/configure.ac Thu Oct 09 16:20:37 2008 +0100
4.3 @@ -81,19 +81,6 @@
4.4 fi
4.5 AM_CONDITIONAL([WANT_TOOLS], [test x"$enable_tools" != x"no"])
4.6
4.7 -dnl Disable/enable building the benchmarks.
4.8 -AC_ARG_ENABLE([benchmark],
4.9 -AS_HELP_STRING([--enable-benchmark], [build the benchmarks])
4.10 -AS_HELP_STRING([--disable-benchmark], [do not build the benchmarks @<:@default@:>@]),
4.11 - [], [enable_benchmark=no])
4.12 -AC_MSG_CHECKING([whether to build the benchmarks])
4.13 -if test x"$enable_benchmark" != x"no"; then
4.14 - AC_MSG_RESULT([yes])
4.15 -else
4.16 - AC_MSG_RESULT([no])
4.17 -fi
4.18 -AM_CONDITIONAL([WANT_BENCHMARK], [test x"$enable_benchmark" != x"no"])
4.19 -
4.20 dnl Checks for header files.
4.21 AC_CHECK_HEADERS(limits.h sys/time.h sys/times.h unistd.h)
4.22
4.23 @@ -132,7 +119,6 @@
4.24 #echo CPLEX support................. : $lx_cplex_found
4.25 #echo SOPLEX support................ : $lx_soplex_found
4.26 #echo
4.27 -echo Build benchmarks.............. : $enable_benchmark
4.28 echo Build demo programs........... : $enable_demo
4.29 echo Build additional tools........ : $enable_tools
4.30 echo
5.1 --- a/demo/arg_parser_demo.cc Thu Oct 09 16:47:01 2008 +0200
5.2 +++ b/demo/arg_parser_demo.cc Thu Oct 09 16:20:37 2008 +0100
5.3 @@ -27,7 +27,7 @@
5.4 #include <lemon/arg_parser.h>
5.5
5.6 using namespace lemon;
5.7 -int main(int argc, const char **argv)
5.8 +int main(int argc, char **argv)
5.9 {
5.10 // Initialize the argument parser
5.11 ArgParser ap(argc, argv);
6.1 --- a/demo/graph_to_eps_demo.cc Thu Oct 09 16:47:01 2008 +0200
6.2 +++ b/demo/graph_to_eps_demo.cc Thu Oct 09 16:20:37 2008 +0100
6.3 @@ -26,7 +26,7 @@
6.4 /// graphToEps(), and showing how to draw directed graphs,
6.5 /// how to handle parallel egdes, how to change the properties (like
6.6 /// color, shape, size, title etc.) of nodes and arcs individually
6.7 -/// using appropriate \ref maps-page "graph maps".
6.8 +/// using appropriate graph maps.
6.9 ///
6.10 /// \include graph_to_eps_demo.cc
6.11
7.1 --- a/doc/Makefile.am Thu Oct 09 16:47:01 2008 +0200
7.2 +++ b/doc/Makefile.am Thu Oct 09 16:20:37 2008 +0100
7.3 @@ -7,6 +7,7 @@
7.4 doc/lgf.dox \
7.5 doc/license.dox \
7.6 doc/mainpage.dox \
7.7 + doc/migration.dox \
7.8 doc/named-param.dox \
7.9 doc/namespaces.dox \
7.10 doc/html \
8.1 --- a/doc/groups.dox Thu Oct 09 16:47:01 2008 +0200
8.2 +++ b/doc/groups.dox Thu Oct 09 16:20:37 2008 +0100
8.3 @@ -54,7 +54,9 @@
8.4
8.5 You are free to use the graph structure that fit your requirements
8.6 the best, most graph algorithms and auxiliary data structures can be used
8.7 -with any graph structures.
8.8 +with any graph structure.
8.9 +
8.10 +<b>See also:</b> \ref graph_concepts "Graph Structure Concepts".
8.11 */
8.12
8.13 /**
8.14 @@ -74,8 +76,10 @@
8.15
8.16 This group describes the map structures implemented in LEMON.
8.17
8.18 -LEMON provides several special purpose maps that e.g. combine
8.19 +LEMON provides several special purpose maps and map adaptors that e.g. combine
8.20 new maps from existing ones.
8.21 +
8.22 +<b>See also:</b> \ref map_concepts "Map Concepts".
8.23 */
8.24
8.25 /**
8.26 @@ -87,7 +91,6 @@
8.27 values to the nodes and arcs of graphs.
8.28 */
8.29
8.30 -
8.31 /**
8.32 \defgroup map_adaptors Map Adaptors
8.33 \ingroup maps
8.34 @@ -104,7 +107,7 @@
8.35 The typical usage of this classes is passing implicit maps to
8.36 algorithms. If a function type algorithm is called then the function
8.37 type map adaptors can be used comfortable. For example let's see the
8.38 -usage of map adaptors with the \c digraphToEps() function.
8.39 +usage of map adaptors with the \c graphToEps() function.
8.40 \code
8.41 Color nodeColor(int deg) {
8.42 if (deg >= 2) {
8.43 @@ -118,13 +121,13 @@
8.44
8.45 Digraph::NodeMap<int> degree_map(graph);
8.46
8.47 - digraphToEps(graph, "graph.eps")
8.48 + graphToEps(graph, "graph.eps")
8.49 .coords(coords).scaleToA4().undirected()
8.50 .nodeColors(composeMap(functorToMap(nodeColor), degree_map))
8.51 .run();
8.52 \endcode
8.53 The \c functorToMap() function makes an \c int to \c Color map from the
8.54 -\e nodeColor() function. The \c composeMap() compose the \e degree_map
8.55 +\c nodeColor() function. The \c composeMap() compose the \c degree_map
8.56 and the previously created map. The composed map is a proper function to
8.57 get the color of each node.
8.58
8.59 @@ -173,7 +176,6 @@
8.60 any kind of path structure.
8.61
8.62 \sa lemon::concepts::Path
8.63 -
8.64 */
8.65
8.66 /**
8.67 @@ -185,7 +187,6 @@
8.68 order to make it easier to implement combinatorial algorithms.
8.69 */
8.70
8.71 -
8.72 /**
8.73 @defgroup algs Algorithms
8.74 \brief This group describes the several algorithms
8.75 @@ -201,11 +202,11 @@
8.76 \brief Common graph search algorithms.
8.77
8.78 This group describes the common graph search algorithms like
8.79 -Breadth-first search (Bfs) and Depth-first search (Dfs).
8.80 +Breadth-First Search (BFS) and Depth-First Search (DFS).
8.81 */
8.82
8.83 /**
8.84 -@defgroup shortest_path Shortest Path algorithms
8.85 +@defgroup shortest_path Shortest Path Algorithms
8.86 @ingroup algs
8.87 \brief Algorithms for finding shortest paths.
8.88
8.89 @@ -213,7 +214,7 @@
8.90 */
8.91
8.92 /**
8.93 -@defgroup max_flow Maximum Flow algorithms
8.94 +@defgroup max_flow Maximum Flow Algorithms
8.95 @ingroup algs
8.96 \brief Algorithms for finding maximum flows.
8.97
8.98 @@ -241,11 +242,10 @@
8.99 fastest method to compute the maximum flow. All impelementations
8.100 provides functions to query the minimum cut, which is the dual linear
8.101 programming problem of the maximum flow.
8.102 -
8.103 */
8.104
8.105 /**
8.106 -@defgroup min_cost_flow Minimum Cost Flow algorithms
8.107 +@defgroup min_cost_flow Minimum Cost Flow Algorithms
8.108 @ingroup algs
8.109
8.110 \brief Algorithms for finding minimum cost flows and circulations.
8.111 @@ -255,7 +255,7 @@
8.112 */
8.113
8.114 /**
8.115 -@defgroup min_cut Minimum Cut algorithms
8.116 +@defgroup min_cut Minimum Cut Algorithms
8.117 @ingroup algs
8.118
8.119 \brief Algorithms for finding minimum cut in graphs.
8.120 @@ -282,11 +282,10 @@
8.121
8.122 If you want to find minimum cut just between two distinict nodes,
8.123 please see the \ref max_flow "Maximum Flow page".
8.124 -
8.125 */
8.126
8.127 /**
8.128 -@defgroup graph_prop Connectivity and other graph properties
8.129 +@defgroup graph_prop Connectivity and Other Graph Properties
8.130 @ingroup algs
8.131 \brief Algorithms for discovering the graph properties
8.132
8.133 @@ -298,7 +297,7 @@
8.134 */
8.135
8.136 /**
8.137 -@defgroup planar Planarity embedding and drawing
8.138 +@defgroup planar Planarity Embedding and Drawing
8.139 @ingroup algs
8.140 \brief Algorithms for planarity checking, embedding and drawing
8.141
8.142 @@ -310,7 +309,7 @@
8.143 */
8.144
8.145 /**
8.146 -@defgroup matching Matching algorithms
8.147 +@defgroup matching Matching Algorithms
8.148 @ingroup algs
8.149 \brief Algorithms for finding matchings in graphs and bipartite graphs.
8.150
8.151 @@ -348,11 +347,10 @@
8.152
8.153 \image html bipartite_matching.png
8.154 \image latex bipartite_matching.eps "Bipartite Matching" width=\textwidth
8.155 -
8.156 */
8.157
8.158 /**
8.159 -@defgroup spantree Minimum Spanning Tree algorithms
8.160 +@defgroup spantree Minimum Spanning Tree Algorithms
8.161 @ingroup algs
8.162 \brief Algorithms for finding a minimum cost spanning tree in a graph.
8.163
8.164 @@ -360,9 +358,8 @@
8.165 tree in a graph
8.166 */
8.167
8.168 -
8.169 /**
8.170 -@defgroup auxalg Auxiliary algorithms
8.171 +@defgroup auxalg Auxiliary Algorithms
8.172 @ingroup algs
8.173 \brief Auxiliary algorithms implemented in LEMON.
8.174
8.175 @@ -371,7 +368,8 @@
8.176 */
8.177
8.178 /**
8.179 -@defgroup approx Approximation algorithms
8.180 +@defgroup approx Approximation Algorithms
8.181 +@ingroup algs
8.182 \brief Approximation algorithms.
8.183
8.184 This group describes the approximation and heuristic algorithms
8.185 @@ -385,22 +383,20 @@
8.186
8.187 This group describes some general optimization frameworks
8.188 implemented in LEMON.
8.189 -
8.190 */
8.191
8.192 /**
8.193 -@defgroup lp_group Lp and Mip solvers
8.194 +@defgroup lp_group Lp and Mip Solvers
8.195 @ingroup gen_opt_group
8.196 \brief Lp and Mip solver interfaces for LEMON.
8.197
8.198 This group describes Lp and Mip solver interfaces for LEMON. The
8.199 various LP solvers could be used in the same manner with this
8.200 interface.
8.201 -
8.202 */
8.203
8.204 /**
8.205 -@defgroup lp_utils Tools for Lp and Mip solvers
8.206 +@defgroup lp_utils Tools for Lp and Mip Solvers
8.207 @ingroup lp_group
8.208 \brief Helper tools to the Lp and Mip solvers.
8.209
8.210 @@ -441,7 +437,7 @@
8.211 */
8.212
8.213 /**
8.214 -@defgroup timecount Time measuring and Counting
8.215 +@defgroup timecount Time Measuring and Counting
8.216 @ingroup misc
8.217 \brief Simple tools for measuring the performance of algorithms.
8.218
8.219 @@ -450,15 +446,6 @@
8.220 */
8.221
8.222 /**
8.223 -@defgroup graphbits Tools for Graph Implementation
8.224 -@ingroup utils
8.225 -\brief Tools to make it easier to create graphs.
8.226 -
8.227 -This group describes the tools that makes it easier to create graphs and
8.228 -the maps that dynamically update with the graph changes.
8.229 -*/
8.230 -
8.231 -/**
8.232 @defgroup exceptions Exceptions
8.233 @ingroup utils
8.234 \brief Exceptions defined in LEMON.
8.235 @@ -471,21 +458,22 @@
8.236 \brief Graph Input-Output methods
8.237
8.238 This group describes the tools for importing and exporting graphs
8.239 -and graph related data. Now it supports the LEMON format, the
8.240 -\c DIMACS format and the encapsulated postscript (EPS) format.
8.241 +and graph related data. Now it supports the \ref lgf-format
8.242 +"LEMON Graph Format", the \c DIMACS format and the encapsulated
8.243 +postscript (EPS) format.
8.244 */
8.245
8.246 /**
8.247 @defgroup lemon_io LEMON Input-Output
8.248 @ingroup io_group
8.249 -\brief Reading and writing \ref lgf-format "LEMON Graph Format".
8.250 +\brief Reading and writing LEMON Graph Format.
8.251
8.252 This group describes methods for reading and writing
8.253 \ref lgf-format "LEMON Graph Format".
8.254 */
8.255
8.256 /**
8.257 -@defgroup eps_io Postscript exporting
8.258 +@defgroup eps_io Postscript Exporting
8.259 @ingroup io_group
8.260 \brief General \c EPS drawer and graph exporter
8.261
8.262 @@ -493,7 +481,6 @@
8.263 graph exporting tools.
8.264 */
8.265
8.266 -
8.267 /**
8.268 @defgroup concept Concepts
8.269 \brief Skeleton classes and concept checking classes
8.270 @@ -521,10 +508,8 @@
8.271 concept indeed provides all the required features.
8.272
8.273 - Finally, They can serve as a skeleton of a new implementation of a concept.
8.274 -
8.275 */
8.276
8.277 -
8.278 /**
8.279 @defgroup graph_concepts Graph Structure Concepts
8.280 @ingroup concept
8.281 @@ -534,10 +519,12 @@
8.282 graph structures and helper classes used to implement these.
8.283 */
8.284
8.285 -/* --- Unused group
8.286 -@defgroup experimental Experimental Structures and Algorithms
8.287 -This group describes some Experimental structures and algorithms.
8.288 -The stuff here is subject to change.
8.289 +/**
8.290 +@defgroup map_concepts Map Concepts
8.291 +@ingroup concept
8.292 +\brief Skeleton and concept checking classes for maps
8.293 +
8.294 +This group describes the skeletons and concept checking classes of maps.
8.295 */
8.296
8.297 /**
9.1 --- a/doc/lgf.dox Thu Oct 09 16:47:01 2008 +0200
9.2 +++ b/doc/lgf.dox Thu Oct 09 16:20:37 2008 +0100
9.3 @@ -78,7 +78,7 @@
9.4 2 3 18
9.5 \endcode
9.6
9.7 -The \c \@edges is just a synonym of \c \@arcs. The @arcs section can
9.8 +The \c \@edges is just a synonym of \c \@arcs. The \@arcs section can
9.9 also store the edge set of an undirected graph. In such case there is
9.10 a conventional method for store arc maps in the file, if two columns
9.11 has the same caption with \c '+' and \c '-' prefix, then these columns
10.1 --- a/doc/mainpage.dox Thu Oct 09 16:47:01 2008 +0200
10.2 +++ b/doc/mainpage.dox Thu Oct 09 16:20:37 2008 +0100
10.3 @@ -50,11 +50,12 @@
10.4
10.5 If you
10.6 want to see how LEMON works, see
10.7 -some \ref demoprograms "demo programs"!
10.8 +some \ref demoprograms "demo programs".
10.9
10.10 If you know what you are looking for then try to find it under the
10.11 <a class="el" href="modules.html">Modules</a>
10.12 section.
10.13
10.14 -
10.15 +If you are a user of the old (0.x) series of LEMON, please check out the
10.16 +\ref migration "Migration Guide" for the backward incompatibilities.
10.17 */
11.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
11.2 +++ b/doc/migration.dox Thu Oct 09 16:20:37 2008 +0100
11.3 @@ -0,0 +1,143 @@
11.4 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
11.5 + *
11.6 + * This file is a part of LEMON, a generic C++ optimization library.
11.7 + *
11.8 + * Copyright (C) 2003-2008
11.9 + * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
11.10 + * (Egervary Research Group on Combinatorial Optimization, EGRES).
11.11 + *
11.12 + * Permission to use, modify and distribute this software is granted
11.13 + * provided that this copyright notice appears in all copies. For
11.14 + * precise terms see the accompanying LICENSE file.
11.15 + *
11.16 + * This software is provided "AS IS" with no warranty of any kind,
11.17 + * express or implied, and with no claim as to its suitability for any
11.18 + * purpose.
11.19 + *
11.20 + */
11.21 +
11.22 +namespace lemon {
11.23 +/*!
11.24 +
11.25 +\page migration Migration from the 0.x Series
11.26 +
11.27 +This guide gives an in depth description on what has changed compared
11.28 +to the 0.x release series.
11.29 +
11.30 +Many of these changes adjusted automatically by the
11.31 +<tt>script/lemon-0.x-to-1.x.sh</tt> tool. Those requiring manual
11.32 +update are typeset <b>boldface</b>.
11.33 +
11.34 +\section migration-graph Graph Related Name Changes
11.35 +
11.36 +- \ref concepts::Digraph "Directed graphs" are called \c Digraph and
11.37 + they have <tt>Arc</tt>s (instead of <tt>Edge</tt>s), while
11.38 + \ref concepts::Graph "undirected graphs" are called \c Graph
11.39 + (instead of \c UGraph) and they have <tt>Edge</tt>s (instead of
11.40 + <tt>UEdge</tt>s). These changes reflected thoroughly everywhere in
11.41 + the library. Namely,
11.42 + - \c Graph -> \c Digraph
11.43 + - \c %ListGraph -> \c ListDigraph, \c %SmartGraph -> \c SmartDigraph etc.
11.44 + - \c UGraph -> \c Graph
11.45 + - \c ListUGraph -> \c ListGraph, \c SmartUGraph -> \c SmartGraph etc.
11.46 + - \c Edge -> \c Arc, \c UEdge -> \c Edge
11.47 + - \c EdgeMap -> \c ArcMap, \c UEdgeMap -> \c EdgeMap
11.48 + - \c EdgeIt -> \c ArcIt, \c UEdgeIt -> \c EdgeIt
11.49 + - Class names and function names containing the words \c graph,
11.50 + \c ugraph, \e edge or \e arc should also be updated.
11.51 +- <b>The two endpoints of an (\e undirected) \c Edge can be obtained by the
11.52 + <tt>u()</tt> and <tt>v()</tt> member function of the graph
11.53 + (instead of <tt>source()</tt> and <tt>target()</tt>). This change
11.54 + must be done by hand.</b>
11.55 + \n Of course, you can still use <tt>source()</tt> and <tt>target()</tt>
11.56 + for <tt>Arc</tt>s (directed edges).
11.57 +
11.58 +\warning
11.59 +<b>The <tt>script/lemon-0.x-to-1.x.sh</tt> tool replaces all instances of
11.60 +the words \c graph, \c digraph, \c edge and \c arc, so it replaces them
11.61 +in strings, comments etc. as well as in all identifiers.</b>
11.62 +
11.63 +\section migration-lgf LGF tools
11.64 + - The \ref lgf-format "LGF file format" has changed,
11.65 + <tt>\@nodeset</tt> has changed to <tt>\@nodes</tt>,
11.66 + <tt>\@edgeset</tt> and <tt>\@uedgeset</tt> to <tt>\@arcs</tt> or
11.67 + <tt>\@edges</tt>, which become completely equivalents. The
11.68 + <tt>\@nodes</tt>, <tt>\@edges</tt> and <tt>\@uedges</tt> sections are
11.69 + removed from the format, the content of them should be
11.70 + the part of <tt>\@attributes</tt> section. The data fields in
11.71 + the sections must follow a strict format, they must be either character
11.72 + sequences without whitespaces or quoted strings.
11.73 + - The <tt>LemonReader</tt> and <tt>LemonWriter</tt> core interfaces
11.74 + are no longer available.
11.75 + - The implementation of the general section readers and writers has changed
11.76 + they are simple functors now. Beside the old
11.77 + stream based section handling, currently line oriented section
11.78 + reading and writing are also supported. In the
11.79 + section readers the lines must be counted manually. The sections
11.80 + should be read and written with the SectionWriter and SectionReader
11.81 + classes.
11.82 + - Instead of the item readers and writers, item converters should be
11.83 + used. The converters are functors, which map the type to
11.84 + std::string or std::string to the type. The converters for standard
11.85 + containers hasn't yet been implemented in the new LEMON. The converters
11.86 + can return strings in any format, because if it is necessary, the LGF
11.87 + writer and reader will quote and unquote the given value.
11.88 + - The DigraphReader and DigraphWriter can used similarly to the
11.89 + 0.x series, however the <tt>read</tt> or <tt>write</tt> prefix of
11.90 + the member functions are removed.
11.91 + - The new LEMON supports the function like interface, the \c
11.92 + digraphReader and \c digraphWriter functions are more convenient than
11.93 + using the classes directly.
11.94 +
11.95 +\section migration-search BFS, DFS and Dijkstra
11.96 +- <b>Using the function interface of BFS, DFS and %Dijkstra both source and
11.97 + target nodes can be given as parameters of the <tt>run()</tt> function
11.98 + (instead of \c bfs(), \c dfs() or \c dijkstra() itself).</b>
11.99 +- \ref named-templ-param "Named class template parameters" of \c Bfs,
11.100 + \c Dfs, \c Dijkstra, \c BfsVisit, \c DfsVisit are renamed to start
11.101 + with "Set" instead of "Def". Namely,
11.102 + - \c DefPredMap -> \c SetPredMap
11.103 + - \c DefDistMap -> \c SetDistMap
11.104 + - \c DefReachedMap -> \c SetReachedMap
11.105 + - \c DefProcessedMap -> \c SetProcessedMap
11.106 + - \c DefHeap -> \c SetHeap
11.107 + - \c DefStandardHeap -> \c SetStandardHeap
11.108 + - \c DefOperationTraits -> \c SetOperationTraits
11.109 + - \c DefProcessedMapToBeDefaultMap -> \c SetStandardProcessedMap
11.110 +
11.111 +\section migration-error Exceptions and Debug tools
11.112 +
11.113 +<b>The class hierarchy of exceptions has largely been simplified. Now,
11.114 +only the i/o related tools may throw exceptions. All other exceptions
11.115 +have been replaced with either the \c LEMON_ASSERT or the \c LEMON_DEBUG
11.116 +macros.</b>
11.117 +
11.118 +<b>On the other hand, the parameter order of constructors of the
11.119 +exceptions has been changed. See \ref IoError and \ref FormatError for
11.120 +more details.</b>
11.121 +
11.122 +\section migration-other Others
11.123 +- <b>The contents of <tt>graph_utils.h</tt> are moved to <tt>core.h</tt>
11.124 + and <tt>maps.h</tt>. <tt>core.h</tt> is included by all graph types,
11.125 + therefore it usually do not have to be included directly.</b>
11.126 +- <b><tt>path_utils.h</tt> is merged to \c path.h.</b>
11.127 +- <b>The semantic of the assignment operations and copy constructors of maps
11.128 + are still under discussion. So, you must copy them by hand (i.e. copy
11.129 + each entry one-by-one)</b>
11.130 +- <b>The parameters of the graph copying tools (i.e. \c GraphCopy,
11.131 + \c DigraphCopy) have to be given in the from-to order.</b>
11.132 +- \c copyDigraph() and \c copyGraph() are renamed to \c digraphCopy()
11.133 + and \c graphCopy(), respectively.
11.134 +- <b>The interface of \ref DynArcLookUp has changed. It is now the same as
11.135 + of \ref ArcLookUp and \ref AllArcLookUp</b>
11.136 +- Some map types should also been renamed. Namely,
11.137 + - \c IntegerMap -> \c RangeMap
11.138 + - \c StdMap -> \c SparseMap
11.139 + - \c FunctorMap -> \c FunctorToMap
11.140 + - \c MapFunctor -> \c MapToFunctor
11.141 + - \c ForkWriteMap -> \c ForkMap
11.142 + - \c StoreBoolMap -> \c LoggerBoolMap
11.143 +- \c dim2::BoundingBox -> \c dim2::Box
11.144 +
11.145 +*/
11.146 +}
12.1 --- a/lemon/arg_parser.cc Thu Oct 09 16:47:01 2008 +0200
12.2 +++ b/lemon/arg_parser.cc Thu Oct 09 16:20:37 2008 +0100
12.3 @@ -26,12 +26,11 @@
12.4 exit(1);
12.5 }
12.6
12.7 - ArgParser::ArgParser(int argc, const char **argv) :_argc(argc), _argv(argv),
12.8 - _command_name(argv[0]) {
12.9 + ArgParser::ArgParser(int argc, const char * const *argv)
12.10 + :_argc(argc), _argv(argv), _command_name(argv[0]) {
12.11 funcOption("-help","Print a short help message",_showHelp,this);
12.12 synonym("help","-help");
12.13 synonym("h","-help");
12.14 -
12.15 }
12.16
12.17 ArgParser::~ArgParser()
13.1 --- a/lemon/arg_parser.h Thu Oct 09 16:47:01 2008 +0200
13.2 +++ b/lemon/arg_parser.h Thu Oct 09 16:20:37 2008 +0100
13.3 @@ -46,7 +46,7 @@
13.4 protected:
13.5
13.6 int _argc;
13.7 - const char **_argv;
13.8 + const char * const *_argv;
13.9
13.10 enum OptType { UNKNOWN=0, BOOL=1, STRING=2, DOUBLE=3, INTEGER=4, FUNC=5 };
13.11
13.12 @@ -119,7 +119,7 @@
13.13 public:
13.14
13.15 ///Constructor
13.16 - ArgParser(int argc, const char **argv);
13.17 + ArgParser(int argc, const char * const *argv);
13.18
13.19 ~ArgParser();
13.20
14.1 --- a/lemon/bfs.h Thu Oct 09 16:47:01 2008 +0200
14.2 +++ b/lemon/bfs.h Thu Oct 09 16:20:37 2008 +0100
14.3 @@ -49,11 +49,11 @@
14.4 ///arcs of the shortest paths.
14.5 ///It must meet the \ref concepts::WriteMap "WriteMap" concept.
14.6 typedef typename Digraph::template NodeMap<typename Digraph::Arc> PredMap;
14.7 - ///Instantiates a \ref PredMap.
14.8 + ///Instantiates a PredMap.
14.9
14.10 - ///This function instantiates a \ref PredMap.
14.11 + ///This function instantiates a PredMap.
14.12 ///\param g is the digraph, to which we would like to define the
14.13 - ///\ref PredMap.
14.14 + ///PredMap.
14.15 static PredMap *createPredMap(const Digraph &g)
14.16 {
14.17 return new PredMap(g);
14.18 @@ -64,11 +64,11 @@
14.19 ///The type of the map that indicates which nodes are processed.
14.20 ///It must meet the \ref concepts::WriteMap "WriteMap" concept.
14.21 typedef NullMap<typename Digraph::Node,bool> ProcessedMap;
14.22 - ///Instantiates a \ref ProcessedMap.
14.23 + ///Instantiates a ProcessedMap.
14.24
14.25 - ///This function instantiates a \ref ProcessedMap.
14.26 + ///This function instantiates a ProcessedMap.
14.27 ///\param g is the digraph, to which
14.28 - ///we would like to define the \ref ProcessedMap
14.29 + ///we would like to define the ProcessedMap
14.30 #ifdef DOXYGEN
14.31 static ProcessedMap *createProcessedMap(const Digraph &g)
14.32 #else
14.33 @@ -83,11 +83,11 @@
14.34 ///The type of the map that indicates which nodes are reached.
14.35 ///It must meet the \ref concepts::ReadWriteMap "ReadWriteMap" concept.
14.36 typedef typename Digraph::template NodeMap<bool> ReachedMap;
14.37 - ///Instantiates a \ref ReachedMap.
14.38 + ///Instantiates a ReachedMap.
14.39
14.40 - ///This function instantiates a \ref ReachedMap.
14.41 + ///This function instantiates a ReachedMap.
14.42 ///\param g is the digraph, to which
14.43 - ///we would like to define the \ref ReachedMap.
14.44 + ///we would like to define the ReachedMap.
14.45 static ReachedMap *createReachedMap(const Digraph &g)
14.46 {
14.47 return new ReachedMap(g);
14.48 @@ -98,11 +98,11 @@
14.49 ///The type of the map that stores the distances of the nodes.
14.50 ///It must meet the \ref concepts::WriteMap "WriteMap" concept.
14.51 typedef typename Digraph::template NodeMap<int> DistMap;
14.52 - ///Instantiates a \ref DistMap.
14.53 + ///Instantiates a DistMap.
14.54
14.55 - ///This function instantiates a \ref DistMap.
14.56 + ///This function instantiates a DistMap.
14.57 ///\param g is the digraph, to which we would like to define the
14.58 - ///\ref DistMap.
14.59 + ///DistMap.
14.60 static DistMap *createDistMap(const Digraph &g)
14.61 {
14.62 return new DistMap(g);
14.63 @@ -227,10 +227,10 @@
14.64 }
14.65 };
14.66 ///\brief \ref named-templ-param "Named parameter" for setting
14.67 - ///\ref PredMap type.
14.68 + ///PredMap type.
14.69 ///
14.70 ///\ref named-templ-param "Named parameter" for setting
14.71 - ///\ref PredMap type.
14.72 + ///PredMap type.
14.73 template <class T>
14.74 struct SetPredMap : public Bfs< Digraph, SetPredMapTraits<T> > {
14.75 typedef Bfs< Digraph, SetPredMapTraits<T> > Create;
14.76 @@ -246,10 +246,10 @@
14.77 }
14.78 };
14.79 ///\brief \ref named-templ-param "Named parameter" for setting
14.80 - ///\ref DistMap type.
14.81 + ///DistMap type.
14.82 ///
14.83 ///\ref named-templ-param "Named parameter" for setting
14.84 - ///\ref DistMap type.
14.85 + ///DistMap type.
14.86 template <class T>
14.87 struct SetDistMap : public Bfs< Digraph, SetDistMapTraits<T> > {
14.88 typedef Bfs< Digraph, SetDistMapTraits<T> > Create;
14.89 @@ -265,10 +265,10 @@
14.90 }
14.91 };
14.92 ///\brief \ref named-templ-param "Named parameter" for setting
14.93 - ///\ref ReachedMap type.
14.94 + ///ReachedMap type.
14.95 ///
14.96 ///\ref named-templ-param "Named parameter" for setting
14.97 - ///\ref ReachedMap type.
14.98 + ///ReachedMap type.
14.99 template <class T>
14.100 struct SetReachedMap : public Bfs< Digraph, SetReachedMapTraits<T> > {
14.101 typedef Bfs< Digraph, SetReachedMapTraits<T> > Create;
14.102 @@ -284,10 +284,10 @@
14.103 }
14.104 };
14.105 ///\brief \ref named-templ-param "Named parameter" for setting
14.106 - ///\ref ProcessedMap type.
14.107 + ///ProcessedMap type.
14.108 ///
14.109 ///\ref named-templ-param "Named parameter" for setting
14.110 - ///\ref ProcessedMap type.
14.111 + ///ProcessedMap type.
14.112 template <class T>
14.113 struct SetProcessedMap : public Bfs< Digraph, SetProcessedMapTraits<T> > {
14.114 typedef Bfs< Digraph, SetProcessedMapTraits<T> > Create;
14.115 @@ -302,10 +302,10 @@
14.116 }
14.117 };
14.118 ///\brief \ref named-templ-param "Named parameter" for setting
14.119 - ///\ref ProcessedMap type to be <tt>Digraph::NodeMap<bool></tt>.
14.120 + ///ProcessedMap type to be <tt>Digraph::NodeMap<bool></tt>.
14.121 ///
14.122 ///\ref named-templ-param "Named parameter" for setting
14.123 - ///\ref ProcessedMap type to be <tt>Digraph::NodeMap<bool></tt>.
14.124 + ///ProcessedMap type to be <tt>Digraph::NodeMap<bool></tt>.
14.125 ///If you don't set it explicitly, it will be automatically allocated.
14.126 struct SetStandardProcessedMap :
14.127 public Bfs< Digraph, SetStandardProcessedMapTraits > {
14.128 @@ -835,11 +835,11 @@
14.129 ///arcs of the shortest paths.
14.130 ///It must meet the \ref concepts::WriteMap "WriteMap" concept.
14.131 typedef typename Digraph::template NodeMap<typename Digraph::Arc> PredMap;
14.132 - ///Instantiates a \ref PredMap.
14.133 + ///Instantiates a PredMap.
14.134
14.135 - ///This function instantiates a \ref PredMap.
14.136 + ///This function instantiates a PredMap.
14.137 ///\param g is the digraph, to which we would like to define the
14.138 - ///\ref PredMap.
14.139 + ///PredMap.
14.140 static PredMap *createPredMap(const Digraph &g)
14.141 {
14.142 return new PredMap(g);
14.143 @@ -851,11 +851,11 @@
14.144 ///It must meet the \ref concepts::WriteMap "WriteMap" concept.
14.145 ///By default it is a NullMap.
14.146 typedef NullMap<typename Digraph::Node,bool> ProcessedMap;
14.147 - ///Instantiates a \ref ProcessedMap.
14.148 + ///Instantiates a ProcessedMap.
14.149
14.150 - ///This function instantiates a \ref ProcessedMap.
14.151 + ///This function instantiates a ProcessedMap.
14.152 ///\param g is the digraph, to which
14.153 - ///we would like to define the \ref ProcessedMap.
14.154 + ///we would like to define the ProcessedMap.
14.155 #ifdef DOXYGEN
14.156 static ProcessedMap *createProcessedMap(const Digraph &g)
14.157 #else
14.158 @@ -870,11 +870,11 @@
14.159 ///The type of the map that indicates which nodes are reached.
14.160 ///It must meet the \ref concepts::ReadWriteMap "ReadWriteMap" concept.
14.161 typedef typename Digraph::template NodeMap<bool> ReachedMap;
14.162 - ///Instantiates a \ref ReachedMap.
14.163 + ///Instantiates a ReachedMap.
14.164
14.165 - ///This function instantiates a \ref ReachedMap.
14.166 + ///This function instantiates a ReachedMap.
14.167 ///\param g is the digraph, to which
14.168 - ///we would like to define the \ref ReachedMap.
14.169 + ///we would like to define the ReachedMap.
14.170 static ReachedMap *createReachedMap(const Digraph &g)
14.171 {
14.172 return new ReachedMap(g);
14.173 @@ -885,11 +885,11 @@
14.174 ///The type of the map that stores the distances of the nodes.
14.175 ///It must meet the \ref concepts::WriteMap "WriteMap" concept.
14.176 typedef typename Digraph::template NodeMap<int> DistMap;
14.177 - ///Instantiates a \ref DistMap.
14.178 + ///Instantiates a DistMap.
14.179
14.180 - ///This function instantiates a \ref DistMap.
14.181 + ///This function instantiates a DistMap.
14.182 ///\param g is the digraph, to which we would like to define
14.183 - ///the \ref DistMap
14.184 + ///the DistMap
14.185 static DistMap *createDistMap(const Digraph &g)
14.186 {
14.187 return new DistMap(g);
14.188 @@ -902,7 +902,7 @@
14.189 typedef lemon::Path<Digraph> Path;
14.190 };
14.191
14.192 - /// Default traits class used by \ref BfsWizard
14.193 + /// Default traits class used by BfsWizard
14.194
14.195 /// To make it easier to use Bfs algorithm
14.196 /// we have created a wizard class.
14.197 @@ -1068,10 +1068,10 @@
14.198 SetPredMapBase(const TR &b) : TR(b) {}
14.199 };
14.200 ///\brief \ref named-func-param "Named parameter"
14.201 - ///for setting \ref PredMap object.
14.202 + ///for setting PredMap object.
14.203 ///
14.204 ///\ref named-func-param "Named parameter"
14.205 - ///for setting \ref PredMap object.
14.206 + ///for setting PredMap object.
14.207 template<class T>
14.208 BfsWizard<SetPredMapBase<T> > predMap(const T &t)
14.209 {
14.210 @@ -1086,10 +1086,10 @@
14.211 SetReachedMapBase(const TR &b) : TR(b) {}
14.212 };
14.213 ///\brief \ref named-func-param "Named parameter"
14.214 - ///for setting \ref ReachedMap object.
14.215 + ///for setting ReachedMap object.
14.216 ///
14.217 /// \ref named-func-param "Named parameter"
14.218 - ///for setting \ref ReachedMap object.
14.219 + ///for setting ReachedMap object.
14.220 template<class T>
14.221 BfsWizard<SetReachedMapBase<T> > reachedMap(const T &t)
14.222 {
14.223 @@ -1104,10 +1104,10 @@
14.224 SetDistMapBase(const TR &b) : TR(b) {}
14.225 };
14.226 ///\brief \ref named-func-param "Named parameter"
14.227 - ///for setting \ref DistMap object.
14.228 + ///for setting DistMap object.
14.229 ///
14.230 /// \ref named-func-param "Named parameter"
14.231 - ///for setting \ref DistMap object.
14.232 + ///for setting DistMap object.
14.233 template<class T>
14.234 BfsWizard<SetDistMapBase<T> > distMap(const T &t)
14.235 {
14.236 @@ -1122,10 +1122,10 @@
14.237 SetProcessedMapBase(const TR &b) : TR(b) {}
14.238 };
14.239 ///\brief \ref named-func-param "Named parameter"
14.240 - ///for setting \ref ProcessedMap object.
14.241 + ///for setting ProcessedMap object.
14.242 ///
14.243 /// \ref named-func-param "Named parameter"
14.244 - ///for setting \ref ProcessedMap object.
14.245 + ///for setting ProcessedMap object.
14.246 template<class T>
14.247 BfsWizard<SetProcessedMapBase<T> > processedMap(const T &t)
14.248 {
14.249 @@ -1267,11 +1267,11 @@
14.250 /// It must meet the \ref concepts::ReadWriteMap "ReadWriteMap" concept.
14.251 typedef typename Digraph::template NodeMap<bool> ReachedMap;
14.252
14.253 - /// \brief Instantiates a \ref ReachedMap.
14.254 + /// \brief Instantiates a ReachedMap.
14.255 ///
14.256 - /// This function instantiates a \ref ReachedMap.
14.257 + /// This function instantiates a ReachedMap.
14.258 /// \param digraph is the digraph, to which
14.259 - /// we would like to define the \ref ReachedMap.
14.260 + /// we would like to define the ReachedMap.
14.261 static ReachedMap *createReachedMap(const Digraph &digraph) {
14.262 return new ReachedMap(digraph);
14.263 }
15.1 --- a/lemon/bits/alteration_notifier.h Thu Oct 09 16:47:01 2008 +0200
15.2 +++ b/lemon/bits/alteration_notifier.h Thu Oct 09 16:20:37 2008 +0100
15.3 @@ -24,76 +24,75 @@
15.4
15.5 #include <lemon/core.h>
15.6
15.7 -///\ingroup graphbits
15.8 -///\file
15.9 -///\brief Observer notifier for graph alteration observers.
15.10 +//\ingroup graphbits
15.11 +//\file
15.12 +//\brief Observer notifier for graph alteration observers.
15.13
15.14 namespace lemon {
15.15
15.16 - /// \ingroup graphbits
15.17 - ///
15.18 - /// \brief Notifier class to notify observes about alterations in
15.19 - /// a container.
15.20 - ///
15.21 - /// The simple graph's can be refered as two containers, one node container
15.22 - /// and one edge container. But they are not standard containers they
15.23 - /// does not store values directly they are just key continars for more
15.24 - /// value containers which are the node and edge maps.
15.25 - ///
15.26 - /// The graph's node and edge sets can be changed as we add or erase
15.27 - /// nodes and edges in the graph. LEMON would like to handle easily
15.28 - /// that the node and edge maps should contain values for all nodes or
15.29 - /// edges. If we want to check on every indicing if the map contains
15.30 - /// the current indicing key that cause a drawback in the performance
15.31 - /// in the library. We use another solution we notify all maps about
15.32 - /// an alteration in the graph, which cause only drawback on the
15.33 - /// alteration of the graph.
15.34 - ///
15.35 - /// This class provides an interface to the container. The \e first() and \e
15.36 - /// next() member functions make possible to iterate on the keys of the
15.37 - /// container. The \e id() function returns an integer id for each key.
15.38 - /// The \e maxId() function gives back an upper bound of the ids.
15.39 - ///
15.40 - /// For the proper functonality of this class, we should notify it
15.41 - /// about each alteration in the container. The alterations have four type
15.42 - /// as \e add(), \e erase(), \e build() and \e clear(). The \e add() and
15.43 - /// \e erase() signals that only one or few items added or erased to or
15.44 - /// from the graph. If all items are erased from the graph or from an empty
15.45 - /// graph a new graph is builded then it can be signaled with the
15.46 - /// clear() and build() members. Important rule that if we erase items
15.47 - /// from graph we should first signal the alteration and after that erase
15.48 - /// them from the container, on the other way on item addition we should
15.49 - /// first extend the container and just after that signal the alteration.
15.50 - ///
15.51 - /// The alteration can be observed with a class inherited from the
15.52 - /// \e ObserverBase nested class. The signals can be handled with
15.53 - /// overriding the virtual functions defined in the base class. The
15.54 - /// observer base can be attached to the notifier with the
15.55 - /// \e attach() member and can be detached with detach() function. The
15.56 - /// alteration handlers should not call any function which signals
15.57 - /// an other alteration in the same notifier and should not
15.58 - /// detach any observer from the notifier.
15.59 - ///
15.60 - /// Alteration observers try to be exception safe. If an \e add() or
15.61 - /// a \e clear() function throws an exception then the remaining
15.62 - /// observeres will not be notified and the fulfilled additions will
15.63 - /// be rolled back by calling the \e erase() or \e clear()
15.64 - /// functions. Thence the \e erase() and \e clear() should not throw
15.65 - /// exception. Actullay, it can be throw only
15.66 - /// \ref AlterationObserver::ImmediateDetach ImmediateDetach
15.67 - /// exception which detach the observer from the notifier.
15.68 - ///
15.69 - /// There are some place when the alteration observing is not completly
15.70 - /// reliable. If we want to carry out the node degree in the graph
15.71 - /// as in the \ref InDegMap and we use the reverseEdge that cause
15.72 - /// unreliable functionality. Because the alteration observing signals
15.73 - /// only erasing and adding but not the reversing it will stores bad
15.74 - /// degrees. The sub graph adaptors cannot signal the alterations because
15.75 - /// just a setting in the filter map can modify the graph and this cannot
15.76 - /// be watched in any way.
15.77 - ///
15.78 - /// \param _Container The container which is observed.
15.79 - /// \param _Item The item type which is obserbved.
15.80 + // \ingroup graphbits
15.81 + //
15.82 + // \brief Notifier class to notify observes about alterations in
15.83 + // a container.
15.84 + //
15.85 + // The simple graph's can be refered as two containers, one node container
15.86 + // and one edge container. But they are not standard containers they
15.87 + // does not store values directly they are just key continars for more
15.88 + // value containers which are the node and edge maps.
15.89 + //
15.90 + // The graph's node and edge sets can be changed as we add or erase
15.91 + // nodes and edges in the graph. LEMON would like to handle easily
15.92 + // that the node and edge maps should contain values for all nodes or
15.93 + // edges. If we want to check on every indicing if the map contains
15.94 + // the current indicing key that cause a drawback in the performance
15.95 + // in the library. We use another solution we notify all maps about
15.96 + // an alteration in the graph, which cause only drawback on the
15.97 + // alteration of the graph.
15.98 + //
15.99 + // This class provides an interface to the container. The \e first() and \e
15.100 + // next() member functions make possible to iterate on the keys of the
15.101 + // container. The \e id() function returns an integer id for each key.
15.102 + // The \e maxId() function gives back an upper bound of the ids.
15.103 + //
15.104 + // For the proper functonality of this class, we should notify it
15.105 + // about each alteration in the container. The alterations have four type
15.106 + // as \e add(), \e erase(), \e build() and \e clear(). The \e add() and
15.107 + // \e erase() signals that only one or few items added or erased to or
15.108 + // from the graph. If all items are erased from the graph or from an empty
15.109 + // graph a new graph is builded then it can be signaled with the
15.110 + // clear() and build() members. Important rule that if we erase items
15.111 + // from graph we should first signal the alteration and after that erase
15.112 + // them from the container, on the other way on item addition we should
15.113 + // first extend the container and just after that signal the alteration.
15.114 + //
15.115 + // The alteration can be observed with a class inherited from the
15.116 + // \e ObserverBase nested class. The signals can be handled with
15.117 + // overriding the virtual functions defined in the base class. The
15.118 + // observer base can be attached to the notifier with the
15.119 + // \e attach() member and can be detached with detach() function. The
15.120 + // alteration handlers should not call any function which signals
15.121 + // an other alteration in the same notifier and should not
15.122 + // detach any observer from the notifier.
15.123 + //
15.124 + // Alteration observers try to be exception safe. If an \e add() or
15.125 + // a \e clear() function throws an exception then the remaining
15.126 + // observeres will not be notified and the fulfilled additions will
15.127 + // be rolled back by calling the \e erase() or \e clear()
15.128 + // functions. Thence the \e erase() and \e clear() should not throw
15.129 + // exception. Actullay, it can be throw only \ref ImmediateDetach
15.130 + // exception which detach the observer from the notifier.
15.131 + //
15.132 + // There are some place when the alteration observing is not completly
15.133 + // reliable. If we want to carry out the node degree in the graph
15.134 + // as in the \ref InDegMap and we use the reverseEdge that cause
15.135 + // unreliable functionality. Because the alteration observing signals
15.136 + // only erasing and adding but not the reversing it will stores bad
15.137 + // degrees. The sub graph adaptors cannot signal the alterations because
15.138 + // just a setting in the filter map can modify the graph and this cannot
15.139 + // be watched in any way.
15.140 + //
15.141 + // \param _Container The container which is observed.
15.142 + // \param _Item The item type which is obserbved.
15.143
15.144 template <typename _Container, typename _Item>
15.145 class AlterationNotifier {
15.146 @@ -104,92 +103,87 @@
15.147 typedef _Container Container;
15.148 typedef _Item Item;
15.149
15.150 - /// \brief Exception which can be called from \e clear() and
15.151 - /// \e erase().
15.152 - ///
15.153 - /// From the \e clear() and \e erase() function only this
15.154 - /// exception is allowed to throw. The exception immediatly
15.155 - /// detaches the current observer from the notifier. Because the
15.156 - /// \e clear() and \e erase() should not throw other exceptions
15.157 - /// it can be used to invalidate the observer.
15.158 + // \brief Exception which can be called from \e clear() and
15.159 + // \e erase().
15.160 + //
15.161 + // From the \e clear() and \e erase() function only this
15.162 + // exception is allowed to throw. The exception immediatly
15.163 + // detaches the current observer from the notifier. Because the
15.164 + // \e clear() and \e erase() should not throw other exceptions
15.165 + // it can be used to invalidate the observer.
15.166 struct ImmediateDetach {};
15.167
15.168 - /// \brief ObserverBase is the base class for the observers.
15.169 - ///
15.170 - /// ObserverBase is the abstract base class for the observers.
15.171 - /// It will be notified about an item was inserted into or
15.172 - /// erased from the graph.
15.173 - ///
15.174 - /// The observer interface contains some pure virtual functions
15.175 - /// to override. The add() and erase() functions are
15.176 - /// to notify the oberver when one item is added or
15.177 - /// erased.
15.178 - ///
15.179 - /// The build() and clear() members are to notify the observer
15.180 - /// about the container is built from an empty container or
15.181 - /// is cleared to an empty container.
15.182 -
15.183 + // \brief ObserverBase is the base class for the observers.
15.184 + //
15.185 + // ObserverBase is the abstract base class for the observers.
15.186 + // It will be notified about an item was inserted into or
15.187 + // erased from the graph.
15.188 + //
15.189 + // The observer interface contains some pure virtual functions
15.190 + // to override. The add() and erase() functions are
15.191 + // to notify the oberver when one item is added or
15.192 + // erased.
15.193 + //
15.194 + // The build() and clear() members are to notify the observer
15.195 + // about the container is built from an empty container or
15.196 + // is cleared to an empty container.
15.197 class ObserverBase {
15.198 protected:
15.199 typedef AlterationNotifier Notifier;
15.200
15.201 friend class AlterationNotifier;
15.202
15.203 - /// \brief Default constructor.
15.204 - ///
15.205 - /// Default constructor for ObserverBase.
15.206 - ///
15.207 + // \brief Default constructor.
15.208 + //
15.209 + // Default constructor for ObserverBase.
15.210 ObserverBase() : _notifier(0) {}
15.211
15.212 - /// \brief Constructor which attach the observer into notifier.
15.213 - ///
15.214 - /// Constructor which attach the observer into notifier.
15.215 + // \brief Constructor which attach the observer into notifier.
15.216 + //
15.217 + // Constructor which attach the observer into notifier.
15.218 ObserverBase(AlterationNotifier& nf) {
15.219 attach(nf);
15.220 }
15.221
15.222 - /// \brief Constructor which attach the obserever to the same notifier.
15.223 - ///
15.224 - /// Constructor which attach the obserever to the same notifier as
15.225 - /// the other observer is attached to.
15.226 + // \brief Constructor which attach the obserever to the same notifier.
15.227 + //
15.228 + // Constructor which attach the obserever to the same notifier as
15.229 + // the other observer is attached to.
15.230 ObserverBase(const ObserverBase& copy) {
15.231 if (copy.attached()) {
15.232 attach(*copy.notifier());
15.233 }
15.234 }
15.235
15.236 - /// \brief Destructor
15.237 + // \brief Destructor
15.238 virtual ~ObserverBase() {
15.239 if (attached()) {
15.240 detach();
15.241 }
15.242 }
15.243
15.244 - /// \brief Attaches the observer into an AlterationNotifier.
15.245 - ///
15.246 - /// This member attaches the observer into an AlterationNotifier.
15.247 - ///
15.248 + // \brief Attaches the observer into an AlterationNotifier.
15.249 + //
15.250 + // This member attaches the observer into an AlterationNotifier.
15.251 void attach(AlterationNotifier& nf) {
15.252 nf.attach(*this);
15.253 }
15.254
15.255 - /// \brief Detaches the observer into an AlterationNotifier.
15.256 - ///
15.257 - /// This member detaches the observer from an AlterationNotifier.
15.258 - ///
15.259 + // \brief Detaches the observer into an AlterationNotifier.
15.260 + //
15.261 + // This member detaches the observer from an AlterationNotifier.
15.262 void detach() {
15.263 _notifier->detach(*this);
15.264 }
15.265
15.266 - /// \brief Gives back a pointer to the notifier which the map
15.267 - /// attached into.
15.268 - ///
15.269 - /// This function gives back a pointer to the notifier which the map
15.270 - /// attached into.
15.271 - ///
15.272 + // \brief Gives back a pointer to the notifier which the map
15.273 + // attached into.
15.274 + //
15.275 + // This function gives back a pointer to the notifier which the map
15.276 + // attached into.
15.277 Notifier* notifier() const { return const_cast<Notifier*>(_notifier); }
15.278
15.279 - /// Gives back true when the observer is attached into a notifier.
15.280 + // Gives back true when the observer is attached into a notifier.
15.281 bool attached() const { return _notifier != 0; }
15.282
15.283 private:
15.284 @@ -201,53 +195,52 @@
15.285 Notifier* _notifier;
15.286 typename std::list<ObserverBase*>::iterator _index;
15.287
15.288 - /// \brief The member function to notificate the observer about an
15.289 - /// item is added to the container.
15.290 - ///
15.291 - /// The add() member function notificates the observer about an item
15.292 - /// is added to the container. It have to be overrided in the
15.293 - /// subclasses.
15.294 + // \brief The member function to notificate the observer about an
15.295 + // item is added to the container.
15.296 + //
15.297 + // The add() member function notificates the observer about an item
15.298 + // is added to the container. It have to be overrided in the
15.299 + // subclasses.
15.300 virtual void add(const Item&) = 0;
15.301
15.302 - /// \brief The member function to notificate the observer about
15.303 - /// more item is added to the container.
15.304 - ///
15.305 - /// The add() member function notificates the observer about more item
15.306 - /// is added to the container. It have to be overrided in the
15.307 - /// subclasses.
15.308 + // \brief The member function to notificate the observer about
15.309 + // more item is added to the container.
15.310 + //
15.311 + // The add() member function notificates the observer about more item
15.312 + // is added to the container. It have to be overrided in the
15.313 + // subclasses.
15.314 virtual void add(const std::vector<Item>& items) = 0;
15.315
15.316 - /// \brief The member function to notificate the observer about an
15.317 - /// item is erased from the container.
15.318 - ///
15.319 - /// The erase() member function notificates the observer about an
15.320 - /// item is erased from the container. It have to be overrided in
15.321 - /// the subclasses.
15.322 + // \brief The member function to notificate the observer about an
15.323 + // item is erased from the container.
15.324 + //
15.325 + // The erase() member function notificates the observer about an
15.326 + // item is erased from the container. It have to be overrided in
15.327 + // the subclasses.
15.328 virtual void erase(const Item&) = 0;
15.329
15.330 - /// \brief The member function to notificate the observer about
15.331 - /// more item is erased from the container.
15.332 - ///
15.333 - /// The erase() member function notificates the observer about more item
15.334 - /// is erased from the container. It have to be overrided in the
15.335 - /// subclasses.
15.336 + // \brief The member function to notificate the observer about
15.337 + // more item is erased from the container.
15.338 + //
15.339 + // The erase() member function notificates the observer about more item
15.340 + // is erased from the container. It have to be overrided in the
15.341 + // subclasses.
15.342 virtual void erase(const std::vector<Item>& items) = 0;
15.343
15.344 - /// \brief The member function to notificate the observer about the
15.345 - /// container is built.
15.346 - ///
15.347 - /// The build() member function notificates the observer about the
15.348 - /// container is built from an empty container. It have to be
15.349 - /// overrided in the subclasses.
15.350 -
15.351 + // \brief The member function to notificate the observer about the
15.352 + // container is built.
15.353 + //
15.354 + // The build() member function notificates the observer about the
15.355 + // container is built from an empty container. It have to be
15.356 + // overrided in the subclasses.
15.357 virtual void build() = 0;
15.358
15.359 - /// \brief The member function to notificate the observer about all
15.360 - /// items are erased from the container.
15.361 - ///
15.362 - /// The clear() member function notificates the observer about all
15.363 - /// items are erased from the container. It have to be overrided in
15.364 - /// the subclasses.
15.365 + // \brief The member function to notificate the observer about all
15.366 + // items are erased from the container.
15.367 + //
15.368 + // The clear() member function notificates the observer about all
15.369 + // items are erased from the container. It have to be overrided in
15.370 + // the subclasses.
15.371 virtual void clear() = 0;
15.372
15.373 };
15.374 @@ -262,31 +255,30 @@
15.375
15.376 public:
15.377
15.378 - /// \brief Default constructor.
15.379 - ///
15.380 - /// The default constructor of the AlterationNotifier.
15.381 - /// It creates an empty notifier.
15.382 + // \brief Default constructor.
15.383 + //
15.384 + // The default constructor of the AlterationNotifier.
15.385 + // It creates an empty notifier.
15.386 AlterationNotifier()
15.387 : container(0) {}
15.388
15.389 - /// \brief Constructor.
15.390 - ///
15.391 - /// Constructor with the observed container parameter.
15.392 + // \brief Constructor.
15.393 + //
15.394 + // Constructor with the observed container parameter.
15.395 AlterationNotifier(const Container& _container)
15.396 : container(&_container) {}
15.397
15.398 - /// \brief Copy Constructor of the AlterationNotifier.
15.399 - ///
15.400 - /// Copy constructor of the AlterationNotifier.
15.401 - /// It creates only an empty notifier because the copiable
15.402 - /// notifier's observers have to be registered still into that notifier.
15.403 + // \brief Copy Constructor of the AlterationNotifier.
15.404 + //
15.405 + // Copy constructor of the AlterationNotifier.
15.406 + // It creates only an empty notifier because the copiable
15.407 + // notifier's observers have to be registered still into that notifier.
15.408 AlterationNotifier(const AlterationNotifier& _notifier)
15.409 : container(_notifier.container) {}
15.410
15.411 - /// \brief Destructor.
15.412 - ///
15.413 - /// Destructor of the AlterationNotifier.
15.414 - ///
15.415 + // \brief Destructor.
15.416 + //
15.417 + // Destructor of the AlterationNotifier.
15.418 ~AlterationNotifier() {
15.419 typename Observers::iterator it;
15.420 for (it = _observers.begin(); it != _observers.end(); ++it) {
15.421 @@ -294,9 +286,9 @@
15.422 }
15.423 }
15.424
15.425 - /// \brief Sets the container.
15.426 - ///
15.427 - /// Sets the container.
15.428 + // \brief Sets the container.
15.429 + //
15.430 + // Sets the container.
15.431 void setContainer(const Container& _container) {
15.432 container = &_container;
15.433 }
15.434 @@ -307,34 +299,32 @@
15.435
15.436 public:
15.437
15.438 -
15.439 -
15.440 - /// \brief First item in the container.
15.441 - ///
15.442 - /// Returns the first item in the container. It is
15.443 - /// for start the iteration on the container.
15.444 + // \brief First item in the container.
15.445 + //
15.446 + // Returns the first item in the container. It is
15.447 + // for start the iteration on the container.
15.448 void first(Item& item) const {
15.449 container->first(item);
15.450 }
15.451
15.452 - /// \brief Next item in the container.
15.453 - ///
15.454 - /// Returns the next item in the container. It is
15.455 - /// for iterate on the container.
15.456 + // \brief Next item in the container.
15.457 + //
15.458 + // Returns the next item in the container. It is
15.459 + // for iterate on the container.
15.460 void next(Item& item) const {
15.461 container->next(item);
15.462 }
15.463
15.464 - /// \brief Returns the id of the item.
15.465 - ///
15.466 - /// Returns the id of the item provided by the container.
15.467 + // \brief Returns the id of the item.
15.468 + //
15.469 + // Returns the id of the item provided by the container.
15.470 int id(const Item& item) const {
15.471 return container->id(item);
15.472 }
15.473
15.474 - /// \brief Returns the maximum id of the container.
15.475 - ///
15.476 - /// Returns the maximum id of the container.
15.477 + // \brief Returns the maximum id of the container.
15.478 + //
15.479 + // Returns the maximum id of the container.
15.480 int maxId() const {
15.481 return container->maxId(Item());
15.482 }
15.483 @@ -354,12 +344,11 @@
15.484
15.485 public:
15.486
15.487 - /// \brief Notifies all the registed observers about an item added to
15.488 - /// the container.
15.489 - ///
15.490 - /// It notifies all the registed observers about an item added to
15.491 - /// the container.
15.492 - ///
15.493 + // \brief Notifies all the registed observers about an item added to
15.494 + // the container.
15.495 + //
15.496 + // It notifies all the registed observers about an item added to
15.497 + // the container.
15.498 void add(const Item& item) {
15.499 typename Observers::reverse_iterator it;
15.500 try {
15.501 @@ -375,12 +364,11 @@
15.502 }
15.503 }
15.504
15.505 - /// \brief Notifies all the registed observers about more item added to
15.506 - /// the container.
15.507 - ///
15.508 - /// It notifies all the registed observers about more item added to
15.509 - /// the container.
15.510 - ///
15.511 + // \brief Notifies all the registed observers about more item added to
15.512 + // the container.
15.513 + //
15.514 + // It notifies all the registed observers about more item added to
15.515 + // the container.
15.516 void add(const std::vector<Item>& items) {
15.517 typename Observers::reverse_iterator it;
15.518 try {
15.519 @@ -396,12 +384,11 @@
15.520 }
15.521 }
15.522
15.523 - /// \brief Notifies all the registed observers about an item erased from
15.524 - /// the container.
15.525 - ///
15.526 - /// It notifies all the registed observers about an item erased from
15.527 - /// the container.
15.528 - ///
15.529 + // \brief Notifies all the registed observers about an item erased from
15.530 + // the container.
15.531 + //
15.532 + // It notifies all the registed observers about an item erased from
15.533 + // the container.
15.534 void erase(const Item& item) throw() {
15.535 typename Observers::iterator it = _observers.begin();
15.536 while (it != _observers.end()) {
15.537 @@ -416,12 +403,11 @@
15.538 }
15.539 }
15.540
15.541 - /// \brief Notifies all the registed observers about more item erased
15.542 - /// from the container.
15.543 - ///
15.544 - /// It notifies all the registed observers about more item erased from
15.545 - /// the container.
15.546 - ///
15.547 + // \brief Notifies all the registed observers about more item erased
15.548 + // from the container.
15.549 + //
15.550 + // It notifies all the registed observers about more item erased from
15.551 + // the container.
15.552 void erase(const std::vector<Item>& items) {
15.553 typename Observers::iterator it = _observers.begin();
15.554 while (it != _observers.end()) {
15.555 @@ -436,11 +422,11 @@
15.556 }
15.557 }
15.558
15.559 - /// \brief Notifies all the registed observers about the container is
15.560 - /// built.
15.561 - ///
15.562 - /// Notifies all the registed observers about the container is built
15.563 - /// from an empty container.
15.564 + // \brief Notifies all the registed observers about the container is
15.565 + // built.
15.566 + //
15.567 + // Notifies all the registed observers about the container is built
15.568 + // from an empty container.
15.569 void build() {
15.570 typename Observers::reverse_iterator it;
15.571 try {
15.572 @@ -456,11 +442,11 @@
15.573 }
15.574 }
15.575
15.576 - /// \brief Notifies all the registed observers about all items are
15.577 - /// erased.
15.578 - ///
15.579 - /// Notifies all the registed observers about all items are erased
15.580 - /// from the container.
15.581 + // \brief Notifies all the registed observers about all items are
15.582 + // erased.
15.583 + //
15.584 + // Notifies all the registed observers about all items are erased
15.585 + // from the container.
15.586 void clear() {
15.587 typename Observers::iterator it = _observers.begin();
15.588 while (it != _observers.end()) {
16.1 --- a/lemon/bits/array_map.h Thu Oct 09 16:47:01 2008 +0200
16.2 +++ b/lemon/bits/array_map.h Thu Oct 09 16:20:37 2008 +0100
16.3 @@ -26,48 +26,48 @@
16.4 #include <lemon/concept_check.h>
16.5 #include <lemon/concepts/maps.h>
16.6
16.7 -/// \ingroup graphbits
16.8 -/// \file
16.9 -/// \brief Graph map based on the array storage.
16.10 +// \ingroup graphbits
16.11 +// \file
16.12 +// \brief Graph map based on the array storage.
16.13
16.14 namespace lemon {
16.15
16.16 - /// \ingroup graphbits
16.17 - ///
16.18 - /// \brief Graph map based on the array storage.
16.19 - ///
16.20 - /// The ArrayMap template class is graph map structure what
16.21 - /// automatically updates the map when a key is added to or erased from
16.22 - /// the map. This map uses the allocators to implement
16.23 - /// the container functionality.
16.24 - ///
16.25 - /// The template parameters are the Graph the current Item type and
16.26 - /// the Value type of the map.
16.27 + // \ingroup graphbits
16.28 + //
16.29 + // \brief Graph map based on the array storage.
16.30 + //
16.31 + // The ArrayMap template class is graph map structure what
16.32 + // automatically updates the map when a key is added to or erased from
16.33 + // the map. This map uses the allocators to implement
16.34 + // the container functionality.
16.35 + //
16.36 + // The template parameters are the Graph the current Item type and
16.37 + // the Value type of the map.
16.38 template <typename _Graph, typename _Item, typename _Value>
16.39 class ArrayMap
16.40 : public ItemSetTraits<_Graph, _Item>::ItemNotifier::ObserverBase {
16.41 public:
16.42 - /// The graph type of the maps.
16.43 + // The graph type of the maps.
16.44 typedef _Graph Graph;
16.45 - /// The item type of the map.
16.46 + // The item type of the map.
16.47 typedef _Item Item;
16.48 - /// The reference map tag.
16.49 + // The reference map tag.
16.50 typedef True ReferenceMapTag;
16.51
16.52 - /// The key type of the maps.
16.53 + // The key type of the maps.
16.54 typedef _Item Key;
16.55 - /// The value type of the map.
16.56 + // The value type of the map.
16.57 typedef _Value Value;
16.58
16.59 - /// The const reference type of the map.
16.60 + // The const reference type of the map.
16.61 typedef const _Value& ConstReference;
16.62 - /// The reference type of the map.
16.63 + // The reference type of the map.
16.64 typedef _Value& Reference;
16.65
16.66 - /// The notifier type.
16.67 + // The notifier type.
16.68 typedef typename ItemSetTraits<_Graph, _Item>::ItemNotifier Notifier;
16.69
16.70 - /// The MapBase of the Map which imlements the core regisitry function.
16.71 + // The MapBase of the Map which imlements the core regisitry function.
16.72 typedef typename Notifier::ObserverBase Parent;
16.73
16.74 private:
16.75 @@ -75,9 +75,9 @@
16.76
16.77 public:
16.78
16.79 - /// \brief Graph initialized map constructor.
16.80 - ///
16.81 - /// Graph initialized map constructor.
16.82 + // \brief Graph initialized map constructor.
16.83 + //
16.84 + // Graph initialized map constructor.
16.85 explicit ArrayMap(const Graph& graph) {
16.86 Parent::attach(graph.notifier(Item()));
16.87 allocate_memory();
16.88 @@ -89,9 +89,9 @@
16.89 }
16.90 }
16.91
16.92 - /// \brief Constructor to use default value to initialize the map.
16.93 - ///
16.94 - /// It constructs a map and initialize all of the the map.
16.95 + // \brief Constructor to use default value to initialize the map.
16.96 + //
16.97 + // It constructs a map and initialize all of the the map.
16.98 ArrayMap(const Graph& graph, const Value& value) {
16.99 Parent::attach(graph.notifier(Item()));
16.100 allocate_memory();
16.101 @@ -104,9 +104,9 @@
16.102 }
16.103
16.104 private:
16.105 - /// \brief Constructor to copy a map of the same map type.
16.106 - ///
16.107 - /// Constructor to copy a map of the same map type.
16.108 + // \brief Constructor to copy a map of the same map type.
16.109 + //
16.110 + // Constructor to copy a map of the same map type.
16.111 ArrayMap(const ArrayMap& copy) : Parent() {
16.112 if (copy.attached()) {
16.113 attach(*copy.notifier());
16.114 @@ -122,24 +122,24 @@
16.115 }
16.116 }
16.117
16.118 - /// \brief Assign operator.
16.119 - ///
16.120 - /// This operator assigns for each item in the map the
16.121 - /// value mapped to the same item in the copied map.
16.122 - /// The parameter map should be indiced with the same
16.123 - /// itemset because this assign operator does not change
16.124 - /// the container of the map.
16.125 + // \brief Assign operator.
16.126 + //
16.127 + // This operator assigns for each item in the map the
16.128 + // value mapped to the same item in the copied map.
16.129 + // The parameter map should be indiced with the same
16.130 + // itemset because this assign operator does not change
16.131 + // the container of the map.
16.132 ArrayMap& operator=(const ArrayMap& cmap) {
16.133 return operator=<ArrayMap>(cmap);
16.134 }
16.135
16.136
16.137 - /// \brief Template assign operator.
16.138 - ///
16.139 - /// The given parameter should be conform to the ReadMap
16.140 - /// concecpt and could be indiced by the current item set of
16.141 - /// the NodeMap. In this case the value for each item
16.142 - /// is assigned by the value of the given ReadMap.
16.143 + // \brief Template assign operator.
16.144 + //
16.145 + // The given parameter should be conform to the ReadMap
16.146 + // concecpt and could be indiced by the current item set of
16.147 + // the NodeMap. In this case the value for each item
16.148 + // is assigned by the value of the given ReadMap.
16.149 template <typename CMap>
16.150 ArrayMap& operator=(const CMap& cmap) {
16.151 checkConcept<concepts::ReadMap<Key, _Value>, CMap>();
16.152 @@ -152,9 +152,9 @@
16.153 }
16.154
16.155 public:
16.156 - /// \brief The destructor of the map.
16.157 - ///
16.158 - /// The destructor of the map.
16.159 + // \brief The destructor of the map.
16.160 + //
16.161 + // The destructor of the map.
16.162 virtual ~ArrayMap() {
16.163 if (attached()) {
16.164 clear();
16.165 @@ -170,38 +170,38 @@
16.166
16.167 public:
16.168
16.169 - /// \brief The subscript operator.
16.170 - ///
16.171 - /// The subscript operator. The map can be subscripted by the
16.172 - /// actual keys of the graph.
16.173 + // \brief The subscript operator.
16.174 + //
16.175 + // The subscript operator. The map can be subscripted by the
16.176 + // actual keys of the graph.
16.177 Value& operator[](const Key& key) {
16.178 int id = Parent::notifier()->id(key);
16.179 return values[id];
16.180 }
16.181
16.182 - /// \brief The const subscript operator.
16.183 - ///
16.184 - /// The const subscript operator. The map can be subscripted by the
16.185 - /// actual keys of the graph.
16.186 + // \brief The const subscript operator.
16.187 + //
16.188 + // The const subscript operator. The map can be subscripted by the
16.189 + // actual keys of the graph.
16.190 const Value& operator[](const Key& key) const {
16.191 int id = Parent::notifier()->id(key);
16.192 return values[id];
16.193 }
16.194
16.195 - /// \brief Setter function of the map.
16.196 - ///
16.197 - /// Setter function of the map. Equivalent with map[key] = val.
16.198 - /// This is a compatibility feature with the not dereferable maps.
16.199 + // \brief Setter function of the map.
16.200 + //
16.201 + // Setter function of the map. Equivalent with map[key] = val.
16.202 + // This is a compatibility feature with the not dereferable maps.
16.203 void set(const Key& key, const Value& val) {
16.204 (*this)[key] = val;
16.205 }
16.206
16.207 protected:
16.208
16.209 - /// \brief Adds a new key to the map.
16.210 - ///
16.211 - /// It adds a new key to the map. It called by the observer notifier
16.212 - /// and it overrides the add() member function of the observer base.
16.213 + // \brief Adds a new key to the map.
16.214 + //
16.215 + // It adds a new key to the map. It called by the observer notifier
16.216 + // and it overrides the add() member function of the observer base.
16.217 virtual void add(const Key& key) {
16.218 Notifier* nf = Parent::notifier();
16.219 int id = nf->id(key);
16.220 @@ -226,10 +226,10 @@
16.221 allocator.construct(&(values[id]), Value());
16.222 }
16.223
16.224 - /// \brief Adds more new keys to the map.
16.225 - ///
16.226 - /// It adds more new keys to the map. It called by the observer notifier
16.227 - /// and it overrides the add() member function of the observer base.
16.228 + // \brief Adds more new keys to the map.
16.229 + //
16.230 + // It adds more new keys to the map. It called by the observer notifier
16.231 + // and it overrides the add() member function of the observer base.
16.232 virtual void add(const std::vector<Key>& keys) {
16.233 Notifier* nf = Parent::notifier();
16.234 int max_id = -1;
16.235 @@ -270,19 +270,19 @@
16.236 }
16.237 }
16.238
16.239 - /// \brief Erase a key from the map.
16.240 - ///
16.241 - /// Erase a key from the map. It called by the observer notifier
16.242 - /// and it overrides the erase() member function of the observer base.
16.243 + // \brief Erase a key from the map.
16.244 + //
16.245 + // Erase a key from the map. It called by the observer notifier
16.246 + // and it overrides the erase() member function of the observer base.
16.247 virtual void erase(const Key& key) {
16.248 int id = Parent::notifier()->id(key);
16.249 allocator.destroy(&(values[id]));
16.250 }
16.251
16.252 - /// \brief Erase more keys from the map.
16.253 - ///
16.254 - /// Erase more keys from the map. It called by the observer notifier
16.255 - /// and it overrides the erase() member function of the observer base.
16.256 + // \brief Erase more keys from the map.
16.257 + //
16.258 + // Erase more keys from the map. It called by the observer notifier
16.259 + // and it overrides the erase() member function of the observer base.
16.260 virtual void erase(const std::vector<Key>& keys) {
16.261 for (int i = 0; i < int(keys.size()); ++i) {
16.262 int id = Parent::notifier()->id(keys[i]);
16.263 @@ -290,10 +290,10 @@
16.264 }
16.265 }
16.266
16.267 - /// \brief Buildes the map.
16.268 - ///
16.269 - /// It buildes the map. It called by the observer notifier
16.270 - /// and it overrides the build() member function of the observer base.
16.271 + // \brief Buildes the map.
16.272 + //
16.273 + // It buildes the map. It called by the observer notifier
16.274 + // and it overrides the build() member function of the observer base.
16.275 virtual void build() {
16.276 Notifier* nf = Parent::notifier();
16.277 allocate_memory();
16.278 @@ -304,10 +304,10 @@
16.279 }
16.280 }
16.281
16.282 - /// \brief Clear the map.
16.283 - ///
16.284 - /// It erase all items from the map. It called by the observer notifier
16.285 - /// and it overrides the clear() member function of the observer base.
16.286 + // \brief Clear the map.
16.287 + //
16.288 + // It erase all items from the map. It called by the observer notifier
16.289 + // and it overrides the clear() member function of the observer base.
16.290 virtual void clear() {
16.291 Notifier* nf = Parent::notifier();
16.292 if (capacity != 0) {
17.1 --- a/lemon/bits/base_extender.h Thu Oct 09 16:47:01 2008 +0200
17.2 +++ b/lemon/bits/base_extender.h Thu Oct 09 16:20:37 2008 +0100
17.3 @@ -28,14 +28,14 @@
17.4 #include <lemon/concept_check.h>
17.5 #include <lemon/concepts/maps.h>
17.6
17.7 -///\ingroup digraphbits
17.8 -///\file
17.9 -///\brief Extenders for the digraph types
17.10 +//\ingroup digraphbits
17.11 +//\file
17.12 +//\brief Extenders for the digraph types
17.13 namespace lemon {
17.14
17.15 - /// \ingroup digraphbits
17.16 - ///
17.17 - /// \brief BaseDigraph to BaseGraph extender
17.18 + // \ingroup digraphbits
17.19 + //
17.20 + // \brief BaseDigraph to BaseGraph extender
17.21 template <typename Base>
17.22 class UndirDigraphExtender : public Base {
17.23
17.24 @@ -74,37 +74,37 @@
17.25 }
17.26 };
17.27
17.28 - /// First node of the edge
17.29 + // First node of the edge
17.30 Node u(const Edge &e) const {
17.31 return Parent::source(e);
17.32 }
17.33
17.34 - /// Source of the given arc
17.35 + // Source of the given arc
17.36 Node source(const Arc &e) const {
17.37 return e.forward ? Parent::source(e) : Parent::target(e);
17.38 }
17.39
17.40 - /// Second node of the edge
17.41 + // Second node of the edge
17.42 Node v(const Edge &e) const {
17.43 return Parent::target(e);
17.44 }
17.45
17.46 - /// Target of the given arc
17.47 + // Target of the given arc
17.48 Node target(const Arc &e) const {
17.49 return e.forward ? Parent::target(e) : Parent::source(e);
17.50 }
17.51
17.52 - /// \brief Directed arc from an edge.
17.53 - ///
17.54 - /// Returns a directed arc corresponding to the specified edge.
17.55 - /// If the given bool is true, the first node of the given edge and
17.56 - /// the source node of the returned arc are the same.
17.57 + // \brief Directed arc from an edge.
17.58 + //
17.59 + // Returns a directed arc corresponding to the specified edge.
17.60 + // If the given bool is true, the first node of the given edge and
17.61 + // the source node of the returned arc are the same.
17.62 static Arc direct(const Edge &e, bool d) {
17.63 return Arc(e, d);
17.64 }
17.65
17.66 - /// Returns whether the given directed arc has the same orientation
17.67 - /// as the corresponding edge.
17.68 + // Returns whether the given directed arc has the same orientation
17.69 + // as the corresponding edge.
17.70 static bool direction(const Arc &a) { return a.forward; }
17.71
17.72 using Parent::first;
18.1 --- a/lemon/bits/bezier.h Thu Oct 09 16:47:01 2008 +0200
18.2 +++ b/lemon/bits/bezier.h Thu Oct 09 16:20:37 2008 +0100
18.3 @@ -19,11 +19,11 @@
18.4 #ifndef LEMON_BEZIER_H
18.5 #define LEMON_BEZIER_H
18.6
18.7 -///\ingroup misc
18.8 -///\file
18.9 -///\brief Classes to compute with Bezier curves.
18.10 -///
18.11 -///Up to now this file is used internally by \ref graph_to_eps.h
18.12 +//\ingroup misc
18.13 +//\file
18.14 +//\brief Classes to compute with Bezier curves.
18.15 +//
18.16 +//Up to now this file is used internally by \ref graph_to_eps.h
18.17
18.18 #include<lemon/dim2.h>
18.19
19.1 --- a/lemon/bits/default_map.h Thu Oct 09 16:47:01 2008 +0200
19.2 +++ b/lemon/bits/default_map.h Thu Oct 09 16:20:37 2008 +0100
19.3 @@ -19,14 +19,13 @@
19.4 #ifndef LEMON_BITS_DEFAULT_MAP_H
19.5 #define LEMON_BITS_DEFAULT_MAP_H
19.6
19.7 -
19.8 #include <lemon/bits/array_map.h>
19.9 #include <lemon/bits/vector_map.h>
19.10 //#include <lemon/bits/debug_map.h>
19.11
19.12 -///\ingroup graphbits
19.13 -///\file
19.14 -///\brief Graph maps that construct and destruct their elements dynamically.
19.15 +//\ingroup graphbits
19.16 +//\file
19.17 +//\brief Graph maps that construct and destruct their elements dynamically.
19.18
19.19 namespace lemon {
19.20
19.21 @@ -149,7 +148,7 @@
19.22
19.23 // #endif
19.24
19.25 - /// \e
19.26 + // DefaultMap class
19.27 template <typename _Graph, typename _Item, typename _Value>
19.28 class DefaultMap
19.29 : public DefaultMapSelector<_Graph, _Item, _Value>::Map {
20.1 --- a/lemon/bits/enable_if.h Thu Oct 09 16:47:01 2008 +0200
20.2 +++ b/lemon/bits/enable_if.h Thu Oct 09 16:20:37 2008 +0100
20.3 @@ -35,29 +35,29 @@
20.4 #ifndef LEMON_BITS_ENABLE_IF_H
20.5 #define LEMON_BITS_ENABLE_IF_H
20.6
20.7 -///\file
20.8 -///\brief Miscellaneous basic utilities
20.9 +//\file
20.10 +//\brief Miscellaneous basic utilities
20.11
20.12 namespace lemon
20.13 {
20.14
20.15 - /// Basic type for defining "tags". A "YES" condition for \c enable_if.
20.16 + // Basic type for defining "tags". A "YES" condition for \c enable_if.
20.17
20.18 - /// Basic type for defining "tags". A "YES" condition for \c enable_if.
20.19 - ///
20.20 - ///\sa False
20.21 + // Basic type for defining "tags". A "YES" condition for \c enable_if.
20.22 + //
20.23 + //\sa False
20.24 struct True {
20.25 - ///\e
20.26 + //\e
20.27 static const bool value = true;
20.28 };
20.29
20.30 - /// Basic type for defining "tags". A "NO" condition for \c enable_if.
20.31 + // Basic type for defining "tags". A "NO" condition for \c enable_if.
20.32
20.33 - /// Basic type for defining "tags". A "NO" condition for \c enable_if.
20.34 - ///
20.35 - ///\sa True
20.36 + // Basic type for defining "tags". A "NO" condition for \c enable_if.
20.37 + //
20.38 + //\sa True
20.39 struct False {
20.40 - ///\e
20.41 + //\e
20.42 static const bool value = false;
20.43 };
20.44
21.1 --- a/lemon/bits/graph_extender.h Thu Oct 09 16:47:01 2008 +0200
21.2 +++ b/lemon/bits/graph_extender.h Thu Oct 09 16:20:37 2008 +0100
21.3 @@ -27,14 +27,14 @@
21.4 #include <lemon/concept_check.h>
21.5 #include <lemon/concepts/maps.h>
21.6
21.7 -///\ingroup graphbits
21.8 -///\file
21.9 -///\brief Extenders for the digraph types
21.10 +//\ingroup graphbits
21.11 +//\file
21.12 +//\brief Extenders for the digraph types
21.13 namespace lemon {
21.14
21.15 - /// \ingroup graphbits
21.16 - ///
21.17 - /// \brief Extender for the Digraphs
21.18 + // \ingroup graphbits
21.19 + //
21.20 + // \brief Extender for the Digraphs
21.21 template <typename Base>
21.22 class DigraphExtender : public Base {
21.23 public:
21.24 @@ -186,30 +186,30 @@
21.25
21.26 };
21.27
21.28 - /// \brief Base node of the iterator
21.29 - ///
21.30 - /// Returns the base node (i.e. the source in this case) of the iterator
21.31 + // \brief Base node of the iterator
21.32 + //
21.33 + // Returns the base node (i.e. the source in this case) of the iterator
21.34 Node baseNode(const OutArcIt &arc) const {
21.35 return Parent::source(arc);
21.36 }
21.37 - /// \brief Running node of the iterator
21.38 - ///
21.39 - /// Returns the running node (i.e. the target in this case) of the
21.40 - /// iterator
21.41 + // \brief Running node of the iterator
21.42 + //
21.43 + // Returns the running node (i.e. the target in this case) of the
21.44 + // iterator
21.45 Node runningNode(const OutArcIt &arc) const {
21.46 return Parent::target(arc);
21.47 }
21.48
21.49 - /// \brief Base node of the iterator
21.50 - ///
21.51 - /// Returns the base node (i.e. the target in this case) of the iterator
21.52 + // \brief Base node of the iterator
21.53 + //
21.54 + // Returns the base node (i.e. the target in this case) of the iterator
21.55 Node baseNode(const InArcIt &arc) const {
21.56 return Parent::target(arc);
21.57 }
21.58 - /// \brief Running node of the iterator
21.59 - ///
21.60 - /// Returns the running node (i.e. the source in this case) of the
21.61 - /// iterator
21.62 + // \brief Running node of the iterator
21.63 + //
21.64 + // Returns the running node (i.e. the source in this case) of the
21.65 + // iterator
21.66 Node runningNode(const InArcIt &arc) const {
21.67 return Parent::source(arc);
21.68 }
21.69 @@ -325,9 +325,9 @@
21.70 }
21.71 };
21.72
21.73 - /// \ingroup _graphbits
21.74 - ///
21.75 - /// \brief Extender for the Graphs
21.76 + // \ingroup _graphbits
21.77 + //
21.78 + // \brief Extender for the Graphs
21.79 template <typename Base>
21.80 class GraphExtender : public Base {
21.81 public:
21.82 @@ -555,43 +555,43 @@
21.83 }
21.84 };
21.85
21.86 - /// \brief Base node of the iterator
21.87 - ///
21.88 - /// Returns the base node (ie. the source in this case) of the iterator
21.89 + // \brief Base node of the iterator
21.90 + //
21.91 + // Returns the base node (ie. the source in this case) of the iterator
21.92 Node baseNode(const OutArcIt &arc) const {
21.93 return Parent::source(static_cast<const Arc&>(arc));
21.94 }
21.95 - /// \brief Running node of the iterator
21.96 - ///
21.97 - /// Returns the running node (ie. the target in this case) of the
21.98 - /// iterator
21.99 + // \brief Running node of the iterator
21.100 + //
21.101 + // Returns the running node (ie. the target in this case) of the
21.102 + // iterator
21.103 Node runningNode(const OutArcIt &arc) const {
21.104 return Parent::target(static_cast<const Arc&>(arc));
21.105 }
21.106
21.107 - /// \brief Base node of the iterator
21.108 - ///
21.109 - /// Returns the base node (ie. the target in this case) of the iterator
21.110 + // \brief Base node of the iterator
21.111 + //
21.112 + // Returns the base node (ie. the target in this case) of the iterator
21.113 Node baseNode(const InArcIt &arc) const {
21.114 return Parent::target(static_cast<const Arc&>(arc));
21.115 }
21.116 - /// \brief Running node of the iterator
21.117 - ///
21.118 - /// Returns the running node (ie. the source in this case) of the
21.119 - /// iterator
21.120 + // \brief Running node of the iterator
21.121 + //
21.122 + // Returns the running node (ie. the source in this case) of the
21.123 + // iterator
21.124 Node runningNode(const InArcIt &arc) const {
21.125 return Parent::source(static_cast<const Arc&>(arc));
21.126 }
21.127
21.128 - /// Base node of the iterator
21.129 - ///
21.130 - /// Returns the base node of the iterator
21.131 + // Base node of the iterator
21.132 + //
21.133 + // Returns the base node of the iterator
21.134 Node baseNode(const IncEdgeIt &edge) const {
21.135 return edge._direction ? u(edge) : v(edge);
21.136 }
21.137 - /// Running node of the iterator
21.138 - ///
21.139 - /// Returns the running node of the iterator
21.140 + // Running node of the iterator
21.141 + //
21.142 + // Returns the running node of the iterator
21.143 Node runningNode(const IncEdgeIt &edge) const {
21.144 return edge._direction ? v(edge) : u(edge);
21.145 }
22.1 --- a/lemon/bits/map_extender.h Thu Oct 09 16:47:01 2008 +0200
22.2 +++ b/lemon/bits/map_extender.h Thu Oct 09 16:20:37 2008 +0100
22.3 @@ -26,14 +26,14 @@
22.4 #include <lemon/concept_check.h>
22.5 #include <lemon/concepts/maps.h>
22.6
22.7 -///\file
22.8 -///\brief Extenders for iterable maps.
22.9 +//\file
22.10 +//\brief Extenders for iterable maps.
22.11
22.12 namespace lemon {
22.13
22.14 - /// \ingroup graphbits
22.15 - ///
22.16 - /// \brief Extender for maps
22.17 + // \ingroup graphbits
22.18 + //
22.19 + // \brief Extender for maps
22.20 template <typename _Map>
22.21 class MapExtender : public _Map {
22.22 public:
22.23 @@ -171,9 +171,9 @@
22.24 };
22.25 };
22.26
22.27 - /// \ingroup graphbits
22.28 - ///
22.29 - /// \brief Extender for maps which use a subset of the items.
22.30 + // \ingroup graphbits
22.31 + //
22.32 + // \brief Extender for maps which use a subset of the items.
22.33 template <typename _Graph, typename _Map>
22.34 class SubMapExtender : public _Map {
22.35 public:
23.1 --- a/lemon/bits/traits.h Thu Oct 09 16:47:01 2008 +0200
23.2 +++ b/lemon/bits/traits.h Thu Oct 09 16:20:37 2008 +0100
23.3 @@ -19,9 +19,9 @@
23.4 #ifndef LEMON_BITS_TRAITS_H
23.5 #define LEMON_BITS_TRAITS_H
23.6
23.7 -///\file
23.8 -///\brief Traits for graphs and maps
23.9 -///
23.10 +//\file
23.11 +//\brief Traits for graphs and maps
23.12 +//
23.13
23.14 #include <lemon/bits/enable_if.h>
23.15
24.1 --- a/lemon/bits/vector_map.h Thu Oct 09 16:47:01 2008 +0200
24.2 +++ b/lemon/bits/vector_map.h Thu Oct 09 16:20:37 2008 +0100
24.3 @@ -28,81 +28,81 @@
24.4 #include <lemon/concept_check.h>
24.5 #include <lemon/concepts/maps.h>
24.6
24.7 -///\ingroup graphbits
24.8 -///
24.9 -///\file
24.10 -///\brief Vector based graph maps.
24.11 +//\ingroup graphbits
24.12 +//
24.13 +//\file
24.14 +//\brief Vector based graph maps.
24.15 namespace lemon {
24.16
24.17 - /// \ingroup graphbits
24.18 - ///
24.19 - /// \brief Graph map based on the std::vector storage.
24.20 - ///
24.21 - /// The VectorMap template class is graph map structure what
24.22 - /// automatically updates the map when a key is added to or erased from
24.23 - /// the map. This map type uses the std::vector to store the values.
24.24 - ///
24.25 - /// \tparam _Graph The graph this map is attached to.
24.26 - /// \tparam _Item The item type of the graph items.
24.27 - /// \tparam _Value The value type of the map.
24.28 + // \ingroup graphbits
24.29 + //
24.30 + // \brief Graph map based on the std::vector storage.
24.31 + //
24.32 + // The VectorMap template class is graph map structure what
24.33 + // automatically updates the map when a key is added to or erased from
24.34 + // the map. This map type uses the std::vector to store the values.
24.35 + //
24.36 + // \tparam _Graph The graph this map is attached to.
24.37 + // \tparam _Item The item type of the graph items.
24.38 + // \tparam _Value The value type of the map.
24.39 template <typename _Graph, typename _Item, typename _Value>
24.40 class VectorMap
24.41 : public ItemSetTraits<_Graph, _Item>::ItemNotifier::ObserverBase {
24.42 private:
24.43
24.44 - /// The container type of the map.
24.45 + // The container type of the map.
24.46 typedef std::vector<_Value> Container;
24.47
24.48 public:
24.49
24.50 - /// The graph type of the map.
24.51 + // The graph type of the map.
24.52 typedef _Graph Graph;
24.53 - /// The item type of the map.
24.54 + // The item type of the map.
24.55 typedef _Item Item;
24.56 - /// The reference map tag.
24.57 + // The reference map tag.
24.58 typedef True ReferenceMapTag;
24.59
24.60 - /// The key type of the map.
24.61 + // The key type of the map.
24.62 typedef _Item Key;
24.63 - /// The value type of the map.
24.64 + // The value type of the map.
24.65 typedef _Value Value;
24.66
24.67 - /// The notifier type.
24.68 + // The notifier type.
24.69 typedef typename ItemSetTraits<_Graph, _Item>::ItemNotifier Notifier;
24.70
24.71 - /// The map type.
24.72 + // The map type.
24.73 typedef VectorMap Map;
24.74 - /// The base class of the map.
24.75 + // The base class of the map.
24.76 typedef typename Notifier::ObserverBase Parent;
24.77
24.78 - /// The reference type of the map;
24.79 + // The reference type of the map;
24.80 typedef typename Container::reference Reference;
24.81 - /// The const reference type of the map;
24.82 + // The const reference type of the map;
24.83 typedef typename Container::const_reference ConstReference;
24.84
24.85
24.86 - /// \brief Constructor to attach the new map into the notifier.
24.87 - ///
24.88 - /// It constructs a map and attachs it into the notifier.
24.89 - /// It adds all the items of the graph to the map.
24.90 + // \brief Constructor to attach the new map into the notifier.
24.91 + //
24.92 + // It constructs a map and attachs it into the notifier.
24.93 + // It adds all the items of the graph to the map.
24.94 VectorMap(const Graph& graph) {
24.95 Parent::attach(graph.notifier(Item()));
24.96 container.resize(Parent::notifier()->maxId() + 1);
24.97 }
24.98
24.99 - /// \brief Constructor uses given value to initialize the map.
24.100 - ///
24.101 - /// It constructs a map uses a given value to initialize the map.
24.102 - /// It adds all the items of the graph to the map.
24.103 + // \brief Constructor uses given value to initialize the map.
24.104 + //
24.105 + // It constructs a map uses a given value to initialize the map.
24.106 + // It adds all the items of the graph to the map.
24.107 VectorMap(const Graph& graph, const Value& value) {
24.108 Parent::attach(graph.notifier(Item()));
24.109 container.resize(Parent::notifier()->maxId() + 1, value);
24.110 }
24.111
24.112 private:
24.113 - /// \brief Copy constructor
24.114 - ///
24.115 - /// Copy constructor.
24.116 + // \brief Copy constructor
24.117 + //
24.118 + // Copy constructor.
24.119 VectorMap(const VectorMap& _copy) : Parent() {
24.120 if (_copy.attached()) {
24.121 Parent::attach(*_copy.notifier());
24.122 @@ -110,24 +110,24 @@
24.123 }
24.124 }
24.125
24.126 - /// \brief Assign operator.
24.127 - ///
24.128 - /// This operator assigns for each item in the map the
24.129 - /// value mapped to the same item in the copied map.
24.130 - /// The parameter map should be indiced with the same
24.131 - /// itemset because this assign operator does not change
24.132 - /// the container of the map.
24.133 + // \brief Assign operator.
24.134 + //
24.135 + // This operator assigns for each item in the map the
24.136 + // value mapped to the same item in the copied map.
24.137 + // The parameter map should be indiced with the same
24.138 + // itemset because this assign operator does not change
24.139 + // the container of the map.
24.140 VectorMap& operator=(const VectorMap& cmap) {
24.141 return operator=<VectorMap>(cmap);
24.142 }
24.143
24.144
24.145 - /// \brief Template assign operator.
24.146 - ///
24.147 - /// The given parameter should be conform to the ReadMap
24.148 - /// concecpt and could be indiced by the current item set of
24.149 - /// the NodeMap. In this case the value for each item
24.150 - /// is assigned by the value of the given ReadMap.
24.151 + // \brief Template assign operator.
24.152 + //
24.153 + // The given parameter should be conform to the ReadMap
24.154 + // concecpt and could be indiced by the current item set of
24.155 + // the NodeMap. In this case the value for each item
24.156 + // is assigned by the value of the given ReadMap.
24.157 template <typename CMap>
24.158 VectorMap& operator=(const CMap& cmap) {
24.159 checkConcept<concepts::ReadMap<Key, _Value>, CMap>();
24.160 @@ -141,36 +141,36 @@
24.161
24.162 public:
24.163
24.164 - /// \brief The subcript operator.
24.165 - ///
24.166 - /// The subscript operator. The map can be subscripted by the
24.167 - /// actual items of the graph.
24.168 + // \brief The subcript operator.
24.169 + //
24.170 + // The subscript operator. The map can be subscripted by the
24.171 + // actual items of the graph.
24.172 Reference operator[](const Key& key) {
24.173 return container[Parent::notifier()->id(key)];
24.174 }
24.175
24.176 - /// \brief The const subcript operator.
24.177 - ///
24.178 - /// The const subscript operator. The map can be subscripted by the
24.179 - /// actual items of the graph.
24.180 + // \brief The const subcript operator.
24.181 + //
24.182 + // The const subscript operator. The map can be subscripted by the
24.183 + // actual items of the graph.
24.184 ConstReference operator[](const Key& key) const {
24.185 return container[Parent::notifier()->id(key)];
24.186 }
24.187
24.188
24.189 - /// \brief The setter function of the map.
24.190 - ///
24.191 - /// It the same as operator[](key) = value expression.
24.192 + // \brief The setter function of the map.
24.193 + //
24.194 + // It the same as operator[](key) = value expression.
24.195 void set(const Key& key, const Value& value) {
24.196 (*this)[key] = value;
24.197 }
24.198
24.199 protected:
24.200
24.201 - /// \brief Adds a new key to the map.
24.202 - ///
24.203 - /// It adds a new key to the map. It called by the observer notifier
24.204 - /// and it overrides the add() member function of the observer base.
24.205 + // \brief Adds a new key to the map.
24.206 + //
24.207 + // It adds a new key to the map. It called by the observer notifier
24.208 + // and it overrides the add() member function of the observer base.
24.209 virtual void add(const Key& key) {
24.210 int id = Parent::notifier()->id(key);
24.211 if (id >= int(container.size())) {
24.212 @@ -178,10 +178,10 @@
24.213 }
24.214 }
24.215
24.216 - /// \brief Adds more new keys to the map.
24.217 - ///
24.218 - /// It adds more new keys to the map. It called by the observer notifier
24.219 - /// and it overrides the add() member function of the observer base.
24.220 + // \brief Adds more new keys to the map.
24.221 + //
24.222 + // It adds more new keys to the map. It called by the observer notifier
24.223 + // and it overrides the add() member function of the observer base.
24.224 virtual void add(const std::vector<Key>& keys) {
24.225 int max = container.size() - 1;
24.226 for (int i = 0; i < int(keys.size()); ++i) {
24.227 @@ -193,38 +193,38 @@
24.228 container.resize(max + 1);
24.229 }
24.230
24.231 - /// \brief Erase a key from the map.
24.232 - ///
24.233 - /// Erase a key from the map. It called by the observer notifier
24.234 - /// and it overrides the erase() member function of the observer base.
24.235 + // \brief Erase a key from the map.
24.236 + //
24.237 + // Erase a key from the map. It called by the observer notifier
24.238 + // and it overrides the erase() member function of the observer base.
24.239 virtual void erase(const Key& key) {
24.240 container[Parent::notifier()->id(key)] = Value();
24.241 }
24.242
24.243 - /// \brief Erase more keys from the map.
24.244 - ///
24.245 - /// Erase more keys from the map. It called by the observer notifier
24.246 - /// and it overrides the erase() member function of the observer base.
24.247 + // \brief Erase more keys from the map.
24.248 + //
24.249 + // Erase more keys from the map. It called by the observer notifier
24.250 + // and it overrides the erase() member function of the observer base.
24.251 virtual void erase(const std::vector<Key>& keys) {
24.252 for (int i = 0; i < int(keys.size()); ++i) {
24.253 container[Parent::notifier()->id(keys[i])] = Value();
24.254 }
24.255 }
24.256
24.257 - /// \brief Buildes the map.
24.258 - ///
24.259 - /// It buildes the map. It called by the observer notifier
24.260 - /// and it overrides the build() member function of the observer base.
24.261 + // \brief Buildes the map.
24.262 + //
24.263 + // It buildes the map. It called by the observer notifier
24.264 + // and it overrides the build() member function of the observer base.
24.265 virtual void build() {
24.266 int size = Parent::notifier()->maxId() + 1;
24.267 container.reserve(size);
24.268 container.resize(size);
24.269 }
24.270
24.271 - /// \brief Clear the map.
24.272 - ///
24.273 - /// It erase all items from the map. It called by the observer notifier
24.274 - /// and it overrides the clear() member function of the observer base.
24.275 + // \brief Clear the map.
24.276 + //
24.277 + // It erase all items from the map. It called by the observer notifier
24.278 + // and it overrides the clear() member function of the observer base.
24.279 virtual void clear() {
24.280 container.clear();
24.281 }
25.1 --- a/lemon/color.h Thu Oct 09 16:47:01 2008 +0200
25.2 +++ b/lemon/color.h Thu Oct 09 16:20:37 2008 +0100
25.3 @@ -92,7 +92,7 @@
25.4 /// Dark cyan color constant
25.5 extern const Color DARK_CYAN;
25.6
25.7 - ///Map <tt>int</tt>s to different \ref Color "Color"s
25.8 + ///Map <tt>int</tt>s to different <tt>Color</tt>s
25.9
25.10 ///This map assigns one of the predefined \ref Color "Color"s to
25.11 ///each <tt>int</tt>. It is possible to change the colors as well as
26.1 --- a/lemon/concepts/graph_components.h Thu Oct 09 16:47:01 2008 +0200
26.2 +++ b/lemon/concepts/graph_components.h Thu Oct 09 16:20:37 2008 +0100
26.3 @@ -982,7 +982,7 @@
26.4 /// \brief Class describing the concept of graph maps
26.5 ///
26.6 /// This class describes the common interface of the graph maps
26.7 - /// (NodeMap, ArcMap), that is \ref maps-page "maps" which can be used to
26.8 + /// (NodeMap, ArcMap), that is maps that can be used to
26.9 /// associate data to graph descriptors (nodes or arcs).
26.10 template <typename _Graph, typename _Item, typename _Value>
26.11 class GraphMap : public ReadWriteMap<_Item, _Value> {
27.1 --- a/lemon/concepts/maps.h Thu Oct 09 16:47:01 2008 +0200
27.2 +++ b/lemon/concepts/maps.h Thu Oct 09 16:20:37 2008 +0100
27.3 @@ -22,7 +22,7 @@
27.4 #include <lemon/core.h>
27.5 #include <lemon/concept_check.h>
27.6
27.7 -///\ingroup concept
27.8 +///\ingroup map_concepts
27.9 ///\file
27.10 ///\brief The concept of maps.
27.11
27.12 @@ -30,7 +30,7 @@
27.13
27.14 namespace concepts {
27.15
27.16 - /// \addtogroup concept
27.17 + /// \addtogroup map_concepts
27.18 /// @{
27.19
27.20 /// Readable map concept
28.1 --- a/lemon/core.h Thu Oct 09 16:47:01 2008 +0200
28.2 +++ b/lemon/core.h Thu Oct 09 16:20:37 2008 +0100
28.3 @@ -58,7 +58,7 @@
28.4 /// \addtogroup gutils
28.5 /// @{
28.6
28.7 - ///Create convenient typedefs for the digraph types and iterators
28.8 + ///Create convenience typedefs for the digraph types and iterators
28.9
28.10 ///This \c \#define creates convenient type definitions for the following
28.11 ///types of \c Digraph: \c Node, \c NodeIt, \c Arc, \c ArcIt, \c InArcIt,
28.12 @@ -80,9 +80,9 @@
28.13 typedef Digraph::NodeMap<double> DoubleNodeMap; \
28.14 typedef Digraph::ArcMap<bool> BoolArcMap; \
28.15 typedef Digraph::ArcMap<int> IntArcMap; \
28.16 - typedef Digraph::ArcMap<double> DoubleArcMap;
28.17 + typedef Digraph::ArcMap<double> DoubleArcMap
28.18
28.19 - ///Create convenient typedefs for the digraph types and iterators
28.20 + ///Create convenience typedefs for the digraph types and iterators
28.21
28.22 ///\see DIGRAPH_TYPEDEFS
28.23 ///
28.24 @@ -100,9 +100,9 @@
28.25 typedef typename Digraph::template NodeMap<double> DoubleNodeMap; \
28.26 typedef typename Digraph::template ArcMap<bool> BoolArcMap; \
28.27 typedef typename Digraph::template ArcMap<int> IntArcMap; \
28.28 - typedef typename Digraph::template ArcMap<double> DoubleArcMap;
28.29 + typedef typename Digraph::template ArcMap<double> DoubleArcMap
28.30
28.31 - ///Create convenient typedefs for the graph types and iterators
28.32 + ///Create convenience typedefs for the graph types and iterators
28.33
28.34 ///This \c \#define creates the same convenient type definitions as defined
28.35 ///by \ref DIGRAPH_TYPEDEFS(Graph) and six more, namely it creates
28.36 @@ -119,9 +119,9 @@
28.37 typedef Graph::IncEdgeIt IncEdgeIt; \
28.38 typedef Graph::EdgeMap<bool> BoolEdgeMap; \
28.39 typedef Graph::EdgeMap<int> IntEdgeMap; \
28.40 - typedef Graph::EdgeMap<double> DoubleEdgeMap;
28.41 + typedef Graph::EdgeMap<double> DoubleEdgeMap
28.42
28.43 - ///Create convenient typedefs for the graph types and iterators
28.44 + ///Create convenience typedefs for the graph types and iterators
28.45
28.46 ///\see GRAPH_TYPEDEFS
28.47 ///
28.48 @@ -134,7 +134,7 @@
28.49 typedef typename Graph::IncEdgeIt IncEdgeIt; \
28.50 typedef typename Graph::template EdgeMap<bool> BoolEdgeMap; \
28.51 typedef typename Graph::template EdgeMap<int> IntEdgeMap; \
28.52 - typedef typename Graph::template EdgeMap<double> DoubleEdgeMap;
28.53 + typedef typename Graph::template EdgeMap<double> DoubleEdgeMap
28.54
28.55 /// \brief Function to count the items in a graph.
28.56 ///
28.57 @@ -1554,7 +1554,7 @@
28.58 ///\note This is a dynamic data structure, therefore the data
28.59 ///structure is updated after each graph alteration. Thus although
28.60 ///this data structure is theoretically faster than \ref ArcLookUp
28.61 - ///and \ref AllArcLookup, it often provides worse performance than
28.62 + ///and \ref AllArcLookUp, it often provides worse performance than
28.63 ///them.
28.64 Arc operator()(Node s, Node t, Arc p = INVALID) const {
28.65 if (p == INVALID) {
28.66 @@ -1699,8 +1699,8 @@
28.67
28.68 ///Find an arc between two nodes.
28.69
28.70 - ///Find an arc between two nodes in time <em>O</em>(log<em>d</em>), where
28.71 - ///<em>d</em> is the number of outgoing arcs of \c s.
28.72 + ///Find an arc between two nodes in time <em>O</em>(log<em>d</em>),
28.73 + ///where <em>d</em> is the number of outgoing arcs of \c s.
28.74 ///\param s The source node.
28.75 ///\param t The target node.
28.76 ///\return An arc from \c s to \c t if there exists,
28.77 @@ -1817,8 +1817,8 @@
28.78 ///for(Arc a = ae(u,v); a != INVALID; a=ae(u,v,a)) n++;
28.79 ///\endcode
28.80 ///
28.81 - ///Finding the first arc take <em>O</em>(log<em>d</em>) time, where
28.82 - ///<em>d</em> is the number of outgoing arcs of \c s. Then, the
28.83 + ///Finding the first arc take <em>O</em>(log<em>d</em>) time,
28.84 + ///where <em>d</em> is the number of outgoing arcs of \c s. Then the
28.85 ///consecutive arcs are found in constant time.
28.86 ///
28.87 ///\warning If you change the digraph, refresh() must be called before using
29.1 --- a/lemon/dfs.h Thu Oct 09 16:47:01 2008 +0200
29.2 +++ b/lemon/dfs.h Thu Oct 09 16:20:37 2008 +0100
29.3 @@ -50,11 +50,11 @@
29.4 ///arcs of the %DFS paths.
29.5 ///It must meet the \ref concepts::WriteMap "WriteMap" concept.
29.6 typedef typename Digraph::template NodeMap<typename Digraph::Arc> PredMap;
29.7 - ///Instantiates a \ref PredMap.
29.8 + ///Instantiates a PredMap.
29.9
29.10 - ///This function instantiates a \ref PredMap.
29.11 + ///This function instantiates a PredMap.
29.12 ///\param g is the digraph, to which we would like to define the
29.13 - ///\ref PredMap.
29.14 + ///PredMap.
29.15 static PredMap *createPredMap(const Digraph &g)
29.16 {
29.17 return new PredMap(g);
29.18 @@ -65,11 +65,11 @@
29.19 ///The type of the map that indicates which nodes are processed.
29.20 ///It must meet the \ref concepts::WriteMap "WriteMap" concept.
29.21 typedef NullMap<typename Digraph::Node,bool> ProcessedMap;
29.22 - ///Instantiates a \ref ProcessedMap.
29.23 + ///Instantiates a ProcessedMap.
29.24
29.25 - ///This function instantiates a \ref ProcessedMap.
29.26 + ///This function instantiates a ProcessedMap.
29.27 ///\param g is the digraph, to which
29.28 - ///we would like to define the \ref ProcessedMap
29.29 + ///we would like to define the ProcessedMap
29.30 #ifdef DOXYGEN
29.31 static ProcessedMap *createProcessedMap(const Digraph &g)
29.32 #else
29.33 @@ -84,11 +84,11 @@
29.34 ///The type of the map that indicates which nodes are reached.
29.35 ///It must meet the \ref concepts::ReadWriteMap "ReadWriteMap" concept.
29.36 typedef typename Digraph::template NodeMap<bool> ReachedMap;
29.37 - ///Instantiates a \ref ReachedMap.
29.38 + ///Instantiates a ReachedMap.
29.39
29.40 - ///This function instantiates a \ref ReachedMap.
29.41 + ///This function instantiates a ReachedMap.
29.42 ///\param g is the digraph, to which
29.43 - ///we would like to define the \ref ReachedMap.
29.44 + ///we would like to define the ReachedMap.
29.45 static ReachedMap *createReachedMap(const Digraph &g)
29.46 {
29.47 return new ReachedMap(g);
29.48 @@ -99,11 +99,11 @@
29.49 ///The type of the map that stores the distances of the nodes.
29.50 ///It must meet the \ref concepts::WriteMap "WriteMap" concept.
29.51 typedef typename Digraph::template NodeMap<int> DistMap;
29.52 - ///Instantiates a \ref DistMap.
29.53 + ///Instantiates a DistMap.
29.54
29.55 - ///This function instantiates a \ref DistMap.
29.56 + ///This function instantiates a DistMap.
29.57 ///\param g is the digraph, to which we would like to define the
29.58 - ///\ref DistMap.
29.59 + ///DistMap.
29.60 static DistMap *createDistMap(const Digraph &g)
29.61 {
29.62 return new DistMap(g);
29.63 @@ -227,10 +227,10 @@
29.64 }
29.65 };
29.66 ///\brief \ref named-templ-param "Named parameter" for setting
29.67 - ///\ref PredMap type.
29.68 + ///PredMap type.
29.69 ///
29.70 ///\ref named-templ-param "Named parameter" for setting
29.71 - ///\ref PredMap type.
29.72 + ///PredMap type.
29.73 template <class T>
29.74 struct SetPredMap : public Dfs<Digraph, SetPredMapTraits<T> > {
29.75 typedef Dfs<Digraph, SetPredMapTraits<T> > Create;
29.76 @@ -246,10 +246,10 @@
29.77 }
29.78 };
29.79 ///\brief \ref named-templ-param "Named parameter" for setting
29.80 - ///\ref DistMap type.
29.81 + ///DistMap type.
29.82 ///
29.83 ///\ref named-templ-param "Named parameter" for setting
29.84 - ///\ref DistMap type.
29.85 + ///DistMap type.
29.86 template <class T>
29.87 struct SetDistMap : public Dfs< Digraph, SetDistMapTraits<T> > {
29.88 typedef Dfs<Digraph, SetDistMapTraits<T> > Create;
29.89 @@ -265,10 +265,10 @@
29.90 }
29.91 };
29.92 ///\brief \ref named-templ-param "Named parameter" for setting
29.93 - ///\ref ReachedMap type.
29.94 + ///ReachedMap type.
29.95 ///
29.96 ///\ref named-templ-param "Named parameter" for setting
29.97 - ///\ref ReachedMap type.
29.98 + ///ReachedMap type.
29.99 template <class T>
29.100 struct SetReachedMap : public Dfs< Digraph, SetReachedMapTraits<T> > {
29.101 typedef Dfs< Digraph, SetReachedMapTraits<T> > Create;
29.102 @@ -284,10 +284,10 @@
29.103 }
29.104 };
29.105 ///\brief \ref named-templ-param "Named parameter" for setting
29.106 - ///\ref ProcessedMap type.
29.107 + ///ProcessedMap type.
29.108 ///
29.109 ///\ref named-templ-param "Named parameter" for setting
29.110 - ///\ref ProcessedMap type.
29.111 + ///ProcessedMap type.
29.112 template <class T>
29.113 struct SetProcessedMap : public Dfs< Digraph, SetProcessedMapTraits<T> > {
29.114 typedef Dfs< Digraph, SetProcessedMapTraits<T> > Create;
29.115 @@ -301,10 +301,10 @@
29.116 }
29.117 };
29.118 ///\brief \ref named-templ-param "Named parameter" for setting
29.119 - ///\ref ProcessedMap type to be <tt>Digraph::NodeMap<bool></tt>.
29.120 + ///ProcessedMap type to be <tt>Digraph::NodeMap<bool></tt>.
29.121 ///
29.122 ///\ref named-templ-param "Named parameter" for setting
29.123 - ///\ref ProcessedMap type to be <tt>Digraph::NodeMap<bool></tt>.
29.124 + ///ProcessedMap type to be <tt>Digraph::NodeMap<bool></tt>.
29.125 ///If you don't set it explicitly, it will be automatically allocated.
29.126 struct SetStandardProcessedMap :
29.127 public Dfs< Digraph, SetStandardProcessedMapTraits > {
29.128 @@ -768,11 +768,11 @@
29.129 ///arcs of the %DFS paths.
29.130 ///It must meet the \ref concepts::WriteMap "WriteMap" concept.
29.131 typedef typename Digraph::template NodeMap<typename Digraph::Arc> PredMap;
29.132 - ///Instantiates a \ref PredMap.
29.133 + ///Instantiates a PredMap.
29.134
29.135 - ///This function instantiates a \ref PredMap.
29.136 + ///This function instantiates a PredMap.
29.137 ///\param g is the digraph, to which we would like to define the
29.138 - ///\ref PredMap.
29.139 + ///PredMap.
29.140 static PredMap *createPredMap(const Digraph &g)
29.141 {
29.142 return new PredMap(g);
29.143 @@ -784,11 +784,11 @@
29.144 ///It must meet the \ref concepts::WriteMap "WriteMap" concept.
29.145 ///By default it is a NullMap.
29.146 typedef NullMap<typename Digraph::Node,bool> ProcessedMap;
29.147 - ///Instantiates a \ref ProcessedMap.
29.148 + ///Instantiates a ProcessedMap.
29.149
29.150 - ///This function instantiates a \ref ProcessedMap.
29.151 + ///This function instantiates a ProcessedMap.
29.152 ///\param g is the digraph, to which
29.153 - ///we would like to define the \ref ProcessedMap.
29.154 + ///we would like to define the ProcessedMap.
29.155 #ifdef DOXYGEN
29.156 static ProcessedMap *createProcessedMap(const Digraph &g)
29.157 #else
29.158 @@ -803,11 +803,11 @@
29.159 ///The type of the map that indicates which nodes are reached.
29.160 ///It must meet the \ref concepts::ReadWriteMap "ReadWriteMap" concept.
29.161 typedef typename Digraph::template NodeMap<bool> ReachedMap;
29.162 - ///Instantiates a \ref ReachedMap.
29.163 + ///Instantiates a ReachedMap.
29.164
29.165 - ///This function instantiates a \ref ReachedMap.
29.166 + ///This function instantiates a ReachedMap.
29.167 ///\param g is the digraph, to which
29.168 - ///we would like to define the \ref ReachedMap.
29.169 + ///we would like to define the ReachedMap.
29.170 static ReachedMap *createReachedMap(const Digraph &g)
29.171 {
29.172 return new ReachedMap(g);
29.173 @@ -818,11 +818,11 @@
29.174 ///The type of the map that stores the distances of the nodes.
29.175 ///It must meet the \ref concepts::WriteMap "WriteMap" concept.
29.176 typedef typename Digraph::template NodeMap<int> DistMap;
29.177 - ///Instantiates a \ref DistMap.
29.178 + ///Instantiates a DistMap.
29.179
29.180 - ///This function instantiates a \ref DistMap.
29.181 + ///This function instantiates a DistMap.
29.182 ///\param g is the digraph, to which we would like to define
29.183 - ///the \ref DistMap
29.184 + ///the DistMap
29.185 static DistMap *createDistMap(const Digraph &g)
29.186 {
29.187 return new DistMap(g);
29.188 @@ -835,7 +835,7 @@
29.189 typedef lemon::Path<Digraph> Path;
29.190 };
29.191
29.192 - /// Default traits class used by \ref DfsWizard
29.193 + /// Default traits class used by DfsWizard
29.194
29.195 /// To make it easier to use Dfs algorithm
29.196 /// we have created a wizard class.
29.197 @@ -1001,10 +1001,10 @@
29.198 SetPredMapBase(const TR &b) : TR(b) {}
29.199 };
29.200 ///\brief \ref named-func-param "Named parameter"
29.201 - ///for setting \ref PredMap object.
29.202 + ///for setting PredMap object.
29.203 ///
29.204 ///\ref named-func-param "Named parameter"
29.205 - ///for setting \ref PredMap object.
29.206 + ///for setting PredMap object.
29.207 template<class T>
29.208 DfsWizard<SetPredMapBase<T> > predMap(const T &t)
29.209 {
29.210 @@ -1019,10 +1019,10 @@
29.211 SetReachedMapBase(const TR &b) : TR(b) {}
29.212 };
29.213 ///\brief \ref named-func-param "Named parameter"
29.214 - ///for setting \ref ReachedMap object.
29.215 + ///for setting ReachedMap object.
29.216 ///
29.217 /// \ref named-func-param "Named parameter"
29.218 - ///for setting \ref ReachedMap object.
29.219 + ///for setting ReachedMap object.
29.220 template<class T>
29.221 DfsWizard<SetReachedMapBase<T> > reachedMap(const T &t)
29.222 {
29.223 @@ -1037,10 +1037,10 @@
29.224 SetDistMapBase(const TR &b) : TR(b) {}
29.225 };
29.226 ///\brief \ref named-func-param "Named parameter"
29.227 - ///for setting \ref DistMap object.
29.228 + ///for setting DistMap object.
29.229 ///
29.230 /// \ref named-func-param "Named parameter"
29.231 - ///for setting \ref DistMap object.
29.232 + ///for setting DistMap object.
29.233 template<class T>
29.234 DfsWizard<SetDistMapBase<T> > distMap(const T &t)
29.235 {
29.236 @@ -1055,10 +1055,10 @@
29.237 SetProcessedMapBase(const TR &b) : TR(b) {}
29.238 };
29.239 ///\brief \ref named-func-param "Named parameter"
29.240 - ///for setting \ref ProcessedMap object.
29.241 + ///for setting ProcessedMap object.
29.242 ///
29.243 /// \ref named-func-param "Named parameter"
29.244 - ///for setting \ref ProcessedMap object.
29.245 + ///for setting ProcessedMap object.
29.246 template<class T>
29.247 DfsWizard<SetProcessedMapBase<T> > processedMap(const T &t)
29.248 {
29.249 @@ -1213,11 +1213,11 @@
29.250 /// It must meet the \ref concepts::ReadWriteMap "ReadWriteMap" concept.
29.251 typedef typename Digraph::template NodeMap<bool> ReachedMap;
29.252
29.253 - /// \brief Instantiates a \ref ReachedMap.
29.254 + /// \brief Instantiates a ReachedMap.
29.255 ///
29.256 - /// This function instantiates a \ref ReachedMap.
29.257 + /// This function instantiates a ReachedMap.
29.258 /// \param digraph is the digraph, to which
29.259 - /// we would like to define the \ref ReachedMap.
29.260 + /// we would like to define the ReachedMap.
29.261 static ReachedMap *createReachedMap(const Digraph &digraph) {
29.262 return new ReachedMap(digraph);
29.263 }
30.1 --- a/lemon/dijkstra.h Thu Oct 09 16:47:01 2008 +0200
30.2 +++ b/lemon/dijkstra.h Thu Oct 09 16:20:37 2008 +0100
30.3 @@ -139,11 +139,11 @@
30.4 ///arcs of the shortest paths.
30.5 ///It must meet the \ref concepts::WriteMap "WriteMap" concept.
30.6 typedef typename Digraph::template NodeMap<typename Digraph::Arc> PredMap;
30.7 - ///Instantiates a \ref PredMap.
30.8 + ///Instantiates a PredMap.
30.9
30.10 - ///This function instantiates a \ref PredMap.
30.11 + ///This function instantiates a PredMap.
30.12 ///\param g is the digraph, to which we would like to define the
30.13 - ///\ref PredMap.
30.14 + ///PredMap.
30.15 static PredMap *createPredMap(const Digraph &g)
30.16 {
30.17 return new PredMap(g);
30.18 @@ -155,11 +155,11 @@
30.19 ///It must meet the \ref concepts::WriteMap "WriteMap" concept.
30.20 ///By default it is a NullMap.
30.21 typedef NullMap<typename Digraph::Node,bool> ProcessedMap;
30.22 - ///Instantiates a \ref ProcessedMap.
30.23 + ///Instantiates a ProcessedMap.
30.24
30.25 - ///This function instantiates a \ref ProcessedMap.
30.26 + ///This function instantiates a ProcessedMap.
30.27 ///\param g is the digraph, to which
30.28 - ///we would like to define the \ref ProcessedMap
30.29 + ///we would like to define the ProcessedMap
30.30 #ifdef DOXYGEN
30.31 static ProcessedMap *createProcessedMap(const Digraph &g)
30.32 #else
30.33 @@ -174,11 +174,11 @@
30.34 ///The type of the map that stores the distances of the nodes.
30.35 ///It must meet the \ref concepts::WriteMap "WriteMap" concept.
30.36 typedef typename Digraph::template NodeMap<typename LM::Value> DistMap;
30.37 - ///Instantiates a \ref DistMap.
30.38 + ///Instantiates a DistMap.
30.39
30.40 - ///This function instantiates a \ref DistMap.
30.41 + ///This function instantiates a DistMap.
30.42 ///\param g is the digraph, to which we would like to define
30.43 - ///the \ref DistMap
30.44 + ///the DistMap
30.45 static DistMap *createDistMap(const Digraph &g)
30.46 {
30.47 return new DistMap(g);
30.48 @@ -327,10 +327,10 @@
30.49 }
30.50 };
30.51 ///\brief \ref named-templ-param "Named parameter" for setting
30.52 - ///\ref PredMap type.
30.53 + ///PredMap type.
30.54 ///
30.55 ///\ref named-templ-param "Named parameter" for setting
30.56 - ///\ref PredMap type.
30.57 + ///PredMap type.
30.58 template <class T>
30.59 struct SetPredMap
30.60 : public Dijkstra< Digraph, LengthMap, SetPredMapTraits<T> > {
30.61 @@ -347,10 +347,10 @@
30.62 }
30.63 };
30.64 ///\brief \ref named-templ-param "Named parameter" for setting
30.65 - ///\ref DistMap type.
30.66 + ///DistMap type.
30.67 ///
30.68 ///\ref named-templ-param "Named parameter" for setting
30.69 - ///\ref DistMap type.
30.70 + ///DistMap type.
30.71 template <class T>
30.72 struct SetDistMap
30.73 : public Dijkstra< Digraph, LengthMap, SetDistMapTraits<T> > {
30.74 @@ -367,10 +367,10 @@
30.75 }
30.76 };
30.77 ///\brief \ref named-templ-param "Named parameter" for setting
30.78 - ///\ref ProcessedMap type.
30.79 + ///ProcessedMap type.
30.80 ///
30.81 ///\ref named-templ-param "Named parameter" for setting
30.82 - ///\ref ProcessedMap type.
30.83 + ///ProcessedMap type.
30.84 template <class T>
30.85 struct SetProcessedMap
30.86 : public Dijkstra< Digraph, LengthMap, SetProcessedMapTraits<T> > {
30.87 @@ -385,10 +385,10 @@
30.88 }
30.89 };
30.90 ///\brief \ref named-templ-param "Named parameter" for setting
30.91 - ///\ref ProcessedMap type to be <tt>Digraph::NodeMap<bool></tt>.
30.92 + ///ProcessedMap type to be <tt>Digraph::NodeMap<bool></tt>.
30.93 ///
30.94 ///\ref named-templ-param "Named parameter" for setting
30.95 - ///\ref ProcessedMap type to be <tt>Digraph::NodeMap<bool></tt>.
30.96 + ///ProcessedMap type to be <tt>Digraph::NodeMap<bool></tt>.
30.97 ///If you don't set it explicitly, it will be automatically allocated.
30.98 struct SetStandardProcessedMap
30.99 : public Dijkstra< Digraph, LengthMap, SetStandardProcessedMapTraits > {
30.100 @@ -453,7 +453,7 @@
30.101 };
30.102
30.103 /// \brief \ref named-templ-param "Named parameter" for setting
30.104 - ///\ref OperationTraits type
30.105 + ///\c OperationTraits type
30.106 ///
30.107 ///\ref named-templ-param "Named parameter" for setting
30.108 ///\ref OperationTraits type.
30.109 @@ -986,11 +986,11 @@
30.110 ///arcs of the shortest paths.
30.111 ///It must meet the \ref concepts::WriteMap "WriteMap" concept.
30.112 typedef typename Digraph::template NodeMap<typename Digraph::Arc> PredMap;
30.113 - ///Instantiates a \ref PredMap.
30.114 + ///Instantiates a PredMap.
30.115
30.116 - ///This function instantiates a \ref PredMap.
30.117 + ///This function instantiates a PredMap.
30.118 ///\param g is the digraph, to which we would like to define the
30.119 - ///\ref PredMap.
30.120 + ///PredMap.
30.121 static PredMap *createPredMap(const Digraph &g)
30.122 {
30.123 return new PredMap(g);
30.124 @@ -1002,11 +1002,11 @@
30.125 ///It must meet the \ref concepts::WriteMap "WriteMap" concept.
30.126 ///By default it is a NullMap.
30.127 typedef NullMap<typename Digraph::Node,bool> ProcessedMap;
30.128 - ///Instantiates a \ref ProcessedMap.
30.129 + ///Instantiates a ProcessedMap.
30.130
30.131 - ///This function instantiates a \ref ProcessedMap.
30.132 + ///This function instantiates a ProcessedMap.
30.133 ///\param g is the digraph, to which
30.134 - ///we would like to define the \ref ProcessedMap.
30.135 + ///we would like to define the ProcessedMap.
30.136 #ifdef DOXYGEN
30.137 static ProcessedMap *createProcessedMap(const Digraph &g)
30.138 #else
30.139 @@ -1021,11 +1021,11 @@
30.140 ///The type of the map that stores the distances of the nodes.
30.141 ///It must meet the \ref concepts::WriteMap "WriteMap" concept.
30.142 typedef typename Digraph::template NodeMap<typename LM::Value> DistMap;
30.143 - ///Instantiates a \ref DistMap.
30.144 + ///Instantiates a DistMap.
30.145
30.146 - ///This function instantiates a \ref DistMap.
30.147 + ///This function instantiates a DistMap.
30.148 ///\param g is the digraph, to which we would like to define
30.149 - ///the \ref DistMap
30.150 + ///the DistMap
30.151 static DistMap *createDistMap(const Digraph &g)
30.152 {
30.153 return new DistMap(g);
30.154 @@ -1038,7 +1038,7 @@
30.155 typedef lemon::Path<Digraph> Path;
30.156 };
30.157
30.158 - /// Default traits class used by \ref DijkstraWizard
30.159 + /// Default traits class used by DijkstraWizard
30.160
30.161 /// To make it easier to use Dijkstra algorithm
30.162 /// we have created a wizard class.
30.163 @@ -1198,10 +1198,10 @@
30.164 SetPredMapBase(const TR &b) : TR(b) {}
30.165 };
30.166 ///\brief \ref named-func-param "Named parameter"
30.167 - ///for setting \ref PredMap object.
30.168 + ///for setting PredMap object.
30.169 ///
30.170 ///\ref named-func-param "Named parameter"
30.171 - ///for setting \ref PredMap object.
30.172 + ///for setting PredMap object.
30.173 template<class T>
30.174 DijkstraWizard<SetPredMapBase<T> > predMap(const T &t)
30.175 {
30.176 @@ -1216,10 +1216,10 @@
30.177 SetDistMapBase(const TR &b) : TR(b) {}
30.178 };
30.179 ///\brief \ref named-func-param "Named parameter"
30.180 - ///for setting \ref DistMap object.
30.181 + ///for setting DistMap object.
30.182 ///
30.183 ///\ref named-func-param "Named parameter"
30.184 - ///for setting \ref DistMap object.
30.185 + ///for setting DistMap object.
30.186 template<class T>
30.187 DijkstraWizard<SetDistMapBase<T> > distMap(const T &t)
30.188 {
30.189 @@ -1234,10 +1234,10 @@
30.190 SetProcessedMapBase(const TR &b) : TR(b) {}
30.191 };
30.192 ///\brief \ref named-func-param "Named parameter"
30.193 - ///for setting \ref ProcessedMap object.
30.194 + ///for setting ProcessedMap object.
30.195 ///
30.196 /// \ref named-func-param "Named parameter"
30.197 - ///for setting \ref ProcessedMap object.
30.198 + ///for setting ProcessedMap object.
30.199 template<class T>
30.200 DijkstraWizard<SetProcessedMapBase<T> > processedMap(const T &t)
30.201 {
31.1 --- a/lemon/dim2.h Thu Oct 09 16:47:01 2008 +0200
31.2 +++ b/lemon/dim2.h Thu Oct 09 16:20:37 2008 +0100
31.3 @@ -259,10 +259,10 @@
31.4
31.5
31.6
31.7 - /// Bounding box of plain vectors (\ref Point points).
31.8 + /// Bounding box of plain vectors (points).
31.9
31.10 /// A class to calculate or store the bounding box of plain vectors
31.11 - /// (\ref Point points).
31.12 + /// (\ref Point "points").
31.13 template<typename T>
31.14 class Box {
31.15 Point<T> _bottom_left, _top_right;
31.16 @@ -573,9 +573,8 @@
31.17 return os;
31.18 }
31.19
31.20 - ///Map of x-coordinates of a \ref Point "Point"-map
31.21 + ///Map of x-coordinates of a <tt>Point</tt>-map
31.22
31.23 - ///\ingroup maps
31.24 ///Map of x-coordinates of a \ref Point "Point"-map.
31.25 ///
31.26 template<class M>
31.27 @@ -592,11 +591,9 @@
31.28 void set(Key k,Value v) {_map.set(k,typename M::Value(v,_map[k].y));}
31.29 };
31.30
31.31 - ///Returns an \ref XMap class
31.32 + ///Returns an XMap class
31.33
31.34 - ///This function just returns an \ref XMap class.
31.35 - ///
31.36 - ///\ingroup maps
31.37 + ///This function just returns an XMap class.
31.38 ///\relates XMap
31.39 template<class M>
31.40 inline XMap<M> xMap(M &m)
31.41 @@ -610,10 +607,9 @@
31.42 return XMap<M>(m);
31.43 }
31.44
31.45 - ///Constant (read only) version of \ref XMap
31.46 + ///Constant (read only) version of XMap
31.47
31.48 - ///\ingroup maps
31.49 - ///Constant (read only) version of \ref XMap
31.50 + ///Constant (read only) version of XMap.
31.51 ///
31.52 template<class M>
31.53 class ConstXMap
31.54 @@ -628,11 +624,9 @@
31.55 Value operator[](Key k) const {return _map[k].x;}
31.56 };
31.57
31.58 - ///Returns a \ref ConstXMap class
31.59 + ///Returns a ConstXMap class
31.60
31.61 - ///This function just returns a \ref ConstXMap class.
31.62 - ///
31.63 - ///\ingroup maps
31.64 + ///This function just returns a ConstXMap class.
31.65 ///\relates ConstXMap
31.66 template<class M>
31.67 inline ConstXMap<M> xMap(const M &m)
31.68 @@ -640,9 +634,8 @@
31.69 return ConstXMap<M>(m);
31.70 }
31.71
31.72 - ///Map of y-coordinates of a \ref Point "Point"-map
31.73 + ///Map of y-coordinates of a <tt>Point</tt>-map
31.74
31.75 - ///\ingroup maps
31.76 ///Map of y-coordinates of a \ref Point "Point"-map.
31.77 ///
31.78 template<class M>
31.79 @@ -659,11 +652,9 @@
31.80 void set(Key k,Value v) {_map.set(k,typename M::Value(_map[k].x,v));}
31.81 };
31.82
31.83 - ///Returns a \ref YMap class
31.84 + ///Returns a YMap class
31.85
31.86 - ///This function just returns a \ref YMap class.
31.87 - ///
31.88 - ///\ingroup maps
31.89 + ///This function just returns a YMap class.
31.90 ///\relates YMap
31.91 template<class M>
31.92 inline YMap<M> yMap(M &m)
31.93 @@ -677,10 +668,9 @@
31.94 return YMap<M>(m);
31.95 }
31.96
31.97 - ///Constant (read only) version of \ref YMap
31.98 + ///Constant (read only) version of YMap
31.99
31.100 - ///\ingroup maps
31.101 - ///Constant (read only) version of \ref YMap
31.102 + ///Constant (read only) version of YMap.
31.103 ///
31.104 template<class M>
31.105 class ConstYMap
31.106 @@ -695,11 +685,9 @@
31.107 Value operator[](Key k) const {return _map[k].y;}
31.108 };
31.109
31.110 - ///Returns a \ref ConstYMap class
31.111 + ///Returns a ConstYMap class
31.112
31.113 - ///This function just returns a \ref ConstYMap class.
31.114 - ///
31.115 - ///\ingroup maps
31.116 + ///This function just returns a ConstYMap class.
31.117 ///\relates ConstYMap
31.118 template<class M>
31.119 inline ConstYMap<M> yMap(const M &m)
31.120 @@ -708,12 +696,10 @@
31.121 }
31.122
31.123
31.124 - ///\brief Map of the \ref Point::normSquare() "normSquare()"
31.125 - ///of a \ref Point "Point"-map
31.126 + ///\brief Map of the normSquare() of a <tt>Point</tt>-map
31.127 ///
31.128 ///Map of the \ref Point::normSquare() "normSquare()"
31.129 ///of a \ref Point "Point"-map.
31.130 - ///\ingroup maps
31.131 template<class M>
31.132 class NormSquareMap
31.133 {
31.134 @@ -727,11 +713,9 @@
31.135 Value operator[](Key k) const {return _map[k].normSquare();}
31.136 };
31.137
31.138 - ///Returns a \ref NormSquareMap class
31.139 + ///Returns a NormSquareMap class
31.140
31.141 - ///This function just returns a \ref NormSquareMap class.
31.142 - ///
31.143 - ///\ingroup maps
31.144 + ///This function just returns a NormSquareMap class.
31.145 ///\relates NormSquareMap
31.146 template<class M>
31.147 inline NormSquareMap<M> normSquareMap(const M &m)
32.1 --- a/lemon/graph_to_eps.h Thu Oct 09 16:47:01 2008 +0200
32.2 +++ b/lemon/graph_to_eps.h Thu Oct 09 16:20:37 2008 +0100
32.3 @@ -62,7 +62,7 @@
32.4 };
32.5 }
32.6
32.7 -///Default traits class of \ref GraphToEps
32.8 +///Default traits class of GraphToEps
32.9
32.10 ///Default traits class of \ref GraphToEps.
32.11 ///
33.1 --- a/lemon/lgf_reader.h Thu Oct 09 16:47:01 2008 +0200
33.2 +++ b/lemon/lgf_reader.h Thu Oct 09 16:20:37 2008 +0100
33.3 @@ -391,15 +391,37 @@
33.4 template <typename Digraph>
33.5 class DigraphReader;
33.6
33.7 + /// \brief Return a \ref DigraphReader class
33.8 + ///
33.9 + /// This function just returns a \ref DigraphReader class.
33.10 + /// \relates DigraphReader
33.11 template <typename Digraph>
33.12 DigraphReader<Digraph> digraphReader(Digraph& digraph,
33.13 - std::istream& is = std::cin);
33.14 -
33.15 + std::istream& is = std::cin) {
33.16 + DigraphReader<Digraph> tmp(digraph, is);
33.17 + return tmp;
33.18 + }
33.19 +
33.20 + /// \brief Return a \ref DigraphReader class
33.21 + ///
33.22 + /// This function just returns a \ref DigraphReader class.
33.23 + /// \relates DigraphReader
33.24 template <typename Digraph>
33.25 - DigraphReader<Digraph> digraphReader(Digraph& digraph, const std::string& fn);
33.26 -
33.27 + DigraphReader<Digraph> digraphReader(Digraph& digraph,
33.28 + const std::string& fn) {
33.29 + DigraphReader<Digraph> tmp(digraph, fn);
33.30 + return tmp;
33.31 + }
33.32 +
33.33 + /// \brief Return a \ref DigraphReader class
33.34 + ///
33.35 + /// This function just returns a \ref DigraphReader class.
33.36 + /// \relates DigraphReader
33.37 template <typename Digraph>
33.38 - DigraphReader<Digraph> digraphReader(Digraph& digraph, const char *fn);
33.39 + DigraphReader<Digraph> digraphReader(Digraph& digraph, const char* fn) {
33.40 + DigraphReader<Digraph> tmp(digraph, fn);
33.41 + return tmp;
33.42 + }
33.43
33.44 /// \ingroup lemon_io
33.45 ///
33.46 @@ -1189,51 +1211,39 @@
33.47
33.48 };
33.49
33.50 - /// \brief Return a \ref DigraphReader class
33.51 + template <typename Graph>
33.52 + class GraphReader;
33.53 +
33.54 + /// \brief Return a \ref GraphReader class
33.55 ///
33.56 - /// This function just returns a \ref DigraphReader class.
33.57 - /// \relates DigraphReader
33.58 - template <typename Digraph>
33.59 - DigraphReader<Digraph> digraphReader(Digraph& digraph,
33.60 - std::istream& is = std::cin) {
33.61 - DigraphReader<Digraph> tmp(digraph, is);
33.62 + /// This function just returns a \ref GraphReader class.
33.63 + /// \relates GraphReader
33.64 + template <typename Graph>
33.65 + GraphReader<Graph> graphReader(Graph& graph, std::istream& is = std::cin) {
33.66 + GraphReader<Graph> tmp(graph, is);
33.67 return tmp;
33.68 }
33.69
33.70 - /// \brief Return a \ref DigraphReader class
33.71 + /// \brief Return a \ref GraphReader class
33.72 ///
33.73 - /// This function just returns a \ref DigraphReader class.
33.74 - /// \relates DigraphReader
33.75 - template <typename Digraph>
33.76 - DigraphReader<Digraph> digraphReader(Digraph& digraph,
33.77 - const std::string& fn) {
33.78 - DigraphReader<Digraph> tmp(digraph, fn);
33.79 + /// This function just returns a \ref GraphReader class.
33.80 + /// \relates GraphReader
33.81 + template <typename Graph>
33.82 + GraphReader<Graph> graphReader(Graph& graph, const std::string& fn) {
33.83 + GraphReader<Graph> tmp(graph, fn);
33.84 return tmp;
33.85 }
33.86
33.87 - /// \brief Return a \ref DigraphReader class
33.88 + /// \brief Return a \ref GraphReader class
33.89 ///
33.90 - /// This function just returns a \ref DigraphReader class.
33.91 - /// \relates DigraphReader
33.92 - template <typename Digraph>
33.93 - DigraphReader<Digraph> digraphReader(Digraph& digraph, const char* fn) {
33.94 - DigraphReader<Digraph> tmp(digraph, fn);
33.95 + /// This function just returns a \ref GraphReader class.
33.96 + /// \relates GraphReader
33.97 + template <typename Graph>
33.98 + GraphReader<Graph> graphReader(Graph& graph, const char* fn) {
33.99 + GraphReader<Graph> tmp(graph, fn);
33.100 return tmp;
33.101 }
33.102
33.103 - template <typename Graph>
33.104 - class GraphReader;
33.105 -
33.106 - template <typename Graph>
33.107 - GraphReader<Graph> graphReader(Graph& graph,
33.108 - std::istream& is = std::cin);
33.109 -
33.110 - template <typename Graph>
33.111 - GraphReader<Graph> graphReader(Graph& graph, const std::string& fn);
33.112 -
33.113 - template <typename Graph>
33.114 - GraphReader<Graph> graphReader(Graph& graph, const char *fn);
33.115 -
33.116 /// \ingroup lemon_io
33.117 ///
33.118 /// \brief \ref lgf-format "LGF" reader for undirected graphs
33.119 @@ -2031,36 +2041,6 @@
33.120
33.121 };
33.122
33.123 - /// \brief Return a \ref GraphReader class
33.124 - ///
33.125 - /// This function just returns a \ref GraphReader class.
33.126 - /// \relates GraphReader
33.127 - template <typename Graph>
33.128 - GraphReader<Graph> graphReader(Graph& graph, std::istream& is = std::cin) {
33.129 - GraphReader<Graph> tmp(graph, is);
33.130 - return tmp;
33.131 - }
33.132 -
33.133 - /// \brief Return a \ref GraphReader class
33.134 - ///
33.135 - /// This function just returns a \ref GraphReader class.
33.136 - /// \relates GraphReader
33.137 - template <typename Graph>
33.138 - GraphReader<Graph> graphReader(Graph& graph, const std::string& fn) {
33.139 - GraphReader<Graph> tmp(graph, fn);
33.140 - return tmp;
33.141 - }
33.142 -
33.143 - /// \brief Return a \ref GraphReader class
33.144 - ///
33.145 - /// This function just returns a \ref GraphReader class.
33.146 - /// \relates GraphReader
33.147 - template <typename Graph>
33.148 - GraphReader<Graph> graphReader(Graph& graph, const char* fn) {
33.149 - GraphReader<Graph> tmp(graph, fn);
33.150 - return tmp;
33.151 - }
33.152 -
33.153 class SectionReader;
33.154
33.155 SectionReader sectionReader(std::istream& is);
34.1 --- a/lemon/lgf_writer.h Thu Oct 09 16:47:01 2008 +0200
34.2 +++ b/lemon/lgf_writer.h Thu Oct 09 16:20:37 2008 +0100
34.3 @@ -351,17 +351,38 @@
34.4 template <typename Digraph>
34.5 class DigraphWriter;
34.6
34.7 + /// \brief Return a \ref DigraphWriter class
34.8 + ///
34.9 + /// This function just returns a \ref DigraphWriter class.
34.10 + /// \relates DigraphWriter
34.11 template <typename Digraph>
34.12 DigraphWriter<Digraph> digraphWriter(const Digraph& digraph,
34.13 - std::ostream& os = std::cout);
34.14 + std::ostream& os = std::cout) {
34.15 + DigraphWriter<Digraph> tmp(digraph, os);
34.16 + return tmp;
34.17 + }
34.18
34.19 + /// \brief Return a \ref DigraphWriter class
34.20 + ///
34.21 + /// This function just returns a \ref DigraphWriter class.
34.22 + /// \relates DigraphWriter
34.23 template <typename Digraph>
34.24 DigraphWriter<Digraph> digraphWriter(const Digraph& digraph,
34.25 - const std::string& fn);
34.26 + const std::string& fn) {
34.27 + DigraphWriter<Digraph> tmp(digraph, fn);
34.28 + return tmp;
34.29 + }
34.30
34.31 + /// \brief Return a \ref DigraphWriter class
34.32 + ///
34.33 + /// This function just returns a \ref DigraphWriter class.
34.34 + /// \relates DigraphWriter
34.35 template <typename Digraph>
34.36 DigraphWriter<Digraph> digraphWriter(const Digraph& digraph,
34.37 - const char *fn);
34.38 + const char* fn) {
34.39 + DigraphWriter<Digraph> tmp(digraph, fn);
34.40 + return tmp;
34.41 + }
34.42
34.43 /// \ingroup lemon_io
34.44 ///
34.45 @@ -913,52 +934,40 @@
34.46 /// @}
34.47 };
34.48
34.49 - /// \brief Return a \ref DigraphWriter class
34.50 + template <typename Graph>
34.51 + class GraphWriter;
34.52 +
34.53 + /// \brief Return a \ref GraphWriter class
34.54 ///
34.55 - /// This function just returns a \ref DigraphWriter class.
34.56 - /// \relates DigraphWriter
34.57 - template <typename Digraph>
34.58 - DigraphWriter<Digraph> digraphWriter(const Digraph& digraph,
34.59 - std::ostream& os = std::cout) {
34.60 - DigraphWriter<Digraph> tmp(digraph, os);
34.61 + /// This function just returns a \ref GraphWriter class.
34.62 + /// \relates GraphWriter
34.63 + template <typename Graph>
34.64 + GraphWriter<Graph> graphWriter(const Graph& graph,
34.65 + std::ostream& os = std::cout) {
34.66 + GraphWriter<Graph> tmp(graph, os);
34.67 return tmp;
34.68 }
34.69
34.70 - /// \brief Return a \ref DigraphWriter class
34.71 + /// \brief Return a \ref GraphWriter class
34.72 ///
34.73 - /// This function just returns a \ref DigraphWriter class.
34.74 - /// \relates DigraphWriter
34.75 - template <typename Digraph>
34.76 - DigraphWriter<Digraph> digraphWriter(const Digraph& digraph,
34.77 - const std::string& fn) {
34.78 - DigraphWriter<Digraph> tmp(digraph, fn);
34.79 + /// This function just returns a \ref GraphWriter class.
34.80 + /// \relates GraphWriter
34.81 + template <typename Graph>
34.82 + GraphWriter<Graph> graphWriter(const Graph& graph, const std::string& fn) {
34.83 + GraphWriter<Graph> tmp(graph, fn);
34.84 return tmp;
34.85 }
34.86
34.87 - /// \brief Return a \ref DigraphWriter class
34.88 + /// \brief Return a \ref GraphWriter class
34.89 ///
34.90 - /// This function just returns a \ref DigraphWriter class.
34.91 - /// \relates DigraphWriter
34.92 - template <typename Digraph>
34.93 - DigraphWriter<Digraph> digraphWriter(const Digraph& digraph,
34.94 - const char* fn) {
34.95 - DigraphWriter<Digraph> tmp(digraph, fn);
34.96 + /// This function just returns a \ref GraphWriter class.
34.97 + /// \relates GraphWriter
34.98 + template <typename Graph>
34.99 + GraphWriter<Graph> graphWriter(const Graph& graph, const char* fn) {
34.100 + GraphWriter<Graph> tmp(graph, fn);
34.101 return tmp;
34.102 }
34.103
34.104 - template <typename Graph>
34.105 - class GraphWriter;
34.106 -
34.107 - template <typename Graph>
34.108 - GraphWriter<Graph> graphWriter(const Graph& graph,
34.109 - std::ostream& os = std::cout);
34.110 -
34.111 - template <typename Graph>
34.112 - GraphWriter<Graph> graphWriter(const Graph& graph, const std::string& fn);
34.113 -
34.114 - template <typename Graph>
34.115 - GraphWriter<Graph> graphWriter(const Graph& graph, const char *fn);
34.116 -
34.117 /// \ingroup lemon_io
34.118 ///
34.119 /// \brief \ref lgf-format "LGF" writer for directed graphs
34.120 @@ -1526,37 +1535,6 @@
34.121 /// @}
34.122 };
34.123
34.124 - /// \brief Return a \ref GraphWriter class
34.125 - ///
34.126 - /// This function just returns a \ref GraphWriter class.
34.127 - /// \relates GraphWriter
34.128 - template <typename Graph>
34.129 - GraphWriter<Graph> graphWriter(const Graph& graph,
34.130 - std::ostream& os = std::cout) {
34.131 - GraphWriter<Graph> tmp(graph, os);
34.132 - return tmp;
34.133 - }
34.134 -
34.135 - /// \brief Return a \ref GraphWriter class
34.136 - ///
34.137 - /// This function just returns a \ref GraphWriter class.
34.138 - /// \relates GraphWriter
34.139 - template <typename Graph>
34.140 - GraphWriter<Graph> graphWriter(const Graph& graph, const std::string& fn) {
34.141 - GraphWriter<Graph> tmp(graph, fn);
34.142 - return tmp;
34.143 - }
34.144 -
34.145 - /// \brief Return a \ref GraphWriter class
34.146 - ///
34.147 - /// This function just returns a \ref GraphWriter class.
34.148 - /// \relates GraphWriter
34.149 - template <typename Graph>
34.150 - GraphWriter<Graph> graphWriter(const Graph& graph, const char* fn) {
34.151 - GraphWriter<Graph> tmp(graph, fn);
34.152 - return tmp;
34.153 - }
34.154 -
34.155 class SectionWriter;
34.156
34.157 SectionWriter sectionWriter(std::istream& is);
35.1 --- a/lemon/list_graph.h Thu Oct 09 16:47:01 2008 +0200
35.2 +++ b/lemon/list_graph.h Thu Oct 09 16:20:37 2008 +0100
35.3 @@ -413,7 +413,7 @@
35.4 /// Change the source of \c a to \c n
35.5 ///
35.6 ///\note The <tt>InArcIt</tt>s referencing the changed arc remain
35.7 - ///valid. However the <tt>ArcIt<tt>s and <tt>OutArcIt</tt>s are
35.8 + ///valid. However the <tt>ArcIt</tt>s and <tt>OutArcIt</tt>s are
35.9 ///invalidated.
35.10 ///
35.11 ///\warning This functionality cannot be used together with the Snapshot
36.1 --- a/lemon/maps.h Thu Oct 09 16:47:01 2008 +0200
36.2 +++ b/lemon/maps.h Thu Oct 09 16:20:37 2008 +0100
36.3 @@ -43,7 +43,7 @@
36.4 template<typename K, typename V>
36.5 class MapBase {
36.6 public:
36.7 - /// \biref The key type of the map.
36.8 + /// \brief The key type of the map.
36.9 typedef K Key;
36.10 /// \brief The value type of the map.
36.11 /// (The type of objects associated with the keys).
36.12 @@ -73,9 +73,9 @@
36.13 void set(const Key&, const Value&) {}
36.14 };
36.15
36.16 - /// Returns a \ref NullMap class
36.17 -
36.18 - /// This function just returns a \ref NullMap class.
36.19 + /// Returns a \c NullMap class
36.20 +
36.21 + /// This function just returns a \c NullMap class.
36.22 /// \relates NullMap
36.23 template <typename K, typename V>
36.24 NullMap<K, V> nullMap() {
36.25 @@ -88,7 +88,7 @@
36.26 /// This \ref concepts::ReadMap "readable map" assigns a specified
36.27 /// value to each key.
36.28 ///
36.29 - /// In other aspects it is equivalent to \ref NullMap.
36.30 + /// In other aspects it is equivalent to \c NullMap.
36.31 /// So it conforms the \ref concepts::ReadWriteMap "ReadWriteMap"
36.32 /// concept, but it absorbs the data written to it.
36.33 ///
36.34 @@ -133,9 +133,9 @@
36.35 ConstMap(const ConstMap<K, V1> &, const Value &v) : _value(v) {}
36.36 };
36.37
36.38 - /// Returns a \ref ConstMap class
36.39 -
36.40 - /// This function just returns a \ref ConstMap class.
36.41 + /// Returns a \c ConstMap class
36.42 +
36.43 + /// This function just returns a \c ConstMap class.
36.44 /// \relates ConstMap
36.45 template<typename K, typename V>
36.46 inline ConstMap<K, V> constMap(const V &v) {
36.47 @@ -156,7 +156,7 @@
36.48 /// This \ref concepts::ReadMap "readable map" assigns a specified
36.49 /// value to each key.
36.50 ///
36.51 - /// In other aspects it is equivalent to \ref NullMap.
36.52 + /// In other aspects it is equivalent to \c NullMap.
36.53 /// So it conforms the \ref concepts::ReadWriteMap "ReadWriteMap"
36.54 /// concept, but it absorbs the data written to it.
36.55 ///
36.56 @@ -182,9 +182,9 @@
36.57 void set(const Key&, const Value&) {}
36.58 };
36.59
36.60 - /// Returns a \ref ConstMap class with inlined constant value
36.61 -
36.62 - /// This function just returns a \ref ConstMap class with inlined
36.63 + /// Returns a \c ConstMap class with inlined constant value
36.64 +
36.65 + /// This function just returns a \c ConstMap class with inlined
36.66 /// constant value.
36.67 /// \relates ConstMap
36.68 template<typename K, typename V, V v>
36.69 @@ -212,9 +212,9 @@
36.70 }
36.71 };
36.72
36.73 - /// Returns an \ref IdentityMap class
36.74 -
36.75 - /// This function just returns an \ref IdentityMap class.
36.76 + /// Returns an \c IdentityMap class
36.77 +
36.78 + /// This function just returns an \c IdentityMap class.
36.79 /// \relates IdentityMap
36.80 template<typename T>
36.81 inline IdentityMap<T> identityMap() {
36.82 @@ -228,7 +228,7 @@
36.83 /// This map is essentially a wrapper for \c std::vector. It assigns
36.84 /// values to integer keys from the range <tt>[0..size-1]</tt>.
36.85 /// It can be used with some data structures, for example
36.86 - /// \ref UnionFind, \ref BinHeap, when the used items are small
36.87 + /// \c UnionFind, \c BinHeap, when the used items are small
36.88 /// integers. This map conforms the \ref concepts::ReferenceMap
36.89 /// "ReferenceMap" concept.
36.90 ///
36.91 @@ -268,7 +268,7 @@
36.92 RangeMap(const std::vector<V1>& vector)
36.93 : _vector(vector.begin(), vector.end()) {}
36.94
36.95 - /// Constructs the map from another \ref RangeMap.
36.96 + /// Constructs the map from another \c RangeMap.
36.97 template <typename V1>
36.98 RangeMap(const RangeMap<V1> &c)
36.99 : _vector(c._vector.begin(), c._vector.end()) {}
36.100 @@ -311,19 +311,19 @@
36.101 }
36.102 };
36.103
36.104 - /// Returns a \ref RangeMap class
36.105 -
36.106 - /// This function just returns a \ref RangeMap class.
36.107 + /// Returns a \c RangeMap class
36.108 +
36.109 + /// This function just returns a \c RangeMap class.
36.110 /// \relates RangeMap
36.111 template<typename V>
36.112 inline RangeMap<V> rangeMap(int size = 0, const V &value = V()) {
36.113 return RangeMap<V>(size, value);
36.114 }
36.115
36.116 - /// \brief Returns a \ref RangeMap class created from an appropriate
36.117 + /// \brief Returns a \c RangeMap class created from an appropriate
36.118 /// \c std::vector
36.119
36.120 - /// This function just returns a \ref RangeMap class created from an
36.121 + /// This function just returns a \c RangeMap class created from an
36.122 /// appropriate \c std::vector.
36.123 /// \relates RangeMap
36.124 template<typename V>
36.125 @@ -388,7 +388,7 @@
36.126 const Value &value = Value())
36.127 : _map(map.begin(), map.end()), _value(value) {}
36.128
36.129 - /// \brief Constructs the map from another \ref SparseMap.
36.130 + /// \brief Constructs the map from another \c SparseMap.
36.131 template<typename V1, typename Comp1>
36.132 SparseMap(const SparseMap<Key, V1, Comp1> &c)
36.133 : _map(c._map.begin(), c._map.end()), _value(c._value) {}
36.134 @@ -433,9 +433,9 @@
36.135 }
36.136 };
36.137
36.138 - /// Returns a \ref SparseMap class
36.139 -
36.140 - /// This function just returns a \ref SparseMap class with specified
36.141 + /// Returns a \c SparseMap class
36.142 +
36.143 + /// This function just returns a \c SparseMap class with specified
36.144 /// default value.
36.145 /// \relates SparseMap
36.146 template<typename K, typename V, typename Compare>
36.147 @@ -448,10 +448,10 @@
36.148 return SparseMap<K, V, std::less<K> >(value);
36.149 }
36.150
36.151 - /// \brief Returns a \ref SparseMap class created from an appropriate
36.152 + /// \brief Returns a \c SparseMap class created from an appropriate
36.153 /// \c std::map
36.154
36.155 - /// This function just returns a \ref SparseMap class created from an
36.156 + /// This function just returns a \c SparseMap class created from an
36.157 /// appropriate \c std::map.
36.158 /// \relates SparseMap
36.159 template<typename K, typename V, typename Compare>
36.160 @@ -501,9 +501,9 @@
36.161 operator[](const Key &k) const { return _m1[_m2[k]]; }
36.162 };
36.163
36.164 - /// Returns a \ref ComposeMap class
36.165 -
36.166 - /// This function just returns a \ref ComposeMap class.
36.167 + /// Returns a \c ComposeMap class
36.168 +
36.169 + /// This function just returns a \c ComposeMap class.
36.170 ///
36.171 /// If \c m1 and \c m2 are maps and the \c Value type of \c m2 is
36.172 /// convertible to the \c Key of \c m1, then <tt>composeMap(m1,m2)[x]</tt>
36.173 @@ -556,9 +556,9 @@
36.174 Value operator[](const Key &k) const { return _f(_m1[k],_m2[k]); }
36.175 };
36.176
36.177 - /// Returns a \ref CombineMap class
36.178 -
36.179 - /// This function just returns a \ref CombineMap class.
36.180 + /// Returns a \c CombineMap class
36.181 +
36.182 + /// This function just returns a \c CombineMap class.
36.183 ///
36.184 /// For example, if \c m1 and \c m2 are both maps with \c double
36.185 /// values, then
36.186 @@ -625,9 +625,9 @@
36.187 Value operator[](const Key &k) const { return _f(k); }
36.188 };
36.189
36.190 - /// Returns a \ref FunctorToMap class
36.191 -
36.192 - /// This function just returns a \ref FunctorToMap class.
36.193 + /// Returns a \c FunctorToMap class
36.194 +
36.195 + /// This function just returns a \c FunctorToMap class.
36.196 ///
36.197 /// This function is specialized for adaptable binary function
36.198 /// classes and C++ functions.
36.199 @@ -684,9 +684,9 @@
36.200 Value operator[](const Key &k) const { return _m[k]; }
36.201 };
36.202
36.203 - /// Returns a \ref MapToFunctor class
36.204 -
36.205 - /// This function just returns a \ref MapToFunctor class.
36.206 + /// Returns a \c MapToFunctor class
36.207 +
36.208 + /// This function just returns a \c MapToFunctor class.
36.209 /// \relates MapToFunctor
36.210 template<typename M>
36.211 inline MapToFunctor<M> mapToFunctor(const M &m) {
36.212 @@ -723,9 +723,9 @@
36.213 Value operator[](const Key &k) const { return _m[k]; }
36.214 };
36.215
36.216 - /// Returns a \ref ConvertMap class
36.217 -
36.218 - /// This function just returns a \ref ConvertMap class.
36.219 + /// Returns a \c ConvertMap class
36.220 +
36.221 + /// This function just returns a \c ConvertMap class.
36.222 /// \relates ConvertMap
36.223 template<typename V, typename M>
36.224 inline ConvertMap<M, V> convertMap(const M &map) {
36.225 @@ -763,9 +763,9 @@
36.226 void set(const Key &k, const Value &v) { _m1.set(k,v); _m2.set(k,v); }
36.227 };
36.228
36.229 - /// Returns a \ref ForkMap class
36.230 -
36.231 - /// This function just returns a \ref ForkMap class.
36.232 + /// Returns a \c ForkMap class
36.233 +
36.234 + /// This function just returns a \c ForkMap class.
36.235 /// \relates ForkMap
36.236 template <typename M1, typename M2>
36.237 inline ForkMap<M1,M2> forkMap(M1 &m1, M2 &m2) {
36.238 @@ -807,9 +807,9 @@
36.239 Value operator[](const Key &k) const { return _m1[k]+_m2[k]; }
36.240 };
36.241
36.242 - /// Returns an \ref AddMap class
36.243 -
36.244 - /// This function just returns an \ref AddMap class.
36.245 + /// Returns an \c AddMap class
36.246 +
36.247 + /// This function just returns an \c AddMap class.
36.248 ///
36.249 /// For example, if \c m1 and \c m2 are both maps with \c double
36.250 /// values, then <tt>addMap(m1,m2)[x]</tt> will be equal to
36.251 @@ -855,9 +855,9 @@
36.252 Value operator[](const Key &k) const { return _m1[k]-_m2[k]; }
36.253 };
36.254
36.255 - /// Returns a \ref SubMap class
36.256 -
36.257 - /// This function just returns a \ref SubMap class.
36.258 + /// Returns a \c SubMap class
36.259 +
36.260 + /// This function just returns a \c SubMap class.
36.261 ///
36.262 /// For example, if \c m1 and \c m2 are both maps with \c double
36.263 /// values, then <tt>subMap(m1,m2)[x]</tt> will be equal to
36.264 @@ -904,9 +904,9 @@
36.265 Value operator[](const Key &k) const { return _m1[k]*_m2[k]; }
36.266 };
36.267
36.268 - /// Returns a \ref MulMap class
36.269 -
36.270 - /// This function just returns a \ref MulMap class.
36.271 + /// Returns a \c MulMap class
36.272 +
36.273 + /// This function just returns a \c MulMap class.
36.274 ///
36.275 /// For example, if \c m1 and \c m2 are both maps with \c double
36.276 /// values, then <tt>mulMap(m1,m2)[x]</tt> will be equal to
36.277 @@ -952,9 +952,9 @@
36.278 Value operator[](const Key &k) const { return _m1[k]/_m2[k]; }
36.279 };
36.280
36.281 - /// Returns a \ref DivMap class
36.282 -
36.283 - /// This function just returns a \ref DivMap class.
36.284 + /// Returns a \c DivMap class
36.285 +
36.286 + /// This function just returns a \c DivMap class.
36.287 ///
36.288 /// For example, if \c m1 and \c m2 are both maps with \c double
36.289 /// values, then <tt>divMap(m1,m2)[x]</tt> will be equal to
36.290 @@ -1038,9 +1038,9 @@
36.291 void set(const Key &k, const Value &v) { _m.set(k, v-_v); }
36.292 };
36.293
36.294 - /// Returns a \ref ShiftMap class
36.295 -
36.296 - /// This function just returns a \ref ShiftMap class.
36.297 + /// Returns a \c ShiftMap class
36.298 +
36.299 + /// This function just returns a \c ShiftMap class.
36.300 ///
36.301 /// For example, if \c m is a map with \c double values and \c v is
36.302 /// \c double, then <tt>shiftMap(m,v)[x]</tt> will be equal to
36.303 @@ -1052,9 +1052,9 @@
36.304 return ShiftMap<M, C>(m,v);
36.305 }
36.306
36.307 - /// Returns a \ref ShiftWriteMap class
36.308 -
36.309 - /// This function just returns a \ref ShiftWriteMap class.
36.310 + /// Returns a \c ShiftWriteMap class
36.311 +
36.312 + /// This function just returns a \c ShiftWriteMap class.
36.313 ///
36.314 /// For example, if \c m is a map with \c double values and \c v is
36.315 /// \c double, then <tt>shiftWriteMap(m,v)[x]</tt> will be equal to
36.316 @@ -1140,9 +1140,9 @@
36.317 void set(const Key &k, const Value &v) { _m.set(k, v/_v); }
36.318 };
36.319
36.320 - /// Returns a \ref ScaleMap class
36.321 -
36.322 - /// This function just returns a \ref ScaleMap class.
36.323 + /// Returns a \c ScaleMap class
36.324 +
36.325 + /// This function just returns a \c ScaleMap class.
36.326 ///
36.327 /// For example, if \c m is a map with \c double values and \c v is
36.328 /// \c double, then <tt>scaleMap(m,v)[x]</tt> will be equal to
36.329 @@ -1154,9 +1154,9 @@
36.330 return ScaleMap<M, C>(m,v);
36.331 }
36.332
36.333 - /// Returns a \ref ScaleWriteMap class
36.334 -
36.335 - /// This function just returns a \ref ScaleWriteMap class.
36.336 + /// Returns a \c ScaleWriteMap class
36.337 +
36.338 + /// This function just returns a \c ScaleWriteMap class.
36.339 ///
36.340 /// For example, if \c m is a map with \c double values and \c v is
36.341 /// \c double, then <tt>scaleWriteMap(m,v)[x]</tt> will be equal to
36.342 @@ -1240,9 +1240,9 @@
36.343 void set(const Key &k, const Value &v) { _m.set(k, -v); }
36.344 };
36.345
36.346 - /// Returns a \ref NegMap class
36.347 -
36.348 - /// This function just returns a \ref NegMap class.
36.349 + /// Returns a \c NegMap class
36.350 +
36.351 + /// This function just returns a \c NegMap class.
36.352 ///
36.353 /// For example, if \c m is a map with \c double values, then
36.354 /// <tt>negMap(m)[x]</tt> will be equal to <tt>-m[x]</tt>.
36.355 @@ -1253,9 +1253,9 @@
36.356 return NegMap<M>(m);
36.357 }
36.358
36.359 - /// Returns a \ref NegWriteMap class
36.360 -
36.361 - /// This function just returns a \ref NegWriteMap class.
36.362 + /// Returns a \c NegWriteMap class
36.363 +
36.364 + /// This function just returns a \c NegWriteMap class.
36.365 ///
36.366 /// For example, if \c m is a map with \c double values, then
36.367 /// <tt>negWriteMap(m)[x]</tt> will be equal to <tt>-m[x]</tt>.
36.368 @@ -1296,9 +1296,9 @@
36.369
36.370 };
36.371
36.372 - /// Returns an \ref AbsMap class
36.373 -
36.374 - /// This function just returns an \ref AbsMap class.
36.375 + /// Returns an \c AbsMap class
36.376 +
36.377 + /// This function just returns an \c AbsMap class.
36.378 ///
36.379 /// For example, if \c m is a map with \c double values, then
36.380 /// <tt>absMap(m)[x]</tt> will be equal to <tt>m[x]</tt> if
36.381 @@ -1345,9 +1345,9 @@
36.382 Value operator[](const Key&) const { return true; }
36.383 };
36.384
36.385 - /// Returns a \ref TrueMap class
36.386 -
36.387 - /// This function just returns a \ref TrueMap class.
36.388 + /// Returns a \c TrueMap class
36.389 +
36.390 + /// This function just returns a \c TrueMap class.
36.391 /// \relates TrueMap
36.392 template<typename K>
36.393 inline TrueMap<K> trueMap() {
36.394 @@ -1382,9 +1382,9 @@
36.395 Value operator[](const Key&) const { return false; }
36.396 };
36.397
36.398 - /// Returns a \ref FalseMap class
36.399 -
36.400 - /// This function just returns a \ref FalseMap class.
36.401 + /// Returns a \c FalseMap class
36.402 +
36.403 + /// This function just returns a \c FalseMap class.
36.404 /// \relates FalseMap
36.405 template<typename K>
36.406 inline FalseMap<K> falseMap() {
36.407 @@ -1429,9 +1429,9 @@
36.408 Value operator[](const Key &k) const { return _m1[k]&&_m2[k]; }
36.409 };
36.410
36.411 - /// Returns an \ref AndMap class
36.412 -
36.413 - /// This function just returns an \ref AndMap class.
36.414 + /// Returns an \c AndMap class
36.415 +
36.416 + /// This function just returns an \c AndMap class.
36.417 ///
36.418 /// For example, if \c m1 and \c m2 are both maps with \c bool values,
36.419 /// then <tt>andMap(m1,m2)[x]</tt> will be equal to
36.420 @@ -1477,9 +1477,9 @@
36.421 Value operator[](const Key &k) const { return _m1[k]||_m2[k]; }
36.422 };
36.423
36.424 - /// Returns an \ref OrMap class
36.425 -
36.426 - /// This function just returns an \ref OrMap class.
36.427 + /// Returns an \c OrMap class
36.428 +
36.429 + /// This function just returns an \c OrMap class.
36.430 ///
36.431 /// For example, if \c m1 and \c m2 are both maps with \c bool values,
36.432 /// then <tt>orMap(m1,m2)[x]</tt> will be equal to
36.433 @@ -1544,9 +1544,9 @@
36.434 void set(const Key &k, bool v) { _m.set(k, !v); }
36.435 };
36.436
36.437 - /// Returns a \ref NotMap class
36.438 -
36.439 - /// This function just returns a \ref NotMap class.
36.440 + /// Returns a \c NotMap class
36.441 +
36.442 + /// This function just returns a \c NotMap class.
36.443 ///
36.444 /// For example, if \c m is a map with \c bool values, then
36.445 /// <tt>notMap(m)[x]</tt> will be equal to <tt>!m[x]</tt>.
36.446 @@ -1557,9 +1557,9 @@
36.447 return NotMap<M>(m);
36.448 }
36.449
36.450 - /// Returns a \ref NotWriteMap class
36.451 -
36.452 - /// This function just returns a \ref NotWriteMap class.
36.453 + /// Returns a \c NotWriteMap class
36.454 +
36.455 + /// This function just returns a \c NotWriteMap class.
36.456 ///
36.457 /// For example, if \c m is a map with \c bool values, then
36.458 /// <tt>notWriteMap(m)[x]</tt> will be equal to <tt>!m[x]</tt>.
36.459 @@ -1605,9 +1605,9 @@
36.460 Value operator[](const Key &k) const { return _m1[k]==_m2[k]; }
36.461 };
36.462
36.463 - /// Returns an \ref EqualMap class
36.464 -
36.465 - /// This function just returns an \ref EqualMap class.
36.466 + /// Returns an \c EqualMap class
36.467 +
36.468 + /// This function just returns an \c EqualMap class.
36.469 ///
36.470 /// For example, if \c m1 and \c m2 are maps with keys and values of
36.471 /// the same type, then <tt>equalMap(m1,m2)[x]</tt> will be equal to
36.472 @@ -1653,9 +1653,9 @@
36.473 Value operator[](const Key &k) const { return _m1[k]<_m2[k]; }
36.474 };
36.475
36.476 - /// Returns an \ref LessMap class
36.477 -
36.478 - /// This function just returns an \ref LessMap class.
36.479 + /// Returns an \c LessMap class
36.480 +
36.481 + /// This function just returns an \c LessMap class.
36.482 ///
36.483 /// For example, if \c m1 and \c m2 are maps with keys and values of
36.484 /// the same type, then <tt>lessMap(m1,m2)[x]</tt> will be equal to
36.485 @@ -1683,6 +1683,11 @@
36.486
36.487 }
36.488
36.489 + /// @}
36.490 +
36.491 + /// \addtogroup maps
36.492 + /// @{
36.493 +
36.494 /// \brief Writable bool map for logging each \c true assigned element
36.495 ///
36.496 /// A \ref concepts::WriteMap "writable" bool map for logging
36.497 @@ -1745,9 +1750,9 @@
36.498 Iterator _end;
36.499 };
36.500
36.501 - /// Returns a \ref LoggerBoolMap class
36.502 -
36.503 - /// This function just returns a \ref LoggerBoolMap class.
36.504 + /// Returns a \c LoggerBoolMap class
36.505 +
36.506 + /// This function just returns a \c LoggerBoolMap class.
36.507 ///
36.508 /// The most important usage of it is storing certain nodes or arcs
36.509 /// that were marked \c true by an algorithm.
36.510 @@ -1767,7 +1772,7 @@
36.511 ///
36.512 /// \note LoggerBoolMap is just \ref concepts::WriteMap "writable", so
36.513 /// it cannot be used when a readable map is needed, for example as
36.514 - /// \c ReachedMap for \ref Bfs, \ref Dfs and \ref Dijkstra algorithms.
36.515 + /// \c ReachedMap for \c Bfs, \c Dfs and \c Dijkstra algorithms.
36.516 ///
36.517 /// \relates LoggerBoolMap
36.518 template<typename Iterator>
36.519 @@ -1775,6 +1780,11 @@
36.520 return LoggerBoolMap<Iterator>(it);
36.521 }
36.522
36.523 + /// @}
36.524 +
36.525 + /// \addtogroup graph_maps
36.526 + /// @{
36.527 +
36.528 /// Provides an immutable and unique id for each item in the graph.
36.529
36.530 /// The IdMap class provides a unique and immutable id for each item of the
36.531 @@ -1882,8 +1892,6 @@
36.532 /// The value type of the InvertableMap.
36.533 typedef typename Map::Value Value;
36.534
36.535 -
36.536 -
36.537 /// \brief Constructor.
36.538 ///
36.539 /// Construct a new InvertableMap for the graph.
36.540 @@ -2049,8 +2057,6 @@
36.541 return InverseMap(*this);
36.542 }
36.543
36.544 -
36.545 -
36.546 };
36.547
36.548 /// \brief Provides a mutable, continuous and unique descriptor for each
36.549 @@ -2266,7 +2272,7 @@
36.550 /// \brief Constructor
36.551 ///
36.552 /// Constructor
36.553 - /// \param _digraph The digraph that the map belongs to.
36.554 + /// \param digraph The digraph that the map belongs to.
36.555 explicit SourceMap(const Digraph& digraph) : _digraph(digraph) {}
36.556
36.557 /// \brief The subscript operator.
36.558 @@ -2282,9 +2288,9 @@
36.559 const Digraph& _digraph;
36.560 };
36.561
36.562 - /// \brief Returns a \ref SourceMap class.
36.563 + /// \brief Returns a \c SourceMap class.
36.564 ///
36.565 - /// This function just returns an \ref SourceMap class.
36.566 + /// This function just returns an \c SourceMap class.
36.567 /// \relates SourceMap
36.568 template <typename Digraph>
36.569 inline SourceMap<Digraph> sourceMap(const Digraph& digraph) {
36.570 @@ -2305,7 +2311,7 @@
36.571 /// \brief Constructor
36.572 ///
36.573 /// Constructor
36.574 - /// \param _digraph The digraph that the map belongs to.
36.575 + /// \param digraph The digraph that the map belongs to.
36.576 explicit TargetMap(const Digraph& digraph) : _digraph(digraph) {}
36.577
36.578 /// \brief The subscript operator.
36.579 @@ -2321,9 +2327,9 @@
36.580 const Digraph& _digraph;
36.581 };
36.582
36.583 - /// \brief Returns a \ref TargetMap class.
36.584 + /// \brief Returns a \c TargetMap class.
36.585 ///
36.586 - /// This function just returns a \ref TargetMap class.
36.587 + /// This function just returns a \c TargetMap class.
36.588 /// \relates TargetMap
36.589 template <typename Digraph>
36.590 inline TargetMap<Digraph> targetMap(const Digraph& digraph) {
36.591 @@ -2344,7 +2350,7 @@
36.592 /// \brief Constructor
36.593 ///
36.594 /// Constructor
36.595 - /// \param _graph The graph that the map belongs to.
36.596 + /// \param graph The graph that the map belongs to.
36.597 explicit ForwardMap(const Graph& graph) : _graph(graph) {}
36.598
36.599 /// \brief The subscript operator.
36.600 @@ -2360,9 +2366,9 @@
36.601 const Graph& _graph;
36.602 };
36.603
36.604 - /// \brief Returns a \ref ForwardMap class.
36.605 + /// \brief Returns a \c ForwardMap class.
36.606 ///
36.607 - /// This function just returns an \ref ForwardMap class.
36.608 + /// This function just returns an \c ForwardMap class.
36.609 /// \relates ForwardMap
36.610 template <typename Graph>
36.611 inline ForwardMap<Graph> forwardMap(const Graph& graph) {
36.612 @@ -2383,7 +2389,7 @@
36.613 /// \brief Constructor
36.614 ///
36.615 /// Constructor
36.616 - /// \param _graph The graph that the map belongs to.
36.617 + /// \param graph The graph that the map belongs to.
36.618 explicit BackwardMap(const Graph& graph) : _graph(graph) {}
36.619
36.620 /// \brief The subscript operator.
36.621 @@ -2399,9 +2405,9 @@
36.622 const Graph& _graph;
36.623 };
36.624
36.625 - /// \brief Returns a \ref BackwardMap class
36.626 -
36.627 - /// This function just returns a \ref BackwardMap class.
36.628 + /// \brief Returns a \c BackwardMap class
36.629 +
36.630 + /// This function just returns a \c BackwardMap class.
36.631 /// \relates BackwardMap
36.632 template <typename Graph>
36.633 inline BackwardMap<Graph> backwardMap(const Graph& graph) {
37.1 --- a/lemon/path.h Thu Oct 09 16:47:01 2008 +0200
37.2 +++ b/lemon/path.h Thu Oct 09 16:20:37 2008 +0100
37.3 @@ -849,7 +849,7 @@
37.4 /// \brief Return true when the path is empty.
37.5 int empty() const { return len == 0; }
37.6
37.7 - /// \break Erase all arcs in the digraph.
37.8 + /// \brief Erase all arcs in the digraph.
37.9 void clear() {
37.10 len = 0;
37.11 if (arcs) delete[] arcs;
38.1 --- a/lemon/smart_graph.h Thu Oct 09 16:47:01 2008 +0200
38.2 +++ b/lemon/smart_graph.h Thu Oct 09 16:20:37 2008 +0100
38.3 @@ -365,7 +365,7 @@
38.4 ///Constructor that immediately makes a snapshot
38.5
38.6 ///This constructor immediately makes a snapshot of the digraph.
38.7 - ///\param _g The digraph we make a snapshot of.
38.8 + ///\param graph The digraph we make a snapshot of.
38.9 Snapshot(SmartDigraph &graph) : _graph(&graph) {
38.10 node_num=_graph->nodes.size();
38.11 arc_num=_graph->arcs.size();
38.12 @@ -377,7 +377,7 @@
38.13 ///
38.14 ///This function can be called more than once. In case of a repeated
38.15 ///call, the previous snapshot gets lost.
38.16 - ///\param _g The digraph we make the snapshot of.
38.17 + ///\param graph The digraph we make the snapshot of.
38.18 void save(SmartDigraph &graph)
38.19 {
38.20 _graph=&graph;
38.21 @@ -775,7 +775,7 @@
38.22 ///Constructor that immediately makes a snapshot
38.23
38.24 ///This constructor immediately makes a snapshot of the digraph.
38.25 - ///\param g The digraph we make a snapshot of.
38.26 + ///\param graph The digraph we make a snapshot of.
38.27 Snapshot(SmartGraph &graph) {
38.28 graph.saveSnapshot(*this);
38.29 }
38.30 @@ -786,7 +786,7 @@
38.31 ///
38.32 ///This function can be called more than once. In case of a repeated
38.33 ///call, the previous snapshot gets lost.
38.34 - ///\param g The digraph we make the snapshot of.
38.35 + ///\param graph The digraph we make the snapshot of.
38.36 void save(SmartGraph &graph)
38.37 {
38.38 graph.saveSnapshot(*this);
39.1 --- a/lemon/time_measure.h Thu Oct 09 16:47:01 2008 +0200
39.2 +++ b/lemon/time_measure.h Thu Oct 09 16:20:37 2008 +0100
39.3 @@ -311,12 +311,11 @@
39.4 ///\name Control the state of the timer
39.5 ///Basically a Timer can be either running or stopped,
39.6 ///but it provides a bit finer control on the execution.
39.7 - ///The \ref Timer also counts the number of \ref start()
39.8 - ///executions, and is stops only after the same amount (or more)
39.9 - ///\ref stop() "stop()"s. This can be useful e.g. to compute
39.10 - ///the running time
39.11 + ///The \ref lemon::Timer "Timer" also counts the number of
39.12 + ///\ref lemon::Timer::start() "start()" executions, and it stops
39.13 + ///only after the same amount (or more) \ref lemon::Timer::stop()
39.14 + ///"stop()"s. This can be useful e.g. to compute the running time
39.15 ///of recursive functions.
39.16 - ///
39.17
39.18 ///@{
39.19
39.20 @@ -472,7 +471,7 @@
39.21 ///@}
39.22 };
39.23
39.24 - ///Same as \ref Timer but prints a report on destruction.
39.25 + ///Same as Timer but prints a report on destruction.
39.26
39.27 ///Same as \ref Timer but prints a report on destruction.
39.28 ///This example shows its usage.
39.29 @@ -491,22 +490,22 @@
39.30 std::string _title;
39.31 std::ostream &_os;
39.32 public:
39.33 - ///\e
39.34 + ///Constructor
39.35
39.36 + ///Constructor.
39.37 ///\param title This text will be printed before the ellapsed time.
39.38 ///\param os The stream to print the report to.
39.39 ///\param run Sets whether the timer should start immediately.
39.40 -
39.41 TimeReport(std::string title,std::ostream &os=std::cerr,bool run=true)
39.42 : Timer(run), _title(title), _os(os){}
39.43 - ///\e Prints the ellapsed time on destruction.
39.44 + ///Destructor that prints the ellapsed time
39.45 ~TimeReport()
39.46 {
39.47 _os << _title << *this << std::endl;
39.48 }
39.49 };
39.50
39.51 - ///'Do nothing' version of \ref TimeReport
39.52 + ///'Do nothing' version of TimeReport
39.53
39.54 ///\sa TimeReport
39.55 ///
40.1 --- a/tools/Makefile.am Thu Oct 09 16:47:01 2008 +0200
40.2 +++ b/tools/Makefile.am Thu Oct 09 16:20:37 2008 +0100
40.3 @@ -1,5 +1,6 @@
40.4 if WANT_TOOLS
40.5
40.6 bin_PROGRAMS +=
40.7 +dist_bin_SCRIPTS += tools/lemon-0.x-to-1.x.sh
40.8
40.9 endif WANT_TOOLS
41.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
41.2 +++ b/tools/lemon-0.x-to-1.x.sh Thu Oct 09 16:20:37 2008 +0100
41.3 @@ -0,0 +1,127 @@
41.4 +#!/bin/bash
41.5 +
41.6 +set -e
41.7 +
41.8 +if [ $# -eq 0 -o x$1 = "x-h" -o x$1 = "x-help" -o x$1 = "x--help" ]; then
41.9 + echo "Usage:"
41.10 + echo " $0 source-file"
41.11 + exit
41.12 +fi
41.13 +
41.14 +TMP=`mktemp`
41.15 +
41.16 +sed -e "s/undirected graph/_gr_aph_label_/g"\
41.17 + -e "s/undirected edge/_ed_ge_label_/g"\
41.18 + -e "s/graph_/_gr_aph_label__/g"\
41.19 + -e "s/_graph/__gr_aph_label_/g"\
41.20 + -e "s/UGraph/_Gr_aph_label_/g"\
41.21 + -e "s/uGraph/_gr_aph_label_/g"\
41.22 + -e "s/ugraph/_gr_aph_label_/g"\
41.23 + -e "s/Graph/_Digr_aph_label_/g"\
41.24 + -e "s/graph/_digr_aph_label_/g"\
41.25 + -e "s/UEdge/_Ed_ge_label_/g"\
41.26 + -e "s/uEdge/_ed_ge_label_/g"\
41.27 + -e "s/uedge/_ed_ge_label_/g"\
41.28 + -e "s/IncEdgeIt/_In_cEd_geIt_label_/g"\
41.29 + -e "s/Edge/_Ar_c_label_/g"\
41.30 + -e "s/edge/_ar_c_label_/g"\
41.31 + -e "s/ANode/_Re_d_label_/g"\
41.32 + -e "s/BNode/_Blu_e_label_/g"\
41.33 + -e "s/A-Node/_Re_d_label_/g"\
41.34 + -e "s/B-Node/_Blu_e_label_/g"\
41.35 + -e "s/anode/_re_d_label_/g"\
41.36 + -e "s/bnode/_blu_e_label_/g"\
41.37 + -e "s/aNode/_re_d_label_/g"\
41.38 + -e "s/bNode/_blu_e_label_/g"\
41.39 + -e "s/_Digr_aph_label_/Digraph/g"\
41.40 + -e "s/_digr_aph_label_/digraph/g"\
41.41 + -e "s/_Gr_aph_label_/Graph/g"\
41.42 + -e "s/_gr_aph_label_/graph/g"\
41.43 + -e "s/_Ar_c_label_/Arc/g"\
41.44 + -e "s/_ar_c_label_/arc/g"\
41.45 + -e "s/_Ed_ge_label_/Edge/g"\
41.46 + -e "s/_ed_ge_label_/edge/g"\
41.47 + -e "s/_In_cEd_geIt_label_/IncEdgeIt/g"\
41.48 + -e "s/_Re_d_label_/Red/g"\
41.49 + -e "s/_Blu_e_label_/Blue/g"\
41.50 + -e "s/_re_d_label_/red/g"\
41.51 + -e "s/_blu_e_label_/blue/g"\
41.52 + -e "s/\(\W\)DefPredMap\(\W\)/\1SetPredMap\2/g"\
41.53 + -e "s/\(\W\)DefPredMap$/\1SetPredMap/g"\
41.54 + -e "s/^DefPredMap\(\W\)/SetPredMap\1/g"\
41.55 + -e "s/^DefPredMap$/SetPredMap/g"\
41.56 + -e "s/\(\W\)DefDistMap\(\W\)/\1SetDistMap\2/g"\
41.57 + -e "s/\(\W\)DefDistMap$/\1SetDistMap/g"\
41.58 + -e "s/^DefDistMap\(\W\)/SetDistMap\1/g"\
41.59 + -e "s/^DefDistMap$/SetDistMap/g"\
41.60 + -e "s/\(\W\)DefReachedMap\(\W\)/\1SetReachedMap\2/g"\
41.61 + -e "s/\(\W\)DefReachedMap$/\1SetReachedMap/g"\
41.62 + -e "s/^DefReachedMap\(\W\)/SetReachedMap\1/g"\
41.63 + -e "s/^DefReachedMap$/SetReachedMap/g"\
41.64 + -e "s/\(\W\)DefProcessedMap\(\W\)/\1SetProcessedMap\2/g"\
41.65 + -e "s/\(\W\)DefProcessedMap$/\1SetProcessedMap/g"\
41.66 + -e "s/^DefProcessedMap\(\W\)/SetProcessedMap\1/g"\
41.67 + -e "s/^DefProcessedMap$/SetProcessedMap/g"\
41.68 + -e "s/\(\W\)DefHeap\(\W\)/\1SetHeap\2/g"\
41.69 + -e "s/\(\W\)DefHeap$/\1SetHeap/g"\
41.70 + -e "s/^DefHeap\(\W\)/SetHeap\1/g"\
41.71 + -e "s/^DefHeap$/SetHeap/g"\
41.72 + -e "s/\(\W\)DefStandardHeap\(\W\)/\1SetStandradHeap\2/g"\
41.73 + -e "s/\(\W\)DefStandardHeap$/\1SetStandradHeap/g"\
41.74 + -e "s/^DefStandardHeap\(\W\)/SetStandradHeap\1/g"\
41.75 + -e "s/^DefStandardHeap$/SetStandradHeap/g"\
41.76 + -e "s/\(\W\)DefOperationTraits\(\W\)/\1SetOperationTraits\2/g"\
41.77 + -e "s/\(\W\)DefOperationTraits$/\1SetOperationTraits/g"\
41.78 + -e "s/^DefOperationTraits\(\W\)/SetOperationTraits\1/g"\
41.79 + -e "s/^DefOperationTraits$/SetOperationTraits/g"\
41.80 + -e "s/\(\W\)DefProcessedMapToBeDefaultMap\(\W\)/\1SetStandardProcessedMap\2/g"\
41.81 + -e "s/\(\W\)DefProcessedMapToBeDefaultMap$/\1SetStandardProcessedMap/g"\
41.82 + -e "s/^DefProcessedMapToBeDefaultMap\(\W\)/SetStandardProcessedMap\1/g"\
41.83 + -e "s/^DefProcessedMapToBeDefaultMap$/SetStandardProcessedMap/g"\
41.84 + -e "s/\(\W\)IntegerMap\(\W\)/\1RangeMap\2/g"\
41.85 + -e "s/\(\W\)IntegerMap$/\1RangeMap/g"\
41.86 + -e "s/^IntegerMap\(\W\)/RangeMap\1/g"\
41.87 + -e "s/^IntegerMap$/RangeMap/g"\
41.88 + -e "s/\(\W\)integerMap\(\W\)/\1rangeMap\2/g"\
41.89 + -e "s/\(\W\)integerMap$/\1rangeMap/g"\
41.90 + -e "s/^integerMap\(\W\)/rangeMap\1/g"\
41.91 + -e "s/^integerMap$/rangeMap/g"\
41.92 + -e "s/\(\W\)copyGraph\(\W\)/\1graphCopy\2/g"\
41.93 + -e "s/\(\W\)copyGraph$/\1graphCopy/g"\
41.94 + -e "s/^copyGraph\(\W\)/graphCopy\1/g"\
41.95 + -e "s/^copyGraph$/graphCopy/g"\
41.96 + -e "s/\(\W\)copyDigraph\(\W\)/\1digraphCopy\2/g"\
41.97 + -e "s/\(\W\)copyDigraph$/\1digraphCopy/g"\
41.98 + -e "s/^copyDigraph\(\W\)/digraphCopy\1/g"\
41.99 + -e "s/^copyDigraph$/digraphCopy/g"\
41.100 + -e "s/\(\W\)\([sS]\)tdMap\(\W\)/\1\2parseMap\3/g"\
41.101 + -e "s/\(\W\)\([sS]\)tdMap$/\1\2parseMap/g"\
41.102 + -e "s/^\([sS]\)tdMap\(\W\)/\1parseMap\2/g"\
41.103 + -e "s/^\([sS]\)tdMap$/\1parseMap/g"\
41.104 + -e "s/\(\W\)\([Ff]\)unctorMap\(\W\)/\1\2unctorToMap\3/g"\
41.105 + -e "s/\(\W\)\([Ff]\)unctorMap$/\1\2unctorToMap/g"\
41.106 + -e "s/^\([Ff]\)unctorMap\(\W\)/\1unctorToMap\2/g"\
41.107 + -e "s/^\([Ff]\)unctorMap$/\1unctorToMap/g"\
41.108 + -e "s/\(\W\)\([Mm]\)apFunctor\(\W\)/\1\2apToFunctor\3/g"\
41.109 + -e "s/\(\W\)\([Mm]\)apFunctor$/\1\2apToFunctor/g"\
41.110 + -e "s/^\([Mm]\)apFunctor\(\W\)/\1apToFunctor\2/g"\
41.111 + -e "s/^\([Mm]\)apFunctor$/\1apToFunctor/g"\
41.112 + -e "s/\(\W\)\([Ff]\)orkWriteMap\(\W\)/\1\2orkMap\3/g"\
41.113 + -e "s/\(\W\)\([Ff]\)orkWriteMap$/\1\2orkMap/g"\
41.114 + -e "s/^\([Ff]\)orkWriteMap\(\W\)/\1orkMap\2/g"\
41.115 + -e "s/^\([Ff]\)orkWriteMap$/\1orkMap/g"\
41.116 + -e "s/\(\W\)StoreBoolMap\(\W\)/\1LoggerBoolMap\2/g"\
41.117 + -e "s/\(\W\)StoreBoolMap$/\1LoggerBoolMap/g"\
41.118 + -e "s/^StoreBoolMap\(\W\)/LoggerBoolMap\1/g"\
41.119 + -e "s/^StoreBoolMap$/LoggerBoolMap/g"\
41.120 + -e "s/\(\W\)storeBoolMap\(\W\)/\1loggerBoolMap\2/g"\
41.121 + -e "s/\(\W\)storeBoolMap$/\1loggerBoolMap/g"\
41.122 + -e "s/^storeBoolMap\(\W\)/loggerBoolMap\1/g"\
41.123 + -e "s/^storeBoolMap$/loggerBoolMap/g"\
41.124 + -e "s/\(\W\)BoundingBox\(\W\)/\1Box\2/g"\
41.125 + -e "s/\(\W\)BoundingBox$/\1Box/g"\
41.126 + -e "s/^BoundingBox\(\W\)/Box\1/g"\
41.127 + -e "s/^BoundingBox$/Box/g"\
41.128 +<$1 > $TMP
41.129 +
41.130 +mv $TMP $1
41.131 \ No newline at end of file