blob: 520536eeada600f83f689f50cc08c376827a51d3 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>QuantilesDoublesAPI (datasketches-java 6.1.0-SNAPSHOT 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.1.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="QuantilesDoublesAPI (datasketches-java 6.1.0-SNAPSHOT API)";
}
}
catch(err) {
}
//-->
var data = {"i0":18,"i1":6,"i2":6,"i3":6,"i4":18,"i5":6,"i6":18,"i7":6,"i8":6,"i9":18,"i10":6,"i11":6,"i12":18,"i13":6,"i14":18,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default 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/QuantilesDoublesAPI.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>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.quantilescommon</a></div>
<h2 title="Interface QuantilesDoublesAPI" class="title">Interface QuantilesDoublesAPI</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><code><a href="QuantilesAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesAPI</a></code></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="../quantiles/CompactDoublesSketch.html" title="class in org.apache.datasketches.quantiles">CompactDoublesSketch</a></code>, <code><a href="../quantiles/DoublesSketch.html" title="class in org.apache.datasketches.quantiles">DoublesSketch</a></code>, <code><a href="../kll/KllDoublesSketch.html" title="class in org.apache.datasketches.kll">KllDoublesSketch</a></code>, <code><a href="../quantiles/UpdateDoublesSketch.html" title="class in org.apache.datasketches.quantiles">UpdateDoublesSketch</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">QuantilesDoublesAPI</span>
extends <a href="QuantilesAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesAPI</a></pre>
<div class="block">The Quantiles API for item type <i>double</i>.</div>
<dl>
<dt><span class="simpleTagLabel">Author:</span></dt>
<dd>Lee Rhodes</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="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">
<!-- =========== 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.quantilescommon.QuantilesAPI">
<!-- -->
</a>
<h3>Fields inherited from interface&nbsp;org.apache.datasketches.quantilescommon.<a href="QuantilesAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesAPI</a></h3>
<code><a href="QuantilesAPI.html#EMPTY_MSG">EMPTY_MSG</a>, <a href="QuantilesAPI.html#MEM_REQ_SVR_NULL_MSG">MEM_REQ_SVR_NULL_MSG</a>, <a href="QuantilesAPI.html#NOT_SINGLE_ITEM_MSG">NOT_SINGLE_ITEM_MSG</a>, <a href="QuantilesAPI.html#SELF_MERGE_MSG">SELF_MERGE_MSG</a>, <a href="QuantilesAPI.html#TGT_IS_READ_ONLY_MSG">TGT_IS_READ_ONLY_MSG</a>, <a href="QuantilesAPI.html#UNSUPPORTED_MSG">UNSUPPORTED_MSG</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="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default 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>default double[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCDF(double%5B%5D)">getCDF</a></span>&#8203;(double[]&nbsp;splitPoints)</code></th>
<td class="colLast">
<div class="block">This is equivalent to <a href="#getCDF(double%5B%5D,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)"><code>getCDF(splitPoints, INCLUSIVE)</code></a></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(double%5B%5D,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">getCDF</a></span>&#8203;(double[]&nbsp;splitPoints,
<a href="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>double</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="i3" class="rowColor">
<td class="colFirst"><code>double</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="i4" class="altColor">
<td class="colFirst"><code>default double[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPMF(double%5B%5D)">getPMF</a></span>&#8203;(double[]&nbsp;splitPoints)</code></th>
<td class="colLast">
<div class="block">This is equivalent to <a href="#getPMF(double%5B%5D,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)"><code>getPMF(splitPoints, INCLUSIVE)</code></a></div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>double[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getPMF(double%5B%5D,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">getPMF</a></span>&#8203;(double[]&nbsp;splitPoints,
<a href="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="i6" class="altColor">
<td class="colFirst"><code>default double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getQuantile(double)">getQuantile</a></span>&#8203;(double&nbsp;rank)</code></th>
<td class="colLast">
<div class="block">This is equivalent to <a href="#getQuantile(double,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)"><code>getQuantile(rank, INCLUSIVE)</code></a></div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>double</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;rank,
<a href="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="i8" class="altColor">
<td class="colFirst"><code>double</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="i9" class="rowColor">
<td class="colFirst"><code>default double[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getQuantiles(double%5B%5D)">getQuantiles</a></span>&#8203;(double[]&nbsp;ranks)</code></th>
<td class="colLast">
<div class="block">This is equivalent to <a href="#getQuantiles(double%5B%5D,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)"><code>getQuantiles(ranks, INCLUSIVE)</code></a></div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>double[]</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;ranks,
<a href="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="i11" class="rowColor">
<td class="colFirst"><code>double</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="i12" class="altColor">
<td class="colFirst"><code>default double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRank(double)">getRank</a></span>&#8203;(double&nbsp;quantile)</code></th>
<td class="colLast">
<div class="block">This is equivalent to <a href="#getRank(double,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)"><code>getRank(quantile, INCLUSIVE)</code></a></div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRank(double,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">getRank</a></span>&#8203;(double&nbsp;quantile,
<a href="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="i14" class="altColor">
<td class="colFirst"><code>default double[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRanks(double%5B%5D)">getRanks</a></span>&#8203;(double[]&nbsp;quantiles)</code></th>
<td class="colLast">
<div class="block">This is equivalent to <a href="#getRanks(double%5B%5D,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)"><code>getRanks(quantiles, INCLUSIVE)</code></a></div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>double[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRanks(double%5B%5D,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">getRanks</a></span>&#8203;(double[]&nbsp;quantiles,
<a href="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="i16" class="altColor">
<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="i17" class="rowColor">
<td class="colFirst"><code><a href="DoublesSortedView.html" title="interface in org.apache.datasketches.quantilescommon">DoublesSortedView</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="i18" class="altColor">
<td class="colFirst"><code><a href="QuantilesDoublesSketchIterator.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesDoublesSketchIterator</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="i19" 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">Returns a byte array representation of this sketch.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#update(double)">update</a></span>&#8203;(double&nbsp;item)</code></th>
<td class="colLast">
<div class="block">Updates this sketch with the given item.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.apache.datasketches.quantilescommon.QuantilesAPI">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.datasketches.quantilescommon.<a href="QuantilesAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesAPI</a></h3>
<code><a href="QuantilesAPI.html#getK()">getK</a>, <a href="QuantilesAPI.html#getN()">getN</a>, <a href="QuantilesAPI.html#getNormalizedRankError(boolean)">getNormalizedRankError</a>, <a href="QuantilesAPI.html#getNumRetained()">getNumRetained</a>, <a href="QuantilesAPI.html#getRankLowerBound(double)">getRankLowerBound</a>, <a href="QuantilesAPI.html#getRankUpperBound(double)">getRankUpperBound</a>, <a href="QuantilesAPI.html#hasMemory()">hasMemory</a>, <a href="QuantilesAPI.html#isDirect()">isDirect</a>, <a href="QuantilesAPI.html#isEmpty()">isEmpty</a>, <a href="QuantilesAPI.html#isEstimationMode()">isEstimationMode</a>, <a href="QuantilesAPI.html#isReadOnly()">isReadOnly</a>, <a href="QuantilesAPI.html#reset()">reset</a>, <a href="QuantilesAPI.html#toString()">toString</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="getCDF(double[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCDF</h4>
<pre class="methodSignature">default&nbsp;double[]&nbsp;getCDF&#8203;(double[]&nbsp;splitPoints)</pre>
<div class="block">This is equivalent to <a href="#getCDF(double%5B%5D,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)"><code>getCDF(splitPoints, INCLUSIVE)</code></a></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>splitPoints</code> - an array of <i>m</i> unique, monotonically increasing items.</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>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if sketch is empty.</dd>
</dl>
</li>
</ul>
<a id="getCDF(double[],org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCDF</h4>
<pre class="methodSignature">double[]&nbsp;getCDF&#8203;(double[]&nbsp;splitPoints,
<a href="QuantileSearchCriteria.html" title="enum in org.apache.datasketches.quantilescommon">QuantileSearchCriteria</a>&nbsp;searchCrit)</pre>
<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="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>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if sketch is empty.</dd>
</dl>
</li>
</ul>
<a id="getMaxItem()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMaxItem</h4>
<pre class="methodSignature">double&nbsp;getMaxItem()</pre>
<div class="block">Returns the maximum item of the stream. This is provided for convenience and may be different from the
item returned by <i>getQuantile(1.0)</i>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the maximum item of the stream</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if sketch is empty.</dd>
</dl>
</li>
</ul>
<a id="getMinItem()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMinItem</h4>
<pre class="methodSignature">double&nbsp;getMinItem()</pre>
<div class="block">Returns the minimum item of the stream. This is provided for convenience and may be different from the
item returned by <i>getQuantile(0.0)</i>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the minimum item of the stream</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if sketch is empty.</dd>
</dl>
</li>
</ul>
<a id="getPMF(double[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPMF</h4>
<pre class="methodSignature">default&nbsp;double[]&nbsp;getPMF&#8203;(double[]&nbsp;splitPoints)</pre>
<div class="block">This is equivalent to <a href="#getPMF(double%5B%5D,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)"><code>getPMF(splitPoints, INCLUSIVE)</code></a></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>splitPoints</code> - an array of <i>m</i> unique, monotonically increasing items.</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>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if sketch is empty.</dd>
</dl>
</li>
</ul>
<a id="getPMF(double[],org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPMF</h4>
<pre class="methodSignature">double[]&nbsp;getPMF&#8203;(double[]&nbsp;splitPoints,
<a href="QuantileSearchCriteria.html" title="enum in org.apache.datasketches.quantilescommon">QuantileSearchCriteria</a>&nbsp;searchCrit)</pre>
<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="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>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if sketch is empty.</dd>
</dl>
</li>
</ul>
<a id="getQuantile(double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getQuantile</h4>
<pre class="methodSignature">default&nbsp;double&nbsp;getQuantile&#8203;(double&nbsp;rank)</pre>
<div class="block">This is equivalent to <a href="#getQuantile(double,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)"><code>getQuantile(rank, INCLUSIVE)</code></a></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rank</code> - the given normalized rank, a double in the range [0.0, 1.0].</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the approximate quantile given the normalized rank.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if sketch is empty.</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">double&nbsp;getQuantile&#8203;(double&nbsp;rank,
<a href="QuantileSearchCriteria.html" title="enum in org.apache.datasketches.quantilescommon">QuantileSearchCriteria</a>&nbsp;searchCrit)</pre>
<div class="block">Gets the approximate quantile of the given normalized rank and the given search criterion.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rank</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="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if sketch is empty.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="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">double&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 probability 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></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 quantile confidence interval in which the quantile of the
given rank exists.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if sketch is empty.</dd>
</dl>
</li>
</ul>
<a id="getQuantileUpperBound(double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getQuantileUpperBound</h4>
<pre class="methodSignature">double&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 probability 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></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 quantile confidence interval in which the true quantile of the
given rank exists.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if sketch is empty.</dd>
</dl>
</li>
</ul>
<a id="getQuantiles(double[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getQuantiles</h4>
<pre class="methodSignature">default&nbsp;double[]&nbsp;getQuantiles&#8203;(double[]&nbsp;ranks)</pre>
<div class="block">This is equivalent to <a href="#getQuantiles(double%5B%5D,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)"><code>getQuantiles(ranks, INCLUSIVE)</code></a></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ranks</code> - the given array of normalized ranks, each of which must be
in the interval [0.0,1.0].</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="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if sketch is empty.</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">double[]&nbsp;getQuantiles&#8203;(double[]&nbsp;ranks,
<a href="QuantileSearchCriteria.html" title="enum in org.apache.datasketches.quantilescommon">QuantileSearchCriteria</a>&nbsp;searchCrit)</pre>
<div class="block">Gets an array of quantiles from the given array of normalized ranks.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ranks</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="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if sketch is empty.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="QuantileSearchCriteria.html" title="enum in org.apache.datasketches.quantilescommon"><code>QuantileSearchCriteria</code></a></dd>
</dl>
</li>
</ul>
<a id="getRank(double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRank</h4>
<pre class="methodSignature">default&nbsp;double&nbsp;getRank&#8203;(double&nbsp;quantile)</pre>
<div class="block">This is equivalent to <a href="#getRank(double,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)"><code>getRank(quantile, INCLUSIVE)</code></a></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>quantile</code> - the given quantile</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the normalized rank corresponding to the given quantile</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if sketch is empty.</dd>
</dl>
</li>
</ul>
<a id="getRank(double,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRank</h4>
<pre class="methodSignature">double&nbsp;getRank&#8203;(double&nbsp;quantile,
<a href="QuantileSearchCriteria.html" title="enum in org.apache.datasketches.quantilescommon">QuantileSearchCriteria</a>&nbsp;searchCrit)</pre>
<div class="block">Gets the normalized rank corresponding to the given a quantile.</div>
<dl>
<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="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if sketch is empty.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="QuantileSearchCriteria.html" title="enum in org.apache.datasketches.quantilescommon"><code>QuantileSearchCriteria</code></a></dd>
</dl>
</li>
</ul>
<a id="getRanks(double[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRanks</h4>
<pre class="methodSignature">default&nbsp;double[]&nbsp;getRanks&#8203;(double[]&nbsp;quantiles)</pre>
<div class="block">This is equivalent to <a href="#getRanks(double%5B%5D,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)"><code>getRanks(quantiles, INCLUSIVE)</code></a></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>quantiles</code> - the given array of quantiles</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="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if sketch is empty.</dd>
</dl>
</li>
</ul>
<a id="getRanks(double[],org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRanks</h4>
<pre class="methodSignature">double[]&nbsp;getRanks&#8203;(double[]&nbsp;quantiles,
<a href="QuantileSearchCriteria.html" title="enum in org.apache.datasketches.quantilescommon">QuantileSearchCriteria</a>&nbsp;searchCrit)</pre>
<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="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="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - if sketch is empty.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="QuantileSearchCriteria.html" title="enum in org.apache.datasketches.quantilescommon"><code>QuantileSearchCriteria</code></a></dd>
</dl>
</li>
</ul>
<a id="getSerializedSizeBytes()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSerializedSizeBytes</h4>
<pre class="methodSignature">int&nbsp;getSerializedSizeBytes()</pre>
<div class="block">Returns the current number of bytes this Sketch would require if serialized.</div>
<dl>
<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"><a href="DoublesSortedView.html" title="interface in org.apache.datasketches.quantilescommon">DoublesSortedView</a>&nbsp;getSortedView()</pre>
<div class="block">Gets the sorted view of this sketch</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the sorted view of this sketch</dd>
</dl>
</li>
</ul>
<a id="iterator()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>iterator</h4>
<pre class="methodSignature"><a href="QuantilesDoublesSketchIterator.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesDoublesSketchIterator</a>&nbsp;iterator()</pre>
<div class="block">Gets the iterator for this sketch, which is not sorted.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the iterator for this sketch</dd>
</dl>
</li>
</ul>
<a id="toByteArray()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toByteArray</h4>
<pre class="methodSignature">byte[]&nbsp;toByteArray()</pre>
<div class="block">Returns a byte array representation of this sketch.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a byte array representation of this sketch.</dd>
</dl>
</li>
</ul>
<a id="update(double)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>update</h4>
<pre class="methodSignature">void&nbsp;update&#8203;(double&nbsp;item)</pre>
<div class="block">Updates this sketch with the given item.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>item</code> - from a stream of items. NaNs are ignored.</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/QuantilesDoublesAPI.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>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;2024 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>