Graph.Blocks
Common implementation to persistent and imperative graphs.
val cpt_vertex : int ref
module type HM = sig ... end
Common signature to an imperative/persistent association table
module type TBL_BUILDER = functor (X : Sig.COMPARABLE) -> HM with type key = X.t
module Make_Hashtbl (X : Sig.COMPARABLE) : sig ... end
HM
implementation using hashtbl.
module Make_Map (X : Sig.COMPARABLE) : sig ... end
HM
implementation using map
Common implementation to all (directed) graph implementations.
All the predecessor operations from the iterators on the edges
Common implementation to all the unlabeled (directed) graphs.
module Labeled (V : Sig.COMPARABLE) (E : Sig.ORDERED_TYPE) (HM : HM with type key = V.t) : sig ... end
Common implementation to all the labeled (directed) graphs.
module ConcreteVertex (F : TBL_BUILDER) (V : Sig.COMPARABLE) : sig ... end
The vertex module and the vertex table for the concrete graphs.
module Make_Abstract (G : sig ... end) : sig ... end
Support for explicitly maintaining edge set of predecessors. Crucial for algorithms that do a lot of backwards traversal.
module BidirectionalMinimal (S : Set.S) (HM : HM) : sig ... end
module BidirectionalUnlabeled (V : Sig.COMPARABLE) (HM : HM with type key = V.t) : sig ... end
module BidirectionalLabeled (V : Sig.COMPARABLE) (E : Sig.ORDERED_TYPE) (HM : HM with type key = V.t) : sig ... end
module Make (F : TBL_BUILDER) : sig ... end
Build persistent (resp. imperative) graphs from a persistent (resp. imperative) association table