Bug fixes in the documentation (mainly bad references).
authorkpeter
Thu, 27 Sep 2007 13:04:06 +0000
changeset 2476059dcdda37c5
parent 2475 1e9cc7b2eabc
child 2477 b5e1f017ff41
Bug fixes in the documentation (mainly bad references).
demo/eps_demo.cc
doc/algorithms.dox
doc/basic_concepts.dox
doc/graphs.dox
doc/maps1.dox
lemon/bellman_ford.h
lemon/bfs.h
lemon/dfs.h
lemon/dijkstra.h
lemon/error.h
lemon/graph_utils.h
lemon/lemon_reader.h
     1.1 --- a/demo/eps_demo.cc	Wed Sep 26 14:37:48 2007 +0000
     1.2 +++ b/demo/eps_demo.cc	Thu Sep 27 13:04:06 2007 +0000
     1.3 @@ -18,12 +18,12 @@
     1.4  
     1.5  /// \ingroup demos
     1.6  /// \file
     1.7 -/// \brief Demo of the EPS grawing class \ref EpsDrawer()
     1.8 +/// \brief Demo of the EPS grawing class \ref lemon::EpsDrawer "EpsDrawer".
     1.9  ///
    1.10  /// This demo program shows examples how to use the class \ref
    1.11 -/// EpsDrawer(). It takes no input but simply creates a file
    1.12 -/// <tt>eps_demo.eps</tt> demonstrating the capability of \ref
    1.13 -/// EpsDrawer().
    1.14 +/// lemon::EpsDrawer "EpsDrawer". It takes no input but simply creates
    1.15 +/// a file <tt>eps_demo.eps</tt> demonstrating the capability of \ref
    1.16 +/// lemon::EpsDrawer "EpsDrawer".
    1.17  ///
    1.18  /// \include eps_demo.cc
    1.19  
     2.1 --- a/doc/algorithms.dox	Wed Sep 26 14:37:48 2007 +0000
     2.2 +++ b/doc/algorithms.dox	Thu Sep 27 13:04:06 2007 +0000
     2.3 @@ -114,7 +114,7 @@
     2.4  will be done through it.
     2.5  \skip MyOrdererMap
     2.6  \until };
     2.7 -The class meets the \ref lemon::WriteMap "WriteMap" concept. In it's \c set() method the only thing
     2.8 +The class meets the \ref concepts::WriteMap "WriteMap" concept. In it's \c set() method the only thing
     2.9  we need to do is insert the key - that is the node whose processing just finished - into the beginning
    2.10  of the list.<br>
    2.11  Although we implemented this needed helper class ourselves it was not necessary.
     3.1 --- a/doc/basic_concepts.dox	Wed Sep 26 14:37:48 2007 +0000
     3.2 +++ b/doc/basic_concepts.dox	Thu Sep 27 13:04:06 2007 +0000
     3.3 @@ -29,7 +29,7 @@
     3.4  different classes for different purposes. They can differ in many ways, but all
     3.5  have to satisfy one or more \ref concept "graph concepts" which are standardized
     3.6  interfaces to work with the rest of the library. The most basic concept is the
     3.7 -\ref Graph.<br>
     3.8 +\ref concepts::Graph "Graph".<br>
     3.9  A good example is the \ref ListGraph which we already know from Hello World and
    3.10  will be used in our examples as well.
    3.11  
    3.12 @@ -47,7 +47,7 @@
    3.13  If the graph fits the ExtendableGraphComponent concept, then you can add new nodes
    3.14  to the graph with the addNode() member function. It returns the newly added node
    3.15  (as value). So if you need the new node to do something useful with, for example
    3.16 -create an edge, assign a value to it through \ref map1 maps.
    3.17 +create an edge, assign a value to it through \ref maps1 maps.
    3.18  \code lemon::ListGraph::Node  new_node = graph.addNode(); \endcode
    3.19  
    3.20  If the graph fits into the ErasableGraphComponent concept you can also remove nodes
    3.21 @@ -114,8 +114,10 @@
    3.22  graph class described above. (There is a powerful technique using maps right in
    3.23  the next page.)
    3.24  
    3.25 -The \ref EdgeIt works exactly the same - nothing more to say. But there are \ref InEdgeIt
    3.26 -and \ref OutEdgeIt by directed graphs and \ref IncEdgeIt by undirected graphs.
    3.27 +The \ref concepts::Graph::EdgeIt "EdgeIt" works exactly the same - nothing more to say.
    3.28 +But there are \ref concepts::Graph::InEdgeIt "InEdgeIt" and
    3.29 +\ref concepts::Graph::OutEdgeIt "OutEdgeIt" by directed graphs and
    3.30 +\ref concepts::UGraph::IncEdgeIt "IncEdgeIt" by undirected graphs.
    3.31  They take two arguments. The first is a graph, the second is certain node of the
    3.32  graph. InEdgeIt iterates on the incoming edges of that node and OutEdgeIt does it
    3.33  on the outgoing edges. The IncEdgeIt of course iterates every edge connecting to
     4.1 --- a/doc/graphs.dox	Wed Sep 26 14:37:48 2007 +0000
     4.2 +++ b/doc/graphs.dox	Thu Sep 27 13:04:06 2007 +0000
     4.3 @@ -16,8 +16,9 @@
     4.4   *
     4.5   */
     4.6  
     4.7 +namespace lemon {
     4.8 +
     4.9  /*!
    4.10 -
    4.11  \page graphs Graphs
    4.12  
    4.13  \todo Write a new Graphs page. I think it should be contain the Graph,
    4.14 @@ -29,39 +30,37 @@
    4.15  functionalities to list the nodes and the edges of the graph as well
    4.16  as  incoming and outgoing edges of a given node. 
    4.17  
    4.18 -Each graph should meet the \ref lemon::concepts::Graph "Graph" concept.
    4.19 +Each graph should meet the \ref concepts::Graph "Graph" concept.
    4.20  This concept does not make it possible to change the graph (i.e. it is
    4.21  not possible to add or delete edges or nodes). Most of the graph
    4.22  algorithms will run on these graphs.
    4.23  
    4.24  
    4.25  In case of graphs meeting the full feature
    4.26 -\ref lemon::concepts::ErasableGraph "ErasableGraph"
    4.27 -concept
    4.28 +\ref concepts::ErasableGraph "ErasableGraph" concept
    4.29  you can also erase individual edges and nodes in arbitrary order.
    4.30  
    4.31  The implemented graph structures are the following.
    4.32 -\li \ref lemon::ListGraph "ListGraph" is the most versatile graph class. It meets
    4.33 -the \ref lemon::concepts::ErasableGraph "ErasableGraph" concept
    4.34 +\li \ref ListGraph is the most versatile graph class. It meets
    4.35 +the \ref concepts::ErasableGraph "ErasableGraph" concept
    4.36  and it also has some convenient extra features.
    4.37 -\li \ref lemon::SmartGraph "SmartGraph" is a more memory
    4.38 -efficient version of \ref lemon::ListGraph "ListGraph". The
    4.39 -price of this is that it only meets the
    4.40 -\ref lemon::concepts::ExtendableGraph "ExtendableGraph" concept,
    4.41 +\li \ref SmartGraph is a more memory efficient version of \ref ListGraph.
    4.42 +The price of this is that it only meets the
    4.43 +\ref concepts::ExtendableGraph "ExtendableGraph" concept,
    4.44  so you cannot delete individual edges or nodes.
    4.45 -\li \ref lemon::FullGraph "FullGraph"
    4.46 +\li \ref FullGraph "FullGraph"
    4.47  implements a complete graph. It is a
    4.48 -\ref lemon::concepts::Graph "Graph", so you cannot
    4.49 +\ref concepts::Graph "Graph", so you cannot
    4.50  change the number of nodes once it is constructed. It is extremely memory
    4.51  efficient: it uses constant amount of memory independently from the number of
    4.52  the nodes of the graph. Of course, the size of the \ref maps-page "NodeMap"'s and
    4.53  \ref maps-page "EdgeMap"'s will depend on the number of nodes.
    4.54  
    4.55 -\li \ref lemon::NodeSet "NodeSet" implements a graph with no edges. This class
    4.56 +\li \ref NodeSet "NodeSet" implements a graph with no edges. This class
    4.57  can be used as a base class of \ref lemon::EdgeSet "EdgeSet".
    4.58 -\li \ref lemon::EdgeSet "EdgeSet" can be used to create a new graph on
    4.59 +\li \ref EdgeSet "EdgeSet" can be used to create a new graph on
    4.60  the node set of another graph. The base graph can be an arbitrary graph and it
    4.61 -is possible to attach several \ref lemon::EdgeSet "EdgeSet"'s to a base graph.
    4.62 +is possible to attach several \ref EdgeSet "EdgeSet"'s to a base graph.
    4.63  
    4.64  \todo Don't we need SmartNodeSet and SmartEdgeSet?
    4.65  \todo Some cross-refs are wrong.
    4.66 @@ -120,7 +119,7 @@
    4.67  node iterator to initialize it to the first node. The operator++ is used to
    4.68  step to the next node. Using operator++ on the iterator pointing to the last
    4.69  node invalidates the iterator i.e. sets its value to
    4.70 -\ref lemon::INVALID "INVALID". This is what we exploit in the stop condition.
    4.71 +\ref INVALID. This is what we exploit in the stop condition.
    4.72  
    4.73  The previous code fragment prints out the following:
    4.74  
    4.75 @@ -200,3 +199,6 @@
    4.76  your own maps. You can read more about using maps \ref maps-page "here".
    4.77  
    4.78  */
    4.79 +
    4.80 +}
    4.81 +
     5.1 --- a/doc/maps1.dox	Wed Sep 26 14:37:48 2007 +0000
     5.2 +++ b/doc/maps1.dox	Thu Sep 27 13:04:06 2007 +0000
     5.3 @@ -16,6 +16,8 @@
     5.4   *
     5.5   */
     5.6  
     5.7 +namespace lemon {
     5.8 +
     5.9  /**
    5.10  \page maps1 Maps I.
    5.11  
    5.12 @@ -34,22 +36,24 @@
    5.13  
    5.14  To make easy to use them - especially as template parameters - there are <i>map concepts</i> like by graph classes.
    5.15  <ul>
    5.16 -<li>\ref ReadMap - values can be read out with the \c operator[].
    5.17 +<li>\ref concepts::ReadMap "ReadMap" - values can be read out with the \c operator[].
    5.18  \code value_typed_variable = map_instance[key_value]; \endcode
    5.19  </li>
    5.20 -<li>\ref WriteMap - values can be set with the \c set() member function.
    5.21 +<li>\ref concepts::WriteMap "WriteMap" - values can be set with the \c set() member function.
    5.22  \code map_instance.set(key_value, value_typed_expression); \endcode
    5.23  </li>
    5.24 -<li>\ref ReadWriteMap - it's just a shortcut to indicate that the map is both
    5.25 +<li>\ref concepts::ReadWriteMap "ReadWriteMap" - it's just a shortcut to indicate that the map is both
    5.26  readable and writable. It is delivered from them.
    5.27  </li>
    5.28 -<li>\ref ReferenceMap - a subclass of ReadWriteMap. It has two additional typedefs
    5.29 +<li>\ref concepts::ReferenceMap "ReferenceMap" - a subclass of ReadWriteMap. It has two additional typedefs
    5.30  <i>Reference</i> and <i>ConstReference</i> and two overloads of \c operator[] to
    5.31  providing you constant or non-constant reference to the value belonging to a key,
    5.32  so you have a direct access to the memory address where it is stored.
    5.33  </li>
    5.34  <li>And there are the Matrix version of these maps, where the values are assigned to a pair of keys.
    5.35 -The keys can be different types. (\ref ReadMatrixMap, \ref WriteMatrixMap, \ref ReadWriteMatrixMap, \ref ReferenceMatrixMap)
    5.36 +The keys can be different types. (\ref concepts::ReadMatrixMap "ReadMatrixMap", 
    5.37 +\ref concepts::WriteMatrixMap "WriteMatrixMap", \ref concepts::ReadWriteMatrixMap "ReadWriteMatrixMap",
    5.38 +\ref concepts::ReferenceMatrixMap "ReferenceMatrixMap")
    5.39  </li>
    5.40  </ul>
    5.41  
    5.42 @@ -88,3 +92,5 @@
    5.43  (coming soon) and will use maps hardly.
    5.44  Or if you want to know more about maps read these \ref maps2 "advanced map techniques".
    5.45  */
    5.46 +
    5.47 +}
     6.1 --- a/lemon/bellman_ford.h	Wed Sep 26 14:37:48 2007 +0000
     6.2 +++ b/lemon/bellman_ford.h	Thu Sep 27 13:04:06 2007 +0000
     6.3 @@ -432,7 +432,7 @@
     6.4      /// \warning The paths with limited edge number cannot be retrieved
     6.5      /// easily with \ref path() or \ref predEdge() functions. If you
     6.6      /// need the shortest path and not just the distance you should store
     6.7 -    /// after each iteration the \ref predEdgeMap() map and manually build
     6.8 +    /// after each iteration the \ref predMap() map and manually build
     6.9      /// the path.
    6.10      ///
    6.11      /// \return %True when the algorithm have not found more shorter
    6.12 @@ -545,7 +545,7 @@
    6.13      /// \warning The paths with limited edge number cannot be retrieved
    6.14      /// easily with \ref path() or \ref predEdge() functions. If you
    6.15      /// need the shortest path and not just the distance you should store
    6.16 -    /// after each iteration the \ref predEdgeMap() map and manually build
    6.17 +    /// after each iteration the \ref predMap() map and manually build
    6.18      /// the path.
    6.19      ///
    6.20      /// The algorithm computes
    6.21 @@ -951,7 +951,7 @@
    6.22      /// \brief Runs BellmanFord algorithm from the given node.
    6.23      ///
    6.24      /// Runs BellmanFord algorithm from the given node.
    6.25 -    /// \param source is the given source.
    6.26 +    /// \param src is the given source.
    6.27      void run(Node src) {
    6.28        Base::_source = src;
    6.29        run();
    6.30 @@ -1016,7 +1016,7 @@
    6.31      /// \brief Sets the source node, from which the BellmanFord algorithm runs.
    6.32      ///
    6.33      /// Sets the source node, from which the BellmanFord algorithm runs.
    6.34 -    /// \param source is the source node.
    6.35 +    /// \param src is the source node.
    6.36      BellmanFordWizard<_Traits>& source(Node src) {
    6.37        Base::_source = src;
    6.38        return *this;
     7.1 --- a/lemon/bfs.h	Wed Sep 26 14:37:48 2007 +0000
     7.2 +++ b/lemon/bfs.h	Thu Sep 27 13:04:06 2007 +0000
     7.3 @@ -593,9 +593,8 @@
     7.4      ///with addSource() before using this function.
     7.5      ///
     7.6      ///This method runs the %BFS algorithm from the root node(s)
     7.7 -    ///in order to
     7.8 -    ///compute the
     7.9 -    ///shortest path to \c dest. The algorithm computes
    7.10 +    ///in order to compute the shortest path to \c dest.
    7.11 +    ///The algorithm computes
    7.12      ///- The shortest path to \c  dest.
    7.13      ///- The distance of \c dest from the root(s).
    7.14      void start(Node dest)
    7.15 @@ -615,7 +614,7 @@
    7.16      ///algorithm will stop when it reaches a node \c v with
    7.17      /// <tt>nm[v]</tt> true.
    7.18      ///
    7.19 -    ///\return The reached node \c v with <tt>nm[v]<\tt> true or
    7.20 +    ///\return The reached node \c v with <tt>nm[v]</tt> true or
    7.21      ///\c INVALID if no such node was found.
    7.22      template<class NM>
    7.23      Node start(const NM &nm)
    7.24 @@ -1517,7 +1516,7 @@
    7.25      ///algorithm will stop when it reaches a node \c v with
    7.26      /// <tt>nm[v]</tt> true.
    7.27      ///
    7.28 -    ///\return The reached node \c v with <tt>nm[v]<\tt> true or
    7.29 +    ///\return The reached node \c v with <tt>nm[v]</tt> true or
    7.30      ///\c INVALID if no such node was found.
    7.31      template <typename NM>
    7.32      Node start(const NM &nm) {
     8.1 --- a/lemon/dfs.h	Wed Sep 26 14:37:48 2007 +0000
     8.2 +++ b/lemon/dfs.h	Thu Sep 27 13:04:06 2007 +0000
     8.3 @@ -564,9 +564,9 @@
     8.4      ///with addSource() before using this function.
     8.5      ///
     8.6      ///\param em must be a bool (or convertible) edge map. The algorithm
     8.7 -    ///will stop when it reaches an edge \c e with <tt>em[e]<\tt> true.
     8.8 +    ///will stop when it reaches an edge \c e with <tt>em[e]</tt> true.
     8.9      ///
    8.10 -    ///\return The reached edge \c e with <tt>em[e]<\tt> true or
    8.11 +    ///\return The reached edge \c e with <tt>em[e]</tt> true or
    8.12      ///\c INVALID if no such edge was found.
    8.13      ///
    8.14      ///\warning Contrary to \ref Bfs and \ref Dijkstra, \c em is an edge map,
    8.15 @@ -1458,9 +1458,9 @@
    8.16      /// with addSource() before using this function.
    8.17      ///
    8.18      /// \param em must be a bool (or convertible) edge map. The algorithm
    8.19 -    /// will stop when it reaches an edge \c e with <tt>em[e]<\tt> true.
    8.20 +    /// will stop when it reaches an edge \c e with <tt>em[e]</tt> true.
    8.21      ///
    8.22 -    ///\return The reached edge \c e with <tt>em[e]<\tt> true or
    8.23 +    ///\return The reached edge \c e with <tt>em[e]</tt> true or
    8.24      ///\c INVALID if no such edge was found.
    8.25      ///
    8.26      /// \warning Contrary to \ref Bfs and \ref Dijkstra, \c em is an edge map,
     9.1 --- a/lemon/dijkstra.h	Wed Sep 26 14:37:48 2007 +0000
     9.2 +++ b/lemon/dijkstra.h	Thu Sep 27 13:04:06 2007 +0000
     9.3 @@ -665,7 +665,7 @@
     9.4      ///\param nm must be a bool (or convertible) node map. The algorithm
     9.5      ///will stop when it reaches a node \c v with <tt>nm[v]</tt> true.
     9.6      ///
     9.7 -    ///\return The reached node \c v with <tt>nm[v]<\tt> true or
     9.8 +    ///\return The reached node \c v with <tt>nm[v]</tt> true or
     9.9      ///\c INVALID if no such node was found.
    9.10      template<class NodeBoolMap>
    9.11      Node start(const NodeBoolMap &nm)
    10.1 --- a/lemon/error.h	Wed Sep 26 14:37:48 2007 +0000
    10.2 +++ b/lemon/error.h	Thu Sep 27 13:04:06 2007 +0000
    10.3 @@ -634,7 +634,7 @@
    10.4  /// parameter is false the assertion is raised and one of the assertion
    10.5  /// behaviour will be activated. The \c msg should be either a const
    10.6  /// char* message or an exception. When the \c msg is an exception the
    10.7 -/// \ref "Exception::what" what() function is called to retrieve and
    10.8 +/// \ref lemon::Exception::what() "what()" function is called to retrieve and
    10.9  /// display the error message.
   10.10  ///
   10.11  /// \todo We should provide some way to reset to the default behaviour,
    11.1 --- a/lemon/graph_utils.h	Wed Sep 26 14:37:48 2007 +0000
    11.2 +++ b/lemon/graph_utils.h	Thu Sep 27 13:04:06 2007 +0000
    11.3 @@ -372,7 +372,7 @@
    11.4    ///\endcode
    11.5    ///
    11.6    ///\sa EdgeLookUp
    11.7 -  ///\se AllEdgeLookUp
    11.8 +  ///\sa AllEdgeLookUp
    11.9    ///\sa ConEdgeIt
   11.10    template <typename Graph>
   11.11    inline typename Graph::Edge 
    12.1 --- a/lemon/lemon_reader.h	Wed Sep 26 14:37:48 2007 +0000
    12.2 +++ b/lemon/lemon_reader.h	Thu Sep 27 13:04:06 2007 +0000
    12.3 @@ -1128,7 +1128,7 @@
    12.4      ///
    12.5      /// It gives back true when the header line starts with \c \@edgeset,
    12.6      /// and the header line's name and the edgeset's name are the same.
    12.7 -    /// The sections with @uedgeset head line could be read with this
    12.8 +    /// The sections with \@uedgeset head line could be read with this
    12.9      /// section reader too.
   12.10      virtual bool header(const std::string& line) {
   12.11        std::istringstream ls(line);
   12.12 @@ -1437,7 +1437,7 @@
   12.13      ///
   12.14      /// It gives back true when the header line starts with \c \@uedgeset,
   12.15      /// and the header line's name and the edgeset's name are the same.
   12.16 -    /// The sections with @edgeset head line could be read with this
   12.17 +    /// The sections with \@edgeset head line could be read with this
   12.18      /// section reader too.
   12.19      virtual bool header(const std::string& line) {
   12.20        std::istringstream ls(line);