blob: eb0989e13f5fb7e33965a18adc0902b5540d481a [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>FdtSketch (datasketches-java 4.0.0 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.min.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="FdtSketch (datasketches-java 4.0.0 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":42,"i16":10,"i17":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/FdtSketch.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.datasketches.fdt</a></div>
<h2 title="Class FdtSketch" class="title">Class FdtSketch</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="../tuple/Sketch.html" title="class in org.apache.datasketches.tuple">org.apache.datasketches.tuple.Sketch</a>&lt;S&gt;</li>
<li>
<ul class="inheritance">
<li><a href="../tuple/UpdatableSketch.html" title="class in org.apache.datasketches.tuple">org.apache.datasketches.tuple.UpdatableSketch</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>[],&#8203;<a href="../tuple/strings/ArrayOfStringsSummary.html" title="class in org.apache.datasketches.tuple.strings">ArrayOfStringsSummary</a>&gt;</li>
<li>
<ul class="inheritance">
<li><a href="../tuple/strings/ArrayOfStringsSketch.html" title="class in org.apache.datasketches.tuple.strings">org.apache.datasketches.tuple.strings.ArrayOfStringsSketch</a></li>
<li>
<ul class="inheritance">
<li>org.apache.datasketches.fdt.FdtSketch</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<pre>public class <span class="typeNameLabel">FdtSketch</span>
extends <a href="../tuple/strings/ArrayOfStringsSketch.html" title="class in org.apache.datasketches.tuple.strings">ArrayOfStringsSketch</a></pre>
<div class="block">A Frequent Distinct Tuples sketch.
<p>Suppose our data is a stream of pairs {IP address, User ID} and we want to identify the
IP addresses that have the most distinct User IDs. Or conversely, we would like to identify
the User IDs that have the most distinct IP addresses. This is a common challenge in the
analysis of big data and the FDT sketch helps solve this problem using probabilistic techniques.
<p>More generally, given a multiset of tuples with dimensions <i>{d1,d2, d3, ..., dN}</i>,
and a primary subset of dimensions <i>M &lt; N</i>, our task is to identify the combinations of
<i>M</i> subset dimensions that have the most frequent number of distinct combinations of
the <i>N-M</i> non-primary dimensions.
<p>Please refer to the web page
<a href="https://datasketches.apache.org/docs/Frequency/FrequentDistinctTuplesSketch.html">
https://datasketches.apache.org/docs/Frequency/FrequentDistinctTuplesSketch.html</a> for a more
complete discussion about this sketch.</div>
<dl>
<dt><span class="simpleTagLabel">Author:</span></dt>
<dd>Lee Rhodes</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.org.apache.datasketches.tuple.Sketch">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.datasketches.tuple.<a href="../tuple/Sketch.html" title="class in org.apache.datasketches.tuple">Sketch</a></h3>
<code><a href="../tuple/Sketch.html#PREAMBLE_LONGS">PREAMBLE_LONGS</a>, <a href="../tuple/Sketch.html#summaryFactory_">summaryFactory_</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(double,double)">FdtSketch</a></span>&#8203;(double&nbsp;threshold,
double&nbsp;rse)</code></th>
<td class="colLast">
<div class="block">Create a new instance of Frequent Distinct Tuples sketch with a size determined by the given
threshold and rse.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int)">FdtSketch</a></span>&#8203;(int&nbsp;lgK)</code></th>
<td class="colLast">
<div class="block">Create new instance of Frequent Distinct Tuples sketch with the given
Log-base2 of required nominal entries.</div>
</td>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.apache.datasketches.fdt.FdtSketch)">FdtSketch</a></span>&#8203;(<a href="FdtSketch.html" title="class in org.apache.datasketches.fdt">FdtSketch</a>&nbsp;sketch)</code></th>
<td class="colLast">
<div class="block">Copy Constructor</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="../tuple/CompactSketch.html" title="class in org.apache.datasketches.tuple">CompactSketch</a>&lt;S&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#compact()">compact</a></span>()</code></th>
<td class="colLast">
<div class="block">Converts the current state of the sketch into a compact sketch</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="FdtSketch.html" title="class in org.apache.datasketches.fdt">FdtSketch</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#copy()">copy</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCountLessThanThetaLong(long)">getCountLessThanThetaLong</a></span>&#8203;(long&nbsp;thetaLong)</code></th>
<td class="colLast">
<div class="block">Gets the number of hash values less than the given theta expressed as a long.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCurrentCapacity()">getCurrentCapacity</a></span>()</code></th>
<td class="colLast">
<div class="block">Get current capacity</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLgK()">getLgK</a></span>()</code></th>
<td class="colLast">
<div class="block">Get log_base2 of Nominal Entries</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNominalEntries()">getNominalEntries</a></span>()</code></th>
<td class="colLast">
<div class="block">Get configured nominal number of entries</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="PostProcessor.html" title="class in org.apache.datasketches.fdt">PostProcessor</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPostProcessor()">getPostProcessor</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the PostProcessor that enables multiple queries against the sketch results.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="PostProcessor.html" title="class in org.apache.datasketches.fdt">PostProcessor</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPostProcessor(org.apache.datasketches.fdt.Group,char)">getPostProcessor</a></span>&#8203;(<a href="Group.html" title="class in org.apache.datasketches.fdt">Group</a>&nbsp;group,
char&nbsp;sep)</code></th>
<td class="colLast">
<div class="block">Returns the PostProcessor that enables multiple queries against the sketch results.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="../common/ResizeFactor.html" title="enum in org.apache.datasketches.common">ResizeFactor</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getResizeFactor()">getResizeFactor</a></span>()</code></th>
<td class="colLast">
<div class="block">Get configured resize factor</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="Group.html" title="class in org.apache.datasketches.fdt">Group</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getResult(int%5B%5D,int,int,char)">getResult</a></span>&#8203;(int[]&nbsp;priKeyIndices,
int&nbsp;limit,
int&nbsp;numStdDev,
char&nbsp;sep)</code></th>
<td class="colLast">
<div class="block">Returns an ordered List of Groups of the most frequent distinct population of subset tuples
represented by the count of entries of each group.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRetainedEntries()">getRetainedEntries</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>float</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSamplingProbability()">getSamplingProbability</a></span>()</code></th>
<td class="colLast">
<div class="block">Get configured sampling probability</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#insertSummary(int,S)">insertSummary</a></span>&#8203;(int&nbsp;index,
S&nbsp;summary)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="../tuple/TupleSketchIterator.html" title="class in org.apache.datasketches.tuple">TupleSketchIterator</a>&lt;S&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#iterator()">iterator</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a SketchIterator</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reset()">reset</a></span>()</code></th>
<td class="colLast">
<div class="block">Resets this sketch an empty state.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>byte[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toByteArray()">toByteArray</a></span>()</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">As of 3.0.0, serializing an UpdatableSketch is deprecated.</div>
</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#trim()">trim</a></span>()</code></th>
<td class="colLast">
<div class="block">Rebuilds reducing the actual number of entries to the nominal number of entries if needed</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#update(java.lang.String%5B%5D)">update</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>[]&nbsp;tuple)</code></th>
<td class="colLast">
<div class="block">Update the sketch with the given string array tuple.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.apache.datasketches.tuple.strings.ArrayOfStringsSketch">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.datasketches.tuple.strings.<a href="../tuple/strings/ArrayOfStringsSketch.html" title="class in org.apache.datasketches.tuple.strings">ArrayOfStringsSketch</a></h3>
<code><a href="../tuple/strings/ArrayOfStringsSketch.html#update(java.lang.String%5B%5D,java.lang.String%5B%5D)">update</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.apache.datasketches.tuple.UpdatableSketch">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.datasketches.tuple.<a href="../tuple/UpdatableSketch.html" title="class in org.apache.datasketches.tuple">UpdatableSketch</a></h3>
<code><a href="../tuple/UpdatableSketch.html#update(byte%5B%5D,U)">update</a>, <a href="../tuple/UpdatableSketch.html#update(double,U)">update</a>, <a href="../tuple/UpdatableSketch.html#update(int%5B%5D,U)">update</a>, <a href="../tuple/UpdatableSketch.html#update(long%5B%5D,U)">update</a>, <a href="../tuple/UpdatableSketch.html#update(long,U)">update</a>, <a href="../tuple/UpdatableSketch.html#update(java.lang.String,U)">update</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.apache.datasketches.tuple.Sketch">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.datasketches.tuple.<a href="../tuple/Sketch.html" title="class in org.apache.datasketches.tuple">Sketch</a></h3>
<code><a href="../tuple/Sketch.html#getEstimate()">getEstimate</a>, <a href="../tuple/Sketch.html#getEstimate(int)">getEstimate</a>, <a href="../tuple/Sketch.html#getLowerBound(int)">getLowerBound</a>, <a href="../tuple/Sketch.html#getLowerBound(int,int)">getLowerBound</a>, <a href="../tuple/Sketch.html#getSummaryFactory()">getSummaryFactory</a>, <a href="../tuple/Sketch.html#getTheta()">getTheta</a>, <a href="../tuple/Sketch.html#getThetaLong()">getThetaLong</a>, <a href="../tuple/Sketch.html#getUpperBound(int)">getUpperBound</a>, <a href="../tuple/Sketch.html#getUpperBound(int,int)">getUpperBound</a>, <a href="../tuple/Sketch.html#isEmpty()">isEmpty</a>, <a href="../tuple/Sketch.html#isEstimationMode()">isEstimationMode</a>, <a href="../tuple/Sketch.html#toString()">toString</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FdtSketch</h4>
<pre>public&nbsp;FdtSketch&#8203;(int&nbsp;lgK)</pre>
<div class="block">Create new instance of Frequent Distinct Tuples sketch with the given
Log-base2 of required nominal entries.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>lgK</code> - Log-base2 of required nominal entries.</dd>
</dl>
</li>
</ul>
<a id="&lt;init&gt;(double,double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FdtSketch</h4>
<pre>public&nbsp;FdtSketch&#8203;(double&nbsp;threshold,
double&nbsp;rse)</pre>
<div class="block">Create a new instance of Frequent Distinct Tuples sketch with a size determined by the given
threshold and rse.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>threshold</code> - : the fraction, between zero and 1.0, of the total distinct stream length
that defines a "Frequent" (or heavy) item.</dd>
<dd><code>rse</code> - the maximum Relative Standard Error for the estimate of the distinct population of a
reported tuple (selected with a primary key) at the threshold.</dd>
</dl>
</li>
</ul>
<a id="&lt;init&gt;(org.apache.datasketches.fdt.FdtSketch)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>FdtSketch</h4>
<pre>public&nbsp;FdtSketch&#8203;(<a href="FdtSketch.html" title="class in org.apache.datasketches.fdt">FdtSketch</a>&nbsp;sketch)</pre>
<div class="block">Copy Constructor</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sketch</code> - the sketch to copy</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="copy()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>copy</h4>
<pre class="methodSignature">public&nbsp;<a href="FdtSketch.html" title="class in org.apache.datasketches.fdt">FdtSketch</a>&nbsp;copy()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../tuple/strings/ArrayOfStringsSketch.html#copy()">copy</a></code>&nbsp;in class&nbsp;<code><a href="../tuple/strings/ArrayOfStringsSketch.html" title="class in org.apache.datasketches.tuple.strings">ArrayOfStringsSketch</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a deep copy of this sketch</dd>
</dl>
</li>
</ul>
<a id="update(java.lang.String[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>update</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;update&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>[]&nbsp;tuple)</pre>
<div class="block">Update the sketch with the given string array tuple.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>tuple</code> - the given string array tuple.</dd>
</dl>
</li>
</ul>
<a id="getResult(int[],int,int,char)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getResult</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="Group.html" title="class in org.apache.datasketches.fdt">Group</a>&gt;&nbsp;getResult&#8203;(int[]&nbsp;priKeyIndices,
int&nbsp;limit,
int&nbsp;numStdDev,
char&nbsp;sep)</pre>
<div class="block">Returns an ordered List of Groups of the most frequent distinct population of subset tuples
represented by the count of entries of each group.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>priKeyIndices</code> - these indices define the dimensions used for the Primary Keys.</dd>
<dd><code>limit</code> - the maximum number of groups to return. If this value is &le; 0, all
groups will be returned.</dd>
<dd><code>numStdDev</code> - the number of standard deviations for the upper and lower error bounds,
this value is an integer and must be one of 1, 2, or 3.
<a href="../../../../resources/dictionary.html#numStdDev">See Number of Standard Deviations</a></dd>
<dd><code>sep</code> - the separator character</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an ordered List of Groups of the most frequent distinct population of subset tuples
represented by the count of entries of each group.</dd>
</dl>
</li>
</ul>
<a id="getPostProcessor()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPostProcessor</h4>
<pre class="methodSignature">public&nbsp;<a href="PostProcessor.html" title="class in org.apache.datasketches.fdt">PostProcessor</a>&nbsp;getPostProcessor()</pre>
<div class="block">Returns the PostProcessor that enables multiple queries against the sketch results.
This assumes the default Group and the default separator character '|'.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the PostProcessor</dd>
</dl>
</li>
</ul>
<a id="getPostProcessor(org.apache.datasketches.fdt.Group,char)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPostProcessor</h4>
<pre class="methodSignature">public&nbsp;<a href="PostProcessor.html" title="class in org.apache.datasketches.fdt">PostProcessor</a>&nbsp;getPostProcessor&#8203;(<a href="Group.html" title="class in org.apache.datasketches.fdt">Group</a>&nbsp;group,
char&nbsp;sep)</pre>
<div class="block">Returns the PostProcessor that enables multiple queries against the sketch results.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>group</code> - the Group class to use during post processing.</dd>
<dd><code>sep</code> - the separator character.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the PostProcessor</dd>
</dl>
</li>
</ul>
<a id="getRetainedEntries()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRetainedEntries</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;getRetainedEntries()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../tuple/Sketch.html#getRetainedEntries()">getRetainedEntries</a></code>&nbsp;in class&nbsp;<code><a href="../tuple/Sketch.html" title="class in org.apache.datasketches.tuple">Sketch</a>&lt;S extends <a href="../tuple/Summary.html" title="interface in org.apache.datasketches.tuple">Summary</a>&gt;</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>number of retained entries</dd>
</dl>
</li>
</ul>
<a id="getCountLessThanThetaLong(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCountLessThanThetaLong</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;getCountLessThanThetaLong&#8203;(long&nbsp;thetaLong)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../tuple/Sketch.html#getCountLessThanThetaLong(long)">Sketch</a></code></span></div>
<div class="block">Gets the number of hash values less than the given theta expressed as a long.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../tuple/Sketch.html#getCountLessThanThetaLong(long)">getCountLessThanThetaLong</a></code>&nbsp;in class&nbsp;<code><a href="../tuple/Sketch.html" title="class in org.apache.datasketches.tuple">Sketch</a>&lt;S extends <a href="../tuple/Summary.html" title="interface in org.apache.datasketches.tuple">Summary</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>thetaLong</code> - the given theta as a long between zero and <i>Long.MAX_VALUE</i>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the number of hash values less than the given thetaLong.</dd>
</dl>
</li>
</ul>
<a id="getNominalEntries()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNominalEntries</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;getNominalEntries()</pre>
<div class="block">Get configured nominal number of entries</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>nominal number of entries</dd>
</dl>
</li>
</ul>
<a id="getLgK()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLgK</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;getLgK()</pre>
<div class="block">Get log_base2 of Nominal Entries</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>log_base2 of Nominal Entries</dd>
</dl>
</li>
</ul>
<a id="getSamplingProbability()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSamplingProbability</h4>
<pre class="methodSignature">public&nbsp;float&nbsp;getSamplingProbability()</pre>
<div class="block">Get configured sampling probability</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>sampling probability</dd>
</dl>
</li>
</ul>
<a id="getCurrentCapacity()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurrentCapacity</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;getCurrentCapacity()</pre>
<div class="block">Get current capacity</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>current capacity</dd>
</dl>
</li>
</ul>
<a id="getResizeFactor()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getResizeFactor</h4>
<pre class="methodSignature">public&nbsp;<a href="../common/ResizeFactor.html" title="enum in org.apache.datasketches.common">ResizeFactor</a>&nbsp;getResizeFactor()</pre>
<div class="block">Get configured resize factor</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>resize factor</dd>
</dl>
</li>
</ul>
<a id="trim()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>trim</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;trim()</pre>
<div class="block">Rebuilds reducing the actual number of entries to the nominal number of entries if needed</div>
</li>
</ul>
<a id="reset()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>reset</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;reset()</pre>
<div class="block">Resets this sketch an empty state.</div>
</li>
</ul>
<a id="compact()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>compact</h4>
<pre class="methodSignature">public&nbsp;<a href="../tuple/CompactSketch.html" title="class in org.apache.datasketches.tuple">CompactSketch</a>&lt;S&gt;&nbsp;compact()</pre>
<div class="block">Converts the current state of the sketch into a compact sketch</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../tuple/Sketch.html#compact()">compact</a></code>&nbsp;in class&nbsp;<code><a href="../tuple/Sketch.html" title="class in org.apache.datasketches.tuple">Sketch</a>&lt;S extends <a href="../tuple/Summary.html" title="interface in org.apache.datasketches.tuple">Summary</a>&gt;</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>compact sketch</dd>
</dl>
</li>
</ul>
<a id="toByteArray()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toByteArray</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
public&nbsp;byte[]&nbsp;toByteArray()</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">As of 3.0.0, serializing an UpdatableSketch is deprecated.
This capability will be removed in a future release.
Serializing a CompactSketch is not deprecated.</div>
</div>
<div class="block">This serializes an UpdatableSketch (QuickSelectSketch).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../tuple/Sketch.html#toByteArray()">toByteArray</a></code>&nbsp;in class&nbsp;<code><a href="../tuple/Sketch.html" title="class in org.apache.datasketches.tuple">Sketch</a>&lt;S extends <a href="../tuple/Summary.html" title="interface in org.apache.datasketches.tuple">Summary</a>&gt;</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>serialized representation of an UpdatableSketch (QuickSelectSketch).</dd>
</dl>
</li>
</ul>
<a id="insertSummary(int,org.apache.datasketches.tuple.Summary)">
<!-- -->
</a><a id="insertSummary(int,S)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>insertSummary</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;insertSummary&#8203;(int&nbsp;index,
S&nbsp;summary)</pre>
</li>
</ul>
<a id="iterator()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>iterator</h4>
<pre class="methodSignature">public&nbsp;<a href="../tuple/TupleSketchIterator.html" title="class in org.apache.datasketches.tuple">TupleSketchIterator</a>&lt;S&gt;&nbsp;iterator()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../tuple/Sketch.html#iterator()">Sketch</a></code></span></div>
<div class="block">Returns a SketchIterator</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../tuple/Sketch.html#iterator()">iterator</a></code>&nbsp;in class&nbsp;<code><a href="../tuple/Sketch.html" title="class in org.apache.datasketches.tuple">Sketch</a>&lt;S extends <a href="../tuple/Summary.html" title="interface in org.apache.datasketches.tuple">Summary</a>&gt;</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a SketchIterator</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/FdtSketch.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2015&#x2013;2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>