blob: cbd0d5228aeab694d610d16e4de629af913dc978 [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: var_opt_sketch&lt; T, A &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_1var__opt__sketch.html">var_opt_sketch</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="classdatasketches_1_1var__opt__sketch-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">var_opt_sketch&lt; T, A &gt; Class Template Reference</div></div>
</div><!--header-->
<div class="contents">
<p>This sketch samples data from a stream of items.
<a href="classdatasketches_1_1var__opt__sketch.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="var__opt__sketch_8hpp_source.html">var_opt_sketch.hpp</a>&gt;</code></p>
<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:a6df9f2226b7197a0f612ee4aec0233e7" id="r_a6df9f2226b7197a0f612ee4aec0233e7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1var__opt__sketch.html#a6df9f2226b7197a0f612ee4aec0233e7">var_opt_sketch</a> (uint32_t k, resize_factor rf=<a class="el" href="namespacedatasketches_1_1var__opt__constants.html#a02799eee5e87428b1c72e6c4c282d68e">var_opt_constants::DEFAULT_RESIZE_FACTOR</a>, const A &amp;allocator=A())</td></tr>
<tr class="memdesc:a6df9f2226b7197a0f612ee4aec0233e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <br /></td></tr>
<tr class="separator:a6df9f2226b7197a0f612ee4aec0233e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3efbe40f3a9091fa581eaeef126b8285" id="r_a3efbe40f3a9091fa581eaeef126b8285"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1var__opt__sketch.html#a3efbe40f3a9091fa581eaeef126b8285">var_opt_sketch</a> (const <a class="el" href="classdatasketches_1_1var__opt__sketch.html">var_opt_sketch</a> &amp;other)</td></tr>
<tr class="memdesc:a3efbe40f3a9091fa581eaeef126b8285"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <br /></td></tr>
<tr class="separator:a3efbe40f3a9091fa581eaeef126b8285"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76983c7d51265ef49674a518925a7cf4" id="r_a76983c7d51265ef49674a518925a7cf4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1var__opt__sketch.html#a76983c7d51265ef49674a518925a7cf4">var_opt_sketch</a> (<a class="el" href="classdatasketches_1_1var__opt__sketch.html">var_opt_sketch</a> &amp;&amp;other) noexcept</td></tr>
<tr class="memdesc:a76983c7d51265ef49674a518925a7cf4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <br /></td></tr>
<tr class="separator:a76983c7d51265ef49674a518925a7cf4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a247dd627502e887562ae763adfe863ff" id="r_a247dd627502e887562ae763adfe863ff"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdatasketches_1_1var__opt__sketch.html">var_opt_sketch</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1var__opt__sketch.html#a247dd627502e887562ae763adfe863ff">operator=</a> (const <a class="el" href="classdatasketches_1_1var__opt__sketch.html">var_opt_sketch</a> &amp;other)</td></tr>
<tr class="memdesc:a247dd627502e887562ae763adfe863ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy assignment. <br /></td></tr>
<tr class="separator:a247dd627502e887562ae763adfe863ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a18041b548e38eaca6d1a57e52a24a5e1" id="r_a18041b548e38eaca6d1a57e52a24a5e1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdatasketches_1_1var__opt__sketch.html">var_opt_sketch</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1var__opt__sketch.html#a18041b548e38eaca6d1a57e52a24a5e1">operator=</a> (<a class="el" href="classdatasketches_1_1var__opt__sketch.html">var_opt_sketch</a> &amp;&amp;other)</td></tr>
<tr class="memdesc:a18041b548e38eaca6d1a57e52a24a5e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assignment. <br /></td></tr>
<tr class="separator:a18041b548e38eaca6d1a57e52a24a5e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1125ed18baf3f257b5796321c7ec0f8f" id="r_a1125ed18baf3f257b5796321c7ec0f8f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1var__opt__sketch.html#a1125ed18baf3f257b5796321c7ec0f8f">update</a> (const T &amp;item, double weight=1.0)</td></tr>
<tr class="memdesc:a1125ed18baf3f257b5796321c7ec0f8f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates this sketch with the given data item with the given weight. <br /></td></tr>
<tr class="separator:a1125ed18baf3f257b5796321c7ec0f8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c07446b1fd8f8509f754ebaf3f77050" id="r_a9c07446b1fd8f8509f754ebaf3f77050"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1var__opt__sketch.html#a9c07446b1fd8f8509f754ebaf3f77050">update</a> (T &amp;&amp;item, double weight=1.0)</td></tr>
<tr class="memdesc:a9c07446b1fd8f8509f754ebaf3f77050"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates this sketch with the given data item with the given weight. <br /></td></tr>
<tr class="separator:a9c07446b1fd8f8509f754ebaf3f77050"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af561f5cd76ff61773713c627bc53b0a2" id="r_af561f5cd76ff61773713c627bc53b0a2"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1var__opt__sketch.html#af561f5cd76ff61773713c627bc53b0a2">get_k</a> () const</td></tr>
<tr class="memdesc:af561f5cd76ff61773713c627bc53b0a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the configured maximum sample size. <br /></td></tr>
<tr class="separator:af561f5cd76ff61773713c627bc53b0a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af857be9469a7565252626f27e1f9d74d" id="r_af857be9469a7565252626f27e1f9d74d"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1var__opt__sketch.html#af857be9469a7565252626f27e1f9d74d">get_n</a> () const</td></tr>
<tr class="memdesc:af857be9469a7565252626f27e1f9d74d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the length of the input stream. <br /></td></tr>
<tr class="separator:af857be9469a7565252626f27e1f9d74d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac481918ec96d79b27813d32bcc2a247d" id="r_ac481918ec96d79b27813d32bcc2a247d"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1var__opt__sketch.html#ac481918ec96d79b27813d32bcc2a247d">get_num_samples</a> () const</td></tr>
<tr class="memdesc:ac481918ec96d79b27813d32bcc2a247d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of samples currently in the sketch. <br /></td></tr>
<tr class="separator:ac481918ec96d79b27813d32bcc2a247d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a71f1302dd93f895508f65893f96796fa" id="r_a71f1302dd93f895508f65893f96796fa"><td class="memTemplParams" colspan="2">template&lt;typename P &gt; </td></tr>
<tr class="memitem:a71f1302dd93f895508f65893f96796fa"><td class="memTemplItemLeft" align="right" valign="top">subset_summary&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1var__opt__sketch.html#a71f1302dd93f895508f65893f96796fa">estimate_subset_sum</a> (P predicate) const</td></tr>
<tr class="memdesc:a71f1302dd93f895508f65893f96796fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes an estimated subset sum from the entire stream for objects matching a given predicate. <br /></td></tr>
<tr class="separator:a71f1302dd93f895508f65893f96796fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a2b7a58dc85678d08752945ff655362" id="r_a5a2b7a58dc85678d08752945ff655362"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1var__opt__sketch.html#a5a2b7a58dc85678d08752945ff655362">is_empty</a> () const</td></tr>
<tr class="memdesc:a5a2b7a58dc85678d08752945ff655362"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the sketch is empty. <br /></td></tr>
<tr class="separator:a5a2b7a58dc85678d08752945ff655362"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad20897c5c8bd47f5d4005989bead0e55" id="r_ad20897c5c8bd47f5d4005989bead0e55"><td class="memItemLeft" align="right" valign="top"><a id="ad20897c5c8bd47f5d4005989bead0e55" name="ad20897c5c8bd47f5d4005989bead0e55"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>reset</b> ()</td></tr>
<tr class="memdesc:ad20897c5c8bd47f5d4005989bead0e55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resets the sketch to its default, empty state. <br /></td></tr>
<tr class="separator:ad20897c5c8bd47f5d4005989bead0e55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad9a5259d93d148b5c2050d68e7788716" id="r_ad9a5259d93d148b5c2050d68e7788716"><td class="memTemplParams" colspan="2">template&lt;typename TT = T, typename SerDe = serde&lt;T&gt;, typename std::enable_if&lt; std::is_arithmetic&lt; TT &gt;::value, int &gt;::type = 0&gt; </td></tr>
<tr class="memitem:ad9a5259d93d148b5c2050d68e7788716"><td class="memTemplItemLeft" align="right" valign="top">size_t&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1var__opt__sketch.html#ad9a5259d93d148b5c2050d68e7788716">get_serialized_size_bytes</a> (const SerDe &amp;sd=SerDe()) const</td></tr>
<tr class="memdesc:ad9a5259d93d148b5c2050d68e7788716"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes size needed to serialize the current state of the sketch. <br /></td></tr>
<tr class="separator:ad9a5259d93d148b5c2050d68e7788716"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad9a5259d93d148b5c2050d68e7788716" id="r_ad9a5259d93d148b5c2050d68e7788716"><td class="memTemplParams" colspan="2">template&lt;typename TT = T, typename SerDe = serde&lt;T&gt;, typename std::enable_if&lt;!std::is_arithmetic&lt; TT &gt;::value, int &gt;::type = 0&gt; </td></tr>
<tr class="memitem:ad9a5259d93d148b5c2050d68e7788716"><td class="memTemplItemLeft" align="right" valign="top">size_t&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1var__opt__sketch.html#ad9a5259d93d148b5c2050d68e7788716">get_serialized_size_bytes</a> (const SerDe &amp;sd=SerDe()) const</td></tr>
<tr class="memdesc:ad9a5259d93d148b5c2050d68e7788716"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes size needed to serialize the current state of the sketch. <br /></td></tr>
<tr class="separator:ad9a5259d93d148b5c2050d68e7788716"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d0c269c23926e93b1c7a9c00e86af97" id="r_a1d0c269c23926e93b1c7a9c00e86af97"><td class="memTemplParams" colspan="2">template&lt;typename SerDe = serde&lt;T&gt;&gt; </td></tr>
<tr class="memitem:a1d0c269c23926e93b1c7a9c00e86af97"><td class="memTemplItemLeft" align="right" valign="top">vector_bytes&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1var__opt__sketch.html#a1d0c269c23926e93b1c7a9c00e86af97">serialize</a> (unsigned header_size_bytes=0, const SerDe &amp;sd=SerDe()) const</td></tr>
<tr class="memdesc:a1d0c269c23926e93b1c7a9c00e86af97"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method serializes the sketch as a vector of bytes. <br /></td></tr>
<tr class="separator:a1d0c269c23926e93b1c7a9c00e86af97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a538940c100e4353b3671ad452d3d3056" id="r_a538940c100e4353b3671ad452d3d3056"><td class="memTemplParams" colspan="2">template&lt;typename SerDe = serde&lt;T&gt;&gt; </td></tr>
<tr class="memitem:a538940c100e4353b3671ad452d3d3056"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1var__opt__sketch.html#a538940c100e4353b3671ad452d3d3056">serialize</a> (std::ostream &amp;os, const SerDe &amp;sd=SerDe()) const</td></tr>
<tr class="memdesc:a538940c100e4353b3671ad452d3d3056"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method serializes the sketch into a given stream in a binary form. <br /></td></tr>
<tr class="separator:a538940c100e4353b3671ad452d3d3056"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed372241c10ffd041bee85602edb199a" id="r_aed372241c10ffd041bee85602edb199a"><td class="memItemLeft" align="right" valign="top">string&lt; A &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1var__opt__sketch.html#aed372241c10ffd041bee85602edb199a">to_string</a> () const</td></tr>
<tr class="memdesc:aed372241c10ffd041bee85602edb199a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints a summary of the sketch. <br /></td></tr>
<tr class="separator:aed372241c10ffd041bee85602edb199a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0fa52dd153f1e3cac57d4742e2fef6fc" id="r_a0fa52dd153f1e3cac57d4742e2fef6fc"><td class="memItemLeft" align="right" valign="top">string&lt; A &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1var__opt__sketch.html#a0fa52dd153f1e3cac57d4742e2fef6fc">items_to_string</a> () const</td></tr>
<tr class="memdesc:a0fa52dd153f1e3cac57d4742e2fef6fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints the raw sketch items to a string. <br /></td></tr>
<tr class="separator:a0fa52dd153f1e3cac57d4742e2fef6fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0faac62cb9f27b09afc849def518f5cc" id="r_a0faac62cb9f27b09afc849def518f5cc"><td class="memItemLeft" align="right" valign="top">const_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1var__opt__sketch.html#a0faac62cb9f27b09afc849def518f5cc">begin</a> () const</td></tr>
<tr class="memdesc:a0faac62cb9f27b09afc849def518f5cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterator pointing to the first item in the sketch. <br /></td></tr>
<tr class="separator:a0faac62cb9f27b09afc849def518f5cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9e1e5356b5d10a177fa50f7bdfdfd96" id="r_ae9e1e5356b5d10a177fa50f7bdfdfd96"><td class="memItemLeft" align="right" valign="top">const_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1var__opt__sketch.html#ae9e1e5356b5d10a177fa50f7bdfdfd96">end</a> () const</td></tr>
<tr class="memdesc:ae9e1e5356b5d10a177fa50f7bdfdfd96"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterator pointing to the past-the-end item in the sketch. <br /></td></tr>
<tr class="separator:ae9e1e5356b5d10a177fa50f7bdfdfd96"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:aea8f1c4a6d0189de0db5b5cd085c39b1" id="r_aea8f1c4a6d0189de0db5b5cd085c39b1"><td class="memTemplParams" colspan="2">template&lt;typename SerDe = serde&lt;T&gt;&gt; </td></tr>
<tr class="memitem:aea8f1c4a6d0189de0db5b5cd085c39b1"><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="classdatasketches_1_1var__opt__sketch.html">var_opt_sketch</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1var__opt__sketch.html#aea8f1c4a6d0189de0db5b5cd085c39b1">deserialize</a> (std::istream &amp;is, const SerDe &amp;sd=SerDe(), const A &amp;allocator=A())</td></tr>
<tr class="memdesc:aea8f1c4a6d0189de0db5b5cd085c39b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method deserializes a sketch from a given stream. <br /></td></tr>
<tr class="separator:aea8f1c4a6d0189de0db5b5cd085c39b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab0856fc62bc5f6b154feae4a09e7d422" id="r_ab0856fc62bc5f6b154feae4a09e7d422"><td class="memTemplParams" colspan="2">template&lt;typename SerDe = serde&lt;T&gt;&gt; </td></tr>
<tr class="memitem:ab0856fc62bc5f6b154feae4a09e7d422"><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="classdatasketches_1_1var__opt__sketch.html">var_opt_sketch</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1var__opt__sketch.html#ab0856fc62bc5f6b154feae4a09e7d422">deserialize</a> (const void *bytes, size_t size, const SerDe &amp;sd=SerDe(), const A &amp;allocator=A())</td></tr>
<tr class="memdesc:ab0856fc62bc5f6b154feae4a09e7d422"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method deserializes a sketch from a given array of bytes. <br /></td></tr>
<tr class="separator:ab0856fc62bc5f6b154feae4a09e7d422"><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 T, typename A = std::allocator&lt;T&gt;&gt;<br />
class datasketches::var_opt_sketch&lt; T, A &gt;</div><p>This sketch samples data from a stream of items. </p>
<p>Designed for optimal (minimum) variance when querying the sketch to estimate subset sums of items matching a provided predicate. Variance optimal (varopt) sampling is related to reservoir sampling, with improved error bounds for subset sum estimation.</p>
<p>author Kevin Lang author Jon Malkin </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a6df9f2226b7197a0f612ee4aec0233e7" name="a6df9f2226b7197a0f612ee4aec0233e7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6df9f2226b7197a0f612ee4aec0233e7">&#9670;&#160;</a></span>var_opt_sketch() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename A &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classdatasketches_1_1var__opt__sketch.html">var_opt_sketch</a> </td>
<td>(</td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>k</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">resize_factor&#160;</td>
<td class="paramname"><em>rf</em> = <code><a class="el" href="namespacedatasketches_1_1var__opt__constants.html#a02799eee5e87428b1c72e6c4c282d68e">var_opt_constants::DEFAULT_RESIZE_FACTOR</a></code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const A &amp;&#160;</td>
<td class="paramname"><em>allocator</em> = <code>A()</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">k</td><td>sketch size </td></tr>
<tr><td class="paramname">rf</td><td>resize factor </td></tr>
<tr><td class="paramname">allocator</td><td>instance of an allocator </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a3efbe40f3a9091fa581eaeef126b8285" name="a3efbe40f3a9091fa581eaeef126b8285"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3efbe40f3a9091fa581eaeef126b8285">&#9670;&#160;</a></span>var_opt_sketch() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename A &gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classdatasketches_1_1var__opt__sketch.html">var_opt_sketch</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classdatasketches_1_1var__opt__sketch.html">var_opt_sketch</a>&lt; T, A &gt; &amp;&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Copy constructor. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">other</td><td>sketch to be copied </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a76983c7d51265ef49674a518925a7cf4" name="a76983c7d51265ef49674a518925a7cf4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a76983c7d51265ef49674a518925a7cf4">&#9670;&#160;</a></span>var_opt_sketch() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename A &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classdatasketches_1_1var__opt__sketch.html">var_opt_sketch</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classdatasketches_1_1var__opt__sketch.html">var_opt_sketch</a>&lt; T, A &gt; &amp;&amp;&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Move constructor. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">other</td><td>sketch to be moved </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a247dd627502e887562ae763adfe863ff" name="a247dd627502e887562ae763adfe863ff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a247dd627502e887562ae763adfe863ff">&#9670;&#160;</a></span>operator=() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename A &gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classdatasketches_1_1var__opt__sketch.html">var_opt_sketch</a>&lt; T, A &gt; &amp; operator= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classdatasketches_1_1var__opt__sketch.html">var_opt_sketch</a>&lt; T, A &gt; &amp;&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Copy assignment. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">other</td><td>sketch to be copied </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>reference to this sketch </dd></dl>
</div>
</div>
<a id="a18041b548e38eaca6d1a57e52a24a5e1" name="a18041b548e38eaca6d1a57e52a24a5e1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a18041b548e38eaca6d1a57e52a24a5e1">&#9670;&#160;</a></span>operator=() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename A &gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classdatasketches_1_1var__opt__sketch.html">var_opt_sketch</a>&lt; T, A &gt; &amp; operator= </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classdatasketches_1_1var__opt__sketch.html">var_opt_sketch</a>&lt; T, A &gt; &amp;&amp;&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Move assignment. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">other</td><td>sketch to be moved </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>reference to this sketch </dd></dl>
</div>
</div>
<a id="a1125ed18baf3f257b5796321c7ec0f8f" name="a1125ed18baf3f257b5796321c7ec0f8f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1125ed18baf3f257b5796321c7ec0f8f">&#9670;&#160;</a></span>update() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename A &gt; </div>
<table class="memname">
<tr>
<td class="memname">void update </td>
<td>(</td>
<td class="paramtype">const T &amp;&#160;</td>
<td class="paramname"><em>item</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>weight</em> = <code>1.0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Updates this sketch with the given data item with the given weight. </p>
<p>This method takes an lvalue. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">item</td><td>an item from a stream of items </td></tr>
<tr><td class="paramname">weight</td><td>the weight of the item </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a9c07446b1fd8f8509f754ebaf3f77050" name="a9c07446b1fd8f8509f754ebaf3f77050"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9c07446b1fd8f8509f754ebaf3f77050">&#9670;&#160;</a></span>update() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename A &gt; </div>
<table class="memname">
<tr>
<td class="memname">void update </td>
<td>(</td>
<td class="paramtype">T &amp;&amp;&#160;</td>
<td class="paramname"><em>item</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>weight</em> = <code>1.0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Updates this sketch with the given data item with the given weight. </p>
<p>This method takes an rvalue. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">item</td><td>an item from a stream of items </td></tr>
<tr><td class="paramname">weight</td><td>the weight of the item </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="af561f5cd76ff61773713c627bc53b0a2" name="af561f5cd76ff61773713c627bc53b0a2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af561f5cd76ff61773713c627bc53b0a2">&#9670;&#160;</a></span>get_k()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename A &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">uint32_t get_k </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">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the configured maximum sample size. </p>
<dl class="section return"><dt>Returns</dt><dd>configured maximum sample size </dd></dl>
</div>
</div>
<a id="af857be9469a7565252626f27e1f9d74d" name="af857be9469a7565252626f27e1f9d74d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af857be9469a7565252626f27e1f9d74d">&#9670;&#160;</a></span>get_n()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename A &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">uint64_t get_n </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">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the length of the input stream. </p>
<dl class="section return"><dt>Returns</dt><dd>stream length </dd></dl>
</div>
</div>
<a id="ac481918ec96d79b27813d32bcc2a247d" name="ac481918ec96d79b27813d32bcc2a247d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac481918ec96d79b27813d32bcc2a247d">&#9670;&#160;</a></span>get_num_samples()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename A &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">uint32_t get_num_samples </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">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the number of samples currently in the sketch. </p>
<dl class="section return"><dt>Returns</dt><dd>stream length </dd></dl>
</div>
</div>
<a id="a71f1302dd93f895508f65893f96796fa" name="a71f1302dd93f895508f65893f96796fa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a71f1302dd93f895508f65893f96796fa">&#9670;&#160;</a></span>estimate_subset_sum()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename A &gt; </div>
<div class="memtemplate">
template&lt;typename P &gt; </div>
<table class="memname">
<tr>
<td class="memname">subset_summary estimate_subset_sum </td>
<td>(</td>
<td class="paramtype">P&#160;</td>
<td class="paramname"><em>predicate</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes an estimated subset sum from the entire stream for objects matching a given predicate. </p>
<p>Provides a lower bound, estimate, and upper bound using a target of 2 standard deviations. This is technically a heuristic method and tries to err on the conservative side. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">predicate</td><td>a predicate function </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a subset_summary item with estimate, upper and lower bounds, and total sketch weight </dd></dl>
</div>
</div>
<a id="a5a2b7a58dc85678d08752945ff655362" name="a5a2b7a58dc85678d08752945ff655362"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5a2b7a58dc85678d08752945ff655362">&#9670;&#160;</a></span>is_empty()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename A &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">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">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns true if the sketch is empty. </p>
<dl class="section return"><dt>Returns</dt><dd>empty flag </dd></dl>
</div>
</div>
<a id="ad9a5259d93d148b5c2050d68e7788716" name="ad9a5259d93d148b5c2050d68e7788716"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad9a5259d93d148b5c2050d68e7788716">&#9670;&#160;</a></span>get_serialized_size_bytes() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename A &gt; </div>
<div class="memtemplate">
template&lt;typename TT , typename SerDe , typename std::enable_if&lt;!std::is_arithmetic&lt; TT &gt;::value, int &gt;::type &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t get_serialized_size_bytes </td>
<td>(</td>
<td class="paramtype">const SerDe &amp;&#160;</td>
<td class="paramname"><em>sd</em> = <code>SerDe()</code></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes size needed to serialize the current state of the sketch. </p>
<p>This version is for fixed-size arithmetic types (integral and floating point). </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">sd</td><td>instance of a SerDe </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>size in bytes needed to serialize this sketch </dd></dl>
</div>
</div>
<a id="ad9a5259d93d148b5c2050d68e7788716" name="ad9a5259d93d148b5c2050d68e7788716"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad9a5259d93d148b5c2050d68e7788716">&#9670;&#160;</a></span>get_serialized_size_bytes() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename A = std::allocator&lt;T&gt;&gt; </div>
<div class="memtemplate">
template&lt;typename TT = T, typename SerDe = serde&lt;T&gt;, typename std::enable_if&lt;!std::is_arithmetic&lt; TT &gt;::value, int &gt;::type = 0&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">size_t get_serialized_size_bytes </td>
<td>(</td>
<td class="paramtype">const SerDe &amp;&#160;</td>
<td class="paramname"><em>sd</em> = <code>SerDe()</code></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes size needed to serialize the current state of the sketch. </p>
<p>This version is for all other types and can be expensive since every item needs to be looked at. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">sd</td><td>instance of a SerDe </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>size in bytes needed to serialize this sketch </dd></dl>
</div>
</div>
<a id="a1d0c269c23926e93b1c7a9c00e86af97" name="a1d0c269c23926e93b1c7a9c00e86af97"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1d0c269c23926e93b1c7a9c00e86af97">&#9670;&#160;</a></span>serialize() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename A = std::allocator&lt;T&gt;&gt; </div>
<div class="memtemplate">
template&lt;typename SerDe = serde&lt;T&gt;&gt; </div>
<table class="memname">
<tr>
<td class="memname">vector_bytes serialize </td>
<td>(</td>
<td class="paramtype">unsigned&#160;</td>
<td class="paramname"><em>header_size_bytes</em> = <code>0</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const SerDe &amp;&#160;</td>
<td class="paramname"><em>sd</em> = <code>SerDe()</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>This method serializes the sketch as a vector of bytes. </p>
<p>An optional header can be reserved in front of the sketch. It is a blank space of a given size. This header is used in Datasketches PostgreSQL extension. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">header_size_bytes</td><td>space to reserve in front of the sketch </td></tr>
<tr><td class="paramname">sd</td><td>instance of a SerDe </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a538940c100e4353b3671ad452d3d3056" name="a538940c100e4353b3671ad452d3d3056"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a538940c100e4353b3671ad452d3d3056">&#9670;&#160;</a></span>serialize() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename A &gt; </div>
<div class="memtemplate">
template&lt;typename SerDe &gt; </div>
<table class="memname">
<tr>
<td class="memname">void serialize </td>
<td>(</td>
<td class="paramtype">std::ostream &amp;&#160;</td>
<td class="paramname"><em>os</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const SerDe &amp;&#160;</td>
<td class="paramname"><em>sd</em> = <code>SerDe()</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>This method serializes the sketch into a given stream in a binary form. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">os</td><td>output stream </td></tr>
<tr><td class="paramname">sd</td><td>instance of a SerDe </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="aea8f1c4a6d0189de0db5b5cd085c39b1" name="aea8f1c4a6d0189de0db5b5cd085c39b1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aea8f1c4a6d0189de0db5b5cd085c39b1">&#9670;&#160;</a></span>deserialize() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename A = std::allocator&lt;T&gt;&gt; </div>
<div class="memtemplate">
template&lt;typename SerDe = serde&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="classdatasketches_1_1var__opt__sketch.html">var_opt_sketch</a> deserialize </td>
<td>(</td>
<td class="paramtype">std::istream &amp;&#160;</td>
<td class="paramname"><em>is</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const SerDe &amp;&#160;</td>
<td class="paramname"><em>sd</em> = <code>SerDe()</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const A &amp;&#160;</td>
<td class="paramname"><em>allocator</em> = <code>A()</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This method deserializes a sketch from a given stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">is</td><td>input stream </td></tr>
<tr><td class="paramname">sd</td><td>instance of a SerDe </td></tr>
<tr><td class="paramname">allocator</td><td>instance of an allocator </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>an instance of a sketch </dd></dl>
</div>
</div>
<a id="ab0856fc62bc5f6b154feae4a09e7d422" name="ab0856fc62bc5f6b154feae4a09e7d422"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab0856fc62bc5f6b154feae4a09e7d422">&#9670;&#160;</a></span>deserialize() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename A = std::allocator&lt;T&gt;&gt; </div>
<div class="memtemplate">
template&lt;typename SerDe = serde&lt;T&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="classdatasketches_1_1var__opt__sketch.html">var_opt_sketch</a> deserialize </td>
<td>(</td>
<td class="paramtype">const void *&#160;</td>
<td class="paramname"><em>bytes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const SerDe &amp;&#160;</td>
<td class="paramname"><em>sd</em> = <code>SerDe()</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const A &amp;&#160;</td>
<td class="paramname"><em>allocator</em> = <code>A()</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>This method deserializes a sketch from a given array of bytes. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">bytes</td><td>pointer to the array of bytes </td></tr>
<tr><td class="paramname">size</td><td>the size of the array </td></tr>
<tr><td class="paramname">sd</td><td>instance of a SerDe </td></tr>
<tr><td class="paramname">allocator</td><td>instance of an allocator </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>an instance of a sketch </dd></dl>
</div>
</div>
<a id="aed372241c10ffd041bee85602edb199a" name="aed372241c10ffd041bee85602edb199a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aed372241c10ffd041bee85602edb199a">&#9670;&#160;</a></span>to_string()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename A &gt; </div>
<table class="memname">
<tr>
<td class="memname">string&lt; A &gt; to_string </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Prints a summary of the sketch. </p>
<dl class="section return"><dt>Returns</dt><dd>the summary as a string </dd></dl>
</div>
</div>
<a id="a0fa52dd153f1e3cac57d4742e2fef6fc" name="a0fa52dd153f1e3cac57d4742e2fef6fc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0fa52dd153f1e3cac57d4742e2fef6fc">&#9670;&#160;</a></span>items_to_string()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename A &gt; </div>
<table class="memname">
<tr>
<td class="memname">string&lt; A &gt; items_to_string </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Prints the raw sketch items to a string. </p>
<p>Calls items_to_stream() internally. Only works for type T with a defined std::ostream&amp; operator&lt;&lt;(std::ostream&amp;, const T&amp;) and kept separate from <a class="el" href="classdatasketches_1_1var__opt__sketch.html#aed372241c10ffd041bee85602edb199a" title="Prints a summary of the sketch.">to_string()</a> to allow compilation even if T does not have such an operator defined. </p><dl class="section return"><dt>Returns</dt><dd>a string with the sketch items </dd></dl>
</div>
</div>
<a id="a0faac62cb9f27b09afc849def518f5cc" name="a0faac62cb9f27b09afc849def518f5cc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0faac62cb9f27b09afc849def518f5cc">&#9670;&#160;</a></span>begin()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename A &gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classdatasketches_1_1var__opt__sketch.html">var_opt_sketch</a>&lt; T, A &gt;::const_iterator begin </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Iterator pointing to the first item in the sketch. </p>
<p>If the sketch is empty, the returned iterator must not be dereferenced or incremented. </p><dl class="section return"><dt>Returns</dt><dd>iterator pointing to the first item in the sketch </dd></dl>
</div>
</div>
<a id="ae9e1e5356b5d10a177fa50f7bdfdfd96" name="ae9e1e5356b5d10a177fa50f7bdfdfd96"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae9e1e5356b5d10a177fa50f7bdfdfd96">&#9670;&#160;</a></span>end()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , typename A &gt; </div>
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classdatasketches_1_1var__opt__sketch.html">var_opt_sketch</a>&lt; T, A &gt;::const_iterator end </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Iterator pointing to the past-the-end item in the sketch. </p>
<p>The past-the-end item is the hypothetical item that would follow the last item. It does not point to any item, and must not be dereferenced or incremented. </p><dl class="section return"><dt>Returns</dt><dd>iterator pointing to the past-the-end item in the sketch </dd></dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>sampling/include/<a class="el" href="var__opt__sketch_8hpp_source.html">var_opt_sketch.hpp</a></li>
<li>sampling/include/<a class="el" href="var__opt__sketch__impl_8hpp_source.html">var_opt_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>