This is an automated email from the ASF dual-hosted git repository.

git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/datasketches-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 3962161  Automatic Site Publish by Buildbot
3962161 is described below

commit 3962161095814b03b7e4c7c76db28f22bf263ef7
Author: buildbot <[email protected]>
AuthorDate: Thu Dec 2 19:25:40 2021 +0000

    Automatic Site Publish by Buildbot
---
 output/docs/Theta/ThetaSetOpsCornerCases.html | 326 +++++++++++++++-----------
 1 file changed, 191 insertions(+), 135 deletions(-)

diff --git a/output/docs/Theta/ThetaSetOpsCornerCases.html 
b/output/docs/Theta/ThetaSetOpsCornerCases.html
index eee1d77..9e7d392 100644
--- a/output/docs/Theta/ThetaSetOpsCornerCases.html
+++ b/output/docs/Theta/ThetaSetOpsCornerCases.html
@@ -561,11 +561,22 @@
 <p>Here, the number of distinct inputs to the sketch have exceeded the size of 
the buffer, so the sketch must start choosing what values to retain in the 
sketch and starts reducing the value of <em>theta</em> accordingly. <em>theta 
&lt; 1.0</em>, <em>retained entries &gt; 0</em>, and <em>empty = F</em>.</p>
 
 <h3 id="degenerate10-0-f">Degenerate{&lt;1.0, 0, F}</h3>
-<p>This requires some explanation. Imagine the intersection of two estimating 
sketches where the values retained in the two sketches are disjoint (i.e, no 
overlap). Since the two sketches chose their internal values at random, there 
remains some probability that there could be common values in an exactly 
computed intersection, but it just so happens that one of the two sketches did 
not select any of them in the random sampling process. Therefore, the 
<em>retained entries = 0</em>.</p>
+<p>This requires some explanation.</p>
 
-<p>Even though the <em>retained entries = 0</em> the upper bound of the 
estimated number of distinct values in the input domain, but missed by the 
sketch, can be computed statistically. It is too complex to discuss here, but 
the sketch code actually performs this estimation.</p>
+<p>Imagine we have two large data sets, A and B, with only a few items in 
common. The exact intersection of these two sets, <em>A∩B</em> would result
+in those few common items.</p>
 
-<p>Since there is a non-zero probability of a non-empty intersection, 
<em>empty = F</em>. This is also a degenerate case in the sense that <em>theta 
&lt; 1.0</em> and <em>empty = F</em> like an estimating sketch, except that no 
actual values were found in the operation, so <em>retained entries = 0</em>.</p>
+<p>Now suppose we compute Sketch(A) and Sketch(B). Because sketches are 
approximate and the items from each set are chosen at random, 
+there is some probability that one of the sketches may not contain any of the 
common items. 
+As a result, the sketch intersection of these two sets, 
<em>Sketch(A)∩Sketch(B)</em>, which is also approximate, might contain zero 
retained entries. 
+Even though the retained entries is zero, the upper bound of the estimated 
number of distinct values from the input domain is clearly greater than zero, 
but missed by the sketch intersection. This upper bound can be computed 
statistically. It is too complex to discuss further here, but the sketch code 
actually performs this estimation.</p>
+
+<p>Where both input sketches are non-empty, there is a non-zero probability 
that the intersection will have zero entries, yet the statistics tells us that 
the result may
+not be really empty, we may have been just unlucky.  We indicate this by 
setting the result <em>empty = F</em>, and <em>retained entries = 0</em>. The 
resulting <em>theta = min(thetaA, thetaB)</em>. 
+Calling <em>getUpperBound(…)</em> on the resulting intersection will reveal 
the best estimate of how many values might exist in the intersection of the raw 
data. 
+The <em>getLowerBound(…)</em> will be zero because it is also possible that 
the two sets, A and B, were exactly disjoint.</p>
+
+<p>Note that this degenerate state can also result from an AnotB operation or 
the Union operation, which will be demonstrated below.</p>
 
 <h3 id="summary-table-of-the-valid-states-of-a-sketch">Summary Table of the 
Valid States of a Sketch</h3>
 <p>The <em>Has Seen Data</em> column is not an independent variable, but helps 
with the interpretation of the state.</p>
@@ -583,51 +594,51 @@
 <table>
   <thead>
     <tr>
-      <th style="text-align: center">Shorthand Notation</th>
-      <th style="text-align: center">theta</th>
-      <th style="text-align: center">retained entries</th>
-      <th style="text-align: center">empty</th>
-      <th style="text-align: center">Has Seen Data</th>
+      <th style="text-align: center">Shorthand<br />Notation</th>
+      <th style="text-align: center">Theta</th>
+      <th style="text-align: center">Retained<br />Entries</th>
+      <th style="text-align: center">Empty</th>
+      <th style="text-align: center">Has Seen<br />Data</th>
       <th style="text-align: center">ID</th>
-      <th style="text-align: center">Comments</th>
+      <th style="text-align: left">Comments</th>
     </tr>
   </thead>
   <tbody>
     <tr>
-      <td style="text-align: center">Empty {1.0,0,T}</td>
+      <td style="text-align: center">Empty<br />{1.0,0,T}</td>
       <td style="text-align: center">1.0</td>
       <td style="text-align: center">0</td>
       <td style="text-align: center">T</td>
       <td style="text-align: center">F</td>
       <td style="text-align: center">5</td>
-      <td style="text-align: center">Empty Sketch</td>
+      <td style="text-align: left">Empty Sketch</td>
     </tr>
     <tr>
-      <td style="text-align: center">Exact {1.0,&gt;0,F}</td>
+      <td style="text-align: center">Exact<br />{1.0,&gt;0,F}</td>
       <td style="text-align: center">1.0</td>
       <td style="text-align: center">&gt;0</td>
       <td style="text-align: center">F</td>
       <td style="text-align: center">T</td>
       <td style="text-align: center">6</td>
-      <td style="text-align: center">Exact Mode</td>
+      <td style="text-align: left">Exact Mode</td>
     </tr>
     <tr>
-      <td style="text-align: center">Estimation {&lt;1.0,&gt;0,F}</td>
+      <td style="text-align: center">Estimation<br />{&lt;1.0,&gt;0,F}</td>
       <td style="text-align: center">&lt;1.0</td>
       <td style="text-align: center">&gt;0</td>
       <td style="text-align: center">F</td>
       <td style="text-align: center">T</td>
       <td style="text-align: center">2</td>
-      <td style="text-align: center">Estimation Mode</td>
+      <td style="text-align: left">Estimation Mode</td>
     </tr>
     <tr>
-      <td style="text-align: center">Degenerate {&lt;1.0,0,F}<sup>3</sup></td>
+      <td style="text-align: center">Degenerate<br 
/>{&lt;1.0,0,F}<sup>3</sup></td>
       <td style="text-align: center">&lt;1.0</td>
       <td style="text-align: center">0</td>
       <td style="text-align: center">F</td>
       <td style="text-align: center">T</td>
       <td style="text-align: center">0</td>
-      <td style="text-align: center">Valid Intersect or AnotB result</td>
+      <td style="text-align: left">Valid Intersect<br />or AnotB result</td>
     </tr>
   </tbody>
 </table>
@@ -645,10 +656,10 @@
   <thead>
     <tr>
       <th style="text-align: center">Theta</th>
-      <th style="text-align: center">Retained Entries</th>
-      <th style="text-align: center">Empty Flag</th>
-      <th style="text-align: center">Has Seen Data</th>
-      <th style="text-align: center">Comments</th>
+      <th style="text-align: center">Retained<br />Entries</th>
+      <th style="text-align: center">Empty<br />Flag</th>
+      <th style="text-align: center">Has Seen<br />Data</th>
+      <th style="text-align: left">Comments</th>
     </tr>
   </thead>
   <tbody>
@@ -657,248 +668,293 @@
       <td style="text-align: center">0</td>
       <td style="text-align: center">F</td>
       <td style="text-align: center">T</td>
-      <td style="text-align: center">If it has seen data Empty = F; ∴ Theta 
cannot be = 1.0 AND Entries = 0</td>
+      <td style="text-align: left">If it has seen data Empty = F. <br />∴ 
Theta cannot be = 1.0 AND Entries = 0</td>
     </tr>
     <tr>
       <td style="text-align: center">1.0</td>
       <td style="text-align: center">&gt;0</td>
       <td style="text-align: center">T</td>
       <td style="text-align: center">F</td>
-      <td style="text-align: center">If it has not seen data Empty = T; ∴ 
Entries cannot be &gt; 0</td>
+      <td style="text-align: left">If it has not seen data Empty = T. <br />∴ 
Entries cannot be &gt; 0</td>
     </tr>
     <tr>
       <td style="text-align: center">&lt;1.0</td>
       <td style="text-align: center">&gt;0</td>
       <td style="text-align: center">T</td>
       <td style="text-align: center">F</td>
-      <td style="text-align: center">If it has not seen data, Empty = T; ∴ 
Theta cannot be &lt; 1.0 OR Entries &gt; 0</td>
+      <td style="text-align: left">If it has not seen data, Empty = T. <br />∴ 
Theta cannot be &lt; 1.0 OR Entries &gt; 0</td>
     </tr>
     <tr>
       <td style="text-align: center">&lt;1.0</td>
       <td style="text-align: center">0</td>
       <td style="text-align: center">T</td>
       <td style="text-align: center">F</td>
-      <td style="text-align: center">If it has not seen data, Empty = T; ∴ 
Theta cannot be &lt; 1.0</td>
+      <td style="text-align: left">If it has not seen data, Empty = T. <br />∴ 
Theta cannot be &lt; 1.0</td>
     </tr>
   </tbody>
 </table>
 
-<h2 id="combinations-of-states-of-two-sketches">Combinations of States of Two 
Sketches</h2>
+<h2 id="state-combinations-of-two-sketches-and-set-operation-results">State 
Combinations of Two Sketches and Set Operation Results</h2>
 <p>Each sketch can have four valid states, which means we can have 16 
combinations of states of two sketches as expanded in the following table.</p>
 
 <table>
   <thead>
     <tr>
-      <th style="text-align: center">ID</th>
-      <th style="text-align: center">Sketch A</th>
-      <th style="text-align: center">Sketch B</th>
-      <th style="text-align: center">Intersection Result</th>
-      <th style="text-align: center">AnotB Result</th>
-      <th style="text-align: center">Result Actions</th>
+      <th style="text-align: center">Sketch A<br />State</th>
+      <th style="text-align: center">Sketch B<br />State</th>
+      <th style="text-align: center">Pair<br />ID</th>
+      <th style="text-align: center">Intersection<br />Result</th>
+      <th style="text-align: center">AnotB<br />Result</th>
+      <th style="text-align: center">Union<br />Result</th>
+      <th style="text-align: center">Actions</th>
     </tr>
   </thead>
   <tbody>
     <tr>
+      <td style="text-align: center">Empty<br />{1.0,0,T}</td>
+      <td style="text-align: center">Empty<br />{1.0,0,T}</td>
       <td style="text-align: center">55</td>
-      <td style="text-align: center">Empty {1.0,0,T}</td>
-      <td style="text-align: center">Empty {1.0,0,T}</td>
-      <td style="text-align: center">Empty {1.0,0,T}</td>
-      <td style="text-align: center">Empty {1.0,0,T}</td>
-      <td style="text-align: center">1,1</td>
+      <td style="text-align: center">Empty<br />{1.0,0,T}=A=B</td>
+      <td style="text-align: center">Empty<br />{1.0,0,T}=A</td>
+      <td style="text-align: center">Empty<br />{1.0,0,T}=A=B</td>
+      <td style="text-align: center">E,E,E</td>
     </tr>
     <tr>
+      <td style="text-align: center">Empty<br />{1.0,0,T}</td>
+      <td style="text-align: center">Exact<br />{1.0,&gt;0,F}</td>
       <td style="text-align: center">56</td>
-      <td style="text-align: center">Empty {1.0,0,T}</td>
-      <td style="text-align: center">Exact {1.0,&gt;0,F}</td>
-      <td style="text-align: center">Empty {1.0,0,T}</td>
-      <td style="text-align: center">Empty {1.0,0,T}</td>
-      <td style="text-align: center">1,1</td>
+      <td style="text-align: center">Empty<br />{1.0,0,T}=A</td>
+      <td style="text-align: center">Empty<br />{1.0,0,T}=A</td>
+      <td style="text-align: center">Sketch B</td>
+      <td style="text-align: center">E,E,B</td>
     </tr>
     <tr>
+      <td style="text-align: center">Empty<br />{1.0,0,T}</td>
+      <td style="text-align: center">Estimation<br />{&lt;1.0,&gt;0,F}</td>
       <td style="text-align: center">52</td>
-      <td style="text-align: center">Empty {1.0,0,T}</td>
-      <td style="text-align: center">Estimation {&lt;1.0,&gt;0,F}</td>
-      <td style="text-align: center">Empty {1.0,0,T}</td>
-      <td style="text-align: center">Empty {1.0,0,T}</td>
-      <td style="text-align: center">1,1</td>
+      <td style="text-align: center">Empty<br />{1.0,0,T}=A</td>
+      <td style="text-align: center">Empty<br />{1.0,0,T}=A</td>
+      <td style="text-align: center">Sketch B</td>
+      <td style="text-align: center">E,E,B</td>
     </tr>
     <tr>
+      <td style="text-align: center">Empty<br />{1.0,0,T}</td>
+      <td style="text-align: center">Degenerate<br />{&lt;1.0,0,F}</td>
       <td style="text-align: center">50</td>
-      <td style="text-align: center">Empty {1.0,0,T}</td>
-      <td style="text-align: center">Degenerate {&lt;1.0,0,F}</td>
-      <td style="text-align: center">Empty {1.0,0,T}</td>
-      <td style="text-align: center">Empty {1.0,0,T}</td>
-      <td style="text-align: center">1,1</td>
+      <td style="text-align: center">Empty<br />{1.0,0,T}=A</td>
+      <td style="text-align: center">Empty<br />{1.0,0,T}=A</td>
+      <td style="text-align: center">Degenerate<br />{minTheta,0,F}=B</td>
+      <td style="text-align: center">E,E,D</td>
     </tr>
     <tr>
+      <td style="text-align: center">Exact<br />{1.0,&gt;0,F}</td>
+      <td style="text-align: center">Empty<br />{1.0,0,T}</td>
       <td style="text-align: center">65</td>
-      <td style="text-align: center">Exact {1.0,&gt;0,F}</td>
-      <td style="text-align: center">Empty {1.0,0,T}</td>
-      <td style="text-align: center">Empty {1.0,0,T}</td>
+      <td style="text-align: center">Empty<br />{1.0,0,T}=B</td>
+      <td style="text-align: center">Sketch A</td>
       <td style="text-align: center">Sketch A</td>
-      <td style="text-align: center">1,5</td>
+      <td style="text-align: center">E,A,A</td>
     </tr>
     <tr>
+      <td style="text-align: center">Exact<br />{1.0,&gt;0,F}</td>
+      <td style="text-align: center">Exact<br />{1.0,&gt;0,F}</td>
       <td style="text-align: center">66</td>
-      <td style="text-align: center">Exact {1.0,&gt;0,F}</td>
-      <td style="text-align: center">Exact {1.0,&gt;0,F}</td>
       <td style="text-align: center">Full Intersect</td>
       <td style="text-align: center">Full AnotB</td>
-      <td style="text-align: center">6,7</td>
+      <td style="text-align: center">Full Union</td>
+      <td style="text-align: center">I,N,U</td>
     </tr>
     <tr>
+      <td style="text-align: center">Exact<br />{1.0,&gt;0,F}</td>
+      <td style="text-align: center">Estimation<br />{&lt;1.0,&gt;0,F}</td>
       <td style="text-align: center">62</td>
-      <td style="text-align: center">Exact {1.0,&gt;0,F}</td>
-      <td style="text-align: center">Estimation {&lt;1.0,&gt;0,F}</td>
       <td style="text-align: center">Full Intersect</td>
       <td style="text-align: center">Full AnotB</td>
-      <td style="text-align: center">6,7</td>
+      <td style="text-align: center">Full Union</td>
+      <td style="text-align: center">I,N,U</td>
     </tr>
     <tr>
+      <td style="text-align: center">Exact<br />{1.0,&gt;0,F}</td>
+      <td style="text-align: center">Degenerate<br />{&lt;1.0,0,F}</td>
       <td style="text-align: center">60</td>
-      <td style="text-align: center">Exact {1.0,&gt;0,F}</td>
-      <td style="text-align: center">Degenerate {&lt;1.0,0,F}</td>
-      <td style="text-align: center">Degenerate {minTheta,0,F}</td>
-      <td style="text-align: center">Trim A by minTheta</td>
-      <td style="text-align: center">2,4</td>
+      <td style="text-align: center">Degenerate<br />{minTheta,0,F}=B</td>
+      <td style="text-align: center">Trim A<br />by minTheta</td>
+      <td style="text-align: center">Trim A<br />by minTheta</td>
+      <td style="text-align: center">D,AT,AT</td>
     </tr>
     <tr>
+      <td style="text-align: center">Estimation<br />{&lt;1.0,&gt;0,F}</td>
+      <td style="text-align: center">Empty<br />{1.0,0,T}</td>
       <td style="text-align: center">25</td>
-      <td style="text-align: center">Estimation {&lt;1.0,&gt;0,F}</td>
-      <td style="text-align: center">Empty {1.0,0,T}</td>
-      <td style="text-align: center">Empty {1.0,0,T}</td>
+      <td style="text-align: center">Empty<br />{1.0,0,T}=B</td>
+      <td style="text-align: center">Sketch A</td>
       <td style="text-align: center">Sketch A</td>
-      <td style="text-align: center">1,5</td>
+      <td style="text-align: center">E,A,A</td>
     </tr>
     <tr>
+      <td style="text-align: center">Estimation<br />{&lt;1.0,&gt;0,F}</td>
+      <td style="text-align: center">Exact<br />{1.0,&gt;0,F}</td>
       <td style="text-align: center">26</td>
-      <td style="text-align: center">Estimation {&lt;1.0,&gt;0,F}</td>
-      <td style="text-align: center">Exact {1.0,&gt;0,F}</td>
       <td style="text-align: center">Full Intersect</td>
       <td style="text-align: center">Full AnotB</td>
-      <td style="text-align: center">6,7</td>
+      <td style="text-align: center">Full Union</td>
+      <td style="text-align: center">I,N,U</td>
     </tr>
     <tr>
+      <td style="text-align: center">Estimation<br />{&lt;1.0,&gt;0,F}</td>
+      <td style="text-align: center">Estimation<br />{&lt;1.0,&gt;0,F}</td>
       <td style="text-align: center">22</td>
-      <td style="text-align: center">Estimation {&lt;1.0,&gt;0,F}</td>
-      <td style="text-align: center">Estimation {&lt;1.0,&gt;0,F}</td>
       <td style="text-align: center">Full Intersect</td>
       <td style="text-align: center">Full AnotB</td>
-      <td style="text-align: center">6,7</td>
+      <td style="text-align: center">Full Union</td>
+      <td style="text-align: center">I,N,U</td>
     </tr>
     <tr>
+      <td style="text-align: center">Estimation<br />{&lt;1.0,&gt;0,F}</td>
+      <td style="text-align: center">Degenerate<br />{&lt;1.0,0,F}</td>
       <td style="text-align: center">20</td>
-      <td style="text-align: center">Estimation {&lt;1.0,&gt;0,F}</td>
-      <td style="text-align: center">Degenerate {&lt;1.0,0,F}</td>
-      <td style="text-align: center">Degenerate {minTheta,0,F}</td>
-      <td style="text-align: center">Trim A by minTheta</td>
-      <td style="text-align: center">2,4</td>
+      <td style="text-align: center">Degenerate<br />{minTheta,0,F}</td>
+      <td style="text-align: center">Trim A<br />by minTheta</td>
+      <td style="text-align: center">Trim A<br />by minTheta</td>
+      <td style="text-align: center">D,AT,AT</td>
     </tr>
     <tr>
+      <td style="text-align: center">Degenerate<br />{&lt;1.0,0,F}</td>
+      <td style="text-align: center">Empty<br />{1.0,0,T}</td>
       <td style="text-align: center">05</td>
-      <td style="text-align: center">Degenerate {&lt;1.0,0,F}</td>
-      <td style="text-align: center">Empty {1.0,0,T}</td>
-      <td style="text-align: center">Empty {1.0,0,T}</td>
-      <td style="text-align: center">Degenerate {ThetaA,0,F}</td>
-      <td style="text-align: center">1,3</td>
+      <td style="text-align: center">Empty<br />{1.0,0,T}=B</td>
+      <td style="text-align: center">Degenerate<br />{minTheta,0,F}=A</td>
+      <td style="text-align: center">Degenerate<br />{minTheta,0,F}=A</td>
+      <td style="text-align: center">E,D,D</td>
     </tr>
     <tr>
+      <td style="text-align: center">Degenerate<br />{&lt;1.0,0,F}</td>
+      <td style="text-align: center">Exact<br />{1.0,&gt;0,F}</td>
       <td style="text-align: center">06</td>
-      <td style="text-align: center">Degenerate {&lt;1.0,0,F}</td>
-      <td style="text-align: center">Exact {1.0,&gt;0,F}</td>
-      <td style="text-align: center">Degenerate {minTheta,0,F}</td>
-      <td style="text-align: center">Degenerate {ThetaA,0,F}</td>
-      <td style="text-align: center">2,3</td>
+      <td style="text-align: center">Degenerate<br />{minTheta,0,F}=A</td>
+      <td style="text-align: center">Degenerate<br />{minTheta,0,F}=A</td>
+      <td style="text-align: center">Trim B<br />by minTheta</td>
+      <td style="text-align: center">D,D,BT</td>
     </tr>
     <tr>
+      <td style="text-align: center">Degenerate<br />{&lt;1.0,0,F}</td>
+      <td style="text-align: center">Estimation<br />{&lt;1.0,&gt;0,F}</td>
       <td style="text-align: center">02</td>
-      <td style="text-align: center">Degenerate {&lt;1.0,0,F}</td>
-      <td style="text-align: center">Estimation {&lt;1.0,&gt;0,F}</td>
-      <td style="text-align: center">Degenerate {minTheta,0,F}</td>
-      <td style="text-align: center">Degenerate {minTheta,0,F}</td>
-      <td style="text-align: center">2,2</td>
+      <td style="text-align: center">Degenerate<br />{minTheta,0,F}</td>
+      <td style="text-align: center">Degenerate<br />{minTheta,0,F}</td>
+      <td style="text-align: center">Trim B<br />by minTheta</td>
+      <td style="text-align: center">D,D,BT</td>
     </tr>
     <tr>
+      <td style="text-align: center">Degenerate<br />{&lt;1.0,0,F}</td>
+      <td style="text-align: center">Degenerate<br />{&lt;1.0,0,F}</td>
       <td style="text-align: center">00</td>
-      <td style="text-align: center">Degenerate {&lt;1.0,0,F}</td>
-      <td style="text-align: center">Degenerate {&lt;1.0,0,F}</td>
-      <td style="text-align: center">Degenerate {minTheta,0,F}</td>
-      <td style="text-align: center">Degenerate {minTheta,0,F}</td>
-      <td style="text-align: center">2,2</td>
+      <td style="text-align: center">Degenerate<br />{minTheta,0,F}</td>
+      <td style="text-align: center">Degenerate<br />{minTheta,0,F}</td>
+      <td style="text-align: center">Degenerate<br />{minTheta,0,F}</td>
+      <td style="text-align: center">D,D,D</td>
     </tr>
   </tbody>
 </table>
 
-<p>The description of each column:</p>
+<p><strong>Column Descriptions:</strong></p>
 
 <ul>
-  <li>ID: two octal digits, the first digit represents the state of Sketch A, 
the second digit represents the state of Sketch B.</li>
+  <li>Pair ID: two octal digits, the first digit represents the state of 
Sketch A, the second digit represents the state of Sketch B.</li>
   <li>Sketch A State</li>
   <li>Sketch B State</li>
   <li>Intersection Result</li>
   <li>AnotB Result</li>
-  <li>The ID of the Intersection Result followed by the ID of the AnotB 
result. The result codes are given by the following table:</li>
+  <li>Union Result</li>
+  <li>Action Codes: Intersection, AnotB, Union.</li>
 </ul>
 
+<p>The action codes are given by the following table along with description 
and where used:</p>
+
 <table>
   <thead>
     <tr>
-      <th style="text-align: center">Result Action</th>
-      <th style="text-align: center">Result ID</th>
-      <th style="text-align: center">Used by Intersection</th>
-      <th style="text-align: center">Used By AnotB</th>
+      <th style="text-align: center">Action</th>
+      <th style="text-align: center">Action Description</th>
+      <th style="text-align: center">Intersection</th>
+      <th style="text-align: center">AnotB</th>
+      <th style="text-align: center">Union</th>
     </tr>
   </thead>
   <tbody>
     <tr>
-      <td style="text-align: center">Empty{1.0,0,T}</td>
-      <td style="text-align: center">1</td>
-      <td style="text-align: center">Yes</td>
-      <td style="text-align: center">Yes</td>
+      <td style="text-align: center">A</td>
+      <td style="text-align: center">Sketch A</td>
+      <td style="text-align: center"> </td>
+      <td style="text-align: center">&amp;check;</td>
+      <td style="text-align: center">&amp;check;</td>
     </tr>
     <tr>
-      <td style="text-align: center">Degenerate{minTheta,0,F}</td>
-      <td style="text-align: center">2</td>
-      <td style="text-align: center">Yes</td>
-      <td style="text-align: center">Yes</td>
+      <td style="text-align: center">AT</td>
+      <td style="text-align: center">Sketch A trimmed by minTheta</td>
+      <td style="text-align: center"> </td>
+      <td style="text-align: center">&amp;check;</td>
+      <td style="text-align: center">&amp;check;</td>
     </tr>
     <tr>
-      <td style="text-align: center">Degenerate{thetaA,0,F}</td>
-      <td style="text-align: center">3</td>
+      <td style="text-align: center">B</td>
+      <td style="text-align: center">Sketch B</td>
+      <td style="text-align: center"> </td>
       <td style="text-align: center"> </td>
-      <td style="text-align: center">Yes</td>
+      <td style="text-align: center">&amp;check;</td>
     </tr>
     <tr>
-      <td style="text-align: center">Sketch A trimmed by minTheta</td>
-      <td style="text-align: center">4</td>
+      <td style="text-align: center">BT</td>
+      <td style="text-align: center">Sketch B trimmed by minTheta</td>
+      <td style="text-align: center"> </td>
       <td style="text-align: center"> </td>
-      <td style="text-align: center">Yes</td>
+      <td style="text-align: center">&amp;check;</td>
     </tr>
     <tr>
-      <td style="text-align: center">Sketch A</td>
-      <td style="text-align: center">5</td>
-      <td style="text-align: center"> </td>
-      <td style="text-align: center">Yes</td>
+      <td style="text-align: center">D</td>
+      <td style="text-align: center">Degenerate {minTheta,0,F}</td>
+      <td style="text-align: center">&amp;check;</td>
+      <td style="text-align: center">&amp;check;</td>
+      <td style="text-align: center">&amp;check;</td>
+    </tr>
+    <tr>
+      <td style="text-align: center">E</td>
+      <td style="text-align: center">Empty {1.0,0,T}</td>
+      <td style="text-align: center">&amp;check;</td>
+      <td style="text-align: center">&amp;check;</td>
+      <td style="text-align: center">&amp;check;</td>
     </tr>
     <tr>
+      <td style="text-align: center">I</td>
       <td style="text-align: center">Full Intersect</td>
-      <td style="text-align: center">6</td>
-      <td style="text-align: center">Yes</td>
+      <td style="text-align: center">&amp;check;</td>
+      <td style="text-align: center"> </td>
       <td style="text-align: center"> </td>
     </tr>
     <tr>
+      <td style="text-align: center">N</td>
       <td style="text-align: center">Full AnotB</td>
-      <td style="text-align: center">7</td>
       <td style="text-align: center"> </td>
-      <td style="text-align: center">Yes</td>
+      <td style="text-align: center">&amp;check;</td>
+      <td style="text-align: center"> </td>
+    </tr>
+    <tr>
+      <td style="text-align: center">U</td>
+      <td style="text-align: center">Full Union</td>
+      <td style="text-align: center"> </td>
+      <td style="text-align: center"> </td>
+      <td style="text-align: center">&amp;check;</td>
     </tr>
   </tbody>
 </table>
 
-<p>Note that the results of a <em>Full Intersect</em> or a <em>Full AnotB</em> 
will require further interpretation of the resulting state.
-For example, if the resulting sketch is <em>{1.0,0,?}</em>, then an 
<em>Empty{1.0,0,T}</em> is returned. 
-If the resulting sketch is <em>{&lt;1.0,0,?}</em> then a 
<em>Degenerate{&lt;1.0,0,F}</em> is returned.<br />
-Otherwise, the sketch returned will be an estimating or exact <em>{theta, 
&gt;0, F}</em>.</p>
+<p>Note that the results of a <em>Full Intersect</em>, <em>Full AnotB</em>, or 
<em>Full Union</em> will require further interpretation of the resulting state. 
For example:</p>
+
+<ul>
+  <li>For example, if the resulting sketch is <em>{1.0,0,?}</em>, then an 
<em>Empty{1.0,0,T}</em> is returned.</li>
+  <li>If the resulting sketch is <em>{&lt;1.0,0,?}</em> then a 
<em>Degenerate{&lt;1.0,0,F}</em> is returned.</li>
+  <li>Otherwise, the sketch returned will be an estimating <em>{minTheta, 
&gt;0, F}</em>, or exact <em>{1.0, &gt;0, F}</em>.</li>
+</ul>
 
 <h2 id="testing">Testing</h2>
 <p>The above information is encoded as a model into the special class <em><a 
href="https://github.com/apache/datasketches-java/blob/master/src/main/java/org.apache.datasketches.SetOperationCornerCases.java";>org.apache.datasketches.SetOperationsCornerCases</a></em>.
 This class is made up of enums and static methods to quickly determine for a 
sketch what actions to take based on the state of the input arguments. This 
model is independent of the implementation of the Theta Sketch, whether t [...]

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to