From: Francois Fleuret Date: Wed, 19 Dec 2012 20:47:11 +0000 (+0100) Subject: OCD cosmetics ... X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?a=commitdiff_plain;h=ecead8ae3e8f3fdc43f6f8b2d7327e253cdae637;p=mtp.git OCD cosmetics ... --- diff --git a/mtp_graph.cc b/mtp_graph.cc index 33d5a4f..6c97c5d 100644 --- a/mtp_graph.cc +++ b/mtp_graph.cc @@ -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; } } } diff --git a/mtp_graph.h b/mtp_graph.h index ff15830..1bfbe0c 100644 --- a/mtp_graph.h +++ b/mtp_graph.h @@ -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