diff -r 4297098d9677 -r e46a1f0623a0 src/work/marci/augmenting_flow.h --- a/src/work/marci/augmenting_flow.h Mon Aug 30 12:01:47 2004 +0000 +++ b/src/work/marci/augmenting_flow.h Tue Aug 31 11:26:59 2004 +0000 @@ -1020,7 +1020,7 @@ break; case AFTER_AUGMENTING: // std::cout << "AFTER_AUGMENTING" << std::endl; - for(g->first(v); g->valid(v); g->next(v)) { + for(g->first(v); v!=INVALID; ++v) { if (level[v]) { M.set(v, true); } else { @@ -1030,7 +1030,7 @@ break; case AFTER_FAST_AUGMENTING: // std::cout << "AFTER_FAST_AUGMENTING" << std::endl; - for(g->first(v); g->valid(v); g->next(v)) { + for(g->first(v); v!=INVALID; ++v) { if (level[v]==number_of_augmentations) { M.set(v, true); } else { @@ -1053,7 +1053,7 @@ queue.pop(); OutEdgeIt e; - for(g->first(e,w) ; g->valid(e); g->next(e)) { + for(g->first(e,w) ; e!=INVALID; ++e) { Node v=g->head(e); if (!M[v] && (*flow)[e] < (*capacity)[e] ) { queue.push(v); @@ -1062,7 +1062,7 @@ } InEdgeIt f; - for(g->first(f,w) ; g->valid(f); g->next(f)) { + for(g->first(f,w) ; f!=INVALID; ++f) { Node v=g->tail(f); if (!M[v] && (*flow)[f] > 0 ) { queue.push(v); @@ -1133,11 +1133,11 @@ //searching for augmenting path while ( !bfs.finished() ) { ResGWOutEdgeIt e=bfs; - if (res_graph.valid(e) && bfs.isBNodeNewlyReached()) { + if (e!=INVALID && bfs.isBNodeNewlyReached()) { Node v=res_graph.tail(e); Node w=res_graph.head(e); pred.set(w, e); - if (res_graph.valid(pred[v])) { + if (pred[v]!=INVALID) { free.set(w, std::min(free[v], res_graph.resCap(e))); } else { free.set(w, res_graph.resCap(e)); @@ -1151,7 +1151,7 @@ if (_augment) { Node n=t; Num augment_value=free[t]; - while (res_graph.valid(pred[n])) { + while (pred[n]!=INVALID) { ResGWEdge e=pred[n]; res_graph.augment(e, augment_value); n=res_graph.tail(e); @@ -1190,11 +1190,11 @@ //searching for augmenting path while ( !bfs.finished() ) { ResGWOutEdgeIt e=bfs; - if (res_graph.valid(e) && bfs.isBNodeNewlyReached()) { + if (e!=INVALID && bfs.isBNodeNewlyReached()) { Node v=res_graph.tail(e); Node w=res_graph.head(e); pred.set(w, e); - if (res_graph.valid(pred[v])) { + if (pred[v]!=INVALID) { free.set(w, std::min(free[v], res_graph.resCap(e))); } else { free.set(w, res_graph.resCap(e)); @@ -1208,7 +1208,7 @@ if (_augment) { Node n=t; Num augment_value=free[t]; - while (res_graph.valid(pred[n])) { + while (pred[n]!=INVALID) { ResGWEdge e=pred[n]; res_graph.augment(e, augment_value); n=res_graph.tail(e); @@ -1244,7 +1244,7 @@ res_graph_to_F(res_graph); { typename ResGW::NodeIt n; - for(res_graph.first(n); res_graph.valid(n); res_graph.next(n)) { + for(res_graph.first(n); n!=INVALID; ++n) { res_graph_to_F.set(n, F.addNode()); } } @@ -1256,7 +1256,7 @@ while ( !bfs.finished() ) { ResGWOutEdgeIt e=bfs; - if (res_graph.valid(e)) { + if (e!=INVALID) { if (bfs.isBNodeNewlyReached()) { dist.set(res_graph.head(e), dist[res_graph.tail(e)]+1); typename MG::Edge f=F.addEdge(res_graph_to_F[res_graph.tail(e)], @@ -1299,7 +1299,7 @@ typename MG::Node v=F.aNode(dfs); typename MG::Node w=F.bNode(dfs); pred.set(w, dfs); - if (F.valid(pred[v])) { + if (pred[v]!=INVALID) { free.set(w, std::min(free[v], residual_capacity[dfs])); } else { free.set(w, residual_capacity[dfs]); @@ -1319,7 +1319,7 @@ if (__augment) { typename MG::Node n=tF; Num augment_value=free[tF]; - while (F.valid(pred[n])) { + while (pred[n]!=INVALID) { typename MG::Edge e=pred[n]; res_graph.augment(original_edge[e], augment_value); n=F.tail(e); @@ -1337,8 +1337,6 @@ } - - template bool AugmentingFlow::augmentOnBlockingFlow2() { @@ -1354,7 +1352,7 @@ DistanceMap dist(res_graph); while ( !bfs.finished() ) { ResGWOutEdgeIt e=bfs; - if (res_graph.valid(e) && bfs.isBNodeNewlyReached()) { + if (e!=INVALID && bfs.isBNodeNewlyReached()) { dist.set(res_graph.head(e), dist[res_graph.tail(e)]+1); } ++bfs; @@ -1371,8 +1369,7 @@ typename FilterResGW::template NodeMap first_out_edges(filter_res_graph); typename FilterResGW::NodeIt v; - for(filter_res_graph.first(v); filter_res_graph.valid(v); - filter_res_graph.next(v)) + for(filter_res_graph.first(v); v!=INVALID; ++v) { typename FilterResGW::OutEdgeIt e; filter_res_graph.first(e, v); @@ -1418,7 +1415,7 @@ typename ErasingResGW::Node w=erasing_res_graph.bNode(dfs); pred.set(w, /*typename ErasingResGW::OutEdgeIt*/(dfs)); - if (erasing_res_graph.valid(pred[v])) { + if (pred[v]!=INVALID) { free1.set (w, std::min(free1[v], res_graph.resCap (typename ErasingResGW::OutEdgeIt(dfs))));