blob: 70cdb04992b7344aa9c0b3bd289a6b0cecfb180b [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>ReqSketch (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="ReqSketch (datasketches-java 4.0.0 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":9,"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":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":9,"i23":10,"i24":10,"i25":10,"i26":9,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete 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/ReqSketch.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><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&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>Constr&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.req</a></div>
<h2 title="Class ReqSketch" class="title">Class ReqSketch</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>org.apache.datasketches.req.ReqSketch</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="../quantilescommon/QuantilesAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesAPI</a></code>, <code><a href="../quantilescommon/QuantilesFloatsAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesFloatsAPI</a></code></dd>
</dl>
<hr>
<pre>public final class <span class="typeNameLabel">ReqSketch</span>
extends <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></pre>
<div class="block">This Relative Error Quantiles Sketch is the Java implementation based on the paper
"Relative Error Streaming Quantiles" by Graham Cormode, Zohar Karnin, Edo Liberty,
Justin Thaler, Pavel VeselĂ˝, and loosely derived from a Python prototype written by Pavel VeselĂ˝.
<p>Reference: https://arxiv.org/abs/2004.01668</p>
<p>This implementation differs from the algorithm described in the paper in the following:</p>
<ul>
<li>The algorithm requires no upper bound on the stream length.
Instead, each relative-compactor counts the number of compaction operations performed
so far (via variable state). Initially, the relative-compactor starts with INIT_NUMBER_OF_SECTIONS.
Each time the number of compactions (variable state) exceeds 2^{numSections - 1}, we double
numSections. Note that after merging the sketch with another one variable state may not correspond
to the number of compactions performed at a particular level, however, since the state variable
never exceeds the number of compactions, the guarantees of the sketch remain valid.</li>
<li>The size of each section (variable k and sectionSize in the code and parameter k in
the paper) is initialized with a number set by the user via variable k.
When the number of sections doubles, we decrease sectionSize by a factor of sqrt(2).
This is applied at each level separately. Thus, when we double the number of sections, the
nominal compactor size increases by a factor of approx. sqrt(2) (+/- rounding).</li>
<li>The merge operation here does not perform "special compactions", which are used in the paper
to allow for a tight mathematical analysis of the sketch.</li>
</ul>
<p>This implementation provides a number of capabilities not discussed in the paper or provided
in the Python prototype.</p>
<ul><li>The Python prototype only implemented high accuracy for low ranks. This implementation
provides the user with the ability to choose either high rank accuracy or low rank accuracy at
the time of sketch construction.</li>
<li>The Python prototype only implemented a comparison criterion of "INCLUSIVE". This implementation
allows the user to switch back and forth between the "INCLUSIVE" criterion and the "EXCLUSIVE" criterion.</li>
<li>This implementation provides extensive debug visibility into the operation of the sketch with
two levels of detail output. This is not only useful for debugging, but is a powerful tool to
help users understand how the sketch works.</li>
</ul></div>
<dl>
<dt><span class="simpleTagLabel">Author:</span></dt>
<dd>Edo Liberty, Pavel Vesely, Lee Rhodes</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../quantilescommon/QuantilesAPI.html" title="interface in org.apache.datasketches.quantilescommon"><code>QuantilesAPI</code></a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<ul class="blockList">
<li class="blockList"><a id="nested.classes.inherited.from.class.org.apache.datasketches.quantilescommon.QuantilesFloatsAPI">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.datasketches.quantilescommon.<a href="../quantilescommon/QuantilesFloatsAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesFloatsAPI</a></h3>
<code><a href="../quantilescommon/QuantilesFloatsAPI.FloatsPartitionBoundaries.html" title="class in org.apache.datasketches.quantilescommon">QuantilesFloatsAPI.FloatsPartitionBoundaries</a></code></li>
</ul>
</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="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></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></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>static <a href="ReqSketchBuilder.html" title="class in org.apache.datasketches.req">ReqSketchBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#builder()">builder</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a new ReqSketchBuilder</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>double[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCDF(float%5B%5D,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">getCDF</a></span>&#8203;(float[]&nbsp;splitPoints,
<a href="../quantilescommon/QuantileSearchCriteria.html" title="enum in org.apache.datasketches.quantilescommon">QuantileSearchCriteria</a>&nbsp;searchCrit)</code></th>
<td class="colLast">
<div class="block">Returns an approximation to the Cumulative Distribution Function (CDF) of the input stream
as a monotonically increasing array of double ranks (or cumulative probabilities) on the interval [0.0, 1.0],
given a set of splitPoints.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getHighRankAccuracyMode()">getHighRankAccuracyMode</a></span>()</code></th>
<td class="colLast">
<div class="block">If true, the high ranks are prioritized for better accuracy.</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="#getK()">getK</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets the user configured parameter k, which controls the accuracy of the sketch
and its memory space usage.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>float</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMaxItem()">getMaxItem</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the maximum item of the stream.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>float</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMinItem()">getMinItem</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the minimum item of the stream.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getN()">getN</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets the length of the input stream.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNumRetained()">getNumRetained</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets the number of quantiles retained by the sketch.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="../quantilescommon/QuantilesFloatsAPI.FloatsPartitionBoundaries.html" title="class in org.apache.datasketches.quantilescommon">QuantilesFloatsAPI.FloatsPartitionBoundaries</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPartitionBoundaries(int,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">getPartitionBoundaries</a></span>&#8203;(int&nbsp;numEquallyWeighted,
<a href="../quantilescommon/QuantileSearchCriteria.html" title="enum in org.apache.datasketches.quantilescommon">QuantileSearchCriteria</a>&nbsp;searchCrit)</code></th>
<td class="colLast">
<div class="block">This method returns an instance of <a href="../quantilescommon/QuantilesFloatsAPI.FloatsPartitionBoundaries.html" title="class in org.apache.datasketches.quantilescommon"><code>FloatsPartitionBoundaries</code></a> which provides
sufficient information for the user to create the given number of equally weighted partitions.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>double[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPMF(float%5B%5D,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">getPMF</a></span>&#8203;(float[]&nbsp;splitPoints,
<a href="../quantilescommon/QuantileSearchCriteria.html" title="enum in org.apache.datasketches.quantilescommon">QuantileSearchCriteria</a>&nbsp;searchCrit)</code></th>
<td class="colLast">
<div class="block">Returns an approximation to the Probability Mass Function (PMF) of the input stream
as an array of probability masses as doubles on the interval [0.0, 1.0],
given a set of splitPoints.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>float</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getQuantile(double,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">getQuantile</a></span>&#8203;(double&nbsp;normRank,
<a href="../quantilescommon/QuantileSearchCriteria.html" title="enum in org.apache.datasketches.quantilescommon">QuantileSearchCriteria</a>&nbsp;searchCrit)</code></th>
<td class="colLast">
<div class="block">Gets the approximate quantile of the given normalized rank and the given search criterion.</div>
</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="#getQuantileLowerBound(double)">getQuantileLowerBound</a></span>&#8203;(double&nbsp;rank)</code></th>
<td class="colLast">
<div class="block">Gets the lower bound of the quantile confidence interval in which the quantile of the
given rank exists.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>float</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getQuantileLowerBound(double,int)">getQuantileLowerBound</a></span>&#8203;(double&nbsp;rank,
int&nbsp;numStdDev)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>float[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getQuantiles(double%5B%5D,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">getQuantiles</a></span>&#8203;(double[]&nbsp;normRanks,
<a href="../quantilescommon/QuantileSearchCriteria.html" title="enum in org.apache.datasketches.quantilescommon">QuantileSearchCriteria</a>&nbsp;searchCrit)</code></th>
<td class="colLast">
<div class="block">Gets an array of quantiles from the given array of normalized ranks.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>float</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getQuantileUpperBound(double)">getQuantileUpperBound</a></span>&#8203;(double&nbsp;rank)</code></th>
<td class="colLast">
<div class="block">Gets the upper bound of the quantile confidence interval in which the true quantile of the
given rank exists.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>float</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getQuantileUpperBound(double,int)">getQuantileUpperBound</a></span>&#8203;(double&nbsp;rank,
int&nbsp;numStdDev)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRank(float,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">getRank</a></span>&#8203;(float&nbsp;quantile,
<a href="../quantilescommon/QuantileSearchCriteria.html" title="enum in org.apache.datasketches.quantilescommon">QuantileSearchCriteria</a>&nbsp;searchCrit)</code></th>
<td class="colLast">
<div class="block">Gets the normalized rank corresponding to the given a quantile.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRankLowerBound(double)">getRankLowerBound</a></span>&#8203;(double&nbsp;rank)</code></th>
<td class="colLast">
<div class="block">Gets the lower bound of the rank confidence interval in which the true rank of the
given rank exists.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRankLowerBound(double,int)">getRankLowerBound</a></span>&#8203;(double&nbsp;rank,
int&nbsp;numStdDev)</code></th>
<td class="colLast">
<div class="block">Gets an approximate lower bound rank of the given normalized rank.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>double[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRanks(float%5B%5D,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">getRanks</a></span>&#8203;(float[]&nbsp;quantiles,
<a href="../quantilescommon/QuantileSearchCriteria.html" title="enum in org.apache.datasketches.quantilescommon">QuantileSearchCriteria</a>&nbsp;searchCrit)</code></th>
<td class="colLast">
<div class="block">Gets an array of normalized ranks corresponding to the given array of quantiles and the given
search criterion.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRankUpperBound(double)">getRankUpperBound</a></span>&#8203;(double&nbsp;rank)</code></th>
<td class="colLast">
<div class="block">Gets the upper bound of the rank confidence interval in which the true rank of the
given rank exists.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRankUpperBound(double,int)">getRankUpperBound</a></span>&#8203;(double&nbsp;rank,
int&nbsp;numStdDev)</code></th>
<td class="colLast">
<div class="block">Gets an approximate upper bound rank of the given rank.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>static double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRSE(int,double,boolean,long)">getRSE</a></span>&#8203;(int&nbsp;k,
double&nbsp;rank,
boolean&nbsp;hra,
long&nbsp;totalN)</code></th>
<td class="colLast">
<div class="block">Returns an a priori estimate of relative standard error (RSE, expressed as a number in [0,1]).</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSerializedSizeBytes()">getSerializedSizeBytes</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the current number of bytes this Sketch would require if serialized.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code><a href="../quantilescommon/FloatsSortedView.html" title="interface in org.apache.datasketches.quantilescommon">FloatsSortedView</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSortedView()">getSortedView</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets the sorted view of this sketch</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasMemory()">hasMemory</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns true if this sketch's data structure is backed by Memory or WritableMemory.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>static <a href="ReqSketch.html" title="class in org.apache.datasketches.req">ReqSketch</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#heapify(org.apache.datasketches.memory.Memory)">heapify</a></span>&#8203;(org.apache.datasketches.memory.Memory&nbsp;mem)</code></th>
<td class="colLast">
<div class="block">Returns an ReqSketch on the heap from a Memory image of the sketch.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isDirect()">isDirect</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns true if this sketch's data structure is off-heap (a.k.a., Direct or Native memory).</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isEmpty()">isEmpty</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns true if this sketch is empty.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isEstimationMode()">isEstimationMode</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns true if this sketch is in estimation mode.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isReadOnly()">isReadOnly</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns true if this sketch is read only.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code><a href="../quantilescommon/QuantilesFloatsSketchIterator.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesFloatsSketchIterator</a></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">Gets the iterator for this sketch, which is not sorted.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code><a href="ReqSketch.html" title="class in org.apache.datasketches.req">ReqSketch</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#merge(org.apache.datasketches.req.ReqSketch)">merge</a></span>&#8203;(<a href="ReqSketch.html" title="class in org.apache.datasketches.req">ReqSketch</a>&nbsp;other)</code></th>
<td class="colLast">
<div class="block">Merge other sketch into this one.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<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 to the empty state.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<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">Returns a byte array representation of this sketch.</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code><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></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a summary of the key parameters of the sketch.</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#update(float)">update</a></span>&#8203;(float&nbsp;item)</code></th>
<td class="colLast">
<div class="block">Updates this sketch with the given item.</div>
</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code><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></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#viewCompactorDetail(java.lang.String,boolean)">viewCompactorDetail</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;fmt,
boolean&nbsp;allData)</code></th>
<td class="colLast">
<div class="block">A detailed, human readable view of the sketch compactors and their data.</div>
</td>
</tr>
</table>
<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>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.apache.datasketches.quantilescommon.QuantilesFloatsAPI">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.datasketches.quantilescommon.<a href="../quantilescommon/QuantilesFloatsAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesFloatsAPI</a></h3>
<code><a href="../quantilescommon/QuantilesFloatsAPI.html#getCDF(float%5B%5D)">getCDF</a>, <a href="../quantilescommon/QuantilesFloatsAPI.html#getPartitionBoundaries(int)">getPartitionBoundaries</a>, <a href="../quantilescommon/QuantilesFloatsAPI.html#getPMF(float%5B%5D)">getPMF</a>, <a href="../quantilescommon/QuantilesFloatsAPI.html#getQuantile(double)">getQuantile</a>, <a href="../quantilescommon/QuantilesFloatsAPI.html#getQuantiles(double%5B%5D)">getQuantiles</a>, <a href="../quantilescommon/QuantilesFloatsAPI.html#getRank(float)">getRank</a>, <a href="../quantilescommon/QuantilesFloatsAPI.html#getRanks(float%5B%5D)">getRanks</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="builder()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>builder</h4>
<pre class="methodSignature">public static final&nbsp;<a href="ReqSketchBuilder.html" title="class in org.apache.datasketches.req">ReqSketchBuilder</a>&nbsp;builder()</pre>
<div class="block">Returns a new ReqSketchBuilder</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new ReqSketchBuilder</dd>
</dl>
</li>
</ul>
<a id="heapify(org.apache.datasketches.memory.Memory)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>heapify</h4>
<pre class="methodSignature">public static&nbsp;<a href="ReqSketch.html" title="class in org.apache.datasketches.req">ReqSketch</a>&nbsp;heapify&#8203;(org.apache.datasketches.memory.Memory&nbsp;mem)</pre>
<div class="block">Returns an ReqSketch on the heap from a Memory image of the sketch.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mem</code> - The Memory object holding a valid image of an ReqSketch</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an ReqSketch on the heap from a Memory image of the sketch.</dd>
</dl>
</li>
</ul>
<a id="getK()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getK</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;getK()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../quantilescommon/QuantilesAPI.html#getK()">QuantilesAPI</a></code></span></div>
<div class="block">Gets the user configured parameter k, which controls the accuracy of the sketch
and its memory space usage.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../quantilescommon/QuantilesAPI.html#getK()">getK</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesAPI</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the user configured parameter k, which controls the accuracy of the sketch
and its memory space usage.</dd>
</dl>
</li>
</ul>
<a id="getCDF(float[],org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCDF</h4>
<pre class="methodSignature">public&nbsp;double[]&nbsp;getCDF&#8203;(float[]&nbsp;splitPoints,
<a href="../quantilescommon/QuantileSearchCriteria.html" title="enum in org.apache.datasketches.quantilescommon">QuantileSearchCriteria</a>&nbsp;searchCrit)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../quantilescommon/QuantilesFloatsAPI.html#getCDF(float%5B%5D,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">QuantilesFloatsAPI</a></code></span></div>
<div class="block">Returns an approximation to the Cumulative Distribution Function (CDF) of the input stream
as a monotonically increasing array of double ranks (or cumulative probabilities) on the interval [0.0, 1.0],
given a set of splitPoints.
<p>The resulting approximations have a probabilistic guarantee that can be obtained from the
getNormalizedRankError(false) function.</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../quantilescommon/QuantilesFloatsAPI.html#getCDF(float%5B%5D,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">getCDF</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesFloatsAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesFloatsAPI</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>splitPoints</code> - an array of <i>m</i> unique, monotonically increasing items
(of the same type as the input items)
that divide the item input domain into <i>m+1</i> overlapping intervals.
<p>The start of each interval is below the lowest item retained by the sketch
corresponding to a zero rank or zero probability, and the end of the interval
is the rank or cumulative probability corresponding to the split point.</p>
<p>The <i>(m+1)th</i> interval represents 100% of the distribution represented by the sketch
and consistent with the definition of a cumulative probability distribution, thus the <i>(m+1)th</i>
rank or probability in the returned array is always 1.0.</p>
<p>If a split point exactly equals a retained item of the sketch and the search criterion is:</p>
<ul>
<li>INCLUSIVE, the resulting cumulative probability will include that item.</li>
<li>EXCLUSIVE, the resulting cumulative probability will not include the weight of that split point.</li>
</ul>
<p>It is not recommended to include either the minimum or maximum items of the input stream.</p></dd>
<dd><code>searchCrit</code> - the desired search criteria.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a discrete CDF array of m+1 double ranks (or cumulative probabilities) on the interval [0.0, 1.0].</dd>
</dl>
</li>
</ul>
<a id="getHighRankAccuracyMode()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getHighRankAccuracyMode</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;getHighRankAccuracyMode()</pre>
<div class="block">If true, the high ranks are prioritized for better accuracy. Otherwise
the low ranks are prioritized for better accuracy. This state is chosen during sketch
construction.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the high ranks accuracy state.</dd>
</dl>
</li>
</ul>
<a id="getMaxItem()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMaxItem</h4>
<pre class="methodSignature">public&nbsp;float&nbsp;getMaxItem()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../quantilescommon/QuantilesFloatsAPI.html#getMaxItem()">QuantilesFloatsAPI</a></code></span></div>
<div class="block">Returns the maximum item of the stream. This is provided for convenience, but may be different from the largest
item retained by the sketch algorithm.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../quantilescommon/QuantilesFloatsAPI.html#getMaxItem()">getMaxItem</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesFloatsAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesFloatsAPI</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the maximum item of the stream</dd>
</dl>
</li>
</ul>
<a id="getMinItem()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMinItem</h4>
<pre class="methodSignature">public&nbsp;float&nbsp;getMinItem()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../quantilescommon/QuantilesFloatsAPI.html#getMinItem()">QuantilesFloatsAPI</a></code></span></div>
<div class="block">Returns the minimum item of the stream. This is provided for convenience, but is distinct from the smallest
item retained by the sketch algorithm.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../quantilescommon/QuantilesFloatsAPI.html#getMinItem()">getMinItem</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesFloatsAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesFloatsAPI</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the minimum item of the stream</dd>
</dl>
</li>
</ul>
<a id="getN()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getN</h4>
<pre class="methodSignature">public&nbsp;long&nbsp;getN()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../quantilescommon/QuantilesAPI.html#getN()">QuantilesAPI</a></code></span></div>
<div class="block">Gets the length of the input stream.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../quantilescommon/QuantilesAPI.html#getN()">getN</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesAPI</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the length of the input stream.</dd>
</dl>
</li>
</ul>
<a id="getPMF(float[],org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPMF</h4>
<pre class="methodSignature">public&nbsp;double[]&nbsp;getPMF&#8203;(float[]&nbsp;splitPoints,
<a href="../quantilescommon/QuantileSearchCriteria.html" title="enum in org.apache.datasketches.quantilescommon">QuantileSearchCriteria</a>&nbsp;searchCrit)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../quantilescommon/QuantilesFloatsAPI.html#getPMF(float%5B%5D,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">QuantilesFloatsAPI</a></code></span></div>
<div class="block">Returns an approximation to the Probability Mass Function (PMF) of the input stream
as an array of probability masses as doubles on the interval [0.0, 1.0],
given a set of splitPoints.
<p>The resulting approximations have a probabilistic guarantee that can be obtained from the
getNormalizedRankError(true) function.</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../quantilescommon/QuantilesFloatsAPI.html#getPMF(float%5B%5D,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">getPMF</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesFloatsAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesFloatsAPI</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>splitPoints</code> - an array of <i>m</i> unique, monotonically increasing items
(of the same type as the input items)
that divide the item input domain into <i>m+1</i> consecutive, non-overlapping intervals.
<p>Each interval except for the end intervals starts with a split point and ends with the next split
point in sequence.</p>
<p>The first interval starts below the lowest item retained by the sketch
corresponding to a zero rank or zero probability, and ends with the first split point</p>
<p>The last <i>(m+1)th</i> interval starts with the last split point and ends after the last
item retained by the sketch corresponding to a rank or probability of 1.0. </p>
<p>The sum of the probability masses of all <i>(m+1)</i> intervals is 1.0.</p>
<p>If the search criterion is:</p>
<ul>
<li>INCLUSIVE, and the upper split point of an interval equals an item retained by the sketch, the interval
will include that item. If the lower split point equals an item retained by the sketch, the interval will exclude
that item.</li>
<li>EXCLUSIVE, and the upper split point of an interval equals an item retained by the sketch, the interval
will exclude that item. If the lower split point equals an item retained by the sketch, the interval will include
that item.</li>
</ul>
<p>It is not recommended to include either the minimum or maximum items of the input stream.</p></dd>
<dd><code>searchCrit</code> - the desired search criteria.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a PMF array of m+1 probability masses as doubles on the interval [0.0, 1.0].</dd>
</dl>
</li>
</ul>
<a id="getQuantile(double,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getQuantile</h4>
<pre class="methodSignature">public&nbsp;float&nbsp;getQuantile&#8203;(double&nbsp;normRank,
<a href="../quantilescommon/QuantileSearchCriteria.html" title="enum in org.apache.datasketches.quantilescommon">QuantileSearchCriteria</a>&nbsp;searchCrit)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../quantilescommon/QuantilesFloatsAPI.html#getQuantile(double,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">QuantilesFloatsAPI</a></code></span></div>
<div class="block">Gets the approximate quantile of the given normalized rank and the given search criterion.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../quantilescommon/QuantilesFloatsAPI.html#getQuantile(double,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">getQuantile</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesFloatsAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesFloatsAPI</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>normRank</code> - the given normalized rank, a double in the range [0.0, 1.0].</dd>
<dd><code>searchCrit</code> - If INCLUSIVE, the given rank includes all quantiles &le;
the quantile directly corresponding to the given rank.
If EXCLUSIVE, he given rank includes all quantiles &lt;
the quantile directly corresponding to the given rank.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the approximate quantile given the normalized rank.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../quantilescommon/QuantileSearchCriteria.html" title="enum in org.apache.datasketches.quantilescommon"><code>QuantileSearchCriteria</code></a></dd>
</dl>
</li>
</ul>
<a id="getQuantiles(double[],org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getQuantiles</h4>
<pre class="methodSignature">public&nbsp;float[]&nbsp;getQuantiles&#8203;(double[]&nbsp;normRanks,
<a href="../quantilescommon/QuantileSearchCriteria.html" title="enum in org.apache.datasketches.quantilescommon">QuantileSearchCriteria</a>&nbsp;searchCrit)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../quantilescommon/QuantilesFloatsAPI.html#getQuantiles(double%5B%5D,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">QuantilesFloatsAPI</a></code></span></div>
<div class="block">Gets an array of quantiles from the given array of normalized ranks.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../quantilescommon/QuantilesFloatsAPI.html#getQuantiles(double%5B%5D,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">getQuantiles</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesFloatsAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesFloatsAPI</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>normRanks</code> - the given array of normalized ranks, each of which must be
in the interval [0.0,1.0].</dd>
<dd><code>searchCrit</code> - if INCLUSIVE, the given ranks include all quantiles &le;
the quantile directly corresponding to each rank.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an array of quantiles corresponding to the given array of normalized ranks.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../quantilescommon/QuantileSearchCriteria.html" title="enum in org.apache.datasketches.quantilescommon"><code>QuantileSearchCriteria</code></a></dd>
</dl>
</li>
</ul>
<a id="getQuantileLowerBound(double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getQuantileLowerBound</h4>
<pre class="methodSignature">public&nbsp;float&nbsp;getQuantileLowerBound&#8203;(double&nbsp;rank)</pre>
<div class="block">Gets the lower bound of the quantile confidence interval in which the quantile of the
given rank exists.
<p>Although it is possible to estimate the probablity that the true quantile
exists within the quantile confidence interval specified by the upper and lower quantile bounds,
it is not possible to guarantee the width of the quantile confidence interval
as an additive or multiplicative percent of the true quantile.</p>
The approximate probability that the true quantile is within the confidence interval
specified by the upper and lower quantile bounds for this sketch is 0.95.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../quantilescommon/QuantilesFloatsAPI.html#getQuantileLowerBound(double)">getQuantileLowerBound</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesFloatsAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesFloatsAPI</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rank</code> - the given normalized rank</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the lower bound of the quantile confidence interval in which the quantile of the
given rank exists.</dd>
</dl>
</li>
</ul>
<a id="getQuantileLowerBound(double,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getQuantileLowerBound</h4>
<pre class="methodSignature">public&nbsp;float&nbsp;getQuantileLowerBound&#8203;(double&nbsp;rank,
int&nbsp;numStdDev)</pre>
</li>
</ul>
<a id="getQuantileUpperBound(double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getQuantileUpperBound</h4>
<pre class="methodSignature">public&nbsp;float&nbsp;getQuantileUpperBound&#8203;(double&nbsp;rank)</pre>
<div class="block">Gets the upper bound of the quantile confidence interval in which the true quantile of the
given rank exists.
<p>Although it is possible to estimate the probablity that the true quantile
exists within the quantile confidence interval specified by the upper and lower quantile bounds,
it is not possible to guarantee the width of the quantile interval
as an additive or multiplicative percent of the true quantile.</p>
The approximate probability that the true quantile is within the confidence interval
specified by the upper and lower quantile bounds for this sketch is 0.95.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../quantilescommon/QuantilesFloatsAPI.html#getQuantileUpperBound(double)">getQuantileUpperBound</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesFloatsAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesFloatsAPI</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rank</code> - the given normalized rank</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the upper bound of the quantile confidence interval in which the true quantile of the
given rank exists.</dd>
</dl>
</li>
</ul>
<a id="getQuantileUpperBound(double,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getQuantileUpperBound</h4>
<pre class="methodSignature">public&nbsp;float&nbsp;getQuantileUpperBound&#8203;(double&nbsp;rank,
int&nbsp;numStdDev)</pre>
</li>
</ul>
<a id="getRank(float,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRank</h4>
<pre class="methodSignature">public&nbsp;double&nbsp;getRank&#8203;(float&nbsp;quantile,
<a href="../quantilescommon/QuantileSearchCriteria.html" title="enum in org.apache.datasketches.quantilescommon">QuantileSearchCriteria</a>&nbsp;searchCrit)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../quantilescommon/QuantilesFloatsAPI.html#getRank(float,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">QuantilesFloatsAPI</a></code></span></div>
<div class="block">Gets the normalized rank corresponding to the given a quantile.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../quantilescommon/QuantilesFloatsAPI.html#getRank(float,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">getRank</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesFloatsAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesFloatsAPI</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>quantile</code> - the given quantile</dd>
<dd><code>searchCrit</code> - if INCLUSIVE the given quantile is included into the rank.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the normalized rank corresponding to the given quantile.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../quantilescommon/QuantileSearchCriteria.html" title="enum in org.apache.datasketches.quantilescommon"><code>QuantileSearchCriteria</code></a></dd>
</dl>
</li>
</ul>
<a id="getRankLowerBound(double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRankLowerBound</h4>
<pre class="methodSignature">public&nbsp;double&nbsp;getRankLowerBound&#8203;(double&nbsp;rank)</pre>
<div class="block">Gets the lower bound of the rank confidence interval in which the true rank of the
given rank exists.
The approximate probability that the true rank is within the confidence interval
specified by the upper and lower rank bounds for this sketch is 0.95.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rank</code> - the given normalized rank.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the lower bound of the rank confidence interval in which the true rank of the
given rank exists.</dd>
</dl>
</li>
</ul>
<a id="getRankLowerBound(double,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRankLowerBound</h4>
<pre class="methodSignature">public&nbsp;double&nbsp;getRankLowerBound&#8203;(double&nbsp;rank,
int&nbsp;numStdDev)</pre>
<div class="block">Gets an approximate lower bound rank of the given normalized rank.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rank</code> - the given rank, a number between 0 and 1.0.</dd>
<dd><code>numStdDev</code> - the number of standard deviations. Must be 1, 2, or 3.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an approximate lower bound rank.</dd>
</dl>
</li>
</ul>
<a id="getRanks(float[],org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRanks</h4>
<pre class="methodSignature">public&nbsp;double[]&nbsp;getRanks&#8203;(float[]&nbsp;quantiles,
<a href="../quantilescommon/QuantileSearchCriteria.html" title="enum in org.apache.datasketches.quantilescommon">QuantileSearchCriteria</a>&nbsp;searchCrit)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../quantilescommon/QuantilesFloatsAPI.html#getRanks(float%5B%5D,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">QuantilesFloatsAPI</a></code></span></div>
<div class="block">Gets an array of normalized ranks corresponding to the given array of quantiles and the given
search criterion.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../quantilescommon/QuantilesFloatsAPI.html#getRanks(float%5B%5D,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">getRanks</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesFloatsAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesFloatsAPI</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>quantiles</code> - the given array of quantiles</dd>
<dd><code>searchCrit</code> - if INCLUSIVE, the given quantiles include the rank directly corresponding to each quantile.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an array of normalized ranks corresponding to the given array of quantiles.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../quantilescommon/QuantileSearchCriteria.html" title="enum in org.apache.datasketches.quantilescommon"><code>QuantileSearchCriteria</code></a></dd>
</dl>
</li>
</ul>
<a id="getRankUpperBound(double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRankUpperBound</h4>
<pre class="methodSignature">public&nbsp;double&nbsp;getRankUpperBound&#8203;(double&nbsp;rank)</pre>
<div class="block">Gets the upper bound of the rank confidence interval in which the true rank of the
given rank exists.
The approximate probability that the true rank is within the confidence interval
specified by the upper and lower rank bounds for this sketch is 0.95.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rank</code> - the given normalized rank.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the upper bound of the rank confidence interval in which the true rank of the
given rank exists.</dd>
</dl>
</li>
</ul>
<a id="getRankUpperBound(double,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRankUpperBound</h4>
<pre class="methodSignature">public&nbsp;double&nbsp;getRankUpperBound&#8203;(double&nbsp;rank,
int&nbsp;numStdDev)</pre>
<div class="block">Gets an approximate upper bound rank of the given rank.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rank</code> - the given rank, a number between 0 and 1.0.</dd>
<dd><code>numStdDev</code> - the number of standard deviations. Must be 1, 2, or 3.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an approximate upper bound rank.</dd>
</dl>
</li>
</ul>
<a id="getNumRetained()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNumRetained</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;getNumRetained()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../quantilescommon/QuantilesAPI.html#getNumRetained()">QuantilesAPI</a></code></span></div>
<div class="block">Gets the number of quantiles retained by the sketch.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../quantilescommon/QuantilesAPI.html#getNumRetained()">getNumRetained</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesAPI</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the number of quantiles retained by the sketch</dd>
</dl>
</li>
</ul>
<a id="getSerializedSizeBytes()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSerializedSizeBytes</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;getSerializedSizeBytes()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../quantilescommon/QuantilesFloatsAPI.html#getSerializedSizeBytes()">QuantilesFloatsAPI</a></code></span></div>
<div class="block">Returns the current number of bytes this Sketch would require if serialized.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../quantilescommon/QuantilesFloatsAPI.html#getSerializedSizeBytes()">getSerializedSizeBytes</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesFloatsAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesFloatsAPI</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the number of bytes this sketch would require if serialized.</dd>
</dl>
</li>
</ul>
<a id="getSortedView()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSortedView</h4>
<pre class="methodSignature">public&nbsp;<a href="../quantilescommon/FloatsSortedView.html" title="interface in org.apache.datasketches.quantilescommon">FloatsSortedView</a>&nbsp;getSortedView()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../quantilescommon/QuantilesFloatsAPI.html#getSortedView()">QuantilesFloatsAPI</a></code></span></div>
<div class="block">Gets the sorted view of this sketch</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../quantilescommon/QuantilesFloatsAPI.html#getSortedView()">getSortedView</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesFloatsAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesFloatsAPI</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the sorted view of this sketch</dd>
</dl>
</li>
</ul>
<a id="isEmpty()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isEmpty</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isEmpty()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../quantilescommon/QuantilesAPI.html#isEmpty()">QuantilesAPI</a></code></span></div>
<div class="block">Returns true if this sketch is empty.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../quantilescommon/QuantilesAPI.html#isEmpty()">isEmpty</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesAPI</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if this sketch is empty.</dd>
</dl>
</li>
</ul>
<a id="isEstimationMode()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isEstimationMode</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isEstimationMode()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../quantilescommon/QuantilesAPI.html#isEstimationMode()">QuantilesAPI</a></code></span></div>
<div class="block">Returns true if this sketch is in estimation mode.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../quantilescommon/QuantilesAPI.html#isEstimationMode()">isEstimationMode</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesAPI</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if this sketch is in estimation mode.</dd>
</dl>
</li>
</ul>
<a id="iterator()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>iterator</h4>
<pre class="methodSignature">public&nbsp;<a href="../quantilescommon/QuantilesFloatsSketchIterator.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesFloatsSketchIterator</a>&nbsp;iterator()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../quantilescommon/QuantilesFloatsAPI.html#iterator()">QuantilesFloatsAPI</a></code></span></div>
<div class="block">Gets the iterator for this sketch, which is not sorted.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../quantilescommon/QuantilesFloatsAPI.html#iterator()">iterator</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesFloatsAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesFloatsAPI</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the iterator for this sketch</dd>
</dl>
</li>
</ul>
<a id="merge(org.apache.datasketches.req.ReqSketch)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>merge</h4>
<pre class="methodSignature">public&nbsp;<a href="ReqSketch.html" title="class in org.apache.datasketches.req">ReqSketch</a>&nbsp;merge&#8203;(<a href="ReqSketch.html" title="class in org.apache.datasketches.req">ReqSketch</a>&nbsp;other)</pre>
<div class="block">Merge other sketch into this one. The other sketch is not modified.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>other</code> - sketch to be merged into this one.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this</dd>
</dl>
</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 to the empty state.
If the sketch is <i>read only</i> this does nothing.
<p>The parameter <i>k</i> will not change.</p>
<p>The parameters k, highRankAccuracy, and reqDebug will not change.</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../quantilescommon/QuantilesAPI.html#reset()">reset</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesAPI</a></code></dd>
</dl>
</li>
</ul>
<a id="toByteArray()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toByteArray</h4>
<pre class="methodSignature">public&nbsp;byte[]&nbsp;toByteArray()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../quantilescommon/QuantilesFloatsAPI.html#toByteArray()">QuantilesFloatsAPI</a></code></span></div>
<div class="block">Returns a byte array representation of this sketch.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../quantilescommon/QuantilesFloatsAPI.html#toByteArray()">toByteArray</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesFloatsAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesFloatsAPI</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a byte array representation of this sketch.</dd>
</dl>
</li>
</ul>
<a id="toString()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre class="methodSignature">public&nbsp;<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;toString()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../quantilescommon/QuantilesAPI.html#toString()">QuantilesAPI</a></code></span></div>
<div class="block">Returns a summary of the key parameters of the sketch.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../quantilescommon/QuantilesAPI.html#toString()">toString</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesAPI</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a summary of the key parameters of the sketch.</dd>
</dl>
</li>
</ul>
<a id="update(float)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>update</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;update&#8203;(float&nbsp;item)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../quantilescommon/QuantilesFloatsAPI.html#update(float)">QuantilesFloatsAPI</a></code></span></div>
<div class="block">Updates this sketch with the given item.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../quantilescommon/QuantilesFloatsAPI.html#update(float)">update</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesFloatsAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesFloatsAPI</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>item</code> - from a stream of quantiles. NaNs are ignored.</dd>
</dl>
</li>
</ul>
<a id="viewCompactorDetail(java.lang.String,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>viewCompactorDetail</h4>
<pre class="methodSignature">public&nbsp;<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;viewCompactorDetail&#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;fmt,
boolean&nbsp;allData)</pre>
<div class="block">A detailed, human readable view of the sketch compactors and their data.
Each compactor string is prepended by the compactor lgWeight, the current number of retained
quantiles of the compactor and the current nominal capacity of the compactor.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fmt</code> - the format string for the quantiles; example: "%4.0f".</dd>
<dd><code>allData</code> - all the retained quantiles for the sketch will be output by
compactor level. Otherwise, just a summary will be output.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a detailed view of the compactors and their data</dd>
</dl>
</li>
</ul>
<a id="getPartitionBoundaries(int,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPartitionBoundaries</h4>
<pre class="methodSignature">public&nbsp;<a href="../quantilescommon/QuantilesFloatsAPI.FloatsPartitionBoundaries.html" title="class in org.apache.datasketches.quantilescommon">QuantilesFloatsAPI.FloatsPartitionBoundaries</a>&nbsp;getPartitionBoundaries&#8203;(int&nbsp;numEquallyWeighted,
<a href="../quantilescommon/QuantileSearchCriteria.html" title="enum in org.apache.datasketches.quantilescommon">QuantileSearchCriteria</a>&nbsp;searchCrit)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../quantilescommon/QuantilesFloatsAPI.html#getPartitionBoundaries(int,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">QuantilesFloatsAPI</a></code></span></div>
<div class="block">This method returns an instance of <a href="../quantilescommon/QuantilesFloatsAPI.FloatsPartitionBoundaries.html" title="class in org.apache.datasketches.quantilescommon"><code>FloatsPartitionBoundaries</code></a> which provides
sufficient information for the user to create the given number of equally weighted partitions.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../quantilescommon/QuantilesFloatsAPI.html#getPartitionBoundaries(int,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">getPartitionBoundaries</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesFloatsAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesFloatsAPI</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>numEquallyWeighted</code> - an integer that specifies the number of equally weighted partitions between
<a href="../quantilescommon/QuantilesFloatsAPI.html#getMinItem()"><code>getMinItem()</code></a> and <a href="../quantilescommon/QuantilesFloatsAPI.html#getMaxItem()"><code>getMaxItem()</code></a>.
This must be a positive integer greater than zero.
<ul>
<li>A 1 will return: minItem, maxItem.</li>
<li>A 2 will return: minItem, median quantile, maxItem.</li>
<li>Etc.</li>
</ul></dd>
<dd><code>searchCrit</code> - If INCLUSIVE, all the returned quantiles are the upper boundaries of the equally weighted partitions
with the exception of the lowest returned quantile, which is the lowest boundary of the lowest ranked partition.
If EXCLUSIVE, all the returned quantiles are the lower boundaries of the equally weighted partitions
with the exception of the highest returned quantile, which is the upper boundary of the highest ranked partition.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an instance of <a href="../quantilescommon/QuantilesFloatsAPI.FloatsPartitionBoundaries.html" title="class in org.apache.datasketches.quantilescommon"><code>FloatsPartitionBoundaries</code></a>.</dd>
</dl>
</li>
</ul>
<a id="getRSE(int,double,boolean,long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRSE</h4>
<pre class="methodSignature">public static&nbsp;double&nbsp;getRSE&#8203;(int&nbsp;k,
double&nbsp;rank,
boolean&nbsp;hra,
long&nbsp;totalN)</pre>
<div class="block">Returns an a priori estimate of relative standard error (RSE, expressed as a number in [0,1]).
Derived from Lemma 12 in https://arxiv.org/abs/2004.01668v2, but the constant factors were
adjusted based on empirical measurements.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>k</code> - the given size of k</dd>
<dd><code>rank</code> - the given normalized rank, a number in [0,1].</dd>
<dd><code>hra</code> - if true High Rank Accuracy mode is being selected, otherwise, Low Rank Accuracy.</dd>
<dd><code>totalN</code> - an estimate of the total number of items submitted to the sketch.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an a priori estimate of relative standard error (RSE, expressed as a number in [0,1]).</dd>
</dl>
</li>
</ul>
<a id="hasMemory()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasMemory</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;hasMemory()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../quantilescommon/QuantilesAPI.html#hasMemory()">QuantilesAPI</a></code></span></div>
<div class="block">Returns true if this sketch's data structure is backed by Memory or WritableMemory.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../quantilescommon/QuantilesAPI.html#hasMemory()">hasMemory</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesAPI</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if this sketch's data structure is backed by Memory or WritableMemory.</dd>
</dl>
</li>
</ul>
<a id="isDirect()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isDirect</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isDirect()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../quantilescommon/QuantilesAPI.html#isDirect()">QuantilesAPI</a></code></span></div>
<div class="block">Returns true if this sketch's data structure is off-heap (a.k.a., Direct or Native memory).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../quantilescommon/QuantilesAPI.html#isDirect()">isDirect</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesAPI</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if this sketch's data structure is off-heap (a.k.a., Direct or Native memory).</dd>
</dl>
</li>
</ul>
<a id="isReadOnly()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>isReadOnly</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isReadOnly()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../quantilescommon/QuantilesAPI.html#isReadOnly()">QuantilesAPI</a></code></span></div>
<div class="block">Returns true if this sketch is read only.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../quantilescommon/QuantilesAPI.html#isReadOnly()">isReadOnly</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesAPI</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if this sketch is read only.</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/ReqSketch.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><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&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>Constr&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>