# HG changeset patch # User Peter Kovacs # Date 1376944554 -7200 # Node ID b40c2bbb8da5210894426e3c4405b8a6d6d50d22 # Parent fb932bcfd803e4ed14c9d750d924a09eb230aadd Fix division by zero error in case of empty graph (#474) diff -r fb932bcfd803 -r b40c2bbb8da5 lemon/network_simplex.h --- a/lemon/network_simplex.h Sat Sep 04 23:58:03 2010 +0200 +++ b/lemon/network_simplex.h Mon Aug 19 22:35:54 2013 +0200 @@ -929,7 +929,7 @@ for (NodeIt n(_graph); n != INVALID; ++n, ++i) { _node_id[n] = i; } - if (_arc_mixing) { + if (_arc_mixing && _node_num > 1) { // Store the arcs in a mixed order const int skip = std::max(_arc_num / _node_num, 3); int i = 0, j = 0; diff -r fb932bcfd803 -r b40c2bbb8da5 test/min_cost_flow_test.cc --- a/test/min_cost_flow_test.cc Sat Sep 04 23:58:03 2010 +0200 +++ b/test/min_cost_flow_test.cc Mon Aug 19 22:35:54 2013 +0200 @@ -395,6 +395,12 @@ mcf3.upperMap(neg2_u); checkMcf(mcf3, mcf3.run(param), neg2_gr, neg2_l, neg2_u, neg2_c, neg2_s, mcf3.OPTIMAL, true, -300, test_str + "-18", GEQ); + + // Tests for empty graph + Digraph gr0; + MCF mcf0(gr0); + mcf0.run(param); + check(mcf0.totalCost() == 0, "Wrong total cost"); } template < typename MCF, typename Param >