sig
type 'a t
type 'a hashtbl = 'a Cudd.Weakke.t
type 'a compare = { hash : 'a -> int; equal : 'a -> 'a -> bool; }
val create : int -> 'a Cudd.Weakke.t
val clear : 'a Cudd.Weakke.t -> unit
val merge : 'a Cudd.Weakke.t -> 'a -> 'a
val merge_map : 'a Cudd.Weakke.t -> 'a -> ('a -> 'a) -> 'a
val add : 'a Cudd.Weakke.t -> 'a -> unit
val remove : 'a Cudd.Weakke.t -> 'a -> unit
val find : 'a Cudd.Weakke.t -> 'a -> 'a
val find_all : 'a Cudd.Weakke.t -> 'a -> 'a list
val mem : 'a Cudd.Weakke.t -> 'a -> bool
val iter : ('a -> 'b) -> 'a Cudd.Weakke.t -> unit
val fold : ('a -> 'b -> 'b) -> 'a Cudd.Weakke.t -> 'b -> 'b
val count : 'a Cudd.Weakke.t -> int
val stats : 'a Cudd.Weakke.t -> int * int * int * int * int * int
val print :
?first:(unit, Format.formatter, unit) Pervasives.format ->
?sep:(unit, Format.formatter, unit) Pervasives.format ->
?last:(unit, Format.formatter, unit) Pervasives.format ->
(Format.formatter -> 'a -> unit) ->
Format.formatter -> 'a Cudd.Weakke.t -> unit
module type S =
sig
type data
type t
val create : int -> Cudd.Weakke.S.t
val clear : Cudd.Weakke.S.t -> unit
val merge : Cudd.Weakke.S.t -> Cudd.Weakke.S.data -> Cudd.Weakke.S.data
val merge_map :
Cudd.Weakke.S.t ->
Cudd.Weakke.S.data ->
(Cudd.Weakke.S.data -> Cudd.Weakke.S.data) -> Cudd.Weakke.S.data
val add : Cudd.Weakke.S.t -> Cudd.Weakke.S.data -> unit
val remove : Cudd.Weakke.S.t -> Cudd.Weakke.S.data -> unit
val find : Cudd.Weakke.S.t -> Cudd.Weakke.S.data -> Cudd.Weakke.S.data
val find_all :
Cudd.Weakke.S.t -> Cudd.Weakke.S.data -> Cudd.Weakke.S.data list
val mem : Cudd.Weakke.S.t -> Cudd.Weakke.S.data -> bool
val iter : (Cudd.Weakke.S.data -> unit) -> Cudd.Weakke.S.t -> unit
val fold :
(Cudd.Weakke.S.data -> 'a -> 'a) -> Cudd.Weakke.S.t -> 'a -> 'a
val count : Cudd.Weakke.S.t -> int
val stats : Cudd.Weakke.S.t -> int * int * int * int * int * int
val print :
?first:(unit, Format.formatter, unit) Pervasives.format ->
?sep:(unit, Format.formatter, unit) Pervasives.format ->
?last:(unit, Format.formatter, unit) Pervasives.format ->
(Format.formatter -> Cudd.Weakke.S.data -> unit) ->
Format.formatter -> Cudd.Weakke.S.t -> unit
end
module Make :
functor (H : Hashtbl.HashedType) ->
sig
type data = H.t
type t
val create : int -> t
val clear : t -> unit
val merge : t -> data -> data
val merge_map : t -> data -> (data -> data) -> data
val add : t -> data -> unit
val remove : t -> data -> unit
val find : t -> data -> data
val find_all : t -> data -> data list
val mem : t -> data -> bool
val iter : (data -> unit) -> t -> unit
val fold : (data -> 'a -> 'a) -> t -> 'a -> 'a
val count : t -> int
val stats : t -> int * int * int * int * int * int
val print :
?first:(unit, Format.formatter, unit) format ->
?sep:(unit, Format.formatter, unit) format ->
?last:(unit, Format.formatter, unit) format ->
(Format.formatter -> data -> unit) -> Format.formatter -> t -> unit
end
module Compare :
sig
val add : 'a Cudd.Weakke.compare -> 'a Cudd.Weakke.t -> 'a -> unit
val find_or :
'a Cudd.Weakke.compare ->
'a Cudd.Weakke.t -> 'a -> (int -> int -> 'a) -> 'a
val merge : 'a Cudd.Weakke.compare -> 'a Cudd.Weakke.t -> 'a -> 'a
val merge_map :
'a Cudd.Weakke.compare -> 'a Cudd.Weakke.t -> 'a -> ('a -> 'a) -> 'a
val find : 'a Cudd.Weakke.compare -> 'a Cudd.Weakke.t -> 'a -> 'a
val find_shadow :
'a Cudd.Weakke.compare ->
'a Cudd.Weakke.t -> 'a -> ('a Weak.t -> int -> 'b) -> 'b -> 'b
val remove : 'a Cudd.Weakke.compare -> 'a Cudd.Weakke.t -> 'a -> unit
val mem : 'a Cudd.Weakke.compare -> 'a Cudd.Weakke.t -> 'a -> bool
val find_all :
'a Cudd.Weakke.compare -> 'a Cudd.Weakke.t -> 'a -> 'a list
end
end