+// Iterates find_shortest as long as it finds paths of negative
+// lengths. Returns which edges are occupied by the superposition of
+// paths in result_edge_occupation.
+//
+// **WARNING** this routine changes the values of el, ea, and eb
+// (i.e. the occupied edges are inverted).