]> git.ozlabs.org Git - ccan/blobdiff - ccan/agar/agar.h
take, tal, tal/path, tal/str, tal/talloc: annotate APIs with TAKES.
[ccan] / ccan / agar / agar.h
index 122cb97177ed1f594b66b7fc84fc073bc7db91bf..f65b4e371f456d7b6bca8208dd5e7f53260874c2 100644 (file)
@@ -31,6 +31,9 @@ struct agar_graph {
        agar_next_edge_fn next_edge;
 };
 
+#define AGAR_INIT_GRAPH(fe, ne, ei) \
+       { (ei), (fe), (ne), }
+
 void agar_init_graph(struct agar_graph *gr,
                     agar_first_edge_fn first_edge,
                     agar_next_edge_fn next_edge,
@@ -81,6 +84,18 @@ 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);
+
+/*
+ * Bellman-Ford algorithm
+ */
+
+struct agar_state *agar_bellman_ford_new(void *ctx, struct agar_graph *gr,
+                                        const void *nr);
+
+bool agar_bellman_ford_path(struct agar_state *sr, const void *destr,
+                           aga_icost_t *total_cost,
+                           const void **prevr, const void **prevedge);
+void agar_bellman_ford_complete(struct agar_state *sr);
 
 #endif /* CCAN_AGAR_H */