<!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="Fcl_domain.html"> <link rel="next" href="Fcl_data.html"> <link rel="Up" 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="Fcl_genesis" rel="Chapter" href="Fcl_genesis.html"> <link title="Fcl_debug" rel="Chapter" href="Fcl_debug.html"> <link title="Fcl_misc" rel="Chapter" href="Fcl_misc.html"> <link title="Fcl_float" rel="Chapter" href="Fcl_float.html"> <link title="Fcl_stak" rel="Chapter" href="Fcl_stak.html"> <link title="Fcl_domain" rel="Chapter" href="Fcl_domain.html"> <link title="Fcl_setDomain" rel="Chapter" href="Fcl_setDomain.html"> <link title="Fcl_data" rel="Chapter" href="Fcl_data.html"> <link title="Fcl_cstr" rel="Chapter" href="Fcl_cstr.html"> <link title="Fcl_var" rel="Chapter" href="Fcl_var.html"> <link title="Fcl_reify" rel="Chapter" href="Fcl_reify.html"> <link title="Fcl_invariant" rel="Chapter" href="Fcl_invariant.html"> <link title="Fcl_boolean" rel="Chapter" href="Fcl_boolean.html"> <link title="Fcl_alldiff" rel="Chapter" href="Fcl_alldiff.html"> <link title="Fcl_linear" rel="Chapter" href="Fcl_linear.html"> <link title="Fcl_nonlinear" rel="Chapter" href="Fcl_nonlinear.html"> <link title="Fcl_expr" rel="Chapter" href="Fcl_expr.html"> <link title="Fcl_arith" rel="Chapter" href="Fcl_arith.html"> <link title="Fcl_interval" rel="Chapter" href="Fcl_interval.html"> <link title="Fcl_gcc" rel="Chapter" href="Fcl_gcc.html"> <link title="Fcl_fdArray" rel="Chapter" href="Fcl_fdArray.html"> <link title="Fcl_conjunto" rel="Chapter" href="Fcl_conjunto.html"> <link title="Fcl_sorting" rel="Chapter" href="Fcl_sorting.html"> <link title="Fcl_goals" rel="Chapter" href="Fcl_goals.html"> <link title="Fcl_opti" rel="Chapter" href="Fcl_opti.html"> <link title="Facile" rel="Chapter" href="Facile.html"><link title="Creation" rel="Section" href="#2_Creation"> <link title="Access and Operations" rel="Section" href="#2_AccessandOperations"> <title>Fcl_setDomain</title> </head> <body> <div class="navbar"><a href="Fcl_domain.html">Previous</a> <a href="index.html">Up</a> <a href="Fcl_data.html">Next</a> </div> <center><h1>Module <a href="type_Fcl_setDomain.html">Fcl_setDomain</a></h1></center> <br> <pre><span class="keyword">module</span> Fcl_setDomain: <code class="code">sig</code> <a href="Fcl_setDomain.html">..</a> <code class="code">end</code></pre><a name="1_IntegerSetDomainOperations"></a> <h1>Integer Set Domain Operations</h1><br> <hr width="100%"> <pre><span class="keyword">module</span> <a href="Fcl_setDomain.S.html">S</a>: <code class="code">sig</code> <a href="Fcl_setDomain.S.html">..</a> <code class="code">end</code></pre><div class="info"> Implementation of sets of integers. </div> <pre><span class="keyword">type</span> <a name="TYPEelt"></a><code class="type"></code>elt = <code class="type"><a href="Fcl_setDomain.S.html#TYPEt">S.t</a></code> </pre> <div class="info"> Type of elements of set domains. They are sets themselves.<br> </div> <pre><span class="keyword">type</span> <a name="TYPEt"></a><code class="type"></code>t </pre> <div class="info"> Type of finite domains of integer sets: a domain is a powerset lattice of sets bounded by definite elements or <em>glb</em> (Greater Lower Bound) and possible elements or <em>lub</em> (Lower Upper Bounds). The glb is a subset of the lub. Note that the empty domain cannot be represented.<br> </div> <br> <a name="2_Creation"></a> <h2>Creation</h2><br> <pre><span class="keyword">val</span> <a name="VALelt_of_list"></a>elt_of_list : <code class="type">int list -> <a href="Fcl_setDomain.html#TYPEelt">elt</a></code></pre><div class="info"> Creates a set from a list of integers.<br> </div> <pre><span class="keyword">val</span> <a name="VALinterval"></a>interval : <code class="type"><a href="Fcl_setDomain.html#TYPEelt">elt</a> -> <a href="Fcl_setDomain.html#TYPEelt">elt</a> -> <a href="Fcl_setDomain.html#TYPEt">t</a></code></pre><div class="info"> <code class="code">interval glb lub</code> builds the domain of sets greater than <code class="code">glb</code> and smaller than <code class="code">lub</code>. An <code class="code">Invalid_argument</code> exception is raised if <code class="code">glb</code> is not a subset of <code class="code">lub</code>.<br> </div> <br> <a name="2_AccessandOperations"></a> <h2>Access and Operations</h2><br> <pre><span class="keyword">val</span> <a name="VALsize"></a>size : <code class="type"><a href="Fcl_setDomain.html#TYPEt">t</a> -> int</code></pre><div class="info"> <code class="code">size d</code> returns |glb(d)|-|lub(d)|+1, i.e. the height of the lattice, not its number of elements.<br> </div> <pre><span class="keyword">val</span> <a name="VALmin"></a>min : <code class="type"><a href="Fcl_setDomain.html#TYPEt">t</a> -> <a href="Fcl_setDomain.html#TYPEelt">elt</a></code></pre><pre><span class="keyword">val</span> <a name="VALmax"></a>max : <code class="type"><a href="Fcl_setDomain.html#TYPEt">t</a> -> <a href="Fcl_setDomain.html#TYPEelt">elt</a></code></pre><pre><span class="keyword">val</span> <a name="VALmin_max"></a>min_max : <code class="type"><a href="Fcl_setDomain.html#TYPEt">t</a> -> <a href="Fcl_setDomain.html#TYPEelt">elt</a> * <a href="Fcl_setDomain.html#TYPEelt">elt</a></code></pre><div class="info"> Access to glb and lub.<br> </div> <pre><span class="keyword">val</span> <a name="VALfprint_elt"></a>fprint_elt : <code class="type">Pervasives.out_channel -> <a href="Fcl_setDomain.html#TYPEelt">elt</a> -> unit</code></pre><pre><span class="keyword">val</span> <a name="VALfprint"></a>fprint : <code class="type">Pervasives.out_channel -> <a href="Fcl_setDomain.html#TYPEt">t</a> -> unit</code></pre><div class="info"> Pretty printing of elements and domains.<br> </div> <pre><span class="keyword">val</span> <a name="VALmem"></a>mem : <code class="type"><a href="Fcl_setDomain.html#TYPEelt">elt</a> -> <a href="Fcl_setDomain.html#TYPEt">t</a> -> bool</code></pre><div class="info"> <code class="code">mem x d</code> tests whether <code class="code">x</code> belongs to the domain <code class="code">d</code>.<br> </div> <pre><span class="keyword">val</span> <a name="VALincluded"></a>included : <code class="type"><a href="Fcl_setDomain.html#TYPEt">t</a> -> <a href="Fcl_setDomain.html#TYPEt">t</a> -> bool</code></pre><div class="info"> <code class="code">included d1 d2</code> tests whether the domain <code class="code">d1</code> is included in <code class="code">d2</code>, i.e. glb(<code class="code">d2</code>) included in glb(<code class="code">d1</code>) and lub(<code class="code">d1</code>) included in lub(<code class="code">d2</code>).<br> </div> <pre><span class="keyword">val</span> <a name="VALiter"></a>iter : <code class="type">(<a href="Fcl_setDomain.html#TYPEelt">elt</a> -> 'a) -> <a href="Fcl_setDomain.html#TYPEt">t</a> -> 'a</code></pre><div class="info"> Iteration on values of the domain. <b>Exponential</b> with the <code class="code">size</code> of the domain.<br> </div> <pre><span class="keyword">val</span> <a name="VALvalues"></a>values : <code class="type"><a href="Fcl_setDomain.html#TYPEt">t</a> -> <a href="Fcl_setDomain.html#TYPEelt">elt</a> list</code></pre><div class="info"> Returns values of a domain. <b>Exponential</b> with the <code class="code">size</code> of the domain.<br> </div> </body></html>