1.1 --- a/doc/graph_io.dox Tue Aug 16 16:44:57 2005 +0000
1.2 +++ b/doc/graph_io.dox Tue Aug 16 19:06:59 2005 +0000
1.3 @@ -122,7 +122,8 @@
1.4
1.5 \subsection write Writing a graph
1.6
1.7 -The \c GraphWriter class provides the graph output. To write a graph
1.8 +The \ref lemon::GraphWriter "GraphWriter" template class
1.9 +provides the graph output. To write a graph
1.10 you should first give writing commands to the writer. You can declare
1.11 writing command as \c NodeMap or \c EdgeMap writing and labeled Node and
1.12 Edge writing.
1.13 @@ -131,8 +132,10 @@
1.14 GraphWriter<ListGraph> writer(std::cout, graph);
1.15 \endcode
1.16
1.17 -The \c writeNodeMap() function declares a \c NodeMap writing command in the
1.18 -\c GraphWriter. You should give a name to the map and the map
1.19 +The \ref lemon::GraphWriter::writeNodeMap() "writeNodeMap()"
1.20 +function declares a \c NodeMap writing command in the
1.21 +\ref lemon::GraphWriter "GraphWriter".
1.22 +You should give a name to the map and the map
1.23 object as parameters. The NodeMap writing command with name "id" should write a
1.24 unique map because it will be regarded as an ID map.
1.25
1.26 @@ -147,7 +150,8 @@
1.27 writer.writeNodeMap("color", colorMap);
1.28 \endcode
1.29
1.30 -With the \c writeEdgeMap() member function you can give an edge map
1.31 +With the \ref lemon::GraphWriter::writeEdgeMap() "writeEdgeMap()"
1.32 +member function you can give an edge map
1.33 writing command similar to the NodeMaps.
1.34
1.35 \see IdMap, DescriptorMap
1.36 @@ -160,7 +164,9 @@
1.37 writer.writeEdgeMap("label", labelMap);
1.38 \endcode
1.39
1.40 -With \c writeNode() and \c writeEdge() functions you can designate Nodes and
1.41 +With \ref lemon::GraphWriter::writeNode() "writeNode()"
1.42 +and \ref lemon::GraphWriter::writeEdge() "writeEdge()"
1.43 +functions you can designate Nodes and
1.44 Edges in the graph. For example, you can write out the source and target node
1.45 of a maximum flow instance.
1.46
1.47 @@ -171,14 +177,16 @@
1.48 writer.writeEdge("observed", edge);
1.49 \endcode
1.50
1.51 -With \c writeAttribute() function you can write an attribute to the file.
1.52 +With \ref lemon::GraphWriter::writeAttribute() "writeAttribute()"
1.53 +function you can write an attribute to the file.
1.54
1.55 \code
1.56 writer.writeAttribute("author", "Balazs DEZSO");
1.57 writer.writeAttribute("version", 12);
1.58 \endcode
1.59
1.60 -After you give all write commands you must call the \c run() member
1.61 +After you give all write commands you must call the
1.62 +\ref lemon::GraphWriter::run() "run()" member
1.63 function, which executes all the writing commands.
1.64
1.65 \code
1.66 @@ -189,8 +197,10 @@
1.67
1.68 The file to be read may contain several maps and labeled nodes or edges.
1.69 If you read a graph you need not read all the maps and items just those
1.70 -that you need. The interface of the \c GraphReader is very similar to
1.71 -the GraphWriter but the reading method does not depend on the order of the
1.72 +that you need. The interface of the \ref lemon::GraphReader "GraphReader"
1.73 +is very similar to
1.74 +the \ref lemon::GraphWriter "GraphWriter"
1.75 +but the reading method does not depend on the order of the
1.76 given commands.
1.77
1.78 The reader object assumes that each not readed value does not contain
1.79 @@ -201,10 +211,12 @@
1.80 GraphReader<ListGraph> reader(std::cin, graph);
1.81 \endcode
1.82
1.83 -The \c readNodeMap() function reads a map from the \c nodeset section.
1.84 +The \ref lemon::GraphReader::readNodeMap() "readNodeMap()"
1.85 +function reads a map from the \c nodeset section.
1.86 If there is a map that you do not want to read from the file and there are
1.87 whitespaces in the string represenation of the values then you should
1.88 -call the \c skipNodeMap() template member function with proper parameters.
1.89 +call the \ref lemon::GraphReader::skipNodeMap() "skipNodeMap()"
1.90 +template member function with proper parameters.
1.91
1.92 \see QuotedStringReader
1.93
1.94 @@ -218,7 +230,8 @@
1.95 reader.readNodeMap("color", colorMap);
1.96 \endcode
1.97
1.98 -With the \c readEdgeMap() member function you can give an edge map
1.99 +With the \ref lemon::GraphReader::readEdgeMap() "readEdgeMap()"
1.100 +member function you can give an edge map
1.101 reading command similar to the NodeMaps.
1.102
1.103 \code
1.104 @@ -226,7 +239,9 @@
1.105 reader.readEdgeMap("label", labelMap);
1.106 \endcode
1.107
1.108 -With \c readNode() and \c readEdge() functions you can read labeled Nodes and
1.109 +With \ref lemon::GraphReader::readNode() "readNode()"
1.110 +and \ref lemon::GraphReader::readEdge() "readEdge()"
1.111 +functions you can read labeled Nodes and
1.112 Edges.
1.113
1.114 \code
1.115 @@ -236,7 +251,8 @@
1.116 reader.readEdge("observed", edge);
1.117 \endcode
1.118
1.119 -With \c readAttribute() function you can read an attribute from the file.
1.120 +With \ref lemon::GraphReader::readAttribute() "readAttribute()"
1.121 +function you can read an attribute from the file.
1.122
1.123 \code
1.124 std::string author;
1.125 @@ -245,7 +261,8 @@
1.126 writer.writeAttribute("version", version);
1.127 \endcode
1.128
1.129 -After you give all read commands you must call the \c run() member
1.130 +After you give all read commands you must call the
1.131 +\ref lemon::GraphReader::run() "run()" member
1.132 function, which executes all the commands.
1.133
1.134 \code
1.135 @@ -257,7 +274,8 @@
1.136
1.137
1.138 To read a map (on the nodes or edges)
1.139 -the \c GraphReader should know how to read a Value from the given map.
1.140 +the \ref lemon::GraphReader "GraphReader"
1.141 +should know how to read a Value from the given map.
1.142 By the default implementation the input operator reads a value from
1.143 the stream and the type of the readed value is the value type of the given map.
1.144 When the reader should skip a value in the stream, because you do not
1.145 @@ -337,12 +355,16 @@
1.146 -back 5
1.147 \endcode
1.148
1.149 -There are similar classes to the \c GraphReader ans \c GraphWriter
1.150 -which handle the undirected graphs. These classes are the
1.151 -\c UndirGraphReader and \UndirGraphWriter.
1.152 +There are similar classes to the \ref lemon::GraphReader "GraphReader" and
1.153 +\ref lemon::GraphWriter "GraphWriter" which
1.154 +handle the undirected graphs. These classes are
1.155 +the \ref lemon::UndirGraphReader "UndirGraphReader"
1.156 +and \ref lemon::UndirGraphWriter "UndirGraphWriter".
1.157
1.158 -The \c readUndirMap() function reads an undirected map and the
1.159 -\c readUndirEdge() reads an undirected edge from the file,
1.160 +The \ref lemon::UndirGraphReader::readUndirMap() "readUndirMap()"
1.161 +function reads an undirected map and the
1.162 +\ref lemon::UndirGraphReader::readUndirEdge() "readUndirEdge()"
1.163 +reads an undirected edge from the file,
1.164
1.165 \code
1.166 reader.readUndirEdgeMap("capacity", capacityMap);
1.167 @@ -364,15 +386,20 @@
1.168 The content of the section this way cannot contain line with \c \@ first
1.169 character. The file may contains comment lines with \c # first character.
1.170
1.171 -The \c LemonReader and \c LemonWriter gives a framework to read and
1.172 +The \ref lemon::LemonReader "LemonReader"
1.173 +and \ref lemon::LemonWriter "LemonWriter"
1.174 +gives a framework to read and
1.175 write sections. There are various section reader and section writer
1.176 -classes which can be attached to a \c LemonReader or a \c LemonWriter.
1.177 +classes which can be attached to a \ref lemon::LemonReader "LemonReader"
1.178 +or a \ref lemon::LemonWriter "LemonWriter".
1.179
1.180 There are default section readers and writers for reading and writing
1.181 item sets, and labeled items in the graph. These read and write
1.182 the format described above. Other type of data can be handled with own
1.183 section reader and writer classes which are inherited from the
1.184 -\c LemonReader::SectionReader or the \c LemonWriter::SectionWriter classes.
1.185 +\c LemonReader::SectionReader or the
1.186 +\ref lemon::LemonWriter::SectionWriter "LemonWriter::SectionWriter"
1.187 +classes.
1.188
1.189 The next example defines a special section reader which reads the
1.190 \c \@description sections into a string:
1.191 @@ -414,8 +441,8 @@
1.192
1.193 In our example there is a network with symmetric links and there are assymetric
1.194 traffic request on the network. This construction can be stored in an
1.195 -undirected graph and in a directed NewEdgeSetAdaptor class. The example
1.196 -shows the input with the LemonReader class:
1.197 +undirected graph and in a directed \c NewEdgeSetAdaptor class. The example
1.198 +shows the input with the \ref lemon::LemonReader "LemonReader" class:
1.199
1.200 \code
1.201 UndirListGraph network;
1.202 @@ -433,9 +460,12 @@
1.203 reader.run();
1.204 \endcode
1.205
1.206 -Because the GraphReader and the UndirGraphReader can be converted
1.207 -to LemonReader and it can resolve the ID's of the items, the previous
1.208 -result can be achived with the UndirGraphReader class, too.
1.209 +Because both the \ref lemon::GraphReader "GraphReader"
1.210 +and the \ref lemon::UndirGraphReader "UndirGraphReader" can be converted
1.211 +to \ref lemon::LemonReader "LemonReader"
1.212 +and it can resolve the ID's of the items, the previous
1.213 +result can be achived with the \ref lemon::UndirGraphReader "UndirGraphReader"
1.214 +class, too.
1.215
1.216
1.217 \code
1.218 @@ -454,4 +484,4 @@
1.219
1.220 \author Balazs Dezso
1.221 */
1.222 -}
1.223 +}
1.224 \ No newline at end of file
2.1 --- a/doc/graphs.dox Tue Aug 16 16:44:57 2005 +0000
2.2 +++ b/doc/graphs.dox Tue Aug 16 19:06:59 2005 +0000
2.3 @@ -34,15 +34,6 @@
2.4 price of this is that it only meets the
2.5 \ref lemon::concept::ExtendableGraph "ExtendableGraph" concept,
2.6 so you cannot delete individual edges or nodes.
2.7 -\li \ref lemon::SymListGraph "SymListGraph" and
2.8 -\ref lemon::SymSmartGraph "SymSmartGraph" classes are very similar to
2.9 -\ref lemon::ListGraph "ListGraph" and \ref lemon::SmartGraph "SmartGraph".
2.10 -The difference is that whenever you add a
2.11 -new edge to the graph, it actually adds a pair of oppositely directed edges.
2.12 -They are linked together so it is possible to access the counterpart of an
2.13 -edge. An even more important feature is that using these classes you can also
2.14 -attach data to the edges in such a way that the stored data
2.15 -are shared by the edge pairs.
2.16 \li \ref lemon::FullGraph "FullGraph"
2.17 implements a complete graph. It is a
2.18 \ref lemon::concept::StaticGraph "StaticGraph", so you cannot
3.1 --- a/doc/license.dox Tue Aug 16 16:44:57 2005 +0000
3.2 +++ b/doc/license.dox Tue Aug 16 19:06:59 2005 +0000
3.3 @@ -2,6 +2,6 @@
3.4
3.5 \page license License Terms
3.6
3.7 -\verbinclude ../LICENSE
3.8 +\verbinclude LICENSE
3.9
3.10 */
3.11 \ No newline at end of file
4.1 --- a/lemon/bfs.h Tue Aug 16 16:44:57 2005 +0000
4.2 +++ b/lemon/bfs.h Tue Aug 16 19:06:59 2005 +0000
4.3 @@ -698,7 +698,7 @@
4.4 ///v. It is \ref INVALID
4.5 ///if \c v is unreachable from the root(s) or \c v is a root. The
4.6 ///shortest path tree used here is equal to the shortest path tree used in
4.7 - ///\ref predNode(Node v).
4.8 + ///\ref predNode().
4.9 ///\pre Either \ref run() or \ref start() must be called before using
4.10 ///this function.
4.11 ///\todo predEdge could be a better name.
4.12 @@ -713,7 +713,7 @@
4.13 ///It is INVALID if \c v is unreachable from the root(s) or
4.14 ///if \c v itself a root.
4.15 ///The shortest path tree used here is equal to the shortest path
4.16 - ///tree used in \ref pred(Node v).
4.17 + ///tree used in \ref pred().
4.18 ///\pre Either \ref run() or \ref start() must be called before
4.19 ///using this function.
4.20 Node predNode(Node v) const { return (*_pred)[v]==INVALID ? INVALID:
5.1 --- a/lemon/concept/graph.h Tue Aug 16 16:44:57 2005 +0000
5.2 +++ b/lemon/concept/graph.h Tue Aug 16 19:06:59 2005 +0000
5.3 @@ -404,7 +404,7 @@
5.4
5.5 /// This constructor sets the iterator to the first edge of \c g.
5.6 ///@param g the graph
5.7 - EdgeIt(const StaticGraph&) { }
5.8 + EdgeIt(const StaticGraph& g) { }
5.9 /// Edge -> EdgeIt conversion
5.10
5.11 /// Sets the iterator to the value of the trivial iterator \c e.
6.1 --- a/lemon/concept/graph_component.h Tue Aug 16 16:44:57 2005 +0000
6.2 +++ b/lemon/concept/graph_component.h Tue Aug 16 19:06:59 2005 +0000
6.3 @@ -763,7 +763,7 @@
6.4 /// Class describing the concept of graph maps
6.5
6.6 /// This class describes the common interface of the graph maps
6.7 - /// (NodeMap, EdgeMap), that is \ref maps-pages "maps" which can be used to
6.8 + /// (NodeMap, EdgeMap), that is \ref maps-page "maps" which can be used to
6.9 /// associate data to graph descriptors (nodes or edges).
6.10 template <typename Graph, typename Item, typename _Value>
6.11 class GraphMap : public ReadWriteMap<Item, _Value> {
7.1 --- a/lemon/concept/undir_graph.h Tue Aug 16 16:44:57 2005 +0000
7.2 +++ b/lemon/concept/undir_graph.h Tue Aug 16 19:06:59 2005 +0000
7.3 @@ -232,7 +232,7 @@
7.4 /// run properly, of couse.
7.5 ///
7.6 /// In LEMON undirected graphs also fulfill the concept of directed
7.7 - /// graphs (\ref lemon::concept::Graph "Graph Concept"). For
7.8 + /// graphs (\ref lemon::concept::StaticGraph "Graph Concept"). For
7.9 /// explanation of this and more see also the page \ref undir_graphs,
7.10 /// a tutorial about undirected graphs.
7.11 ///
7.12 @@ -557,7 +557,7 @@
7.13
7.14 /// This constructor sets the iterator to the first edge of \c g.
7.15 ///@param g the graph
7.16 - EdgeIt(const UndirGraph&) { }
7.17 + EdgeIt(const UndirGraph &g) { }
7.18 /// Edge -> EdgeIt conversion
7.19
7.20 /// Sets the iterator to the value of the trivial iterator \c e.
7.21 @@ -605,7 +605,7 @@
7.22 /// the node.
7.23 ///@param n the node
7.24 ///@param g the graph
7.25 - OutEdgeIt(const UndirGraph&, const Node&) { }
7.26 + OutEdgeIt(const UndirGraph& n, const Node& g) { }
7.27 /// Edge -> OutEdgeIt conversion
7.28
7.29 /// Sets the iterator to the value of the trivial iterator.
7.30 @@ -654,7 +654,7 @@
7.31 /// the node.
7.32 ///@param n the node
7.33 ///@param g the graph
7.34 - InEdgeIt(const UndirGraph&, const Node&) { }
7.35 + InEdgeIt(const UndirGraph& g, const Node& n) { }
7.36 /// Edge -> InEdgeIt conversion
7.37
7.38 /// Sets the iterator to the value of the trivial iterator \c e.
8.1 --- a/lemon/dfs.h Tue Aug 16 16:44:57 2005 +0000
8.2 +++ b/lemon/dfs.h Tue Aug 16 19:06:59 2005 +0000
8.3 @@ -708,7 +708,7 @@
8.4 ///v. It is \ref INVALID
8.5 ///if \c v is unreachable from the root(s) or \c v is a root. The
8.6 ///%DFS tree used here is equal to the %DFS tree used in
8.7 - ///\ref predNode(Node v).
8.8 + ///\ref predNode().
8.9 ///\pre Either \ref run() or \ref start() must be called before using
8.10 ///this function.
8.11 ///\todo predEdge could be a better name.
8.12 @@ -723,7 +723,7 @@
8.13 ///It is INVALID if \c v is unreachable from the root(s) or
8.14 ///if \c v itself a root.
8.15 ///The %DFS tree used here is equal to the %DFS
8.16 - ///tree used in \ref pred(Node v).
8.17 + ///tree used in \ref pred().
8.18 ///\pre Either \ref run() or \ref start() must be called before
8.19 ///using this function.
8.20 Node predNode(Node v) const { return (*_pred)[v]==INVALID ? INVALID:
9.1 --- a/lemon/dijkstra.h Tue Aug 16 16:44:57 2005 +0000
9.2 +++ b/lemon/dijkstra.h Tue Aug 16 19:06:59 2005 +0000
9.3 @@ -702,7 +702,7 @@
9.4 ///v. It is \ref INVALID
9.5 ///if \c v is unreachable from the root or if \c v=s. The
9.6 ///shortest path tree used here is equal to the shortest path tree used in
9.7 - ///\ref predNode(Node v). \pre \ref run() must be called before using
9.8 + ///\ref predNode(). \pre \ref run() must be called before using
9.9 ///this function.
9.10 ///\todo predEdge could be a better name.
9.11 Edge pred(Node v) const { return (*_pred)[v]; }
9.12 @@ -713,7 +713,7 @@
9.13 ///i.e. it returns the last but one node from a shortest path from the
9.14 ///root to \c /v. It is INVALID if \c v is unreachable from the root or if
9.15 ///\c v=s. The shortest path tree used here is equal to the shortest path
9.16 - ///tree used in \ref pred(Node v). \pre \ref run() must be called before
9.17 + ///tree used in \ref pred(). \pre \ref run() must be called before
9.18 ///using this function.
9.19 Node predNode(Node v) const { return (*_pred)[v]==INVALID ? INVALID:
9.20 G->source((*_pred)[v]); }
10.1 --- a/lemon/graph_adaptor.h Tue Aug 16 16:44:57 2005 +0000
10.2 +++ b/lemon/graph_adaptor.h Tue Aug 16 19:06:59 2005 +0000
10.3 @@ -1420,11 +1420,11 @@
10.4 /// original graph.
10.5 ///
10.6 /// \param _Graph The type of the graph which shares its node set with
10.7 - /// this class. Its interface must conform to the \ref skeleton::StaticGraph
10.8 + /// this class. Its interface must conform to the \ref concept::StaticGraph
10.9 /// "StaticGraph" concept.
10.10 ///
10.11 /// In the edge extension and removing it conforms to the
10.12 - /// \ref skeleton::ExtendableGraph "ExtendableGraph" concept.
10.13 + /// \ref concept::ExtendableGraph "ExtendableGraph" concept.
10.14 template <typename _Graph>
10.15 class NewEdgeSetAdaptor :
10.16 public ErasableGraphExtender<
10.17 @@ -1512,11 +1512,11 @@
10.18 /// nodes of the original graph.
10.19 ///
10.20 /// \param _Graph The type of the graph which shares its node set with
10.21 - /// this class. Its interface must conform to the \ref skeleton::StaticGraph
10.22 + /// this class. Its interface must conform to the \ref concept::StaticGraph
10.23 /// "StaticGraph" concept.
10.24 ///
10.25 /// In the edge extension and removing it conforms to the
10.26 - /// \ref skeleton::ExtendableGraph "ExtendableGraph" concept.
10.27 + /// \ref concept::ExtendableGraph "ExtendableGraph" concept.
10.28 template <typename _Graph>
10.29 class NewUndirEdgeSetAdaptor :
10.30 public ErasableUndirGraphExtender<
11.1 --- a/lemon/kruskal.h Tue Aug 16 16:44:57 2005 +0000
11.2 +++ b/lemon/kruskal.h Tue Aug 16 19:06:59 2005 +0000
11.3 @@ -51,7 +51,7 @@
11.4 ///
11.5 /// \param g The graph the algorithm runs on.
11.6 /// It can be either \ref concept::StaticGraph "directed" or
11.7 - /// \ref concept::UndirStaticGraph "undirected".
11.8 + /// \ref concept::UndirGraph "undirected".
11.9 /// If the graph is directed, the algorithm consider it to be
11.10 /// undirected by disregarding the direction of the edges.
11.11 ///
11.12 @@ -88,7 +88,8 @@
11.13 ///
11.14 /// \return The cost of the found tree.
11.15 ///
11.16 - /// \warning If kruskal is run on an \ref undirected graph, be sure that the
11.17 + /// \warning If kruskal is run on an
11.18 + /// \ref lemon::concept::UndirGraph "undirected graph", be sure that the
11.19 /// map storing the tree is also undirected
11.20 /// (e.g. UndirListGraph::UndirEdgeMap<bool>, otherwise the values of the
11.21 /// half of the edges will not be set.
12.1 --- a/lemon/preflow.h Tue Aug 16 16:44:57 2005 +0000
12.2 +++ b/lemon/preflow.h Tue Aug 16 19:06:59 2005 +0000
12.3 @@ -283,8 +283,9 @@
12.4 ///Runs the second phase of the preflow algorithm.
12.5
12.6 ///The preflow algorithm consists of two phases, this method runs
12.7 - ///the second phase. After calling \ref phase1 and then \ref
12.8 - ///phase2, \ref flow contains a maximum flow, \ref flowValue
12.9 + ///the second phase. After calling \ref phase1() and then
12.10 + ///\ref phase2(),
12.11 + /// \ref flowMap() return a maximum flow, \ref flowValue
12.12 ///returns the value of a maximum flow, \ref minCut returns a
12.13 ///minimum cut, while the methods \ref minMinCut and \ref
12.14 ///maxMinCut return the inclusionwise minimum and maximum cuts of
13.1 --- a/lemon/smart_graph.h Tue Aug 16 16:44:57 2005 +0000
13.2 +++ b/lemon/smart_graph.h Tue Aug 16 19:06:59 2005 +0000
13.3 @@ -89,12 +89,12 @@
13.4
13.5 /// Maximum node ID.
13.6 ///\sa id(Node)
13.7 - int maxId(Node = INVALID) const { return nodes.size()-1; }
13.8 + int maxId(Node) const { return nodes.size()-1; }
13.9 /// Maximum edge ID.
13.10
13.11 /// Maximum edge ID.
13.12 ///\sa id(Edge)
13.13 - int maxId(Edge = INVALID) const { return edges.size()-1; }
13.14 + int maxId(Edge) const { return edges.size()-1; }
13.15
13.16 Node source(Edge e) const { return edges[e.n].source; }
13.17 Node target(Edge e) const { return edges[e.n].target; }
13.18 @@ -102,8 +102,8 @@
13.19 /// Node ID.
13.20
13.21 /// The ID of a valid Node is a nonnegative integer not greater than
13.22 - /// \ref maxNodeId(). The range of the ID's is not surely continuous
13.23 - /// and the greatest node ID can be actually less then \ref maxNodeId().
13.24 + /// \ref maxId(Node). The range of the ID's is not surely continuous
13.25 + /// and the greatest node ID can be actually less then \ref maxId(Node).
13.26 ///
13.27 /// The ID of the \ref INVALID node is -1.
13.28 ///\return The ID of the node \c v.
13.29 @@ -111,8 +111,8 @@
13.30 /// Edge ID.
13.31
13.32 /// The ID of a valid Edge is a nonnegative integer not greater than
13.33 - /// \ref maxEdgeId(). The range of the ID's is not surely continuous
13.34 - /// and the greatest edge ID can be actually less then \ref maxEdgeId().
13.35 + /// \ref maxId(Edge). The range of the ID's is not surely continuous
13.36 + /// and the greatest edge ID can be actually less then \ref maxId(Edge).
13.37 ///
13.38 /// The ID of the \ref INVALID edge is -1.
13.39 ///\return The ID of the edge \c e.