Fix bug #83 in graph concept, extender and smart graph
authorBalazs Dezso <deba@inf.elte.hu>
Mon, 14 Apr 2008 17:37:18 +0100
changeset 12519e82bda606a
parent 124 ae7785fe8431
child 126 e1dd2a70737c
Fix bug #83 in graph concept, extender and smart graph
lemon/bits/graph_extender.h
lemon/concepts/digraph.h
lemon/concepts/graph.h
lemon/smart_graph.h
     1.1 --- a/lemon/bits/graph_extender.h	Sat Apr 12 20:38:51 2008 +0100
     1.2 +++ b/lemon/bits/graph_extender.h	Mon Apr 14 17:37:18 2008 +0100
     1.3 @@ -367,10 +367,10 @@
     1.4      }
     1.5  
     1.6      Node oppositeNode(const Node &n, const Edge &e) const {
     1.7 -      if( n == Parent::source(e))
     1.8 -	return Parent::target(e);
     1.9 -      else if( n == Parent::target(e))
    1.10 -	return Parent::source(e);
    1.11 +      if( n == Parent::u(e))
    1.12 +	return Parent::v(e);
    1.13 +      else if( n == Parent::v(e))
    1.14 +	return Parent::u(e);
    1.15        else
    1.16  	return INVALID;
    1.17      }
    1.18 @@ -381,7 +381,7 @@
    1.19  
    1.20      using Parent::direct;
    1.21      Arc direct(const Edge &edge, const Node &node) const {
    1.22 -      return Parent::direct(edge, Parent::source(edge) == node);
    1.23 +      return Parent::direct(edge, Parent::u(edge) == node);
    1.24      }
    1.25  
    1.26      // Alterable extension
    1.27 @@ -586,13 +586,13 @@
    1.28      ///
    1.29      /// Returns the base node of the iterator
    1.30      Node baseNode(const IncEdgeIt &edge) const {
    1.31 -      return edge._direction ? source(edge) : target(edge);
    1.32 +      return edge._direction ? u(edge) : v(edge);
    1.33      }
    1.34      /// Running node of the iterator
    1.35      ///
    1.36      /// Returns the running node of the iterator
    1.37      Node runningNode(const IncEdgeIt &edge) const {
    1.38 -      return edge._direction ? target(edge) : source(edge);
    1.39 +      return edge._direction ? v(edge) : u(edge);
    1.40      }
    1.41  
    1.42      // Mappable extension
     2.1 --- a/lemon/concepts/digraph.h	Sat Apr 12 20:38:51 2008 +0100
     2.2 +++ b/lemon/concepts/digraph.h	Mon Apr 14 17:37:18 2008 +0100
     2.3 @@ -467,12 +467,12 @@
     2.4          }
     2.5        };
     2.6  
     2.7 -      template <typename RDigraph>
     2.8 +      template <typename _Digraph>
     2.9        struct Constraints {
    2.10          void constraints() {
    2.11 -          checkConcept<IterableDigraphComponent<>, Digraph>();
    2.12 -	  checkConcept<IDableDigraphComponent<>, Digraph>();
    2.13 -          checkConcept<MappableDigraphComponent<>, Digraph>();
    2.14 +          checkConcept<IterableDigraphComponent<>, _Digraph>();
    2.15 +	  checkConcept<IDableDigraphComponent<>, _Digraph>();
    2.16 +          checkConcept<MappableDigraphComponent<>, _Digraph>();
    2.17          }
    2.18        };
    2.19  
     3.1 --- a/lemon/concepts/graph.h	Sat Apr 12 20:38:51 2008 +0100
     3.2 +++ b/lemon/concepts/graph.h	Mon Apr 14 17:37:18 2008 +0100
     3.3 @@ -731,12 +731,12 @@
     3.4  	return INVALID;
     3.5        }
     3.6  
     3.7 -      template <typename Graph>
     3.8 +      template <typename _Graph>
     3.9        struct Constraints {
    3.10  	void constraints() {
    3.11 -	  checkConcept<IterableGraphComponent<>, Graph>();
    3.12 -	  checkConcept<IDableGraphComponent<>, Graph>();
    3.13 -	  checkConcept<MappableGraphComponent<>, Graph>();
    3.14 +	  checkConcept<IterableGraphComponent<>, _Graph>();
    3.15 +	  checkConcept<IDableGraphComponent<>, _Graph>();
    3.16 +	  checkConcept<MappableGraphComponent<>, _Graph>();
    3.17  	}
    3.18        };
    3.19  
     4.1 --- a/lemon/smart_graph.h	Sat Apr 12 20:38:51 2008 +0100
     4.2 +++ b/lemon/smart_graph.h	Mon Apr 14 17:37:18 2008 +0100
     4.3 @@ -470,8 +470,8 @@
     4.4      Node source(Arc e) const { return Node(arcs[e._id ^ 1].target); }
     4.5      Node target(Arc e) const { return Node(arcs[e._id].target); }
     4.6  
     4.7 -    Node source(Edge e) const { return Node(arcs[2 * e._id].target); }
     4.8 -    Node target(Edge e) const { return Node(arcs[2 * e._id + 1].target); }
     4.9 +    Node u(Edge e) const { return Node(arcs[2 * e._id].target); }
    4.10 +    Node v(Edge e) const { return Node(arcs[2 * e._id + 1].target); }
    4.11  
    4.12      static bool direction(Arc e) {
    4.13        return (e._id & 1) == 1;