- void initialize_work_lengths_with_min();
- void update_work_lengths();
- void force_positive_work_lengths();
- void find_shortest_path(Vertex **front, Vertex **new_front);
+ // Uses the estimated vertex distances to the source to make all the
+ // edge lengths positive, resulting in an identical added value to
+ // all the paths from the same initial node to the same final node
+ // (in particular from source to sink)
+ void update_positivized_lengths();
+
+ // It may happen that numerical errors in update_positivized_lengths
+ // make the resulting lengths negative, albeit very small. The
+ // following method forces all negative lengths to zero, and prints
+ // the total correction when compiled in VERBOSE mode.
+ void force_positivized_lengths();
+
+ void decrease_distance_in_heap(Vertex *v);
+ void increase_distance_in_heap(Vertex *v);
+
+ // Visit the vertices according to _dp_order and simply update their
+ // distance to the source
+ void dp_compute_distances();
+
+ // Set in every vertex pred_edge_toward_source correspondingly to
+ // the path of shortest length. The current implementation is
+ // Dijkstra with a Binary Heap (and not with Fibonnaci heap (yet))
+ void find_shortest_path();