blob: dc4ae83e4d1b3e6abba86def200aa1c76395054a [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>DoublesSketch (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="DoublesSketch (datasketches-java 4.0.0 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":9,"i1":10,"i2":10,"i3":9,"i4":10,"i5":10,"i6":10,"i7":9,"i8":6,"i9":6,"i10":6,"i11":10,"i12":9,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":9,"i27":6,"i28":9,"i29":6,"i30":10,"i31":10,"i32":6,"i33":10,"i34":10,"i35":10,"i36":10,"i37":6,"i38":10,"i39":10,"i40":10,"i41":10,"i42":9,"i43":9,"i44":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract 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/DoublesSketch.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.quantiles</a></div>
<h2 title="Class DoublesSketch" class="title">Class DoublesSketch</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.quantiles.DoublesSketch</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/QuantilesDoublesAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesDoublesAPI</a></code></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="CompactDoublesSketch.html" title="class in org.apache.datasketches.quantiles">CompactDoublesSketch</a></code>, <code><a href="UpdateDoublesSketch.html" title="class in org.apache.datasketches.quantiles">UpdateDoublesSketch</a></code></dd>
</dl>
<hr>
<pre>public abstract class <span class="typeNameLabel">DoublesSketch</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>
implements <a href="../quantilescommon/QuantilesDoublesAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesDoublesAPI</a></pre>
<div class="block">This is an implementation of the Low Discrepancy Mergeable Quantiles Sketch, using doubles,
described in section 3.2 of the journal version of the paper "Mergeable Summaries"
by Agarwal, Cormode, Huang, Phillips, Wei, and Yi:
<p>Reference: <a href="http://dblp.org/rec/html/journals/tods/AgarwalCHPWY13"></a></p>
<p>A <i>k</i> of 128 produces a normalized, rank error of about 1.7%.
For example, the median returned from getQuantile(0.5) will be between the actual quantiles
from the hypothetically sorted array of input quantiles at normalized ranks of 0.483 and 0.517, with
a confidence of about 99%.</p>
<pre>
Table Guide for DoublesSketch Size in Bytes and Approximate Error:
K =&gt; | 16 32 64 128 256 512 1,024
~ Error =&gt; | 12.145% 6.359% 3.317% 1.725% 0.894% 0.463% 0.239%
N | Size in Bytes -&gt;
------------------------------------------------------------------------
0 | 8 8 8 8 8 8 8
1 | 72 72 72 72 72 72 72
3 | 72 72 72 72 72 72 72
7 | 104 104 104 104 104 104 104
15 | 168 168 168 168 168 168 168
31 | 296 296 296 296 296 296 296
63 | 424 552 552 552 552 552 552
127 | 552 808 1,064 1,064 1,064 1,064 1,064
255 | 680 1,064 1,576 2,088 2,088 2,088 2,088
511 | 808 1,320 2,088 3,112 4,136 4,136 4,136
1,023 | 936 1,576 2,600 4,136 6,184 8,232 8,232
2,047 | 1,064 1,832 3,112 5,160 8,232 12,328 16,424
4,095 | 1,192 2,088 3,624 6,184 10,280 16,424 24,616
8,191 | 1,320 2,344 4,136 7,208 12,328 20,520 32,808
16,383 | 1,448 2,600 4,648 8,232 14,376 24,616 41,000
32,767 | 1,576 2,856 5,160 9,256 16,424 28,712 49,192
65,535 | 1,704 3,112 5,672 10,280 18,472 32,808 57,384
131,071 | 1,832 3,368 6,184 11,304 20,520 36,904 65,576
262,143 | 1,960 3,624 6,696 12,328 22,568 41,000 73,768
524,287 | 2,088 3,880 7,208 13,352 24,616 45,096 81,960
1,048,575 | 2,216 4,136 7,720 14,376 26,664 49,192 90,152
2,097,151 | 2,344 4,392 8,232 15,400 28,712 53,288 98,344
4,194,303 | 2,472 4,648 8,744 16,424 30,760 57,384 106,536
8,388,607 | 2,600 4,904 9,256 17,448 32,808 61,480 114,728
16,777,215 | 2,728 5,160 9,768 18,472 34,856 65,576 122,920
33,554,431 | 2,856 5,416 10,280 19,496 36,904 69,672 131,112
67,108,863 | 2,984 5,672 10,792 20,520 38,952 73,768 139,304
134,217,727 | 3,112 5,928 11,304 21,544 41,000 77,864 147,496
268,435,455 | 3,240 6,184 11,816 22,568 43,048 81,960 155,688
536,870,911 | 3,368 6,440 12,328 23,592 45,096 86,056 163,880
1,073,741,823 | 3,496 6,696 12,840 24,616 47,144 90,152 172,072
2,147,483,647 | 3,624 6,952 13,352 25,640 49,192 94,248 180,264
4,294,967,295 | 3,752 7,208 13,864 26,664 51,240 98,344 188,456
</pre></div>
<dl>
<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.QuantilesDoublesAPI">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.datasketches.quantilescommon.<a href="../quantilescommon/QuantilesDoublesAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesDoublesAPI</a></h3>
<code><a href="../quantilescommon/QuantilesDoublesAPI.DoublesPartitionBoundaries.html" title="class in org.apache.datasketches.quantilescommon">QuantilesDoublesAPI.DoublesPartitionBoundaries</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="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract 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="DoublesSketchBuilder.html" title="class in org.apache.datasketches.quantiles">DoublesSketchBuilder</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 builder</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="DoublesSketch.html" title="class in org.apache.datasketches.quantiles">DoublesSketch</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#downSample(org.apache.datasketches.quantiles.DoublesSketch,int,org.apache.datasketches.memory.WritableMemory)">downSample</a></span>&#8203;(<a href="DoublesSketch.html" title="class in org.apache.datasketches.quantiles">DoublesSketch</a>&nbsp;srcSketch,
int&nbsp;smallerK,
org.apache.datasketches.memory.WritableMemory&nbsp;dstMem)</code></th>
<td class="colLast">
<div class="block">From an source sketch, create a new sketch that must have a smaller K.</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="#getCDF(double%5B%5D,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">getCDF</a></span>&#8203;(double[]&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="i3" class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCompactSerialiedSizeBytes(int,long)">getCompactSerialiedSizeBytes</a></span>&#8203;(int&nbsp;k,
long&nbsp;n)</code></th>
<td class="colLast">
<div class="block">Returns the number of bytes a DoublesSketch would require to store in compact form
given <i>k</i> and <i>n</i>.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCurrentCompactSerializedSizeBytes()">getCurrentCompactSerializedSizeBytes</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the current number of bytes this sketch would require to store in the compact Memory Format.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCurrentUpdatableSerializedSizeBytes()">getCurrentUpdatableSerializedSizeBytes</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the current number of bytes this sketch would require to store in the updatable Memory Format.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<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="i7" class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getKFromEpsilon(double,boolean)">getKFromEpsilon</a></span>&#8203;(double&nbsp;epsilon,
boolean&nbsp;pmf)</code></th>
<td class="colLast">
<div class="block">Gets the approximate <em>k</em> to use given epsilon, the normalized rank error.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>abstract 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="i9" class="rowColor">
<td class="colFirst"><code>abstract 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="i10" class="altColor">
<td class="colFirst"><code>abstract 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="i11" class="rowColor">
<td class="colFirst"><code>double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNormalizedRankError(boolean)">getNormalizedRankError</a></span>&#8203;(boolean&nbsp;pmf)</code></th>
<td class="colLast">
<div class="block">Gets the approximate rank error of this sketch normalized as a fraction between zero and one.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>static double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNormalizedRankError(int,boolean)">getNormalizedRankError</a></span>&#8203;(int&nbsp;k,
boolean&nbsp;pmf)</code></th>
<td class="colLast">
<div class="block">Gets the normalized rank error given k and pmf.</div>
</td>
</tr>
<tr id="i13" 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="i14" class="altColor">
<td class="colFirst"><code><a href="../quantilescommon/QuantilesDoublesAPI.DoublesPartitionBoundaries.html" title="class in org.apache.datasketches.quantilescommon">QuantilesDoublesAPI.DoublesPartitionBoundaries</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/QuantilesDoublesAPI.DoublesPartitionBoundaries.html" title="class in org.apache.datasketches.quantilescommon"><code>DoublesPartitionBoundaries</code></a> which provides
sufficient information for the user to create the given number of equally weighted partitions.</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="#getPMF(double%5B%5D,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">getPMF</a></span>&#8203;(double[]&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="i16" class="altColor">
<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="../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="i17" class="rowColor">
<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="i18" 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="../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="i19" 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="i20" class="altColor">
<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="../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="i21" 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="i22" class="altColor">
<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="../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="i23" class="rowColor">
<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="i24" 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="i25" class="rowColor">
<td class="colFirst"><code><a href="../quantilescommon/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="i26" class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getUpdatableStorageBytes(int,long)">getUpdatableStorageBytes</a></span>&#8203;(int&nbsp;k,
long&nbsp;n)</code></th>
<td class="colLast">
<div class="block">Returns the number of bytes a sketch would require to store in updatable form.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>abstract 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="i28" class="altColor">
<td class="colFirst"><code>static <a href="DoublesSketch.html" title="class in org.apache.datasketches.quantiles">DoublesSketch</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;srcMem)</code></th>
<td class="colLast">
<div class="block">Heapify takes the sketch image in Memory and instantiates an on-heap Sketch.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>abstract 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="i30" 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="i31" 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="i32" class="altColor">
<td class="colFirst"><code>abstract 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="i33" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSameResource(org.apache.datasketches.memory.Memory)">isSameResource</a></span>&#8203;(org.apache.datasketches.memory.Memory&nbsp;that)</code></th>
<td class="colLast">
<div class="block">Returns true if the backing resource of <i>this</i> is identical with the backing resource
of <i>that</i>.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code><a href="../quantilescommon/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="i35" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#putMemory(org.apache.datasketches.memory.WritableMemory)">putMemory</a></span>&#8203;(org.apache.datasketches.memory.WritableMemory&nbsp;dstMem)</code></th>
<td class="colLast">
<div class="block">Puts the current sketch into the given Memory in compact form if there is sufficient space,
otherwise, it throws an error.</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="#putMemory(org.apache.datasketches.memory.WritableMemory,boolean)">putMemory</a></span>&#8203;(org.apache.datasketches.memory.WritableMemory&nbsp;dstMem,
boolean&nbsp;compact)</code></th>
<td class="colLast">
<div class="block">Puts the current sketch into the given Memory if there is sufficient space, otherwise,
throws an error.</div>
</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>abstract 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="i38" 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="i39" class="rowColor">
<td class="colFirst"><code>byte[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toByteArray(boolean)">toByteArray</a></span>&#8203;(boolean&nbsp;compact)</code></th>
<td class="colLast">
<div class="block">Serialize this sketch in a byte array form.</div>
</td>
</tr>
<tr id="i40" class="altColor">
<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="i41" 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(boolean,boolean)">toString</a></span>&#8203;(boolean&nbsp;sketchSummary,
boolean&nbsp;dataDetail)</code></th>
<td class="colLast">
<div class="block">Returns summary information about this sketch.</div>
</td>
</tr>
<tr id="i42" class="altColor">
<td class="colFirst"><code>static <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(byte%5B%5D)">toString</a></span>&#8203;(byte[]&nbsp;byteArr)</code></th>
<td class="colLast">
<div class="block">Returns a human readable string of the preamble of a byte array image of a DoublesSketch.</div>
</td>
</tr>
<tr id="i43" class="rowColor">
<td class="colFirst"><code>static <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(org.apache.datasketches.memory.Memory)">toString</a></span>&#8203;(org.apache.datasketches.memory.Memory&nbsp;mem)</code></th>
<td class="colLast">
<div class="block">Returns a human readable string of the preamble of a Memory image of a DoublesSketch.</div>
</td>
</tr>
<tr id="i44" class="altColor">
<td class="colFirst"><code>static <a href="DoublesSketch.html" title="class in org.apache.datasketches.quantiles">DoublesSketch</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#wrap(org.apache.datasketches.memory.Memory)">wrap</a></span>&#8203;(org.apache.datasketches.memory.Memory&nbsp;srcMem)</code></th>
<td class="colLast">
<div class="block">Wrap this sketch around the given Memory image of a DoublesSketch, compact or updatable.</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.QuantilesDoublesAPI">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.datasketches.quantilescommon.<a href="../quantilescommon/QuantilesDoublesAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesDoublesAPI</a></h3>
<code><a href="../quantilescommon/QuantilesDoublesAPI.html#getCDF(double%5B%5D)">getCDF</a>, <a href="../quantilescommon/QuantilesDoublesAPI.html#getPartitionBoundaries(int)">getPartitionBoundaries</a>, <a href="../quantilescommon/QuantilesDoublesAPI.html#getPMF(double%5B%5D)">getPMF</a>, <a href="../quantilescommon/QuantilesDoublesAPI.html#getQuantile(double)">getQuantile</a>, <a href="../quantilescommon/QuantilesDoublesAPI.html#getQuantiles(double%5B%5D)">getQuantiles</a>, <a href="../quantilescommon/QuantilesDoublesAPI.html#getRank(double)">getRank</a>, <a href="../quantilescommon/QuantilesDoublesAPI.html#getRanks(double%5B%5D)">getRanks</a>, <a href="../quantilescommon/QuantilesDoublesAPI.html#update(double)">update</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="DoublesSketchBuilder.html" title="class in org.apache.datasketches.quantiles">DoublesSketchBuilder</a>&nbsp;builder()</pre>
<div class="block">Returns a new builder</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new builder</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="DoublesSketch.html" title="class in org.apache.datasketches.quantiles">DoublesSketch</a>&nbsp;heapify&#8203;(org.apache.datasketches.memory.Memory&nbsp;srcMem)</pre>
<div class="block">Heapify takes the sketch image in Memory and instantiates an on-heap Sketch.
The resulting sketch will not retain any link to the source Memory.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>srcMem</code> - a Memory image of a Sketch.
<a href="../../../../resources/dictionary.html#mem">See Memory</a></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a heap-based Sketch based on the given Memory</dd>
</dl>
</li>
</ul>
<a id="wrap(org.apache.datasketches.memory.Memory)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>wrap</h4>
<pre class="methodSignature">public static&nbsp;<a href="DoublesSketch.html" title="class in org.apache.datasketches.quantiles">DoublesSketch</a>&nbsp;wrap&#8203;(org.apache.datasketches.memory.Memory&nbsp;srcMem)</pre>
<div class="block">Wrap this sketch around the given Memory image of a DoublesSketch, compact or updatable.
A DirectUpdateDoublesSketch can only wrap an updatable array, and a
DirectCompactDoublesSketch can only wrap a compact array.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>srcMem</code> - the given Memory image of a DoublesSketch that may have data,</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a sketch that wraps the given srcMem</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">public&nbsp;double[]&nbsp;getCDF&#8203;(double[]&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/QuantilesDoublesAPI.html#getCDF(double%5B%5D,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">QuantilesDoublesAPI</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/QuantilesDoublesAPI.html#getCDF(double%5B%5D,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">getCDF</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesDoublesAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesDoublesAPI</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="getMaxItem()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMaxItem</h4>
<pre class="methodSignature">public abstract&nbsp;double&nbsp;getMaxItem()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../quantilescommon/QuantilesDoublesAPI.html#getMaxItem()">QuantilesDoublesAPI</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/QuantilesDoublesAPI.html#getMaxItem()">getMaxItem</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesDoublesAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesDoublesAPI</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 abstract&nbsp;double&nbsp;getMinItem()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../quantilescommon/QuantilesDoublesAPI.html#getMinItem()">QuantilesDoublesAPI</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/QuantilesDoublesAPI.html#getMinItem()">getMinItem</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesDoublesAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesDoublesAPI</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the minimum item of the stream</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/QuantilesDoublesAPI.DoublesPartitionBoundaries.html" title="class in org.apache.datasketches.quantilescommon">QuantilesDoublesAPI.DoublesPartitionBoundaries</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/QuantilesDoublesAPI.html#getPartitionBoundaries(int,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">QuantilesDoublesAPI</a></code></span></div>
<div class="block">This method returns an instance of <a href="../quantilescommon/QuantilesDoublesAPI.DoublesPartitionBoundaries.html" title="class in org.apache.datasketches.quantilescommon"><code>DoublesPartitionBoundaries</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/QuantilesDoublesAPI.html#getPartitionBoundaries(int,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">getPartitionBoundaries</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesDoublesAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesDoublesAPI</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/QuantilesDoublesAPI.html#getMinItem()"><code>getMinItem()</code></a> and <a href="../quantilescommon/QuantilesDoublesAPI.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/QuantilesDoublesAPI.DoublesPartitionBoundaries.html" title="class in org.apache.datasketches.quantilescommon"><code>DoublesPartitionBoundaries</code></a>.</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">public&nbsp;double[]&nbsp;getPMF&#8203;(double[]&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/QuantilesDoublesAPI.html#getPMF(double%5B%5D,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">QuantilesDoublesAPI</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/QuantilesDoublesAPI.html#getPMF(double%5B%5D,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">getPMF</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesDoublesAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesDoublesAPI</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;double&nbsp;getQuantile&#8203;(double&nbsp;rank,
<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/QuantilesDoublesAPI.html#getQuantile(double,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">QuantilesDoublesAPI</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/QuantilesDoublesAPI.html#getQuantile(double,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">getQuantile</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesDoublesAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesDoublesAPI</a></code></dd>
<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="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;double[]&nbsp;getQuantiles&#8203;(double[]&nbsp;ranks,
<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/QuantilesDoublesAPI.html#getQuantiles(double%5B%5D,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">QuantilesDoublesAPI</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/QuantilesDoublesAPI.html#getQuantiles(double%5B%5D,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">getQuantiles</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesDoublesAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesDoublesAPI</a></code></dd>
<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="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;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>
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.99.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../quantilescommon/QuantilesDoublesAPI.html#getQuantileLowerBound(double)">getQuantileLowerBound</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesDoublesAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesDoublesAPI</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="getQuantileUpperBound(double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getQuantileUpperBound</h4>
<pre class="methodSignature">public&nbsp;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>
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.99.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../quantilescommon/QuantilesDoublesAPI.html#getQuantileUpperBound(double)">getQuantileUpperBound</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesDoublesAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesDoublesAPI</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="getRank(double,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRank</h4>
<pre class="methodSignature">public&nbsp;double&nbsp;getRank&#8203;(double&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/QuantilesDoublesAPI.html#getRank(double,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">QuantilesDoublesAPI</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/QuantilesDoublesAPI.html#getRank(double,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">getRank</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesDoublesAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesDoublesAPI</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.99.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../quantilescommon/QuantilesAPI.html#getRankLowerBound(double)">getRankLowerBound</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="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="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.99.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../quantilescommon/QuantilesAPI.html#getRankUpperBound(double)">getRankUpperBound</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="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="getRanks(double[],org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRanks</h4>
<pre class="methodSignature">public&nbsp;double[]&nbsp;getRanks&#8203;(double[]&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/QuantilesDoublesAPI.html#getRanks(double%5B%5D,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">QuantilesDoublesAPI</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/QuantilesDoublesAPI.html#getRanks(double%5B%5D,org.apache.datasketches.quantilescommon.QuantileSearchCriteria)">getRanks</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesDoublesAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesDoublesAPI</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="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="getN()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getN</h4>
<pre class="methodSignature">public abstract&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="getNormalizedRankError(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNormalizedRankError</h4>
<pre class="methodSignature">public&nbsp;double&nbsp;getNormalizedRankError&#8203;(boolean&nbsp;pmf)</pre>
<div class="block">Gets the approximate rank error of this sketch normalized as a fraction between zero and one.
The epsilon returned is a best fit to 99 percent confidence empirically measured max error
in thousands of trials.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>pmf</code> - if true, returns the "double-sided" normalized rank error for the getPMF() function.
Otherwise, it is the "single-sided" normalized rank error for all the other queries.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>if pmf is true, returns the normalized rank error for the getPMF() function.
Otherwise, it is the "single-sided" normalized rank error for all the other queries.</dd>
</dl>
</li>
</ul>
<a id="getNormalizedRankError(int,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNormalizedRankError</h4>
<pre class="methodSignature">public static&nbsp;double&nbsp;getNormalizedRankError&#8203;(int&nbsp;k,
boolean&nbsp;pmf)</pre>
<div class="block">Gets the normalized rank error given k and pmf.
Static method version of the <i>getNormalizedRankError(boolean)</i>.
The epsilon returned is a best fit to 99 percent confidence empirically measured max error
in thousands of trials.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>k</code> - the configuration parameter</dd>
<dd><code>pmf</code> - if true, returns the "double-sided" normalized rank error for the getPMF() function.
Otherwise, it is the "single-sided" normalized rank error for all the other queries.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>if pmf is true, the normalized rank error for the getPMF() function.
Otherwise, it is the "single-sided" normalized rank error for all the other queries.</dd>
</dl>
</li>
</ul>
<a id="getKFromEpsilon(double,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getKFromEpsilon</h4>
<pre class="methodSignature">public static&nbsp;int&nbsp;getKFromEpsilon&#8203;(double&nbsp;epsilon,
boolean&nbsp;pmf)</pre>
<div class="block">Gets the approximate <em>k</em> to use given epsilon, the normalized rank error.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>epsilon</code> - the normalized rank error between zero and one.</dd>
<dd><code>pmf</code> - if true, this function returns <em>k</em> assuming the input epsilon
is the desired "double-sided" epsilon for the getPMF() function. Otherwise, this function
returns <em>k</em> assuming the input epsilon is the desired "single-sided"
epsilon for all the other queries.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><i>k</i> given epsilon.</dd>
</dl>
</li>
</ul>
<a id="hasMemory()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasMemory</h4>
<pre class="methodSignature">public abstract&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 abstract&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="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="isReadOnly()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isReadOnly</h4>
<pre class="methodSignature">public abstract&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>
<a id="isSameResource(org.apache.datasketches.memory.Memory)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSameResource</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isSameResource&#8203;(org.apache.datasketches.memory.Memory&nbsp;that)</pre>
<div class="block">Returns true if the backing resource of <i>this</i> is identical with the backing resource
of <i>that</i>. The capacities must be the same. If <i>this</i> is a region,
the region offset must also be the same.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>that</code> - A different non-null object</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the backing resource of <i>this</i> is the same as the backing resource
of <i>that</i>.</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/QuantilesDoublesAPI.html#toByteArray()">QuantilesDoublesAPI</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/QuantilesDoublesAPI.html#toByteArray()">toByteArray</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesDoublesAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesDoublesAPI</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a byte array representation of this sketch.</dd>
</dl>
</li>
</ul>
<a id="toByteArray(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toByteArray</h4>
<pre class="methodSignature">public&nbsp;byte[]&nbsp;toByteArray&#8203;(boolean&nbsp;compact)</pre>
<div class="block">Serialize this sketch in a byte array form.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>compact</code> - if true the sketch will be serialized in compact form.
DirectCompactDoublesSketch can wrap() only a compact byte array;
DirectUpdateDoublesSketch can wrap() only a updatable byte array.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this sketch in a byte array form.</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="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><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></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="toString(boolean,boolean)">
<!-- -->
</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&#8203;(boolean&nbsp;sketchSummary,
boolean&nbsp;dataDetail)</pre>
<div class="block">Returns summary information about this sketch. Used for debugging.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sketchSummary</code> - if true includes sketch summary</dd>
<dd><code>dataDetail</code> - if true includes data detail</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>summary information about the sketch.</dd>
</dl>
</li>
</ul>
<a id="toString(byte[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre class="methodSignature">public static&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&#8203;(byte[]&nbsp;byteArr)</pre>
<div class="block">Returns a human readable string of the preamble of a byte array image of a DoublesSketch.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>byteArr</code> - the given byte array</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a human readable string of the preamble of a byte array image of a DoublesSketch.</dd>
</dl>
</li>
</ul>
<a id="toString(org.apache.datasketches.memory.Memory)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre class="methodSignature">public static&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&#8203;(org.apache.datasketches.memory.Memory&nbsp;mem)</pre>
<div class="block">Returns a human readable string of the preamble of a Memory image of a DoublesSketch.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mem</code> - the given Memory</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a human readable string of the preamble of a Memory image of a DoublesSketch.</dd>
</dl>
</li>
</ul>
<a id="downSample(org.apache.datasketches.quantiles.DoublesSketch,int,org.apache.datasketches.memory.WritableMemory)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>downSample</h4>
<pre class="methodSignature">public&nbsp;<a href="DoublesSketch.html" title="class in org.apache.datasketches.quantiles">DoublesSketch</a>&nbsp;downSample&#8203;(<a href="DoublesSketch.html" title="class in org.apache.datasketches.quantiles">DoublesSketch</a>&nbsp;srcSketch,
int&nbsp;smallerK,
org.apache.datasketches.memory.WritableMemory&nbsp;dstMem)</pre>
<div class="block">From an source sketch, create a new sketch that must have a smaller K.
The original sketch is not modified.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>srcSketch</code> - the sourcing sketch</dd>
<dd><code>smallerK</code> - the new sketch's K that must be smaller than this K.
It is required that this.getK() = smallerK * 2^(nonnegative integer).</dd>
<dd><code>dstMem</code> - the destination Memory. It must not overlap the Memory of this sketch.
If null, a heap sketch will be returned, otherwise it will be off-heap.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the new sketch.</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="getCurrentCompactSerializedSizeBytes()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurrentCompactSerializedSizeBytes</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;getCurrentCompactSerializedSizeBytes()</pre>
<div class="block">Returns the current number of bytes this sketch would require to store in the compact Memory Format.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the current number of bytes this sketch would require to store in the compact Memory Format.</dd>
</dl>
</li>
</ul>
<a id="getCompactSerialiedSizeBytes(int,long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCompactSerialiedSizeBytes</h4>
<pre class="methodSignature">public static&nbsp;int&nbsp;getCompactSerialiedSizeBytes&#8203;(int&nbsp;k,
long&nbsp;n)</pre>
<div class="block">Returns the number of bytes a DoublesSketch would require to store in compact form
given <i>k</i> and <i>n</i>. The compact form is not updatable.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>k</code> - the size configuration parameter for the sketch</dd>
<dd><code>n</code> - the number of quantiles input into the sketch</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the number of bytes required to store this sketch in compact form.</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/QuantilesDoublesAPI.html#getSerializedSizeBytes()">QuantilesDoublesAPI</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/QuantilesDoublesAPI.html#getSerializedSizeBytes()">getSerializedSizeBytes</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesDoublesAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesDoublesAPI</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="getCurrentUpdatableSerializedSizeBytes()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurrentUpdatableSerializedSizeBytes</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;getCurrentUpdatableSerializedSizeBytes()</pre>
<div class="block">Returns the current number of bytes this sketch would require to store in the updatable Memory Format.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the current number of bytes this sketch would require to store in the updatable Memory Format.</dd>
</dl>
</li>
</ul>
<a id="getUpdatableStorageBytes(int,long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUpdatableStorageBytes</h4>
<pre class="methodSignature">public static&nbsp;int&nbsp;getUpdatableStorageBytes&#8203;(int&nbsp;k,
long&nbsp;n)</pre>
<div class="block">Returns the number of bytes a sketch would require to store in updatable form.
This uses roughly 2X the storage of the compact form
given <i>k</i> and <i>n</i>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>k</code> - the size configuration parameter for the sketch</dd>
<dd><code>n</code> - the number of quantiles input into the sketch</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the number of bytes this sketch would require to store in updatable form.</dd>
</dl>
</li>
</ul>
<a id="putMemory(org.apache.datasketches.memory.WritableMemory)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>putMemory</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;putMemory&#8203;(org.apache.datasketches.memory.WritableMemory&nbsp;dstMem)</pre>
<div class="block">Puts the current sketch into the given Memory in compact form if there is sufficient space,
otherwise, it throws an error.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>dstMem</code> - the given memory.</dd>
</dl>
</li>
</ul>
<a id="putMemory(org.apache.datasketches.memory.WritableMemory,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>putMemory</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;putMemory&#8203;(org.apache.datasketches.memory.WritableMemory&nbsp;dstMem,
boolean&nbsp;compact)</pre>
<div class="block">Puts the current sketch into the given Memory if there is sufficient space, otherwise,
throws an error.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>dstMem</code> - the given memory.</dd>
<dd><code>compact</code> - if true, compacts and sorts the base buffer, which optimizes merge
performance at the cost of slightly increased serialization time.</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/QuantilesDoublesSketchIterator.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesDoublesSketchIterator</a>&nbsp;iterator()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../quantilescommon/QuantilesDoublesAPI.html#iterator()">QuantilesDoublesAPI</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/QuantilesDoublesAPI.html#iterator()">iterator</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesDoublesAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesDoublesAPI</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the iterator for this sketch</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/DoublesSortedView.html" title="interface in org.apache.datasketches.quantilescommon">DoublesSortedView</a>&nbsp;getSortedView()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../quantilescommon/QuantilesDoublesAPI.html#getSortedView()">QuantilesDoublesAPI</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/QuantilesDoublesAPI.html#getSortedView()">getSortedView</a></code>&nbsp;in interface&nbsp;<code><a href="../quantilescommon/QuantilesDoublesAPI.html" title="interface in org.apache.datasketches.quantilescommon">QuantilesDoublesAPI</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the sorted view of this sketch</dd>
</dl>
</li>
</ul>
<a id="reset()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>reset</h4>
<pre class="methodSignature">public abstract&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 parameter <i>k</i> 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>
</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/DoublesSketch.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>