<html><head> <link rel="stylesheet" href="style.css" type="text/css"> <meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"> <link rel="Start" href="index.html"> <link title="Index of types" rel=Appendix href="index_types.html"> <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> <link title="Index of values" rel=Appendix href="index_values.html"> <link title="Index of modules" rel=Appendix href="index_modules.html"> <link title="Index of module types" rel=Appendix href="index_module_types.html"> <link title="Sig" rel="Chapter" href="Sig.html"> <link title="Sig_pack" rel="Chapter" href="Sig_pack.html"> <link title="Dot_ast" rel="Chapter" href="Dot_ast.html"> <link title="Util" rel="Chapter" href="Util.html"> <link title="Persistent" rel="Chapter" href="Persistent.html"> <link title="Imperative" rel="Chapter" href="Imperative.html"> <link title="Delaunay" rel="Chapter" href="Delaunay.html"> <link title="Builder" rel="Chapter" href="Builder.html"> <link title="Classic" rel="Chapter" href="Classic.html"> <link title="Rand" rel="Chapter" href="Rand.html"> <link title="Oper" rel="Chapter" href="Oper.html"> <link title="Path" rel="Chapter" href="Path.html"> <link title="Traverse" rel="Chapter" href="Traverse.html"> <link title="Coloring" rel="Chapter" href="Coloring.html"> <link title="Topological" rel="Chapter" href="Topological.html"> <link title="Components" rel="Chapter" href="Components.html"> <link title="Kruskal" rel="Chapter" href="Kruskal.html"> <link title="Flow" rel="Chapter" href="Flow.html"> <link title="Graphviz" rel="Chapter" href="Graphviz.html"> <link title="Gml" rel="Chapter" href="Gml.html"> <link title="Dot" rel="Chapter" href="Dot.html"> <link title="Pack" rel="Chapter" href="Pack.html"> <link title="Gmap" rel="Chapter" href="Gmap.html"> <link title="Minsep" rel="Chapter" href="Minsep.html"> <link title="Cliquetree" rel="Chapter" href="Cliquetree.html"> <link title="Mcs_m" rel="Chapter" href="Mcs_m.html"> <link title="Md" rel="Chapter" href="Md.html"> <link title="Strat" rel="Chapter" href="Strat.html"><title>Cliquetree</title> </head> <body> <code class="code"><span class="keyword">sig</span><br> <span class="keyword">module</span> <span class="constructor">CliqueTree</span> :<br> <span class="keyword">functor</span> (<span class="constructor">G</span> : <span class="constructor">Sig</span>.<span class="constructor">G</span>) <span class="keywordsign">-></span><br> <span class="keyword">sig</span><br> <span class="keyword">module</span> <span class="constructor">CliqueV</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">val</span> compare :<br> <span class="constructor">Cliquetree</span>.<span class="constructor">CliqueTree</span>.<span class="constructor">CliqueV</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Cliquetree</span>.<span class="constructor">CliqueTree</span>.<span class="constructor">CliqueV</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> hash : <span class="constructor">Cliquetree</span>.<span class="constructor">CliqueTree</span>.<span class="constructor">CliqueV</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> equal :<br> <span class="constructor">Cliquetree</span>.<span class="constructor">CliqueTree</span>.<span class="constructor">CliqueV</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Cliquetree</span>.<span class="constructor">CliqueTree</span>.<span class="constructor">CliqueV</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> label :<br> <span class="constructor">Cliquetree</span>.<span class="constructor">CliqueTree</span>.<span class="constructor">CliqueV</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Cliquetree</span>.<span class="constructor">CliqueTree</span>.<span class="constructor">CliqueV</span>.t<br> <span class="keyword">val</span> create : <span class="constructor">G</span>.<span class="constructor">V</span>.t <span class="keywordsign">-></span> <span class="constructor">Cliquetree</span>.<span class="constructor">CliqueTree</span>.<span class="constructor">CliqueV</span>.t<br> <span class="keyword">val</span> vertex : <span class="constructor">Cliquetree</span>.<span class="constructor">CliqueTree</span>.<span class="constructor">CliqueV</span>.t <span class="keywordsign">-></span> <span class="constructor">G</span>.<span class="constructor">V</span>.t<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">CVS</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> elt = <span class="constructor">CliqueV</span>.t<br> <span class="keyword">type</span> t<br> <span class="keyword">val</span> empty : t<br> <span class="keyword">val</span> is_empty : t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> mem : elt <span class="keywordsign">-></span> t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> add : elt <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> singleton : elt <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> remove : elt <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> union : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> inter : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> diff : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> compare : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> equal : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> subset : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> iter : (elt <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> fold : (elt <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> for_all : (elt <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> exists : (elt <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> filter : (elt <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> partition : (elt <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t * t<br> <span class="keyword">val</span> cardinal : t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> elements : t <span class="keywordsign">-></span> elt list<br> <span class="keyword">val</span> min_elt : t <span class="keywordsign">-></span> elt<br> <span class="keyword">val</span> max_elt : t <span class="keywordsign">-></span> elt<br> <span class="keyword">val</span> choose : t <span class="keywordsign">-></span> elt<br> <span class="keyword">val</span> split : elt <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t * bool * t<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">CliqueTreeV</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> data =<br> <span class="constructor">Cliquetree</span>.<span class="constructor">CliqueTree</span>.<span class="constructor">CliqueV</span>.t list *<br> <span class="constructor">Cliquetree</span>.<span class="constructor">CliqueTree</span>.<span class="constructor">CVS</span>.t<br> <span class="keyword">type</span> label<br> <span class="keyword">type</span> t<br> <span class="keyword">val</span> compare :<br> <span class="constructor">Cliquetree</span>.<span class="constructor">CliqueTree</span>.<span class="constructor">CliqueTreeV</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Cliquetree</span>.<span class="constructor">CliqueTree</span>.<span class="constructor">CliqueTreeV</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> hash : <span class="constructor">Cliquetree</span>.<span class="constructor">CliqueTree</span>.<span class="constructor">CliqueTreeV</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> equal :<br> <span class="constructor">Cliquetree</span>.<span class="constructor">CliqueTree</span>.<span class="constructor">CliqueTreeV</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Cliquetree</span>.<span class="constructor">CliqueTree</span>.<span class="constructor">CliqueTreeV</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> create :<br> <span class="constructor">Cliquetree</span>.<span class="constructor">CliqueTree</span>.<span class="constructor">CliqueTreeV</span>.data <span class="keywordsign">-></span><br> <span class="constructor">Cliquetree</span>.<span class="constructor">CliqueTree</span>.<span class="constructor">CliqueTreeV</span>.label <span class="keywordsign">-></span><br> <span class="constructor">Cliquetree</span>.<span class="constructor">CliqueTree</span>.<span class="constructor">CliqueTreeV</span>.t<br> <span class="keyword">val</span> label :<br> <span class="constructor">Cliquetree</span>.<span class="constructor">CliqueTree</span>.<span class="constructor">CliqueTreeV</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Cliquetree</span>.<span class="constructor">CliqueTree</span>.<span class="constructor">CliqueTreeV</span>.label<br> <span class="keyword">val</span> data :<br> <span class="constructor">Cliquetree</span>.<span class="constructor">CliqueTree</span>.<span class="constructor">CliqueTreeV</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Cliquetree</span>.<span class="constructor">CliqueTree</span>.<span class="constructor">CliqueTreeV</span>.data<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">CliqueTreeE</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t = int * <span class="constructor">Cliquetree</span>.<span class="constructor">CliqueTree</span>.<span class="constructor">CVS</span>.t<br> <span class="keyword">val</span> compare :<br> <span class="constructor">Cliquetree</span>.<span class="constructor">CliqueTree</span>.<span class="constructor">CliqueTreeE</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Cliquetree</span>.<span class="constructor">CliqueTree</span>.<span class="constructor">CliqueTreeE</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> default : <span class="constructor">Cliquetree</span>.<span class="constructor">CliqueTree</span>.<span class="constructor">CliqueTreeE</span>.t<br> <span class="keyword">val</span> create :<br> int <span class="keywordsign">-></span><br> <span class="constructor">Cliquetree</span>.<span class="constructor">CliqueTree</span>.<span class="constructor">CVS</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Cliquetree</span>.<span class="constructor">CliqueTree</span>.<span class="constructor">CliqueTreeE</span>.t<br> <span class="keyword">val</span> vertices :<br> <span class="constructor">Cliquetree</span>.<span class="constructor">CliqueTree</span>.<span class="constructor">CliqueTreeE</span>.t <span class="keywordsign">-></span><br> <span class="constructor">Cliquetree</span>.<span class="constructor">CliqueTree</span>.<span class="constructor">CVS</span>.t<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">CliqueTree</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">module</span> <span class="constructor">V</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t = <span class="constructor">CliqueTreeV</span>.t<br> <span class="keyword">val</span> compare : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> hash : t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> equal : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> bool<br> <span class="keyword">type</span> label<br> <span class="keyword">val</span> create : label <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> label : t <span class="keywordsign">-></span> label<br> <span class="keyword">end</span><br> <span class="keyword">type</span> vertex = <span class="constructor">V</span>.t<br> <span class="keyword">module</span> <span class="constructor">E</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t<br> <span class="keyword">val</span> compare : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> int<br> <span class="keyword">type</span> vertex = vertex<br> <span class="keyword">val</span> src : t <span class="keywordsign">-></span> vertex<br> <span class="keyword">val</span> dst : t <span class="keywordsign">-></span> vertex<br> <span class="keyword">type</span> label = <span class="constructor">CliqueTreeE</span>.t<br> <span class="keyword">val</span> create : vertex <span class="keywordsign">-></span> label <span class="keywordsign">-></span> vertex <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> label : t <span class="keywordsign">-></span> label<br> <span class="keyword">end</span><br> <span class="keyword">type</span> edge = <span class="constructor">E</span>.t<br> <span class="keyword">val</span> is_directed : bool<br> <span class="keyword">val</span> is_empty : t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> nb_vertex : t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> nb_edges : t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> out_degree : t <span class="keywordsign">-></span> vertex <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> in_degree : t <span class="keywordsign">-></span> vertex <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> mem_vertex : t <span class="keywordsign">-></span> vertex <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> mem_edge : t <span class="keywordsign">-></span> vertex <span class="keywordsign">-></span> vertex <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> mem_edge_e : t <span class="keywordsign">-></span> edge <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> find_edge : t <span class="keywordsign">-></span> vertex <span class="keywordsign">-></span> vertex <span class="keywordsign">-></span> edge<br> <span class="keyword">val</span> succ : t <span class="keywordsign">-></span> vertex <span class="keywordsign">-></span> vertex list<br> <span class="keyword">val</span> pred : t <span class="keywordsign">-></span> vertex <span class="keywordsign">-></span> vertex list<br> <span class="keyword">val</span> succ_e : t <span class="keywordsign">-></span> vertex <span class="keywordsign">-></span> edge list<br> <span class="keyword">val</span> pred_e : t <span class="keywordsign">-></span> vertex <span class="keywordsign">-></span> edge list<br> <span class="keyword">val</span> iter_vertex : (vertex <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> fold_vertex : (vertex <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> iter_edges : (vertex <span class="keywordsign">-></span> vertex <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> fold_edges : (vertex <span class="keywordsign">-></span> vertex <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> iter_edges_e : (edge <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> fold_edges_e : (edge <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> map_vertex : (vertex <span class="keywordsign">-></span> vertex) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> iter_succ : (vertex <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> vertex <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> iter_pred : (vertex <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> vertex <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> fold_succ : (vertex <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> vertex <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> fold_pred : (vertex <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> vertex <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> iter_succ_e : (edge <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> vertex <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> fold_succ_e : (edge <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> vertex <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> iter_pred_e : (edge <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> vertex <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> fold_pred_e : (edge <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> vertex <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">end</span><br> <span class="keyword">val</span> mcs_clique :<br> <span class="constructor">G</span>.t <span class="keywordsign">-></span><br> <span class="constructor">G</span>.<span class="constructor">V</span>.t list * <span class="constructor">Cliquetree</span>.<span class="constructor">CliqueTree</span>.<span class="constructor">CliqueTree</span>.t *<br> <span class="constructor">Cliquetree</span>.<span class="constructor">CliqueTree</span>.<span class="constructor">CliqueTree</span>.<span class="constructor">V</span>.t<br> <span class="keyword">val</span> is_chordal : <span class="constructor">G</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> maxwidth :<br> <span class="constructor">G</span>.t <span class="keywordsign">-></span> <span class="constructor">G</span>.t <span class="keywordsign">-></span> <span class="constructor">Cliquetree</span>.<span class="constructor">CliqueTree</span>.<span class="constructor">CliqueTree</span>.t <span class="keywordsign">-></span> int<br> <span class="keyword">end</span><br> <span class="keyword">end</span></code></body></html>