- GraphSkeleton renamed to ExtendableGraphSkeleton
authoralpar
Thu, 16 Sep 2004 19:23:41 +0000
changeset 873f3a30fda2e49
parent 872 c010b38ea35b
child 874 2195bc090dfe
- GraphSkeleton renamed to ExtendableGraphSkeleton
- Use full explicit namespaces in some places in order to work with icc. (I don't know why they are necessary.)
doc/graphs.dox
src/hugo/skeletons/graph.h
src/test/graph_test.cc
src/work/marci/graph_wrapper_test.cc
     1.1 --- a/doc/graphs.dox	Thu Sep 16 19:18:18 2004 +0000
     1.2 +++ b/doc/graphs.dox	Thu Sep 16 19:23:41 2004 +0000
     1.3 @@ -8,24 +8,32 @@
     1.4  as in incoming and outgoing edges of a given node. 
     1.5  
     1.6  
     1.7 -Each graph should meet the \ref ConstGraph concept. This concept does
     1.8 +Each graph should meet the
     1.9 +\ref hugo::skeleton::StaticGraphSkeleton "StaticGraph" concept.
    1.10 +This concept does not
    1.11  makes it possible to change the graph (i.e. it is not possible to add
    1.12  or delete edges or nodes). Most of the graph algorithms will run on
    1.13  these graphs.
    1.14  
    1.15 -The graphs meeting the \ref ExtendableGraph concept allow node and
    1.16 +The graphs meeting the
    1.17 +\ref hugo::skeleton::ExtendableGraphSkeleton "ExtendableGraph"
    1.18 +concept allow node and
    1.19  edge addition. You can also "clear" (i.e. erase all edges and nodes)
    1.20  such a graph.
    1.21  
    1.22 -In case of graphs meeting the full feature \ref ErasableGraph concept
    1.23 +In case of graphs meeting the full feature
    1.24 +\ref hugo::skeleton::ErasableGraphSkeleton "ErasableGraph"
    1.25 +concept
    1.26  you can also erase individual edges and node in arbitrary order.
    1.27  
    1.28  The implemented graph structures are the following.
    1.29  \li \ref hugo::ListGraph "ListGraph" is the most versatile graph class. It meets
    1.30 -the ErasableGraph concept and it also have some convenience features.
    1.31 +the hugo::skeleton::ErasableGraphSkeleton "ErasableGraph" concept
    1.32 +and it also have some convenience features.
    1.33  \li \ref hugo::SmartGraph "SmartGraph" is a more memory
    1.34  efficient version of \ref hugo::ListGraph "ListGraph". The
    1.35 -price of it is that it only meets the \ref ExtendableGraph concept,
    1.36 +price of it is that it only meets the
    1.37 +\ref hugo::skeleton::ExtendableGraphSkeleton "ExtendableGraph" concept,
    1.38  so you cannot delete individual edges or nodes.
    1.39  \li \ref hugo::SymListGraph "SymListGraph" and
    1.40  \ref hugo::SymSmartGraph "SymSmartGraph" classes are very similar to
    1.41 @@ -46,22 +54,19 @@
    1.42  \li \ref hugo::NodeSet "NodeSet" implements a graph with no edges. This class
    1.43  can be used as a base class of \ref hugo::EdgeSet "EdgeSet".
    1.44  \li \ref hugo::EdgeSet "EdgeSet" can be used to create a new graph on
    1.45 -the edge set of another graph. The base graph can be an arbitrary graph and it
    1.46 +the node set of another graph. The base graph can be an arbitrary graph and it
    1.47  is possible to attach several \ref hugo::EdgeSet "EdgeSet"'s to a base graph.
    1.48  
    1.49  \todo Don't we need SmartNodeSet and SmartEdgeSet?
    1.50  \todo Some cross-refs are wrong.
    1.51  
    1.52 -\bug This file must be updated accordig to the new stile iterators.
    1.53 +\bug This file must be updated accordig to the new style iterators.
    1.54  
    1.55  The graph structures itself can not store data attached
    1.56  to the edges and nodes. However they all provide
    1.57  \ref maps "map classes"
    1.58  to dynamically attach data the to graph components.
    1.59  
    1.60 -
    1.61 -
    1.62 -
    1.63  The following program demonstrates the basic features of HugoLib's graph
    1.64  structures.
    1.65  
    1.66 @@ -190,7 +195,7 @@
    1.67  1  (2,0) 9
    1.68  \endcode
    1.69  
    1.70 -In generic graph optimization programming graphs are not containers rather
    1.71 +As we mentioned above, graphs are not containers rather
    1.72  incidence structures which are iterable in many ways. HugoLib introduces
    1.73  concepts that allow us to attach containers to graphs. These containers are
    1.74  called maps.
     2.1 --- a/src/hugo/skeletons/graph.h	Thu Sep 16 19:18:18 2004 +0000
     2.2 +++ b/src/hugo/skeletons/graph.h	Thu Sep 16 19:23:41 2004 +0000
     2.3 @@ -432,14 +432,14 @@
     2.4      /// This class provides everything that \c StaticGraphSkeleton
     2.5      /// with additional functionality which enables to build a
     2.6      /// graph from scratch.
     2.7 -    class GraphSkeleton : public StaticGraphSkeleton
     2.8 +    class ExtendableGraphSkeleton : public StaticGraphSkeleton
     2.9      {
    2.10      public:
    2.11        /// Defalult constructor.
    2.12  
    2.13        /// Defalult constructor.
    2.14        ///
    2.15 -      GraphSkeleton() { }
    2.16 +      ExtendableGraphSkeleton() { }
    2.17        ///Add a new node to the graph.
    2.18  
    2.19        /// \return the new node.
    2.20 @@ -464,7 +464,7 @@
    2.21    
    2.22      /// This class is an extension of \c GraphSkeleton. It also makes it
    2.23      /// possible to erase edges or nodes.
    2.24 -    class ErasableGraphSkeleton : public GraphSkeleton
    2.25 +    class ErasableGraphSkeleton : public ExtendableGraphSkeleton
    2.26      {
    2.27      public:
    2.28        /// Defalult constructor.
     3.1 --- a/src/test/graph_test.cc	Thu Sep 16 19:18:18 2004 +0000
     3.2 +++ b/src/test/graph_test.cc	Thu Sep 16 19:23:41 2004 +0000
     3.3 @@ -52,50 +52,51 @@
     3.4  }
     3.5  
     3.6  //Compile GraphSkeleton
     3.7 -template void checkCompileStaticGraph<skeleton::StaticGraphSkeleton>
     3.8 +template void hugo::checkCompileStaticGraph<skeleton::StaticGraphSkeleton>
     3.9  (skeleton::StaticGraphSkeleton &);
    3.10  
    3.11 -template void checkCompileGraph<skeleton::GraphSkeleton>
    3.12 -(skeleton::GraphSkeleton &);
    3.13 +template void hugo::checkCompileGraph<skeleton::ExtendableGraphSkeleton>
    3.14 +(skeleton::ExtendableGraphSkeleton &);
    3.15  
    3.16 -template void checkCompileErasableGraph<skeleton::ErasableGraphSkeleton>
    3.17 +template void hugo::checkCompileErasableGraph<skeleton::ErasableGraphSkeleton>
    3.18  (skeleton::ErasableGraphSkeleton &);
    3.19  
    3.20  //Compile SmartGraph
    3.21 -template void checkCompileGraph<SmartGraph>(SmartGraph &);
    3.22 -template void checkCompileGraphFindEdge<SmartGraph>(SmartGraph &);
    3.23 +template void hugo::checkCompileGraph<SmartGraph>(SmartGraph &);
    3.24 +template void hugo::checkCompileGraphFindEdge<SmartGraph>(SmartGraph &);
    3.25  
    3.26  //Compile SymSmartGraph
    3.27 -template void checkCompileGraph<SymSmartGraph>(SymSmartGraph &);
    3.28 -template void checkCompileGraphFindEdge<SymSmartGraph>(SymSmartGraph &);
    3.29 +template void hugo::checkCompileGraph<SymSmartGraph>(SymSmartGraph &);
    3.30 +template void hugo::checkCompileGraphFindEdge<SymSmartGraph>(SymSmartGraph &);
    3.31  
    3.32  //Compile ListGraph
    3.33 -template void checkCompileGraph<ListGraph>(ListGraph &);
    3.34 -template void checkCompileErasableGraph<ListGraph>(ListGraph &);
    3.35 -template void checkCompileGraphFindEdge<ListGraph>(ListGraph &);
    3.36 +template void hugo::checkCompileGraph<ListGraph>(ListGraph &);
    3.37 +template void hugo::checkCompileErasableGraph<ListGraph>(ListGraph &);
    3.38 +template void hugo::checkCompileGraphFindEdge<ListGraph>(ListGraph &);
    3.39  
    3.40  
    3.41  //Compile SymListGraph
    3.42 -template void checkCompileGraph<SymListGraph>(SymListGraph &);
    3.43 -template void checkCompileErasableGraph<SymListGraph>(SymListGraph &);
    3.44 -template void checkCompileGraphFindEdge<SymListGraph>(SymListGraph &);
    3.45 +template void hugo::checkCompileGraph<SymListGraph>(SymListGraph &);
    3.46 +template void hugo::checkCompileErasableGraph<SymListGraph>(SymListGraph &);
    3.47 +template void hugo::checkCompileGraphFindEdge<SymListGraph>(SymListGraph &);
    3.48  
    3.49  //Compile FullGraph
    3.50 -template void checkCompileStaticGraph<FullGraph>(FullGraph &);
    3.51 -template void checkCompileGraphFindEdge<FullGraph>(FullGraph &);
    3.52 +template void hugo::checkCompileStaticGraph<FullGraph>(FullGraph &);
    3.53 +template void hugo::checkCompileGraphFindEdge<FullGraph>(FullGraph &);
    3.54  
    3.55  //Compile EdgeSet <ListGraph>
    3.56 -template void checkCompileGraph<EdgeSet <ListGraph> >(EdgeSet <ListGraph> &);
    3.57 -template void checkCompileGraphEraseEdge<EdgeSet <ListGraph> >
    3.58 +template void hugo::checkCompileGraph<EdgeSet <ListGraph> >
    3.59  (EdgeSet <ListGraph> &);
    3.60 -template void checkCompileGraphFindEdge<EdgeSet <ListGraph> >
    3.61 +template void hugo::checkCompileGraphEraseEdge<EdgeSet <ListGraph> >
    3.62 +(EdgeSet <ListGraph> &);
    3.63 +template void hugo::checkCompileGraphFindEdge<EdgeSet <ListGraph> >
    3.64  (EdgeSet <ListGraph> &);
    3.65  
    3.66  //Compile EdgeSet <NodeSet>
    3.67 -template void checkCompileGraph<EdgeSet <NodeSet> >(EdgeSet <NodeSet> &);
    3.68 -template void checkCompileGraphEraseEdge<EdgeSet <NodeSet> >
    3.69 +template void hugo::checkCompileGraph<EdgeSet <NodeSet> >(EdgeSet <NodeSet> &);
    3.70 +template void hugo::checkCompileGraphEraseEdge<EdgeSet <NodeSet> >
    3.71  (EdgeSet <NodeSet> &);
    3.72 -template void checkCompileGraphFindEdge<EdgeSet <NodeSet> >
    3.73 +template void hugo::checkCompileGraphFindEdge<EdgeSet <NodeSet> >
    3.74  (EdgeSet <NodeSet> &);
    3.75  
    3.76  
     4.1 --- a/src/work/marci/graph_wrapper_test.cc	Thu Sep 16 19:18:18 2004 +0000
     4.2 +++ b/src/work/marci/graph_wrapper_test.cc	Thu Sep 16 19:23:41 2004 +0000
     4.3 @@ -56,8 +56,8 @@
     4.4  // template void checkCompileStaticGraph<skeleton::StaticGraphSkeleton>
     4.5  // (skeleton::StaticGraphSkeleton &);
     4.6  
     4.7 -// template void checkCompileGraph<skeleton::GraphSkeleton>
     4.8 -// (skeleton::GraphSkeleton &);
     4.9 +// template void checkCompileGraph<skeleton::ExtendableGraphSkeleton>
    4.10 +// (skeleton::ExtendableGraphSkeleton &);
    4.11  
    4.12  // template void checkCompileErasableGraph<skeleton::ErasableGraphSkeleton>
    4.13  // (skeleton::ErasableGraphSkeleton &);