Functor Path.Johnson

module Johnson: 
functor (G : G) ->
functor (W : WJ with type edge = G.E.t) -> sig .. end
G : G
W : WJ with type edge = G.E.t

module HVV: Hashtbl.S  with type key = (G.V.t * G.V.t)
val all_pairs_shortest_paths : Path.G.t -> W.t HVV.t
all_pairs_shortest_paths g computes the distance of shortest path between all pairs of vertices in g. They are returned as a hash table mapping each pair of vertices to their distance. If g contains a negative-cycle, raises NegativeCycle l where l is such a cycle.

Complexity: at most O(VElog(V))