module Mtbddc:sig..end
type 'a capsule = private {
|
content : |
type 'a unique
'a.
Use this module rather than Cudd.Mtbdd when 'a is implemented as a
a custom block with finalization function.
type'at ='a unique Cudd.Vdd.t
Objects of this type contains both the top node of the MTBDD
and the manager to which the node belongs. The manager can
be retrieved with Cudd.Mtbddc.manager. Objects of this type are
automatically garbage collected.
type'atable ='a unique Cudd.PWeakke.t
val print_table : ?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 table -> unitval make_table : hash:('a -> int) -> equal:('a -> 'a -> bool) -> 'a tableval unique : 'a table -> 'a -> 'a uniqueval get : 'a unique -> 'atype 'a mtbdd =
| |
Leaf of |
(* | Terminal value | *) |
| |
Ite of |
(* | Decision on CUDD variable | *) |
tCudd.Add and Cudd.Vdd for the description
of the interface.val manager : 'a t -> Cudd.Man.v Cudd.Man.tval is_cst : 'a t -> boolval topvar : 'a t -> intval dthen : 'a t -> 'a tval delse : 'a t -> 'a tval cofactors : int -> 'a t -> 'a t * 'a tval cofactor : 'a t -> Cudd.Man.v Cudd.Bdd.t -> 'a tcofactor mtbdd cube evaluates mtbbdd on the cube cubeval dval_u : 'a t -> 'a uniqueval dval : 'a t -> 'aval inspect : 'a t -> 'a mtbddval support : 'a t -> Cudd.Man.v Cudd.Bdd.tval supportsize : 'a t -> intval is_var_in : int -> 'a t -> boolval vectorsupport : 'a t array -> Cudd.Man.v Cudd.Bdd.tval vectorsupport2 : Cudd.Man.v Cudd.Bdd.t array ->
'a t array -> Cudd.Man.v Cudd.Bdd.tval cst_u : Cudd.Man.v Cudd.Man.t -> 'a unique -> 'a tval cst : Cudd.Man.v Cudd.Man.t -> 'a table -> 'a -> 'a tval ite : Cudd.Man.v Cudd.Bdd.t ->
'a t -> 'a t -> 'a tval ite_cst : Cudd.Man.v Cudd.Bdd.t ->
'a t -> 'a t -> 'a t optionval eval_cst : 'a t -> Cudd.Man.v Cudd.Bdd.t -> 'a t optionval compose : int -> Cudd.Man.v Cudd.Bdd.t -> 'a t -> 'a tval vectorcompose : Cudd.Man.v Cudd.Bdd.t array -> 'a t -> 'a tval is_equal : 'a t -> 'a t -> boolval is_equal_when : 'a t -> 'a t -> Cudd.Man.v Cudd.Bdd.t -> boolval is_eval_cst_u : 'a t -> Cudd.Man.v Cudd.Bdd.t -> 'a unique optionval is_ite_cst_u : Cudd.Man.v Cudd.Bdd.t ->
'a t -> 'a t -> 'a unique optionval is_eval_cst : 'a t -> Cudd.Man.v Cudd.Bdd.t -> 'a optionval is_ite_cst : Cudd.Man.v Cudd.Bdd.t -> 'a t -> 'a t -> 'a optionval size : 'a t -> intval nbpaths : 'a t -> floatval nbnonzeropaths : 'a t -> floatval nbminterms : int -> 'a t -> floatval density : int -> 'a t -> floatval nbleaves : 'a t -> intval varmap : 'a t -> 'a tval permute : 'a t -> int array -> 'a tval iter_cube_u : (Cudd.Man.tbool array -> 'a unique -> unit) ->
'a t -> unitval iter_cube : (Cudd.Man.tbool array -> 'a -> unit) -> 'a t -> unitval iter_node : ('a t -> unit) -> 'a t -> unitval guard_of_node : 'a t -> 'a t -> Cudd.Man.v Cudd.Bdd.tval guard_of_nonbackground : 'a t -> Cudd.Man.v Cudd.Bdd.tval nodes_below_level : ?max:int -> 'a t -> int option -> 'a t arrayval guard_of_leaf_u : 'a t -> 'a unique -> Cudd.Man.v Cudd.Bdd.tval guard_of_leaf : 'a table -> 'a t -> 'a -> Cudd.Man.v Cudd.Bdd.tval leaves_u : 'a t -> 'a unique arrayval leaves : 'a t -> 'a arrayval pick_leaf_u : 'a t -> 'a uniqueNone if the only leaf is the background leaf.val pick_leaf : 'a t -> 'aval guardleafs_u : 'a t -> (Cudd.Man.v Cudd.Bdd.t * 'a unique) arrayval guardleafs : 'a t -> (Cudd.Man.v Cudd.Bdd.t * 'a) arrayval constrain : 'a t -> Cudd.Man.v Cudd.Bdd.t -> 'a tval tdconstrain : 'a t -> Cudd.Man.v Cudd.Bdd.t -> 'a tval restrict : 'a t -> Cudd.Man.v Cudd.Bdd.t -> 'a tval tdrestrict : 'a t -> Cudd.Man.v Cudd.Bdd.t -> 'a tCudd.Mapleaf;Cudd.User.val transfer : 'a t -> Cudd.Man.v Cudd.Man.t -> 'a tval print__minterm : (Format.formatter -> 'a -> unit) ->
Format.formatter -> 'a t -> unitval print_minterm : (Format.formatter -> int -> unit) ->
(Format.formatter -> 'a -> unit) ->
Format.formatter -> 'a t -> unitval print : (Format.formatter -> Cudd.Man.v Cudd.Bdd.t -> unit) ->
(Format.formatter -> 'a -> unit) ->
Format.formatter -> 'a t -> unit