[ccan] [PATCH 1/2] aga,agar: Rename aga_dijkstra_all_paths()

David Gibson david at gibson.dropbear.id.au
Sun Jun 12 23:16:59 AEST 2016


aga_dijkstra_all_paths() runs Dijkstra's algorithm to completion (as
opposed to aga_dijkstra_path(), which operates lazily).  In effect this
computes the shortest path to all (reachable) nodes from the start node.

So, in this context the name makes sense.  But for an analogous function
for future algorithms (e.g. Bellman-Ford), the name doesn't make sense.

So, in the interests of consistency with those future extensions, change
the name of this to aga_dijkstra_complete().

Signed-off-by: David Gibson <david at gibson.dropbear.id.au>
---
 ccan/aga/aga.h                | 6 +++---
 ccan/aga/dijkstra.c           | 2 +-
 ccan/aga/test/api-dijkstra.c  | 2 +-
 ccan/agar/agar.c              | 4 ++--
 ccan/agar/agar.h              | 2 +-
 ccan/agar/test/api-dijkstra.c | 2 +-
 6 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/ccan/aga/aga.h b/ccan/aga/aga.h
index d09d4c7..62e03e7 100644
--- a/ccan/aga/aga.h
+++ b/ccan/aga/aga.h
@@ -416,15 +416,15 @@ bool aga_dijkstra_path(struct aga_graph *g, struct aga_node *dest,
 		       struct aga_node **prev, const void **prevedge);
 
 /**
- * aga_dijkstra_all_paths - Find shortest paths to all reachable nodes
+ * aga_dijkstra_complete - Find shortest paths to all reachable nodes
  * @g: graph
  *
  * Finds shortest paths from the source node (specified in
  * aga_dijkstra_start()) to all other reachable nodes in @g.  No
  * results are returned directly, but between calling
- * aga_dijkstra_all_paths() and aga_finish, aga_dijkstra_path() is
+ * aga_dijkstra_all_paths() and aga_finish(), aga_dijkstra_path() is
  * guaranteed to complete in O(1) time for all destinations.
  */
-void aga_dijkstra_all_paths(struct aga_graph *g);
+void aga_dijkstra_complete(struct aga_graph *g);
 
 #endif /* CCAN_AGA_H */
diff --git a/ccan/aga/dijkstra.c b/ccan/aga/dijkstra.c
index 02177fb..cbb79b9 100644
--- a/ccan/aga/dijkstra.c
+++ b/ccan/aga/dijkstra.c
@@ -114,7 +114,7 @@ bool aga_dijkstra_path(struct aga_graph *g, struct aga_node *node,
 	return true;
 }
 
-void aga_dijkstra_all_paths(struct aga_graph *g)
+void aga_dijkstra_complete(struct aga_graph *g)
 {
 	if (!aga_check_state(g))
 		return;
diff --git a/ccan/aga/test/api-dijkstra.c b/ccan/aga/test/api-dijkstra.c
index f9b8d76..74875fb 100644
--- a/ccan/aga/test/api-dijkstra.c
+++ b/ccan/aga/test/api-dijkstra.c
@@ -241,7 +241,7 @@ static void test_shortcut2(void)
 	shortcut2_graph_init(&s2g);
 
 	ok1(aga_dijkstra_start(&s2g.sg.g, &s2g.sg.nodes[1]) == 0);
-	aga_dijkstra_all_paths(&s2g.sg.g);
+	aga_dijkstra_complete(&s2g.sg.g);
 	ok1(aga_error(&s2g.sg.g) == AGA_ERR_NEGATIVE_COST);
 	aga_finish(&s2g.sg.g);
 }
diff --git a/ccan/agar/agar.c b/ccan/agar/agar.c
index e930d7a..0ee34e9 100644
--- a/ccan/agar/agar.c
+++ b/ccan/agar/agar.c
@@ -286,8 +286,8 @@ bool agar_dijkstra_path(struct agar_state *sr, const void *destr,
 	return true;
 }
 
-void agar_dijkstra_all_paths(struct agar_state *sr)
+void agar_dijkstra_complete(struct agar_state *sr)
 {
-	aga_dijkstra_all_paths(&sr->g);
+	aga_dijkstra_complete(&sr->g);
 }
 
diff --git a/ccan/agar/agar.h b/ccan/agar/agar.h
index abd1130..274c9cc 100644
--- a/ccan/agar/agar.h
+++ b/ccan/agar/agar.h
@@ -84,6 +84,6 @@ bool agar_dijkstra_step(struct agar_state *sr, const void **nextr);
 bool agar_dijkstra_path(struct agar_state *sr, const void *destr,
 			aga_icost_t *total_cost,
 			const void **prevr, const void **prevedge);
-void agar_dijkstra_all_paths(struct agar_state *sr);
+void agar_dijkstra_complete(struct agar_state *sr);
 
 #endif /* CCAN_AGAR_H */
diff --git a/ccan/agar/test/api-dijkstra.c b/ccan/agar/test/api-dijkstra.c
index ebdbf42..a5de2ea 100644
--- a/ccan/agar/test/api-dijkstra.c
+++ b/ccan/agar/test/api-dijkstra.c
@@ -231,7 +231,7 @@ static void test_shortcut2(void)
 	struct agar_state *sr;
 
 	ok1(sr = agar_dijkstra_new(NULL, &shortcut2_graphr.gr, int2ptr(1)));
-	agar_dijkstra_all_paths(sr);
+	agar_dijkstra_complete(sr);
 	ok1(agar_error(sr) == AGA_ERR_NEGATIVE_COST);
 	tal_free(sr);
 }
-- 
2.5.5



More information about the ccan mailing list