1.1 --- a/src/lemon/preflow.h Sat Nov 13 12:24:01 2004 +0000
1.2 +++ b/src/lemon/preflow.h Sat Nov 13 12:53:28 2004 +0000
1.3 @@ -305,7 +305,7 @@
1.4
1.5 for(InEdgeIt e(*g,v); e!=INVALID; ++e) {
1.6 if ( (*capacity)[e] <= (*flow)[e] ) continue;
1.7 - Node u=g->tail(e);
1.8 + Node u=g->source(e);
1.9 if ( level[u] >= n ) {
1.10 bfs_queue.push(u);
1.11 level.set(u, l);
1.12 @@ -318,7 +318,7 @@
1.13
1.14 for(OutEdgeIt e(*g,v); e!=INVALID; ++e) {
1.15 if ( 0 >= (*flow)[e] ) continue;
1.16 - Node u=g->head(e);
1.17 + Node u=g->target(e);
1.18 if ( level[u] >= n ) {
1.19 bfs_queue.push(u);
1.20 level.set(u, l);
1.21 @@ -410,7 +410,7 @@
1.22 queue.pop();
1.23
1.24 for(OutEdgeIt e(*g,w) ; e!=INVALID; ++e) {
1.25 - Node v=g->head(e);
1.26 + Node v=g->target(e);
1.27 if (!M[v] && (*flow)[e] < (*capacity)[e] ) {
1.28 queue.push(v);
1.29 M.set(v, true);
1.30 @@ -418,7 +418,7 @@
1.31 }
1.32
1.33 for(InEdgeIt e(*g,w) ; e!=INVALID; ++e) {
1.34 - Node v=g->tail(e);
1.35 + Node v=g->source(e);
1.36 if (!M[v] && (*flow)[e] > 0 ) {
1.37 queue.push(v);
1.38 M.set(v, true);
1.39 @@ -448,7 +448,7 @@
1.40 queue.pop();
1.41
1.42 for(InEdgeIt e(*g,w) ; e!=INVALID; ++e) {
1.43 - Node v=g->tail(e);
1.44 + Node v=g->source(e);
1.45 if (M[v] && (*flow)[e] < (*capacity)[e] ) {
1.46 queue.push(v);
1.47 M.set(v, false);
1.48 @@ -456,7 +456,7 @@
1.49 }
1.50
1.51 for(OutEdgeIt e(*g,w) ; e!=INVALID; ++e) {
1.52 - Node v=g->head(e);
1.53 + Node v=g->target(e);
1.54 if (M[v] && (*flow)[e] > 0 ) {
1.55 queue.push(v);
1.56 M.set(v, false);
1.57 @@ -515,7 +515,7 @@
1.58
1.59 for(OutEdgeIt e(*g,w) ; e!=INVALID; ++e) {
1.60 if ( (*flow)[e] >= (*capacity)[e] ) continue;
1.61 - Node v=g->head(e);
1.62 + Node v=g->target(e);
1.63
1.64 if( lev > level[v] ) { //Push is allowed now
1.65
1.66 @@ -547,7 +547,7 @@
1.67 for(InEdgeIt e(*g,w) ; e!=INVALID; ++e) {
1.68
1.69 if( (*flow)[e] <= 0 ) continue;
1.70 - Node v=g->tail(e);
1.71 + Node v=g->source(e);
1.72
1.73 if( lev > level[v] ) { //Push is allowed now
1.74
1.75 @@ -602,7 +602,7 @@
1.76
1.77 for(InEdgeIt e(*g,v) ; e!=INVALID; ++e) {
1.78 if ( (*capacity)[e] <= (*flow)[e] ) continue;
1.79 - Node w=g->tail(e);
1.80 + Node w=g->source(e);
1.81 if ( level[w] == n && w != s ) {
1.82 bfs_queue.push(w);
1.83 Node z=level_list[l];
1.84 @@ -615,7 +615,7 @@
1.85
1.86 for(OutEdgeIt e(*g,v) ; e!=INVALID; ++e) {
1.87 if ( 0 >= (*flow)[e] ) continue;
1.88 - Node w=g->head(e);
1.89 + Node w=g->target(e);
1.90 if ( level[w] == n && w != s ) {
1.91 bfs_queue.push(w);
1.92 Node z=level_list[l];
1.93 @@ -646,7 +646,7 @@
1.94 int l=level[v]+1;
1.95
1.96 for(InEdgeIt e(*g,v) ; e!=INVALID; ++e) {
1.97 - Node w=g->tail(e);
1.98 + Node w=g->source(e);
1.99 if ( level[w] == n && w != s ) {
1.100 bfs_queue.push(w);
1.101 Node z=level_list[l];
1.102 @@ -662,7 +662,7 @@
1.103 for(OutEdgeIt e(*g,s) ; e!=INVALID; ++e) {
1.104 Num c=(*capacity)[e];
1.105 if ( c <= 0 ) continue;
1.106 - Node w=g->head(e);
1.107 + Node w=g->target(e);
1.108 if ( level[w] < n ) {
1.109 if ( excess[w] <= 0 && w!=t ) { //putting into the stack
1.110 next.set(w,first[level[w]]);
1.111 @@ -687,7 +687,7 @@
1.112 for(OutEdgeIt e(*g,s); e!=INVALID; ++e) {
1.113 Num rem=(*capacity)[e]-(*flow)[e];
1.114 if ( rem <= 0 ) continue;
1.115 - Node w=g->head(e);
1.116 + Node w=g->target(e);
1.117 if ( level[w] < n ) {
1.118 if ( excess[w] <= 0 && w!=t ) { //putting into the stack
1.119 next.set(w,first[level[w]]);
1.120 @@ -700,7 +700,7 @@
1.121
1.122 for(InEdgeIt e(*g,s); e!=INVALID; ++e) {
1.123 if ( (*flow)[e] <= 0 ) continue;
1.124 - Node w=g->tail(e);
1.125 + Node w=g->source(e);
1.126 if ( level[w] < n ) {
1.127 if ( excess[w] <= 0 && w!=t ) {
1.128 next.set(w,first[level[w]]);
1.129 @@ -717,13 +717,13 @@
1.130 for(OutEdgeIt e(*g,s) ; e!=INVALID; ++e) {
1.131 Num rem=(*capacity)[e]-(*flow)[e];
1.132 if ( rem <= 0 ) continue;
1.133 - Node w=g->head(e);
1.134 + Node w=g->target(e);
1.135 if ( level[w] < n ) flow->set(e, (*capacity)[e]);
1.136 }
1.137
1.138 for(InEdgeIt e(*g,s) ; e!=INVALID; ++e) {
1.139 if ( (*flow)[e] <= 0 ) continue;
1.140 - Node w=g->tail(e);
1.141 + Node w=g->source(e);
1.142 if ( level[w] < n ) flow->set(e, 0);
1.143 }
1.144