/usr/share/mozart/doc/system/node42.html is in mozart-doc 1.4.0-8ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>7.9 Distribution</TITLE><LINK href="ozdoc.css" rel="stylesheet" type="text/css"></HEAD><BODY><TABLE align="center" border="0" cellpadding="6" cellspacing="6" class="nav"><TR bgcolor="#DDDDDD"><TD><A href="node41.html#section.fs.reflection"><< Prev</A></TD><TD><A href="node33.html">- Up -</A></TD></TR></TABLE><DIV id="section.fs.distribution"><H2><A name="section.fs.distribution">7.9 Distribution</A></H2><P>Given a set <I>M</I>, let <IMG alt="{\it lowerBound}({\tt M})" src="latex152.png"> and <IMG alt="{\it
upperBound}({\tt M})" src="latex153.png"> denote the greatest lower bound and the least upper bound currently known for <I>M</I>. Also define <IMG alt="{\it unknown}({\tt M}) =
{\it upperBound}({\tt M}) \backslash {\it lowerBound}({\tt M})" src="latex154.png">. </P><DL><DT><A name="label449"></A> <CODE>distribute</CODE></DT><DD><BLOCKQUOTE class="synopsis"><P></P><BLOCKQUOTE class="code"><CODE>{FS<SPAN class="keyword">.</SPAN>distribute <SPAN class="keyword">+</SPAN>Dist <SPAN class="keyword">*</SPAN>Ms}</CODE></BLOCKQUOTE><P></P></BLOCKQUOTE></DD><DD><P>The vector <CODE>Ms</CODE> is distributed according to the specification <CODE>Dist</CODE>. The following values for <CODE>Dist</CODE> are supported: </P><UL><LI><P><CODE>naive</CODE> is equivalent to <CODE>generic</CODE>, i. e. the default settings apply.</P></LI><LI><P></P><BLOCKQUOTE class="code"><CODE>generic(order: <SPAN class="keyword">+</SPAN>Order <SPAN class="keyword"><=</SPAN> order<BR> filter: <SPAN class="keyword">+</SPAN>Filter <SPAN class="keyword"><=</SPAN> <SPAN class="keyword">true</SPAN> <BR> select: <SPAN class="keyword">+</SPAN>Select <SPAN class="keyword"><=</SPAN> id<BR> element: <SPAN class="keyword">+</SPAN>Element <SPAN class="keyword"><=</SPAN> element<BR> rrobin: <SPAN class="keyword">+</SPAN>RRobin <SPAN class="keyword"><=</SPAN> <SPAN class="keyword">false</SPAN> <BR> weights: <SPAN class="keyword">+</SPAN>Weights <SPAN class="keyword"><=</SPAN> {FS<SPAN class="keyword">.</SPAN>makeWeights nil}<BR> procedure:<SPAN class="keyword">+</SPAN>Proc <SPAN class="keyword"><=</SPAN> <SPAN class="keyword">proc</SPAN><SPAN class="variablename"> </SPAN>{<SPAN class="functionname">$</SPAN>} <SPAN class="keyword">skip</SPAN> <SPAN class="keyword">end</SPAN>)</CODE></BLOCKQUOTE><P> </P><UL><LI><P><CODE>Order</CODE> </P><UL><LI><P><CODE>naive</CODE> selects the left-most variable.</P></LI><LI><P></P><BLOCKQUOTE class="code"><CODE>order(sel: <SPAN class="keyword">+</SPAN>Sel <SPAN class="keyword"><=</SPAN> min<BR> cost: <SPAN class="keyword">+</SPAN>Cost <SPAN class="keyword"><=</SPAN> card <BR> comp: <SPAN class="keyword">+</SPAN>Comp <SPAN class="keyword"><=</SPAN> unknown)</CODE></BLOCKQUOTE><P> </P><UL><LI><P><CODE>Sel = min</CODE> selects the left-most variable <CODE>S</CODE> from <CODE>Ss</CODE> with the <EM>minimal</EM> cost according to <CODE>Cost</CODE>.</P></LI><LI><P><CODE>Sel = max</CODE> selects the left-most variable <CODE>S</CODE> from <CODE>Ss</CODE> with the <EM>maximal</EM> cost according to <CODE>Cost</CODE>.</P></LI><LI><P><CODE>Cost = card</CODE>: The cost is the cardinality of the set determined by <CODE>Comp</CODE>.</P></LI><LI><P><CODE>Cost = weightSum</CODE>: The cost is the <EM>sum</EM> of the weights associated with the elements of the set determined by <CODE>Comp</CODE>.</P></LI><LI><P><CODE>Cost = weightMin</CODE>: The cost is the <EM>minimal</EM> weight determined by <CODE>Comp</CODE>.</P></LI><LI><P><CODE>Cost = weightMax</CODE>: The cost is the <EM>maximal</EM> weight associated with an element of the set determined by <CODE>Comp</CODE>.</P></LI><LI><P><CODE>Comp = unknown</CODE> selects <IMG alt="{\it unknown}({\tt S})" src="latex155.png">. </P></LI><LI><P><CODE>Comp = lowerBound</CODE> selects <IMG alt="{\it lowerBound}({\tt S})" src="latex156.png">. </P></LI><LI><P><CODE>Comp = upperBound</CODE> selects <IMG alt="{\it upperBound}({\tt S})" src="latex157.png">. </P></LI></UL><P></P></LI><LI><P></P><BLOCKQUOTE class="code"><CODE><SPAN class="keyword">fun</SPAN><SPAN class="variablename"> </SPAN>{<SPAN class="functionname">Order</SPAN> <SPAN class="keyword">+</SPAN>Ss} <SPAN class="keyword">...</SPAN> <SPAN class="keyword">end</SPAN></CODE></BLOCKQUOTE><P></P></LI></UL><P></P></LI><LI><P><CODE>Filter</CODE> determines if an element <CODE>S</CODE> of <CODE>Ss</CODE> is choosen for distribution. That is the case if <CODE>{IsDet S</CODE>} <EM>and</EM> the filter yields <CODE><SPAN class="keyword">true</SPAN></CODE>. </P><UL><LI><P><CODE><SPAN class="keyword">true</SPAN></CODE> skips values in <CODE>Ss</CODE>.</P></LI><LI><P></P><BLOCKQUOTE class="code"><CODE><SPAN class="keyword">fun</SPAN><SPAN class="variablename"> </SPAN>{<SPAN class="functionname">Filter</SPAN> <SPAN class="keyword">+</SPAN>E} <SPAN class="keyword">...</SPAN> <SPAN class="keyword">end</SPAN></CODE></BLOCKQUOTE><P></P></LI></UL><P></P></LI><LI><P><CODE>Select</CODE> is used to access the actual finite set variable. Self-defined functions resp. procedures have to apply an appropriate selection function by themselves. </P><UL><LI><P><CODE>id</CODE> is the identity function. </P></LI><LI><P></P><BLOCKQUOTE class="code"><CODE><SPAN class="keyword">fun</SPAN><SPAN class="variablename"> </SPAN>{<SPAN class="functionname">Select</SPAN> <SPAN class="keyword">+</SPAN>E} <SPAN class="keyword">...</SPAN> <SPAN class="keyword">end</SPAN></CODE></BLOCKQUOTE><P></P></LI></UL><P></P></LI><LI><P><CODE>Element</CODE> </P><UL><LI><P></P><BLOCKQUOTE class="code"><CODE>element(sel: <SPAN class="keyword">+</SPAN>Sel <SPAN class="keyword"><=</SPAN> min<BR> wrt: <SPAN class="keyword">+</SPAN>Wrt <SPAN class="keyword"><=</SPAN> unknown) </CODE></BLOCKQUOTE><P> </P><UL><LI><P><CODE>Sel = min</CODE> selects the <EM>minimal</EM> element with respect to <CODE>Wrt</CODE>. </P></LI><LI><P><CODE>Sel = max</CODE> selects the <EM>maximal</EM> element with respect to <CODE>Wrt</CODE>. </P></LI><LI><P><CODE>Wrt = unknown</CODE> chooses an element from <IMG alt="{\it unknown}(S)" src="latex158.png">. and interprets it as an integer.</P></LI><LI><P><CODE>Wrt = weight</CODE> chooses an element from <IMG alt="{\it unknown}(S)" src="latex158.png"> and takes its weight as selection criterion.</P></LI></UL><P></P></LI><LI><P></P><BLOCKQUOTE class="code"><CODE><SPAN class="keyword">fun</SPAN><SPAN class="variablename"> </SPAN>{<SPAN class="functionname">Element</SPAN> <SPAN class="keyword">+</SPAN>E} <SPAN class="keyword">...</SPAN> <SPAN class="keyword">end</SPAN></CODE></BLOCKQUOTE><P></P></LI></UL><P></P></LI><LI><P><CODE>RRobin</CODE> </P><UL><LI><P><CODE><SPAN class="keyword">true</SPAN></CODE> causes the distribution to step through the variable list in a round-robin fashion.</P></LI><LI><P><CODE><SPAN class="keyword">false</SPAN></CODE> causes the distribution to completely enumerate the head of the variable list and then proceeds with the head of the tail of the variable list.</P></LI></UL><P></P></LI><LI><P><CODE>Weights</CODE> must be a list of the form <CODE>[E<SPAN class="keyword">#</SPAN>W <SPAN class="keyword">...</SPAN>]</CODE>. The variable <CODE>E</CODE> denotes an element and <CODE>W</CODE> the element's weight. An list element of the form <CODE>default<SPAN class="keyword">#</SPAN>W</CODE> assigns to all not explicitely mentioned elements the weight <CODE>W</CODE>. If there is no element <CODE>default<SPAN class="keyword">#</SPAN>W</CODE> then <CODE>default<SPAN class="keyword">#</SPAN>0</CODE> is implicitely added.</P></LI><LI><P><CODE>Proc</CODE> is applied when stability is reached. Since this application may cause instability, distribution is continued when stability is reached again.</P></LI></UL><P></P></LI></UL><P></P></DD></DL><P></P></DIV><TABLE align="center" border="0" cellpadding="6" cellspacing="6" class="nav"><TR bgcolor="#DDDDDD"><TD><A href="node41.html#section.fs.reflection"><< Prev</A></TD><TD><A href="node33.html">- Up -</A></TD></TR></TABLE><HR><ADDRESS><A href="http://www.ps.uni-sb.de/~duchier/">Denys Duchier</A>, <A href="http://www.ps.uni-sb.de/~kornstae/">Leif Kornstaedt</A>, <A href="http://www.ps.uni-sb.de/~homik/">Martin Homik</A>, <A href="http://www.ps.uni-sb.de/~tmueller/">Tobias Müller</A>, <A href="http://www.ps.uni-sb.de/~schulte/">Christian Schulte</A> and <A href="http://www.info.ucl.ac.be/~pvr">Peter Van Roy</A><BR><SPAN class="version">Version 1.4.0 (20110908185330)</SPAN></ADDRESS></BODY></HTML>
|