1.1 --- a/src/work/marci/graph_wrapper.h Thu Apr 15 08:06:43 2004 +0000
1.2 +++ b/src/work/marci/graph_wrapper.h Thu Apr 15 14:41:20 2004 +0000
1.3 @@ -896,19 +896,20 @@
1.4
1.5
1.6
1.7 - template<typename Graph, typename Number, typename FlowMap, typename CapacityMap>
1.8 + template<typename Graph, typename Number,
1.9 + typename CapacityMap, typename FlowMap>
1.10 class ResGraphWrapper : public GraphWrapper<Graph> {
1.11 protected:
1.12 // typedef typename Graph::OutEdgeIt GraphOutEdgeIt;
1.13 // typedef typename Graph::InEdgeIt GraphInEdgeIt;
1.14 // typedef typename Graph::Edge GraphEdge;
1.15 + const CapacityMap* capacity;
1.16 FlowMap* flow;
1.17 - const CapacityMap* capacity;
1.18 public:
1.19
1.20 - ResGraphWrapper(Graph& _graph, FlowMap& _flow,
1.21 - const CapacityMap& _capacity) :
1.22 - GraphWrapper<Graph>(_graph), flow(&_flow), capacity(&_capacity) { }
1.23 + ResGraphWrapper(Graph& _graph, const CapacityMap& _capacity,
1.24 + FlowMap& _flow) :
1.25 + GraphWrapper<Graph>(_graph), capacity(&_capacity), flow(&_flow) { }
1.26
1.27 class Edge;
1.28 class OutEdgeIt;
1.29 @@ -918,7 +919,7 @@
1.30 typedef typename GraphWrapper<Graph>::Node Node;
1.31 typedef typename GraphWrapper<Graph>::NodeIt NodeIt;
1.32 class Edge : public Graph::Edge {
1.33 - friend class ResGraphWrapper<Graph, Number, FlowMap, CapacityMap>;
1.34 + friend class ResGraphWrapper<Graph, Number, CapacityMap, FlowMap>;
1.35 protected:
1.36 bool forward; //true, iff forward
1.37 // typename Graph::Edge e;
1.38 @@ -940,7 +941,7 @@
1.39 }
1.40 };
1.41 // class Edge {
1.42 -// friend class ResGraphWrapper<Graph, Number, FlowMap, CapacityMap>;
1.43 +// friend class ResGraphWrapper<Graph, Number,lksd FlowMap, CapacityMap>;
1.44 // protected:
1.45 // bool out_or_in; //true, iff out
1.46 // GraphOutEdgeIt out;
1.47 @@ -967,7 +968,7 @@
1.48 // }
1.49 // };
1.50 class OutEdgeIt {
1.51 - friend class ResGraphWrapper<Graph, Number, FlowMap, CapacityMap>;
1.52 + friend class ResGraphWrapper<Graph, Number, CapacityMap, FlowMap>;
1.53 protected:
1.54 typename Graph::OutEdgeIt out;
1.55 typename Graph::InEdgeIt in;
1.56 @@ -978,7 +979,7 @@
1.57 // OutEdgeIt(const Edge& e) : Edge(e) { }
1.58 OutEdgeIt(const Invalid& i) : out(i), in(i), forward(false) { }
1.59 //the unique invalid iterator
1.60 - OutEdgeIt(const ResGraphWrapper<Graph, Number, FlowMap, CapacityMap>& resG, Node v) {
1.61 + OutEdgeIt(const ResGraphWrapper<Graph, Number, CapacityMap, FlowMap>& resG, Node v) {
1.62 forward=true;
1.63 resG.graph->first(out, v);
1.64 while( resG.graph->valid(out) && !(resG.resCap(*this)>0) ) { resG.graph->next(out); }
1.65 @@ -1000,13 +1001,13 @@
1.66 }
1.67 };
1.68 // class OutEdgeIt : public Edge {
1.69 -// friend class ResGraphWrapper<Graph, Number, FlowMap, CapacityMap>;
1.70 +// friend class ResGraphWrapper<Graph, Number, FkklowMap, CapacityMap>;
1.71 // public:
1.72 // OutEdgeIt() { }
1.73 // //FIXME
1.74 // OutEdgeIt(const Edge& e) : Edge(e) { }
1.75 // OutEdgeIt(const Invalid& i) : Edge(i) { }
1.76 -// OutEdgeIt(const ResGraphWrapper<Graph, Number, FlowMap, CapacityMap>& resG, Node v) : Edge() {
1.77 +// OutEdgeIt(const ResGraphWrapper<Graph, Number, FdfvlowMap, CapacityMap>& resG, Node v) : Edge() {
1.78 // resG.graph->first(out, v);
1.79 // while( resG.graph->valid(out) && !(resG.resCap(out)>0) ) { resG.graph->next(out); }
1.80 // if (!resG.graph->valid(out)) {
1.81 @@ -1038,7 +1039,7 @@
1.82 // class InEdgeIt : public Edge { };
1.83
1.84 class InEdgeIt {
1.85 - friend class ResGraphWrapper<Graph, Number, FlowMap, CapacityMap>;
1.86 + friend class ResGraphWrapper<Graph, Number, CapacityMap, FlowMap>;
1.87 protected:
1.88 typename Graph::OutEdgeIt out;
1.89 typename Graph::InEdgeIt in;
1.90 @@ -1049,7 +1050,7 @@
1.91 // OutEdgeIt(const Edge& e) : Edge(e) { }
1.92 InEdgeIt(const Invalid& i) : out(i), in(i), forward(false) { }
1.93 //the unique invalid iterator
1.94 - InEdgeIt(const ResGraphWrapper<Graph, Number, FlowMap, CapacityMap>& resG, Node v) {
1.95 + InEdgeIt(const ResGraphWrapper<Graph, Number, CapacityMap, FlowMap>& resG, Node v) {
1.96 forward=true;
1.97 resG.graph->first(in, v);
1.98 while( resG.graph->valid(in) && !(resG.resCap(*this)>0) ) { resG.graph->next(in); }
1.99 @@ -1072,14 +1073,14 @@
1.100 };
1.101
1.102 class EdgeIt {
1.103 - friend class ResGraphWrapper<Graph, Number, FlowMap, CapacityMap>;
1.104 + friend class ResGraphWrapper<Graph, Number, CapacityMap, FlowMap>;
1.105 protected:
1.106 typename Graph::EdgeIt e;
1.107 bool forward;
1.108 public:
1.109 EdgeIt() { }
1.110 EdgeIt(const Invalid& i) : e(i), forward(false) { }
1.111 - EdgeIt(const ResGraphWrapper<Graph, Number, FlowMap, CapacityMap>& resG) {
1.112 + EdgeIt(const ResGraphWrapper<Graph, Number, CapacityMap, FlowMap>& resG) {
1.113 forward=true;
1.114 resG.graph->first(e);
1.115 while (resG.graph->valid(e) && !(resG.resCap(*this)>0)) resG.graph->next(e);
1.116 @@ -1094,13 +1095,13 @@
1.117 }
1.118 };
1.119 // class EdgeIt : public Edge {
1.120 -// friend class ResGraphWrapper<Graph, Number, FlowMap, CapacityMap>;
1.121 +// friend class ResGraphWrapper<Graph, Number, FflowMap, CapacityMap>;
1.122 // NodeIt v;
1.123 // public:
1.124 // EdgeIt() { }
1.125 // //EdgeIt(const EdgeIt& e) : Edge(e), v(e.v) { }
1.126 // EdgeIt(const Invalid& i) : Edge(i) { }
1.127 -// EdgeIt(const ResGraphWrapper<Graph, Number, FlowMap, CapacityMap>& resG) : Edge() {
1.128 +// EdgeIt(const ResGraphWrapper<Graph, Number, FlfowMap, CapacityMap>& resG) : Edge() {
1.129 // resG.graph->first(v);
1.130 // if (resG.graph->valid(v)) resG.graph->first(out, v); else out=INVALID;
1.131 // while (resG.graph->valid(out) && !(resG.resCap(out)>0) ) { resG.graph->next(out); }
1.132 @@ -1317,9 +1318,9 @@
1.133
1.134 // template<typename T> class NodeMap : public Graph::NodeMap<T> {
1.135 // public:
1.136 -// NodeMap(const ResGraphWrapper<Graph, Number, FlowMap, CapacityMap>& _G)
1.137 +// NodeMap(const ResGraphWrapper<Graph, Number, FlovwMap, CapacityMap>& _G)
1.138 // : Graph::NodeMap<T>(_G.gw) { }
1.139 -// NodeMap(const ResGraphWrapper<Graph, Number, FlowMap, CapacityMap>& _G,
1.140 +// NodeMap(const ResGraphWrapper<Graph, Number, FlowvMap, CapacityMap>& _G,
1.141 // T a) : Graph::NodeMap<T>(_G.gw, a) { }
1.142 // };
1.143
1.144 @@ -1337,8 +1338,8 @@
1.145 class EdgeMap {
1.146 typename Graph::EdgeMap<T> forward_map, backward_map;
1.147 public:
1.148 - EdgeMap(const ResGraphWrapper<Graph, Number, FlowMap, CapacityMap>& _G) : forward_map(*(_G.graph)), backward_map(*(_G.graph)) { }
1.149 - EdgeMap(const ResGraphWrapper<Graph, Number, FlowMap, CapacityMap>& _G, T a) : forward_map(*(_G.graph), a), backward_map(*(_G.graph), a) { }
1.150 + EdgeMap(const ResGraphWrapper<Graph, Number, CapacityMap, FlowMap>& _G) : forward_map(*(_G.graph)), backward_map(*(_G.graph)) { }
1.151 + EdgeMap(const ResGraphWrapper<Graph, Number, CapacityMap, FlowMap>& _G, T a) : forward_map(*(_G.graph), a), backward_map(*(_G.graph), a) { }
1.152 void set(Edge e, T a) {
1.153 if (e.forward)
1.154 forward_map.set(e.out, a);