blob: a2bcd9378990a041df0a2f1293be4a478279c7c0 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>datasketches-cpp: tuple_sketch&lt; Summary, Allocator &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">datasketches-cpp
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacedatasketches.html">datasketches</a></li><li class="navelem"><a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classdatasketches_1_1tuple__sketch-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">tuple_sketch&lt; Summary, Allocator &gt; Class Template Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div></div>
</div><!--header-->
<div class="contents">
<p>Base class for Tuple sketch.
<a href="classdatasketches_1_1tuple__sketch.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="tuple__sketch_8hpp_source.html">tuple_sketch.hpp</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for tuple_sketch&lt; Summary, Allocator &gt;:</div>
<div class="dyncontent">
<div class="center">
<img src="classdatasketches_1_1tuple__sketch.png" usemap="#tuple_5Fsketch_3C_20Summary_2C_20Allocator_20_3E_map" alt=""/>
<map id="tuple_5Fsketch_3C_20Summary_2C_20Allocator_20_3E_map" name="tuple_5Fsketch_3C_20Summary_2C_20Allocator_20_3E_map">
<area href="classdatasketches_1_1compact__tuple__sketch.html" alt="compact_tuple_sketch&lt; Array, typename Array::allocator_type &gt;" shape="rect" coords="0,56,675,80"/>
<area href="classdatasketches_1_1update__tuple__sketch.html" alt="update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;" shape="rect" coords="685,56,1360,80"/>
<area href="classdatasketches_1_1compact__tuple__sketch.html" title="Compact Tuple sketch." alt="compact_tuple_sketch&lt; Summary, Allocator &gt;" shape="rect" coords="1370,56,2045,80"/>
<area href="classdatasketches_1_1update__tuple__sketch.html" title="Update Tuple sketch." alt="update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;" shape="rect" coords="2055,56,2730,80"/>
<area href="classdatasketches_1_1compact__array__tuple__sketch.html" title="Compact array tuple sketch." alt="compact_array_tuple_sketch&lt; Array, Allocator &gt;" shape="rect" coords="1370,112,2045,136"/>
<area href="classdatasketches_1_1update__array__tuple__sketch.html" title="Update array tuple sketch." alt="update_array_tuple_sketch&lt; Array, Policy, Allocator &gt;" shape="rect" coords="2055,112,2730,136"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ae99d253473075b7c10569d4565d7ee90" id="r_ae99d253473075b7c10569d4565d7ee90"><td class="memItemLeft" align="right" valign="top">virtual Allocator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1tuple__sketch.html#ae99d253473075b7c10569d4565d7ee90">get_allocator</a> () const =0</td></tr>
<tr class="separator:ae99d253473075b7c10569d4565d7ee90"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a501185051053fcccae5f73f324febcdf" id="r_a501185051053fcccae5f73f324febcdf"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1tuple__sketch.html#a501185051053fcccae5f73f324febcdf">is_empty</a> () const =0</td></tr>
<tr class="separator:a501185051053fcccae5f73f324febcdf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2afb71f2ef2d82290be4c8eafc08f2a2" id="r_a2afb71f2ef2d82290be4c8eafc08f2a2"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1tuple__sketch.html#a2afb71f2ef2d82290be4c8eafc08f2a2">get_estimate</a> () const</td></tr>
<tr class="separator:a2afb71f2ef2d82290be4c8eafc08f2a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5019c0a76c448aa70679ec9009c9c096" id="r_a5019c0a76c448aa70679ec9009c9c096"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1tuple__sketch.html#a5019c0a76c448aa70679ec9009c9c096">get_lower_bound</a> (uint8_t num_std_devs, uint32_t num_subset_entries) const</td></tr>
<tr class="memdesc:a5019c0a76c448aa70679ec9009c9c096"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the approximate lower error bound given a number of standard deviations over an arbitrary number of items stored in the sketch. <br /></td></tr>
<tr class="separator:a5019c0a76c448aa70679ec9009c9c096"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e5c990494331d901c3b38cd4eb316e6" id="r_a2e5c990494331d901c3b38cd4eb316e6"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1tuple__sketch.html#a2e5c990494331d901c3b38cd4eb316e6">get_lower_bound</a> (uint8_t num_std_devs) const</td></tr>
<tr class="memdesc:a2e5c990494331d901c3b38cd4eb316e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the approximate lower error bound given a number of standard deviations. <br /></td></tr>
<tr class="separator:a2e5c990494331d901c3b38cd4eb316e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0526cde38fc4f1bc32839293567c8717" id="r_a0526cde38fc4f1bc32839293567c8717"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1tuple__sketch.html#a0526cde38fc4f1bc32839293567c8717">get_upper_bound</a> (uint8_t num_std_devs, uint32_t num_subset_entries) const</td></tr>
<tr class="memdesc:a0526cde38fc4f1bc32839293567c8717"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the approximate upper error bound given a number of standard deviations over an arbitrary number of items stored in the sketch. <br /></td></tr>
<tr class="separator:a0526cde38fc4f1bc32839293567c8717"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa408e90fef0f988eca7d132875c7c7e1" id="r_aa408e90fef0f988eca7d132875c7c7e1"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1tuple__sketch.html#aa408e90fef0f988eca7d132875c7c7e1">get_upper_bound</a> (uint8_t num_std_devs) const</td></tr>
<tr class="memdesc:aa408e90fef0f988eca7d132875c7c7e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the approximate upper error bound given a number of standard deviations. <br /></td></tr>
<tr class="separator:aa408e90fef0f988eca7d132875c7c7e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae95a04b1d7dccb3d9b3f3c3d087aa8e6" id="r_ae95a04b1d7dccb3d9b3f3c3d087aa8e6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1tuple__sketch.html#ae95a04b1d7dccb3d9b3f3c3d087aa8e6">is_estimation_mode</a> () const</td></tr>
<tr class="separator:ae95a04b1d7dccb3d9b3f3c3d087aa8e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa784d7f8ac02e9c4e26e7fe9f177a7aa" id="r_aa784d7f8ac02e9c4e26e7fe9f177a7aa"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1tuple__sketch.html#aa784d7f8ac02e9c4e26e7fe9f177a7aa">get_theta</a> () const</td></tr>
<tr class="separator:aa784d7f8ac02e9c4e26e7fe9f177a7aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef2e47ecd9c33fc2a6a9e905a2a0516a" id="r_aef2e47ecd9c33fc2a6a9e905a2a0516a"><td class="memItemLeft" align="right" valign="top">virtual uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1tuple__sketch.html#aef2e47ecd9c33fc2a6a9e905a2a0516a">get_theta64</a> () const =0</td></tr>
<tr class="separator:aef2e47ecd9c33fc2a6a9e905a2a0516a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c71f891e4b0d3d3dc6a6f4b30ed9261" id="r_a9c71f891e4b0d3d3dc6a6f4b30ed9261"><td class="memItemLeft" align="right" valign="top">virtual uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1tuple__sketch.html#a9c71f891e4b0d3d3dc6a6f4b30ed9261">get_num_retained</a> () const =0</td></tr>
<tr class="separator:a9c71f891e4b0d3d3dc6a6f4b30ed9261"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab76bd6487f5a75a356083bfe163a7079" id="r_ab76bd6487f5a75a356083bfe163a7079"><td class="memItemLeft" align="right" valign="top">virtual uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1tuple__sketch.html#ab76bd6487f5a75a356083bfe163a7079">get_seed_hash</a> () const =0</td></tr>
<tr class="separator:ab76bd6487f5a75a356083bfe163a7079"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a358923431da50e8d43651795e2515c01" id="r_a358923431da50e8d43651795e2515c01"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1tuple__sketch.html#a358923431da50e8d43651795e2515c01">is_ordered</a> () const =0</td></tr>
<tr class="separator:a358923431da50e8d43651795e2515c01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a60a5fe73c86554c313705666f8fb227a" id="r_a60a5fe73c86554c313705666f8fb227a"><td class="memItemLeft" align="right" valign="top">string&lt; Allocator &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1tuple__sketch.html#a60a5fe73c86554c313705666f8fb227a">to_string</a> (bool print_items=false) const</td></tr>
<tr class="memdesc:a60a5fe73c86554c313705666f8fb227a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides a human-readable summary of this sketch as a string. <br /></td></tr>
<tr class="separator:a60a5fe73c86554c313705666f8fb227a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1d91335a83907ae2ef026786e12ba0c" id="r_ad1d91335a83907ae2ef026786e12ba0c"><td class="memItemLeft" align="right" valign="top">virtual iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1tuple__sketch.html#ad1d91335a83907ae2ef026786e12ba0c">begin</a> ()=0</td></tr>
<tr class="memdesc:ad1d91335a83907ae2ef026786e12ba0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterator over entries in this sketch. <br /></td></tr>
<tr class="separator:ad1d91335a83907ae2ef026786e12ba0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7f5423261c0a178f37911746353c0b7" id="r_aa7f5423261c0a178f37911746353c0b7"><td class="memItemLeft" align="right" valign="top">virtual iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1tuple__sketch.html#aa7f5423261c0a178f37911746353c0b7">end</a> ()=0</td></tr>
<tr class="memdesc:aa7f5423261c0a178f37911746353c0b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterator pointing past the valid range. <br /></td></tr>
<tr class="separator:aa7f5423261c0a178f37911746353c0b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a250dc1485aaf4ef61332af5c5fdb4715" id="r_a250dc1485aaf4ef61332af5c5fdb4715"><td class="memItemLeft" align="right" valign="top">virtual const_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1tuple__sketch.html#a250dc1485aaf4ef61332af5c5fdb4715">begin</a> () const =0</td></tr>
<tr class="memdesc:a250dc1485aaf4ef61332af5c5fdb4715"><td class="mdescLeft">&#160;</td><td class="mdescRight">Const iterator over entries in this sketch. <br /></td></tr>
<tr class="separator:a250dc1485aaf4ef61332af5c5fdb4715"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47bfa611ed719e4b41ceb653376c1677" id="r_a47bfa611ed719e4b41ceb653376c1677"><td class="memItemLeft" align="right" valign="top">virtual const_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1tuple__sketch.html#a47bfa611ed719e4b41ceb653376c1677">end</a> () const =0</td></tr>
<tr class="memdesc:a47bfa611ed719e4b41ceb653376c1677"><td class="mdescLeft">&#160;</td><td class="mdescRight">Const iterator pointing past the valid range. <br /></td></tr>
<tr class="separator:a47bfa611ed719e4b41ceb653376c1677"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><div class="compoundTemplParams">template&lt;typename Summary, typename Allocator = std::allocator&lt;Summary&gt;&gt;<br />
class datasketches::tuple_sketch&lt; Summary, Allocator &gt;</div><p>Base class for Tuple sketch. </p>
<p>This is an extension of Theta sketch that allows keeping arbitrary Summary associated with each retained key. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="ae99d253473075b7c10569d4565d7ee90" name="ae99d253473075b7c10569d4565d7ee90"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae99d253473075b7c10569d4565d7ee90">&#9670;&#160;</a></span>get_allocator()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Summary , typename Allocator = std::allocator&lt;Summary&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual Allocator get_allocator </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>allocator </dd></dl>
<p>Implemented in <a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a9d85cf47c4ecd0580ec623c42006dd1b">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a>, <a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a9d85cf47c4ecd0580ec623c42006dd1b">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a>, <a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#a9d85cf47c4ecd0580ec623c42006dd1b">compact_tuple_sketch&lt; Summary, Allocator &gt;</a>, and <a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#a9d85cf47c4ecd0580ec623c42006dd1b">compact_tuple_sketch&lt; Array, typename Array::allocator_type &gt;</a>.</p>
</div>
</div>
<a id="a501185051053fcccae5f73f324febcdf" name="a501185051053fcccae5f73f324febcdf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a501185051053fcccae5f73f324febcdf">&#9670;&#160;</a></span>is_empty()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Summary , typename Allocator = std::allocator&lt;Summary&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual bool is_empty </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>true if this sketch represents an empty set (not the same as no retained entries!) </dd></dl>
<p>Implemented in <a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a5a2b7a58dc85678d08752945ff655362">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a>, <a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a5a2b7a58dc85678d08752945ff655362">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a>, <a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#a5a2b7a58dc85678d08752945ff655362">compact_tuple_sketch&lt; Summary, Allocator &gt;</a>, and <a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#a5a2b7a58dc85678d08752945ff655362">compact_tuple_sketch&lt; Array, typename Array::allocator_type &gt;</a>.</p>
</div>
</div>
<a id="a2afb71f2ef2d82290be4c8eafc08f2a2" name="a2afb71f2ef2d82290be4c8eafc08f2a2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2afb71f2ef2d82290be4c8eafc08f2a2">&#9670;&#160;</a></span>get_estimate()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename S , typename A &gt; </div>
<table class="memname">
<tr>
<td class="memname">double get_estimate </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>estimate of the distinct count of the input stream </dd></dl>
</div>
</div>
<a id="a5019c0a76c448aa70679ec9009c9c096" name="a5019c0a76c448aa70679ec9009c9c096"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5019c0a76c448aa70679ec9009c9c096">&#9670;&#160;</a></span>get_lower_bound() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename S , typename A &gt; </div>
<table class="memname">
<tr>
<td class="memname">double get_lower_bound </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>num_std_devs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>num_subset_entries</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the approximate lower error bound given a number of standard deviations over an arbitrary number of items stored in the sketch. </p>
<p>This parameter is similar to the number of standard deviations of the normal distribution and corresponds to approximately 67%, 95% and 99% confidence intervals. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">num_std_devs</td><td>number of Standard Deviations (1, 2 or 3) </td></tr>
<tr><td class="paramname">num_subset_entries</td><td>number of items from {0, 1, ..., <a class="el" href="classdatasketches_1_1tuple__sketch.html#a9c71f891e4b0d3d3dc6a6f4b30ed9261">get_num_retained()</a>} over which to estimate the bound </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the lower bound </dd></dl>
</div>
</div>
<a id="a2e5c990494331d901c3b38cd4eb316e6" name="a2e5c990494331d901c3b38cd4eb316e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2e5c990494331d901c3b38cd4eb316e6">&#9670;&#160;</a></span>get_lower_bound() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename S , typename A &gt; </div>
<table class="memname">
<tr>
<td class="memname">double get_lower_bound </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>num_std_devs</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the approximate lower error bound given a number of standard deviations. </p>
<p>This parameter is similar to the number of standard deviations of the normal distribution and corresponds to approximately 67%, 95% and 99% confidence intervals. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">num_std_devs</td><td>number of Standard Deviations (1, 2 or 3) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the lower bound </dd></dl>
</div>
</div>
<a id="a0526cde38fc4f1bc32839293567c8717" name="a0526cde38fc4f1bc32839293567c8717"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0526cde38fc4f1bc32839293567c8717">&#9670;&#160;</a></span>get_upper_bound() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename S , typename A &gt; </div>
<table class="memname">
<tr>
<td class="memname">double get_upper_bound </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>num_std_devs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>num_subset_entries</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the approximate upper error bound given a number of standard deviations over an arbitrary number of items stored in the sketch. </p>
<p>This parameter is similar to the number of standard deviations of the normal distribution and corresponds to approximately 67%, 95% and 99% confidence intervals. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">num_std_devs</td><td>number of Standard Deviations (1, 2 or 3) </td></tr>
<tr><td class="paramname">num_subset_entries</td><td>number of items from {0, 1, ..., <a class="el" href="classdatasketches_1_1tuple__sketch.html#a9c71f891e4b0d3d3dc6a6f4b30ed9261">get_num_retained()</a>} over which to estimate the bound </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the lower bound </dd></dl>
</div>
</div>
<a id="aa408e90fef0f988eca7d132875c7c7e1" name="aa408e90fef0f988eca7d132875c7c7e1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa408e90fef0f988eca7d132875c7c7e1">&#9670;&#160;</a></span>get_upper_bound() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename S , typename A &gt; </div>
<table class="memname">
<tr>
<td class="memname">double get_upper_bound </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>num_std_devs</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the approximate upper error bound given a number of standard deviations. </p>
<p>This parameter is similar to the number of standard deviations of the normal distribution and corresponds to approximately 67%, 95% and 99% confidence intervals. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">num_std_devs</td><td>number of Standard Deviations (1, 2 or 3) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the upper bound </dd></dl>
</div>
</div>
<a id="ae95a04b1d7dccb3d9b3f3c3d087aa8e6" name="ae95a04b1d7dccb3d9b3f3c3d087aa8e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae95a04b1d7dccb3d9b3f3c3d087aa8e6">&#9670;&#160;</a></span>is_estimation_mode()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename S , typename A &gt; </div>
<table class="memname">
<tr>
<td class="memname">bool is_estimation_mode </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>true if the sketch is in estimation mode (as opposed to exact mode) </dd></dl>
</div>
</div>
<a id="aa784d7f8ac02e9c4e26e7fe9f177a7aa" name="aa784d7f8ac02e9c4e26e7fe9f177a7aa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa784d7f8ac02e9c4e26e7fe9f177a7aa">&#9670;&#160;</a></span>get_theta()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename S , typename A &gt; </div>
<table class="memname">
<tr>
<td class="memname">double get_theta </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>theta as a fraction from 0 to 1 (effective sampling rate) </dd></dl>
</div>
</div>
<a id="aef2e47ecd9c33fc2a6a9e905a2a0516a" name="aef2e47ecd9c33fc2a6a9e905a2a0516a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aef2e47ecd9c33fc2a6a9e905a2a0516a">&#9670;&#160;</a></span>get_theta64()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Summary , typename Allocator = std::allocator&lt;Summary&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual uint64_t get_theta64 </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>theta as a positive integer between 0 and LLONG_MAX </dd></dl>
<p>Implemented in <a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a2b072fe55377eb51a6ee477827fc3b95">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a>, <a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a2b072fe55377eb51a6ee477827fc3b95">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a>, <a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#a2b072fe55377eb51a6ee477827fc3b95">compact_tuple_sketch&lt; Summary, Allocator &gt;</a>, and <a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#a2b072fe55377eb51a6ee477827fc3b95">compact_tuple_sketch&lt; Array, typename Array::allocator_type &gt;</a>.</p>
</div>
</div>
<a id="a9c71f891e4b0d3d3dc6a6f4b30ed9261" name="a9c71f891e4b0d3d3dc6a6f4b30ed9261"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9c71f891e4b0d3d3dc6a6f4b30ed9261">&#9670;&#160;</a></span>get_num_retained()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Summary , typename Allocator = std::allocator&lt;Summary&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual uint32_t get_num_retained </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the number of retained entries in the sketch </dd></dl>
<p>Implemented in <a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a31fa76458d81a17dbebfcb828e531f14">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a>, <a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a31fa76458d81a17dbebfcb828e531f14">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a>, <a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#a31fa76458d81a17dbebfcb828e531f14">compact_tuple_sketch&lt; Summary, Allocator &gt;</a>, and <a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#a31fa76458d81a17dbebfcb828e531f14">compact_tuple_sketch&lt; Array, typename Array::allocator_type &gt;</a>.</p>
</div>
</div>
<a id="ab76bd6487f5a75a356083bfe163a7079" name="ab76bd6487f5a75a356083bfe163a7079"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab76bd6487f5a75a356083bfe163a7079">&#9670;&#160;</a></span>get_seed_hash()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Summary , typename Allocator = std::allocator&lt;Summary&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual uint16_t get_seed_hash </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>hash of the seed that was used to hash the input </dd></dl>
<p>Implemented in <a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a6f69b50bc13da11d255d0e583e2376ba">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a>, <a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a6f69b50bc13da11d255d0e583e2376ba">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a>, <a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#a6f69b50bc13da11d255d0e583e2376ba">compact_tuple_sketch&lt; Summary, Allocator &gt;</a>, and <a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#a6f69b50bc13da11d255d0e583e2376ba">compact_tuple_sketch&lt; Array, typename Array::allocator_type &gt;</a>.</p>
</div>
</div>
<a id="a358923431da50e8d43651795e2515c01" name="a358923431da50e8d43651795e2515c01"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a358923431da50e8d43651795e2515c01">&#9670;&#160;</a></span>is_ordered()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Summary , typename Allocator = std::allocator&lt;Summary&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual bool is_ordered </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>true if retained entries are ordered </dd></dl>
<p>Implemented in <a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a5f5b393314c0c1819f79b73232a506e8">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a>, <a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a5f5b393314c0c1819f79b73232a506e8">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a>, <a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#a5f5b393314c0c1819f79b73232a506e8">compact_tuple_sketch&lt; Summary, Allocator &gt;</a>, and <a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#a5f5b393314c0c1819f79b73232a506e8">compact_tuple_sketch&lt; Array, typename Array::allocator_type &gt;</a>.</p>
</div>
</div>
<a id="a60a5fe73c86554c313705666f8fb227a" name="a60a5fe73c86554c313705666f8fb227a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a60a5fe73c86554c313705666f8fb227a">&#9670;&#160;</a></span>to_string()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename S , typename A &gt; </div>
<table class="memname">
<tr>
<td class="memname">string&lt; A &gt; to_string </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>print_items</em> = <code>false</code></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Provides a human-readable summary of this sketch as a string. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">print_items</td><td>if true include the list of items retained by the sketch </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>sketch summary as a string </dd></dl>
</div>
</div>
<a id="ad1d91335a83907ae2ef026786e12ba0c" name="ad1d91335a83907ae2ef026786e12ba0c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad1d91335a83907ae2ef026786e12ba0c">&#9670;&#160;</a></span>begin() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Summary , typename Allocator = std::allocator&lt;Summary&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual iterator begin </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Iterator over entries in this sketch. </p>
<dl class="section return"><dt>Returns</dt><dd>begin iterator </dd></dl>
<p>Implemented in <a class="el" href="classdatasketches_1_1update__tuple__sketch.html#ad950587c89b4306f927b08b5e5cb7e89">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a>, <a class="el" href="classdatasketches_1_1update__tuple__sketch.html#ad950587c89b4306f927b08b5e5cb7e89">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a>, <a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#ad950587c89b4306f927b08b5e5cb7e89">compact_tuple_sketch&lt; Summary, Allocator &gt;</a>, and <a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#ad950587c89b4306f927b08b5e5cb7e89">compact_tuple_sketch&lt; Array, typename Array::allocator_type &gt;</a>.</p>
</div>
</div>
<a id="aa7f5423261c0a178f37911746353c0b7" name="aa7f5423261c0a178f37911746353c0b7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa7f5423261c0a178f37911746353c0b7">&#9670;&#160;</a></span>end() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Summary , typename Allocator = std::allocator&lt;Summary&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual iterator end </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Iterator pointing past the valid range. </p>
<p>Not to be incremented or dereferenced. </p><dl class="section return"><dt>Returns</dt><dd>end iterator </dd></dl>
<p>Implemented in <a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a7727305d5e1ec66a181e22c43af9a581">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a>, <a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a7727305d5e1ec66a181e22c43af9a581">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a>, <a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#a7727305d5e1ec66a181e22c43af9a581">compact_tuple_sketch&lt; Summary, Allocator &gt;</a>, and <a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#a7727305d5e1ec66a181e22c43af9a581">compact_tuple_sketch&lt; Array, typename Array::allocator_type &gt;</a>.</p>
</div>
</div>
<a id="a250dc1485aaf4ef61332af5c5fdb4715" name="a250dc1485aaf4ef61332af5c5fdb4715"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a250dc1485aaf4ef61332af5c5fdb4715">&#9670;&#160;</a></span>begin() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Summary , typename Allocator = std::allocator&lt;Summary&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual const_iterator begin </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Const iterator over entries in this sketch. </p>
<dl class="section return"><dt>Returns</dt><dd>begin const iterator </dd></dl>
<p>Implemented in <a class="el" href="classdatasketches_1_1update__tuple__sketch.html#ad5c959a538216a09ab28c5283585956c">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a>, <a class="el" href="classdatasketches_1_1update__tuple__sketch.html#ad5c959a538216a09ab28c5283585956c">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a>, <a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#ad5c959a538216a09ab28c5283585956c">compact_tuple_sketch&lt; Summary, Allocator &gt;</a>, and <a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#ad5c959a538216a09ab28c5283585956c">compact_tuple_sketch&lt; Array, typename Array::allocator_type &gt;</a>.</p>
</div>
</div>
<a id="a47bfa611ed719e4b41ceb653376c1677" name="a47bfa611ed719e4b41ceb653376c1677"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a47bfa611ed719e4b41ceb653376c1677">&#9670;&#160;</a></span>end() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Summary , typename Allocator = std::allocator&lt;Summary&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual const_iterator end </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Const iterator pointing past the valid range. </p>
<p>Not to be incremented or dereferenced. </p><dl class="section return"><dt>Returns</dt><dd>end const iterator </dd></dl>
<p>Implemented in <a class="el" href="classdatasketches_1_1update__tuple__sketch.html#ae11e60e117300685401961e36f196f7a">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a>, <a class="el" href="classdatasketches_1_1update__tuple__sketch.html#ae11e60e117300685401961e36f196f7a">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a>, <a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#ae11e60e117300685401961e36f196f7a">compact_tuple_sketch&lt; Summary, Allocator &gt;</a>, and <a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#ae11e60e117300685401961e36f196f7a">compact_tuple_sketch&lt; Array, typename Array::allocator_type &gt;</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>tuple/include/<a class="el" href="tuple__sketch_8hpp_source.html">tuple_sketch.hpp</a></li>
<li>tuple/include/<a class="el" href="tuple__sketch__impl_8hpp_source.html">tuple_sketch_impl.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
</small></address>
</body>
</html>