package camllib

  1. Overview
  2. Docs
type !'a priority =
  1. | Filter of 'a -> bool
  2. | Priority of 'a -> int
type (!'a, !'b) compare = {
  1. hashv : 'a Hashhe.compare;
  2. hashh : 'b Hashhe.compare;
  3. comparev : 'a -> 'a -> int;
  4. compareh : 'b -> 'b -> int;
}
type (!'b, !'c) vertex_n = {
  1. attrvertex : 'c;
  2. mutable predhedge : 'b Sette.set;
  3. mutable succhedge : 'b Sette.set;
}
type (!'a, !'d) hedge_n = {
  1. attrhedge : 'd;
  2. predvertex : 'a array;
  3. succvertex : 'a array;
}
type (!'a, !'b, !'c, !'d, !'e) graph = {
  1. vertex : ('a, ('b, 'c) vertex_n) Hashhe.hashtbl;
  2. hedge : ('b, ('a, 'd) hedge_n) Hashhe.hashtbl;
  3. info : 'e;
}
val stdcompare : ('a, 'b) compare
type (!'a, !'b, !'c, !'d, !'e) t = ('a, 'b, 'c, 'd, 'e) graph
val create : int -> 'e -> ('a, 'b, 'c, 'd, 'e) t
val clear : ('a, 'b, 'c, 'd, 'e) t -> unit
val is_empty : ('a, 'b, 'c, 'd, 'e) t -> bool
val size_vertex : ('a, 'b, 'c, 'd, 'e) t -> int
val size_hedge : ('a, 'b, 'c, 'd, 'e) t -> int
val size_edgevh : ('a, 'b, 'c, 'd, 'e) t -> int
val size_edgehv : ('a, 'b, 'c, 'd, 'e) t -> int
val size : ('a, 'b, 'c, 'd, 'e) t -> int * int * int * int
val attrvertex : ('a, 'b, 'c, 'd, 'e) t -> 'a -> 'c
val attrhedge : ('a, 'b, 'c, 'd, 'e) t -> 'b -> 'd
val info : ('a, 'b, 'c, 'd, 'e) t -> 'e
val is_vertex : ('a, 'b, 'c, 'd, 'e) t -> 'a -> bool
val is_hedge : ('a, 'b, 'c, 'd, 'e) t -> 'b -> bool
val succhedge : ('a, 'b, 'c, 'd, 'e) t -> 'a -> 'b Sette.t
val predhedge : ('a, 'b, 'c, 'd, 'e) t -> 'a -> 'b Sette.t
val succvertex : ('a, 'b, 'c, 'd, 'e) t -> 'b -> 'a array
val predvertex : ('a, 'b, 'c, 'd, 'e) t -> 'b -> 'a array
val succ_vertex : ('a, 'b, 'c, 'd, 'e) t -> 'a -> 'a Sette.t
val pred_vertex : ('a, 'b, 'c, 'd, 'e) t -> 'a -> 'a Sette.t
val add_vertex : ('a, 'b, 'c, 'd, 'e) t -> 'a -> 'c -> unit
val add_hedge : ('a, 'b, 'c, 'd, 'e) t -> 'b -> 'd -> pred:'a array -> succ:'a array -> unit
val replace_attrvertex : ('a, 'b, 'c, 'd, 'e) t -> 'a -> 'c -> unit
val replace_attrhedge : ('a, 'b, 'c, 'd, 'e) t -> 'b -> 'd -> unit
val remove_vertex : ('a, 'b, 'c, 'd, 'e) t -> 'a -> unit
val remove_hedge : ('a, 'b, 'c, 'd, 'e) t -> 'b -> unit
val iter_vertex : ('a, 'b, 'c, 'd, 'e) t -> ('a -> 'c -> pred:'b Sette.t -> succ:'b Sette.t -> unit) -> unit
val iter_hedge : ('a, 'b, 'c, 'd, 'e) t -> ('b -> 'd -> pred:'a array -> succ:'a array -> unit) -> unit
val fold_vertex : ('a, 'b, 'c, 'd, 'e) t -> ('a -> 'c -> pred:'b Sette.t -> succ:'b Sette.t -> 'h -> 'h) -> 'h -> 'h
val fold_hedge : ('a, 'b, 'c, 'd, 'e) t -> ('b -> 'd -> pred:'a array -> succ:'a array -> 'h -> 'h) -> 'h -> 'h
val map : ('a, 'b, 'c, 'd, 'e) t -> ('a -> 'c -> 'cc) -> ('b -> 'd -> 'dd) -> ('e -> 'ee) -> ('a, 'b, 'cc, 'dd, 'ee) t
val copy : ('a -> 'c -> 'cc) -> ('b -> 'd -> 'dd) -> ('e -> 'ee) -> ('a, 'b, 'c, 'd, 'e) t -> ('a, 'b, 'cc, 'dd, 'ee) t
val transpose : ('a -> 'c -> 'cc) -> ('b -> 'd -> 'dd) -> ('e -> 'ee) -> ('a, 'b, 'c, 'd, 'e) t -> ('a, 'b, 'cc, 'dd, 'ee) t
val min : ('a, 'b, 'c, 'd, 'e) t -> 'a Sette.t
val max : ('a, 'b, 'c, 'd, 'e) t -> 'a Sette.t
val topological_sort : ?priority:'b priority -> ('a, 'b, 'c, 'd, 'e) t -> 'a -> 'a list
val topological_sort_multi : 'a -> 'b -> ?priority:'b priority -> ('a, 'b, 'c, 'd, 'e) t -> 'a Sette.t -> 'a list
val reachable : ?filter:('b -> bool) -> ('a, 'b, 'c, 'd, 'e) t -> 'a -> 'a Sette.t * 'b Sette.t
val reachable_multi : 'a -> 'b -> ?filter:('b -> bool) -> ('a, 'b, 'c, 'd, 'e) t -> 'a Sette.t -> 'a Sette.t * 'b Sette.t
val cfc : ?priority:'b priority -> ('a, 'b, 'c, 'd, 'e) t -> 'a -> 'a list list
val cfc_multi : 'a -> 'b -> ?priority:'b priority -> ('a, 'b, 'c, 'd, 'e) t -> 'a Sette.t -> 'a list list
val scfc : ?priority:'b priority -> ('a, 'b, 'c, 'd, 'e) t -> 'a -> (unit, 'a) Ilist.t
val scfc_multi : 'a -> 'b -> ?priority:'b priority -> ('a, 'b, 'c, 'd, 'e) t -> 'a Sette.t -> (unit, 'a) Ilist.t
val print : (Format.formatter -> 'a -> unit) -> (Format.formatter -> 'b -> unit) -> (Format.formatter -> 'c -> unit) -> (Format.formatter -> 'd -> unit) -> (Format.formatter -> 'e -> unit) -> Format.formatter -> ('a, 'b, 'c, 'd, 'e) t -> unit
val print_dot : ?style:string -> ?titlestyle:string -> ?vertexstyle:string -> ?hedgestyle:string -> ?fvertexstyle:('a -> string) -> ?fhedgestyle:('b -> string) -> ?title:string -> (Format.formatter -> 'a -> unit) -> (Format.formatter -> 'b -> unit) -> (Format.formatter -> 'a -> 'c -> unit) -> (Format.formatter -> 'b -> 'd -> unit) -> Format.formatter -> ('a, 'b, 'c, 'd, 'e) t -> unit
module type T = sig ... end
module type S = sig ... end
module Make (T : T) : sig ... end
module Compare : sig ... end