blob: cef9d0c962544c1634d88c121d5248fca8eeba8a [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>QuantilesUtil (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="QuantilesUtil (datasketches-java 4.0.0 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static 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/QuantilesUtil.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><a href="#field.detail">Field</a>&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="Class QuantilesUtil" class="title">Class QuantilesUtil</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.quantilescommon.QuantilesUtil</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<pre>public final class <span class="typeNameLabel">QuantilesUtil</span>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
<div class="block">Utilities for the quantiles sketches.</div>
<dl>
<dt><span class="simpleTagLabel">Author:</span></dt>
<dd>Lee Rhodes</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr 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="#THROWS_EMPTY">THROWS_EMPTY</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static 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 void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkDoublesSplitPointsOrder(double%5B%5D)">checkDoublesSplitPointsOrder</a></span>&#8203;(double[]&nbsp;values)</code></th>
<td class="colLast">
<div class="block">Checks the sequential validity of the given array of double values.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkFloatsSplitPointsOrder(float%5B%5D)">checkFloatsSplitPointsOrder</a></span>&#8203;(float[]&nbsp;values)</code></th>
<td class="colLast">
<div class="block">Checks the sequential validity of the given array of float values.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkNormalizedRankBounds(double)">checkNormalizedRankBounds</a></span>&#8203;(double&nbsp;nRank)</code></th>
<td class="colLast">
<div class="block">Checks that the given normalized rank: <i>0 &le; nRank &le; 1.0</i>.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static double[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equallyWeightedRanks(int)">equallyWeightedRanks</a></span>&#8203;(int&nbsp;num)</code></th>
<td class="colLast">
<div class="block">Returns a double array of ranks that defines equally weighted regions between 0.0, inclusive and 1.0, inclusive.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static double[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#evenlyLogSpaced(double,double,int)">evenlyLogSpaced</a></span>&#8203;(double&nbsp;value1,
double&nbsp;value2,
int&nbsp;num)</code></th>
<td class="colLast">
<div class="block">Returns a double array of values between min and max inclusive where the log of the
returned values are evenly spaced.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static double[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#evenlySpacedDoubles(double,double,int)">evenlySpacedDoubles</a></span>&#8203;(double&nbsp;value1,
double&nbsp;value2,
int&nbsp;num)</code></th>
<td class="colLast">
<div class="block">Returns a double array of evenly spaced values between value1, inclusive, and value2 inclusive.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>static float[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#evenlySpacedFloats(float,float,int)">evenlySpacedFloats</a></span>&#8203;(float&nbsp;value1,
float&nbsp;value2,
int&nbsp;num)</code></th>
<td class="colLast">
<div class="block">Returns a float array of evenly spaced values between value1, inclusive, and value2 inclusive.</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#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="THROWS_EMPTY">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>THROWS_EMPTY</h4>
<pre>public static final&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> THROWS_EMPTY</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.datasketches.quantilescommon.QuantilesUtil.THROWS_EMPTY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="checkNormalizedRankBounds(double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkNormalizedRankBounds</h4>
<pre class="methodSignature">public static final&nbsp;void&nbsp;checkNormalizedRankBounds&#8203;(double&nbsp;nRank)</pre>
<div class="block">Checks that the given normalized rank: <i>0 &le; nRank &le; 1.0</i>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>nRank</code> - the given normalized rank.</dd>
</dl>
</li>
</ul>
<a id="checkDoublesSplitPointsOrder(double[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkDoublesSplitPointsOrder</h4>
<pre class="methodSignature">public static final&nbsp;void&nbsp;checkDoublesSplitPointsOrder&#8203;(double[]&nbsp;values)</pre>
<div class="block">Checks the sequential validity of the given array of double values.
They must be unique, monotonically increasing and not NaN.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>values</code> - the given array of double values</dd>
</dl>
</li>
</ul>
<a id="checkFloatsSplitPointsOrder(float[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkFloatsSplitPointsOrder</h4>
<pre class="methodSignature">public static final&nbsp;void&nbsp;checkFloatsSplitPointsOrder&#8203;(float[]&nbsp;values)</pre>
<div class="block">Checks the sequential validity of the given array of float values.
They must be unique, monotonically increasing and not NaN.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>values</code> - the given array of double values</dd>
</dl>
</li>
</ul>
<a id="equallyWeightedRanks(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equallyWeightedRanks</h4>
<pre class="methodSignature">public static&nbsp;double[]&nbsp;equallyWeightedRanks&#8203;(int&nbsp;num)</pre>
<div class="block">Returns a double array of ranks that defines equally weighted regions between 0.0, inclusive and 1.0, inclusive.
The 0.0 and 1.0 end points are part of the returned array and are the getMinItem() and getMaxItem() values of the
sketch.
For example, if num == 2, three values will be returned: 0.0, .5, and 1, where the two equally weighted regions are
0.0 to 0.5, and 0.5 to 1.0.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>num</code> - the total number of equally weighted regions between 0.0 and 1.0 defined by the ranks in the returned
array. <i>num</i> must be 1 or greater.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a double array of <i>num + 1</i> ranks that define the boundaries of <i>num</i> equally weighted
regions between 0.0, inclusive and 1.0, inclusive.</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 <i>num</i> is less than 1.</dd>
</dl>
</li>
</ul>
<a id="evenlySpacedFloats(float,float,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>evenlySpacedFloats</h4>
<pre class="methodSignature">public static&nbsp;float[]&nbsp;evenlySpacedFloats&#8203;(float&nbsp;value1,
float&nbsp;value2,
int&nbsp;num)</pre>
<div class="block">Returns a float array of evenly spaced values between value1, inclusive, and value2 inclusive.
If value2 &gt; value1, the resulting sequence will be increasing.
If value2 &lt; value1, the resulting sequence will be decreasing.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>value1</code> - will be in index 0 of the returned array</dd>
<dd><code>value2</code> - will be in the highest index of the returned array</dd>
<dd><code>num</code> - the total number of values including value1 and value2. Must be 2 or greater.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a float array of evenly spaced values between value1, inclusive, and value2 inclusive.</dd>
</dl>
</li>
</ul>
<a id="evenlySpacedDoubles(double,double,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>evenlySpacedDoubles</h4>
<pre class="methodSignature">public static&nbsp;double[]&nbsp;evenlySpacedDoubles&#8203;(double&nbsp;value1,
double&nbsp;value2,
int&nbsp;num)</pre>
<div class="block">Returns a double array of evenly spaced values between value1, inclusive, and value2 inclusive.
If value2 &gt; value1, the resulting sequence will be increasing.
If value2 &lt; value1, the resulting sequence will be decreasing.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>value1</code> - will be in index 0 of the returned array</dd>
<dd><code>value2</code> - will be in the highest index of the returned array</dd>
<dd><code>num</code> - the total number of values including value1 and value2. Must be 2 or greater.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a float array of evenly spaced values between value1, inclusive, and value2 inclusive.</dd>
</dl>
</li>
</ul>
<a id="evenlyLogSpaced(double,double,int)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>evenlyLogSpaced</h4>
<pre class="methodSignature">public static&nbsp;double[]&nbsp;evenlyLogSpaced&#8203;(double&nbsp;value1,
double&nbsp;value2,
int&nbsp;num)</pre>
<div class="block">Returns a double array of values between min and max inclusive where the log of the
returned values are evenly spaced.
If value2 &gt; value1, the resulting sequence will be increasing.
If value2 &lt; value1, the resulting sequence will be decreasing.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>value1</code> - will be in index 0 of the returned array, and must be greater than zero.</dd>
<dd><code>value2</code> - will be in the highest index of the returned array, and must be greater than zero.</dd>
<dd><code>num</code> - the total number of values including value1 and value2. Must be 2 or greater</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a double array of exponentially spaced values between value1 and value2 inclusive.</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/QuantilesUtil.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><a href="#field.detail">Field</a>&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>