Overflow check in push_relabel constructor doesn't work
push_relabel_max_flow.hpp currently has the following code:
bool overflow_detected = false; FlowValue test_excess = 0; out_edge_iterator a_iter, a_end; for (boost::tie(a_iter, a_end) = out_edges(src, g); a_iter != a_end; ++a_iter) if (target(*a_iter, g) != src) test_excess += get(residual_capacity, *a_iter); if (test_excess > (std::numeric_limits<FlowValue>::max)()) overflow_detected = true;
It is not possible for test_excess to be greater than its type's maximum value. Therefore, overflow_detected is always false and any code that is only called when it is true is never called.