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,
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 */