]> granicus.if.org Git - graphviz/commitdiff
dijkstra.c: make 'DIST_MAX' a 'DistType' instead of 'double'
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Sun, 19 Dec 2021 19:20:02 +0000 (11:20 -0800)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Sun, 19 Dec 2021 23:14:36 +0000 (15:14 -0800)
It is not clear to me why this value was type cast to a `double` when all uses
of it either explicitly or implicitly cast it back to `DistType`.

lib/neatogen/dijkstra.c

index f524d569d38b2fbc2ef9ffaf6fcfeb5e08fa78c6..377b353264e3499ce8b382e8684f23b5d127ff9e 100644 (file)
 #include <stdbool.h>
 #include <stdlib.h>
 
-#define MAX_DIST (double)INT_MAX
-
 typedef DistType Word;
 
+#define MAX_DIST ((DistType)INT_MAX)
+
 /* This heap class is suited to the Dijkstra alg.
    data[i]=vertexNum <==> index[vertexNum]=i
 */
@@ -146,7 +146,7 @@ void dijkstra(int vertex, vtx_data * graph, int n, DistType * dist)
 
     /* initial distances with edge weights: */
     for (i = 0; i < n; i++)
-       dist[i] = (DistType) MAX_DIST;
+       dist[i] = MAX_DIST;
     dist[vertex] = 0;
     for (i = 1; i < graph[vertex].nedges; i++)
        dist[graph[vertex].edges[i]] = (DistType) graph[vertex].ewgts[i];
@@ -217,7 +217,7 @@ dijkstra_bounded(int vertex, vtx_data * graph, int n, DistType * dist,
 
     /* initial distances with edge weights: */
     for (i = 0; i < n; i++)    /* far, TOO COSTLY (O(n))! */
-       dist[i] = (DistType) MAX_DIST;
+       dist[i] = MAX_DIST;
     dist[vertex] = 0;
     for (i = 1; i < graph[vertex].nedges; i++)
        dist[graph[vertex].edges[i]] = (DistType) graph[vertex].ewgts[i];