<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <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 rel="previous" href="Oper.P.html"> <link rel="next" href="Oper.Choose.html"> <link rel="Up" href="Oper.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>Oper.I</title> </head> <body> <div class="navbar"><a href="Oper.P.html">Previous</a> <a href="Oper.html">Up</a> <a href="Oper.Choose.html">Next</a> </div> <center><h1>Functor <a href="type_Oper.I.html">Oper.I</a></h1></center> <br> <pre><span class="keyword">module</span> I: <div class="sig_block"><code class="code">functor (</code><code class="code">G</code><code class="code"> : </code><code class="type"><a href="Sig.I.html">Sig.I</a></code><code class="code">) -> </code><code class="type"><a href="Oper.S.html">S</a></code><code class="type"> with type g = G.t</code></div></pre>Basic operations over imperative graphs<br> <table border="0" cellpadding="3" width="100%"> <tr> <td align="left" valign="top" width="1%%"><b>Parameters: </b></td> <td> <table class="paramstable"> <tr> <td align="center" valign="top" width="15%"> <code>G</code></td> <td align="center" valign="top">:</td> <td><code class="type"><a href="Sig.I.html">Sig.I</a></code> </table> </td> </tr> </table> <hr width="100%"> <pre><span class="keyword">type</span> <a name="TYPEg"></a><code class="type"></code>g </pre> <pre><span class="keyword">val</span> <a name="VALtransitive_closure"></a>transitive_closure : <code class="type">?reflexive:bool -> <a href="Oper.S.html#TYPEg">g</a> -> <a href="Oper.S.html#TYPEg">g</a></code></pre><div class="info"> <code class="code">transitive_closure ?reflexive g</code> returns the transitive closure of <code class="code">g</code> (as a new graph). Loops (i.e. edges from a vertex to itself) are added only if <code class="code">reflexive</code> is <code class="code">true</code> (default is <code class="code">false</code>).<br> </div> <pre><span class="keyword">val</span> <a name="VALadd_transitive_closure"></a>add_transitive_closure : <code class="type">?reflexive:bool -> <a href="Oper.S.html#TYPEg">g</a> -> <a href="Oper.S.html#TYPEg">g</a></code></pre><div class="info"> <code class="code">add_transitive_closure ?reflexive g</code> replaces <code class="code">g</code> by its transitive closure. Meaningless for persistent implementations (then acts as <code class="code">transitive_closure</code>).<br> </div> <pre><span class="keyword">val</span> <a name="VALmirror"></a>mirror : <code class="type"><a href="Oper.S.html#TYPEg">g</a> -> <a href="Oper.S.html#TYPEg">g</a></code></pre><div class="info"> <code class="code">mirror g</code> returns a new graph which is the mirror image of <code class="code">g</code>: each edge from <code class="code">u</code> to <code class="code">v</code> has been replaced by an edge from <code class="code">v</code> to <code class="code">u</code>. For undirected graphs, it simply returns <code class="code">g</code>. Note: Vertices are shared between <code class="code">g</code> and <code class="code">mirror g</code>; you may need to make a copy of <code class="code">g</code> before using <code class="code">mirror</code><br> </div> <pre><span class="keyword">val</span> <a name="VALcomplement"></a>complement : <code class="type"><a href="Oper.S.html#TYPEg">g</a> -> <a href="Oper.S.html#TYPEg">g</a></code></pre><div class="info"> <code class="code">complement g</code> returns a new graph which is the complement of <code class="code">g</code>: each edge present in <code class="code">g</code> is not present in the resulting graph and vice-versa. Edges of the returned graph are unlabeled.<br> </div> <pre><span class="keyword">val</span> <a name="VALintersect"></a>intersect : <code class="type"><a href="Oper.S.html#TYPEg">g</a> -> <a href="Oper.S.html#TYPEg">g</a> -> <a href="Oper.S.html#TYPEg">g</a></code></pre><div class="info"> <code class="code">intersect g1 g2</code> returns a new graph which is the intersection of <code class="code">g1</code> and <code class="code">g2</code>: each vertex and edge present in <code class="code">g1</code> *and* <code class="code">g2</code> is present in the resulting graph.<br> </div> <pre><span class="keyword">val</span> <a name="VALunion"></a>union : <code class="type"><a href="Oper.S.html#TYPEg">g</a> -> <a href="Oper.S.html#TYPEg">g</a> -> <a href="Oper.S.html#TYPEg">g</a></code></pre><div class="info"> <code class="code">union g1 g2</code> returns a new graph which is the union of <code class="code">g1</code> and <code class="code">g2</code>: each vertex and edge present in <code class="code">g1</code> *or* <code class="code">g2</code> is present in the resulting graph.<br> </div> </body></html>