diff --git a/src/tools.ml b/src/tools.ml index c364da7..7a8836e 100644 --- a/src/tools.ml +++ b/src/tools.ml @@ -6,4 +6,9 @@ open Graph (* returns a new graph having the same nodes than gr, but no arc. *) let clone_nodes gr = n_fold gr new_node empty_graph; (* maps all arcs of gr by function f *) -let gmap gr f = e_fold gr (fun acc id1 id2 x -> add_arc id1 id2 (f x)) (clone_nodes gr); \ No newline at end of file +let gmap gr f = e_fold gr (fun acc id1 id2 x -> add_arc id1 id2 (f x)) (clone_nodes gr); + +let add_arc g id1 id2 n = + match find_arc g id1 id2 with + | None -> new_arc(g id1 id2 n graph) + | Some a -> new_arc(g id1 id2 n+a graph) \ No newline at end of file