[Lemon-commits] [lemon_svn] alpar: r2827 - in hugo/trunk: doc lemon lemon/concept

Lemon SVN svn at lemon.cs.elte.hu
Mon Nov 6 21:50:39 CET 2006


Author: alpar
Date: Tue Jul  4 19:49:01 2006
New Revision: 2827

Modified:
   hugo/trunk/doc/groups.dox
   hugo/trunk/lemon/concept/graph.h
   hugo/trunk/lemon/list_graph.h

Log:
- Revised "Concepts" group documentation
- Other minor doc improvements

Modified: hugo/trunk/doc/groups.dox
==============================================================================
--- hugo/trunk/doc/groups.dox	(original)
+++ hugo/trunk/doc/groups.dox	Tue Jul  4 19:49:01 2006
@@ -25,10 +25,10 @@
 
 Alteration of standard containers need a very limited number of 
 operations, these together satisfy the everyday requirements. 
-In the case of graph strutures, different operations are needed which do 
+In the case of graph structures, different operations are needed which do 
 not alter the physical graph, but gives another view. If some nodes or 
 edges have to be hidden or the reverse oriented graph have to be used, then 
-this is the case. It also may happen that in a flow implemenation 
+this is the case. It also may happen that in a flow implementation 
 the residual graph can be accessed by another algorithm, or a node-set 
 is to be shrunk for another algorithm. 
 LEMON also provides a variety of graphs for these requirements called 
@@ -45,9 +45,9 @@
 @ingroup graphs
 \brief Graph types between real graphs and graph adaptors.
 
-Graph types between real graphs and graph adaptors. These classes
-wrap graphs to give new functionality as the adaptors do it. But the
-other way they are not light-weigth structures as the adaptors.
+Graph types between real graphs and graph adaptors. These classes wrap
+graphs to give new functionality as the adaptors do it. On the other
+hand they are not light-weight structures as the adaptors.
 */
 
 /**
@@ -77,7 +77,7 @@
 Map adaptors are used to create "implicit" maps from other maps.
 
 Most of them are \ref lemon::concept::ReadMap "ReadMap"s. They can
-make arithmetic oprerations between one or two maps (negation, scaling,
+make arithmetic operations between one or two maps (negation, scaling,
 addition, multiplication etc.) or e.g. convert a map to another one
 of different Value type.
 */
@@ -185,10 +185,10 @@
 /**
 @defgroup spantree Minimum Cost Spanning Tree Algorithms
 @ingroup algs
-\brief This group containes the algorithms for finding a minimum cost spanning
+\brief This group contains the algorithms for finding a minimum cost spanning
 tree in a graph
 
-This group containes the algorithms for finding a minimum cost spanning
+This group contains the algorithms for finding a minimum cost spanning
 tree in a graph
 */
 
@@ -232,7 +232,7 @@
 
 Here you can find tools for importing and exporting graphs 
 and graph related data. Now it supports the LEMON format, the
-dimacs format and the encapsulated postscript format.
+\c DIMACS format and the encapsulated postscript format.
 */
 
 /**
@@ -268,9 +268,9 @@
 /**
 @defgroup eps_io Postscript exporting
 @ingroup io_group
-\brief General EPS drawer and graph exporter
+\brief General \c EPS drawer and graph exporter
 
-This group contains general EPS drawing methods and special
+This group contains general \c EPS drawing methods and special
 graph exporting tools. 
 */
 
@@ -286,10 +286,26 @@
 This group describes the data/algorithm skeletons and concept checking
 classes implemented in LEMON.
 
-One aim of these classes is to make it easier to check if a certain
-class or template function is correctly implemented.
+The purpose of the classes in this group is fourfold.
+ 
+- These classes contain the documentations of the concepts. In order
+  to avoid document multiplications, an implementation of a concept
+  simply refers to the corresponding concept class.
+
+- These classes declare every functions, <tt>typedef<tt>s etc. an
+  implementation of the concepts should provide, however completely
+  without implementations and real data structures behind the
+  interface. On the other hand they should provide nothing else. All
+  the algorithms working on a data structure meeting a certain concept
+  should compile with these classes. (Though it will not run properly,
+  of course.) In this way it is easily to check if an algorithm
+  doesn't use any extra feature of a certain implementation.
+
+- The concept descriptor classes also provide a <em>checker class<em>
+  that makes it possible check whether a certain implementation of a
+  concept indeed provides all the required features.
 
-The other (sometimes even more important) aim is to document the concepts.
+- Finally, They can serve as a skeleton of a new implementation of a concept.
 
 */
 

Modified: hugo/trunk/lemon/concept/graph.h
==============================================================================
--- hugo/trunk/lemon/concept/graph.h	(original)
+++ hugo/trunk/lemon/concept/graph.h	Tue Jul  4 19:49:01 2006
@@ -59,24 +59,15 @@
     /// \addtogroup graph_concepts
     /// @{
 
-    /// An empty graph class.
-  
-    /// This class provides all the common features of a graph structure,
-    /// however completely without implementations and real data structures
-    /// behind the interface.
-    /// All graph algorithms should compile with this class, but it will not
-    /// run properly, of course.
+    /// The directed graph concept
+
+    /// This class describes the \ref concept "concept" of the
+    /// immutable directed graphs.
     ///
-    /// It can be used for checking the interface compatibility,
-    /// or it can serve as a skeleton of a new graph structure.
-    /// 
-    /// Also, you will find here the full documentation of a certain graph
-    /// feature, the documentation of a real graph imlementation
-    /// like @ref ListGraph or
-    /// @ref SmartGraph will just refer to this structure.
+    /// Note that actual graph implementation like @ref ListGraph or
+    /// @ref SmartGraph may have several additional functionality.
     ///
-    /// \todo A pages describing the concept of concept description would
-    /// be nice.
+    /// \sa concept
     class Graph {
     public:
       ///\e

Modified: hugo/trunk/lemon/list_graph.h
==============================================================================
--- hugo/trunk/lemon/list_graph.h	(original)
+++ hugo/trunk/lemon/list_graph.h	Tue Jul  4 19:49:01 2006
@@ -314,9 +314,9 @@
 
   ///A list graph class.
 
-  ///This is a simple and fast erasable graph implementation.
+  ///This is a simple and fast graph implementation.
   ///
-  ///It conforms to the \ref concept::Graph "Graph" concept and it
+  ///It conforms to the \ref concept::Graph "Graph concept" and it
   ///also provides several additional useful extra functionalities.
   ///The most of the member functions and nested classes are
   ///documented only in the concept class.
@@ -717,10 +717,10 @@
 
   ///An undirected list graph class.
 
-  ///This is a simple and fast erasable undirected graph implementation.
+  ///This is a simple and fast undirected graph implementation.
   ///
   ///It conforms to the
-  ///\ref concept::UGraph "UGraph" concept.
+  ///\ref concept::UGraph "UGraph concept".
   ///
   ///\sa concept::UGraph.
   ///
@@ -1145,8 +1145,7 @@
   /// \brief A smart bipartite undirected graph class.
   ///
   /// This is a bipartite undirected graph implementation.
-  /// It is conforms to the \ref concept::ErasableBpUGraph "ErasableBpUGraph" 
-  /// concept.
+  /// It is conforms to the \ref concept::BpUGraph "BpUGraph concept".
   /// \sa concept::BpUGraph.
   ///
   class ListBpUGraph : public ExtendedListBpUGraphBase {};



More information about the Lemon-commits mailing list