[Lemon-commits] [lemon_svn] marci: r191 - hugo/trunk/src/work

Lemon SVN svn at lemon.cs.elte.hu
Mon Nov 6 20:38:01 CET 2006


Author: marci
Date: Mon Mar  1 12:33:10 2004
New Revision: 191

Modified:
   hugo/trunk/src/work/edmonds_karp.hh

Log:
ResGraph3::EdgeMap<T>


Modified: hugo/trunk/src/work/edmonds_karp.hh
==============================================================================
--- hugo/trunk/src/work/edmonds_karp.hh	(original)
+++ hugo/trunk/src/work/edmonds_karp.hh	Mon Mar  1 12:33:10 2004
@@ -452,18 +452,37 @@
 
     int id(NodeIt v) const { return G.id(v); }
 
-    template <typename S>
+    template <typename T>
     class NodeMap {
-      typename Graph::NodeMap<S> node_map; 
+      typename Graph::NodeMap<T> node_map; 
     public:
       NodeMap(const ResGraph3<Graph, Number, FlowMap, CapacityMap>& _G) : node_map(_G.G) { }
-      NodeMap(const ResGraph3<Graph, Number, FlowMap, CapacityMap>& _G, S a) : node_map(_G.G, a) { }
-      void set(NodeIt nit, S a) { node_map.set(nit, a); }
-      S get(NodeIt nit) const { return node_map.get(nit); }
+      NodeMap(const ResGraph3<Graph, Number, FlowMap, CapacityMap>& _G, T a) : node_map(_G.G, a) { }
+      void set(NodeIt nit, T a) { node_map.set(nit, a); }
+      T get(NodeIt nit) const { return node_map.get(nit); }
     };
 
-  };
+    template <typename T>
+    class EdgeMap {
+      typename Graph::EdgeMap<T> forward_map, backward_map; 
+    public:
+      EdgeMap(const ResGraph3<Graph, Number, FlowMap, CapacityMap>& _G) : forward_map(_G.G), backward_map(_G.G) { }
+      EdgeMap(const ResGraph3<Graph, Number, FlowMap, CapacityMap>& _G, T a) : forward_map(_G.G, a), backward_map(_G.G, a) { }
+      void set(EdgeIt e, T a) { 
+	if (e.out_or_in) 
+	  forward_map.set(e.out, a); 
+	else 
+	  backward_map.set(e.in, a); 
+      }
+      T get(EdgeIt e) { 
+	if (e.out_or_in) 
+	  return forward_map.get(e.out); 
+	else 
+	  return backward_map.get(e.in); 
+      }
+    };
 
+  };
 
   template <typename Graph, typename Number, typename FlowMap, typename CapacityMap>
   class MaxFlow {



More information about the Lemon-commits mailing list