OCD cosmetics ...
authorFrancois Fleuret <francois@fleuret.org>
Wed, 19 Dec 2012 20:47:11 +0000 (21:47 +0100)
committerFrancois Fleuret <francois@fleuret.org>
Wed, 19 Dec 2012 20:47:11 +0000 (21:47 +0100)
mtp_graph.cc
mtp_graph.h

index 33d5a4f..6c97c5d 100644 (file)
@@ -110,20 +110,21 @@ void Vertex::increase_distance_in_heap(Vertex **heap, int heap_size) {
   Vertex **c1, **c2, **h;
   // omg, that's beautiful
   h = heap_slot;
-  while(c1 = heap + 2 * (h - heap + 1) - 1, c2 = c1 + 1,
-        (c1 < heap + heap_size && (*c1)->distance_from_source < (*h)->distance_from_source)
-        ||
-        (c2 < heap + heap_size && (*c2)->distance_from_source < (*h)->distance_from_source)
-        ) {
-    if(c1 < heap + heap_size &&
-     !(c2 < heap + heap_size && (*c2)->distance_from_source < (*c1)->distance_from_source)){
-      swap(*c1, *h);
-      swap((*c1)->heap_slot, (*h)->heap_slot);
-      h = c1;
-    } else {
+  while(c1 = heap + 2 * (h - heap) + 1,
+        c1 < heap + heap_size &&
+        (c2 = c1 + 1,
+         (*c1)->distance_from_source < (*h)->distance_from_source
+         ||
+         (c2 < heap + heap_size && (*c2)->distance_from_source < (*h)->distance_from_source)
+         )) {
+    if(c2 < heap + heap_size && (*c2)->distance_from_source <= (*c1)->distance_from_source) {
       swap(*c2, *h);
       swap((*c2)->heap_slot, (*h)->heap_slot);
       h = c2;
+    } else {
+      swap(*c1, *h);
+      swap((*c1)->heap_slot, (*h)->heap_slot);
+      h = c1;
     }
   }
 }
index ff15830..1bfbe0c 100644 (file)
@@ -50,7 +50,7 @@ class MTPGraph {
   void force_positivized_lengths();
 
   // Visit the vertices according to _dp_order and simply update their
-  // distance to the source
+  // distance from the source
   void dp_compute_distances();
 
   // Set in every vertex pred_edge_toward_source correspondingly to