[Lemon-commits] deba: r3419 - lemon/trunk/lemon

Lemon SVN svn at lemon.cs.elte.hu
Wed Dec 12 14:35:56 CET 2007


Author: deba
Date: Wed Dec 12 14:35:55 2007
New Revision: 3419

Modified:
   lemon/trunk/lemon/circulation.h

Log:
Bug fix



Modified: lemon/trunk/lemon/circulation.h
==============================================================================
--- lemon/trunk/lemon/circulation.h	(original)
+++ lemon/trunk/lemon/circulation.h	Wed Dec 12 14:35:55 2007
@@ -403,9 +403,6 @@
 	_excess->set(_g.source(e), (*_excess)[_g.source(e)] - (*_flow)[e]);
       }
 
-      typename Graph::template NodeMap<bool> reached(_g, false);
-
-
       // global relabeling tested, but in general case it provides
       // worse performance for random graphs
       _level->initStart();
@@ -436,8 +433,8 @@
 	  _excess->set(_g.source(e), (*_excess)[_g.source(e)] - (*_up)[e]);
 	} else if (_tol.positive((*_excess)[_g.target(e)] + (*_lo)[e])) {
 	  _flow->set(e, (*_lo)[e]);
-	  _excess->set(_g.target(e), (*_excess)[_g.target(e)] + (*_up)[e]);
-	  _excess->set(_g.source(e), (*_excess)[_g.source(e)] - (*_up)[e]);
+	  _excess->set(_g.target(e), (*_excess)[_g.target(e)] + (*_lo)[e]);
+	  _excess->set(_g.source(e), (*_excess)[_g.source(e)] - (*_lo)[e]);
 	} else {
 	  Value fc = -(*_excess)[_g.target(e)];
 	  _flow->set(e, fc);
@@ -471,7 +468,7 @@
 	int actlevel=(*_level)[act];
 	int mlevel=_node_num;
 	Value exc=(*_excess)[act];
-	
+
 	for(OutEdgeIt e(_g,act);e!=INVALID; ++e) {
 	  Node v = _g.target(e);
 	  Value fc=(*_up)[e]-(*_flow)[e];
@@ -488,7 +485,7 @@
 	    }
 	    else {
 	      _flow->set(e, (*_up)[e]);
-	      _excess->set(v, (*_excess)[v] + exc);
+	      _excess->set(v, (*_excess)[v] + fc);
 	      if(!_level->active(v) && _tol.positive((*_excess)[v]))
 		_level->activate(v);
 	      exc-=fc;



More information about the Lemon-commits mailing list