module type S = sig
.. end
type
vertex
The type of vertices
module SetV: Sette.S
with type elt=vertex
The type of sets of vertices
module SetE: Sette.S
with type elt=vertex*vertex
The type of sets of edges
module MapV: Mappe.S
with type key=vertex and module Setkey=SetV
The Map for vertices
module MapE: Mappe.S
with type key=vertex*vertex and module Setkey=SetE
The Map for edges
type ('a, 'b, 'c)
t
The type of graphs, where:
'b
is the type of vertex attribute (attrvertex);
'c
is the type of edge attributes (attredge)
val info : ('a, 'b, 'c) t -> 'c
val set_info : ('a, 'b, 'c) t -> 'c -> ('a, 'b, 'c) t
val succ : ('a, 'b, 'c) t -> vertex -> SetV.t
val pred : ('a, 'b, 'c) t -> vertex -> SetV.t
val attrvertex : ('a, 'b, 'c) t -> vertex -> 'a
val attredge : ('a, 'b, 'c) t -> vertex * vertex -> 'b
val empty : 'a -> ('b, 'c, 'a) t
val size : ('a, 'b, 'c) t -> int
val is_empty : ('a, 'b, 'c) t -> bool
val is_vertex : ('a, 'b, 'c) t -> vertex -> bool
val is_edge : ('a, 'b, 'c) t -> vertex * vertex -> bool
val vertices : ('a, 'b, 'c) t -> SetV.t
val edges : ('a, 'b, 'c) t -> SetE.t
val map_vertex : ('a, 'b, 'c) t ->
(vertex -> 'a -> 'd) -> ('d, 'b, 'c) t
val map_edge : ('a, 'b, 'c) t ->
(vertex * vertex -> 'b -> 'd) -> ('a, 'd, 'c) t
val map_info : ('a, 'b, 'c) t -> ('c -> 'd) -> ('a, 'b, 'd) t
val map : ('a, 'b, 'c) t ->
(vertex -> 'a -> 'd) ->
(vertex * vertex -> 'b -> 'e) ->
('c -> 'f) -> ('d, 'e, 'f) t
val iter_vertex : ('a, 'b, 'c) t ->
(vertex -> 'a -> SetV.t -> unit) -> unit
val iter_edge : ('a, 'b, 'c) t ->
(vertex * vertex -> 'b -> unit) -> unit
val fold_vertex : ('a, 'b, 'c) t ->
'd -> (vertex -> 'a -> SetV.t -> 'd -> 'd) -> 'd
val fold_edge : ('a, 'b, 'c) t ->
'd -> (vertex * vertex -> 'b -> 'd -> 'd) -> 'd
val add_edge : ('a, 'b, 'c) t ->
vertex * vertex -> 'b -> ('a, 'b, 'c) t
val remove_edge : ('a, 'b, 'c) t ->
vertex * vertex -> ('a, 'b, 'c) t
val add_vertex : ('a, 'b, 'c) t ->
vertex -> 'a -> ('a, 'b, 'c) t
val remove_vertex : ('a, 'b, 'c) t -> vertex -> ('a, 'b, 'c) t
val topological_sort : ('a, 'b, 'c) t -> vertex -> vertex list
val topological_sort_multi : vertex ->
('a, 'b, 'c) t -> SetV.t -> vertex list
val reachable : ('a, 'b, 'c) t -> vertex -> SetV.t
val reachable_multi : vertex ->
('a, 'b, 'c) t -> SetV.t -> SetV.t
val cfc : ('a, 'b, 'c) t -> vertex -> vertex list list
val cfc_multi : vertex ->
('a, 'b, 'c) t -> SetV.t -> vertex list list
val scfc : ('a, 'b, 'c) t -> vertex -> vertex Ilist.t
val scfc_multi : vertex ->
('a, 'b, 'c) t -> SetV.t -> vertex Ilist.t
val min : ('a, 'b, 'c) t -> SetV.t
val max : ('a, 'b, 'c) t -> SetV.t
val print : (Format.formatter -> vertex -> unit) ->
(Format.formatter -> 'a -> unit) ->
(Format.formatter -> 'b -> unit) ->
(Format.formatter -> 'c -> unit) ->
Format.formatter -> ('a, 'b, 'c) t -> unit