<html> <head> <link rel="stylesheet" href="style.css" type="text/css"> <link rel="Start" href="index.html"> <link rel="next" href="Var.BASICFD.html"> <link rel="Up" href="Var.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="Domain" rel="Chapter" href="Domain.html"> <link title="SetDomain" rel="Chapter" href="SetDomain.html"> <link title="Stak" rel="Chapter" href="Stak.html"> <link title="Data" rel="Chapter" href="Data.html"> <link title="Cstr" rel="Chapter" href="Cstr.html"> <link title="Var" rel="Chapter" href="Var.html"> <link title="Invariant" rel="Chapter" href="Invariant.html"> <link title="Reify" rel="Chapter" href="Reify.html"> <link title="Arith" rel="Chapter" href="Arith.html"> <link title="Conjunto" rel="Chapter" href="Conjunto.html"> <link title="Goals" rel="Chapter" href="Goals.html"> <link title="FdArray" rel="Chapter" href="FdArray.html"> <link title="Gcc" rel="Chapter" href="Gcc.html"> <link title="Alldiff" rel="Chapter" href="Alldiff.html"> <link title="Sorting" rel="Chapter" href="Sorting.html"> <link title="Interval" rel="Chapter" href="Interval.html"><title>Var.ATTR</title> </head> <body> <div class="navbar"> <a href="Var.html">Up</a> <a href="Var.BASICFD.html">Next</a> </div> <center><h1>Module type <a href="type_Var.ATTR.html">Var.ATTR</a></h1></center> <br> <pre><span class="keyword">module type</span> ATTR = <code class="code">sig</code> <a href="Var.ATTR.html">..</a> <code class="code">end</code></pre>Signature of the Attribute of a Domain Variable. A module endowed with this type is required to build finite domain variables. <code class="code">Domain</code> and <code class="code">SetDomain</code> are suitable domain modules.<br> <hr width="100%"> <pre><span class="keyword">type</span> <a name="TYPEt"></a><code class="type"></code>t </pre> <div class="info"> Type of attributes.<br> </div> <pre><span class="keyword">type</span> <a name="TYPEdomain"></a><code class="type"></code>domain </pre> <div class="info"> Type of domains stored in attributes.<br> </div> <pre><span class="keyword">type</span> <a name="TYPEelt"></a><code class="type"></code>elt </pre> <div class="info"> Type of element of domains.<br> </div> <pre><span class="keyword">type</span> <a name="TYPEevent"></a><code class="type"></code>event </pre> <div class="info"> Type of events (modifications on variables) on which to suspend.<br> </div> <pre><span class="keyword">val</span> <a name="VALdom"></a>dom : <code class="type"><a href="Var.ATTR.html#TYPEt">t</a> -> <a href="Var.ATTR.html#TYPEdomain">domain</a></code></pre><div class="info"> <code class="code">dom a</code> returns the integer domain of an attribute.<br> </div> <pre><span class="keyword">val</span> <a name="VALon_refine"></a>on_refine : <code class="type"><a href="Var.ATTR.html#TYPEevent">event</a></code></pre><div class="info"> Event occuring when a variable is changed, i.e. its domain modified.<br> </div> <pre><span class="keyword">val</span> <a name="VALon_subst"></a>on_subst : <code class="type"><a href="Var.ATTR.html#TYPEevent">event</a></code></pre><div class="info"> Event occuring when a variable is instantiated.<br> </div> <pre><span class="keyword">val</span> <a name="VALon_min"></a>on_min : <code class="type"><a href="Var.ATTR.html#TYPEevent">event</a></code></pre><pre><span class="keyword">val</span> <a name="VALon_max"></a>on_max : <code class="type"><a href="Var.ATTR.html#TYPEevent">event</a></code></pre><div class="info"> Event occuring when the lower (resp. upper) bound of a variable decreases.<br> </div> <pre><span class="keyword">val</span> <a name="VALfprint"></a>fprint : <code class="type">Pervasives.out_channel -> <a href="Var.ATTR.html#TYPEt">t</a> -> unit</code></pre><div class="info"> <code class="code">fprint chan a</code> prints attribute <code class="code">a</code> on channel <code class="code">chan</code>.<br> </div> <pre><span class="keyword">val</span> <a name="VALmin"></a>min : <code class="type"><a href="Var.ATTR.html#TYPEt">t</a> -> <a href="Var.ATTR.html#TYPEelt">elt</a></code></pre><pre><span class="keyword">val</span> <a name="VALmax"></a>max : <code class="type"><a href="Var.ATTR.html#TYPEt">t</a> -> <a href="Var.ATTR.html#TYPEelt">elt</a></code></pre><div class="info"> <code class="code">min a</code> (resp. <code class="code">max a</code>) returns the lower (resp. upper) bound of <code class="code">a</code>.<br> </div> <pre><span class="keyword">val</span> <a name="VALmember"></a>member : <code class="type"><a href="Var.ATTR.html#TYPEt">t</a> -> <a href="Var.ATTR.html#TYPEelt">elt</a> -> bool</code></pre><div class="info"> <code class="code">member a n</code> tests if <code class="code">n</code> belongs to <code class="code">dom a</code>.<br> </div> <pre><span class="keyword">val</span> <a name="VALid"></a>id : <code class="type"><a href="Var.ATTR.html#TYPEt">t</a> -> int</code></pre><div class="info"> <code class="code">id a</code> returns a unique integer identifying the attribute <code class="code">a</code>.<br> </div> <pre><span class="keyword">val</span> <a name="VALconstraints_number"></a>constraints_number : <code class="type"><a href="Var.ATTR.html#TYPEt">t</a> -> int</code></pre><div class="info"> <code class="code">constraints_number a</code> returns the number of different constraints attached to <code class="code">a</code>.<br> </div> <pre><span class="keyword">val</span> <a name="VALsize"></a>size : <code class="type"><a href="Var.ATTR.html#TYPEt">t</a> -> int</code></pre><div class="info"> <code class="code">size a</code> returns the number of integer values in the domain of <code class="code">a</code>.<br> </div> </body></html>