You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datasketches.apache.org by gi...@apache.org on 2024/05/10 22:59:57 UTC

(datasketches-cpp) branch gh-pages updated: deploy: 836b87e313107506e15ce1f8d50241be56652e58

This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a commit to branch gh-pages
in repository https://gitbox.apache.org/repos/asf/datasketches-cpp.git


The following commit(s) were added to refs/heads/gh-pages by this push:
     new 8ae89c7  deploy: 836b87e313107506e15ce1f8d50241be56652e58
8ae89c7 is described below

commit 8ae89c71e9cb7ba6eece14baca2490479c79af11
Author: AlexanderSaydakov <Al...@users.noreply.github.com>
AuthorDate: Fri May 10 22:59:52 2024 +0000

    deploy: 836b87e313107506e15ce1f8d50241be56652e58
---
 docs/master/array__tuple__sketch_8hpp_source.html  |   8 +-
 .../array__tuple__sketch__impl_8hpp_source.html    |   2 +-
 docs/master/array__tuple__union_8hpp_source.html   |   2 +-
 ...s_1_1compact__array__tuple__sketch-members.html |   2 +
 ...asketches_1_1compact__array__tuple__sketch.html |   6 +
 ...sketches_1_1compact__tuple__sketch-members.html |   2 +
 ...lassdatasketches_1_1compact__tuple__sketch.html |  81 +++
 ...es_1_1update__array__tuple__sketch-members.html |  63 +-
 ...tasketches_1_1update__array__tuple__sketch.html |   3 +
 ...asketches_1_1update__tuple__sketch-members.html |  61 +-
 ...classdatasketches_1_1update__tuple__sketch.html |  31 +
 docs/master/functions_f.html                       |   4 +
 docs/master/functions_func_f.html                  |   4 +
 docs/master/search/all_10.js                       |   8 +-
 docs/master/search/all_11.js                       |  28 +-
 docs/master/search/all_12.js                       |  58 +-
 docs/master/search/all_13.js                       |  16 +-
 docs/master/search/all_14.js                       |   8 +-
 docs/master/search/all_15.js                       |   6 +-
 docs/master/search/all_5.js                        |   5 +-
 docs/master/search/all_6.js                        |  98 +--
 docs/master/search/all_7.js                        |  18 +-
 docs/master/search/all_8.js                        |  12 +-
 docs/master/search/all_9.js                        |   4 +-
 docs/master/search/all_a.js                        |   4 +-
 docs/master/search/all_b.js                        |   2 +-
 docs/master/search/all_c.js                        |  14 +-
 docs/master/search/all_d.js                        |   6 +-
 docs/master/search/all_e.js                        |   2 +-
 docs/master/search/all_f.js                        |  10 +-
 docs/master/search/classes_0.js                    |   6 +-
 docs/master/search/classes_1.js                    |  12 +-
 docs/master/search/classes_2.js                    |  14 +-
 docs/master/search/classes_3.js                    |   8 +-
 docs/master/search/classes_4.js                    |   2 +-
 docs/master/search/classes_5.js                    |   2 +-
 docs/master/search/classes_6.js                    |   6 +-
 docs/master/search/classes_7.js                    |   2 +-
 docs/master/search/classes_8.js                    |   4 +-
 docs/master/search/classes_9.js                    |   8 +-
 docs/master/search/classes_a.js                    |   4 +-
 docs/master/search/classes_b.js                    |   6 +-
 docs/master/search/classes_c.js                    |  40 +-
 docs/master/search/classes_d.js                    |   8 +-
 docs/master/search/classes_e.js                    |   8 +-
 docs/master/search/classes_f.js                    |   2 +-
 docs/master/search/enums_0.js                      |   2 +-
 docs/master/search/enums_1.js                      |   2 +-
 docs/master/search/enumvalues_0.js                 |   6 +-
 docs/master/search/enumvalues_1.js                 |   4 +-
 docs/master/search/functions_0.js                  |   8 +-
 docs/master/search/functions_1.js                  |   6 +-
 docs/master/search/functions_10.js                 |   4 +-
 docs/master/search/functions_11.js                 |  22 +-
 docs/master/search/functions_12.js                 |  18 +-
 docs/master/search/functions_13.js                 |   6 +-
 docs/master/search/functions_14.js                 |   2 +-
 docs/master/search/functions_15.js                 |   2 +-
 docs/master/search/functions_2.js                  |  18 +-
 docs/master/search/functions_3.js                  |   8 +-
 docs/master/search/functions_4.js                  |  18 +-
 docs/master/search/functions_5.js                  |   3 +-
 docs/master/search/functions_6.js                  |  98 +--
 docs/master/search/functions_7.js                  |   4 +-
 docs/master/search/functions_8.js                  |  10 +-
 docs/master/search/functions_9.js                  |   2 +-
 docs/master/search/functions_a.js                  |   2 +-
 docs/master/search/functions_b.js                  |   2 +-
 docs/master/search/functions_c.js                  |   2 +-
 docs/master/search/functions_d.js                  |   2 +-
 docs/master/search/functions_e.js                  |   2 +-
 docs/master/search/functions_f.js                  |   2 +-
 docs/master/search/namespaces_0.js                 |  16 +-
 docs/master/search/pages_0.js                      |   2 +-
 docs/master/search/typedefs_0.js                   |   6 +-
 docs/master/search/typedefs_1.js                   |   8 +-
 docs/master/search/typedefs_2.js                   |   4 +-
 docs/master/search/typedefs_3.js                   |   2 +-
 docs/master/search/typedefs_4.js                   |   4 +-
 docs/master/search/typedefs_5.js                   |   2 +-
 docs/master/search/typedefs_6.js                   |   2 +-
 docs/master/search/typedefs_7.js                   |   8 +-
 docs/master/search/typedefs_8.js                   |   4 +-
 docs/master/search/typedefs_9.js                   |   2 +-
 docs/master/search/variables_0.js                  |   6 +-
 docs/master/search/variables_1.js                  |   2 +-
 docs/master/search/variables_2.js                  |  12 +-
 docs/master/tuple__a__not__b_8hpp_source.html      |   2 +-
 docs/master/tuple__intersection_8hpp_source.html   |   2 +-
 .../tuple__intersection__impl_8hpp_source.html     |   2 +-
 docs/master/tuple__sketch_8hpp_source.html         | 320 ++++-----
 docs/master/tuple__sketch__impl_8hpp_source.html   | 732 +++++++++++----------
 docs/master/tuple__union_8hpp_source.html          |   4 +-
 docs/master/tuple__union__impl_8hpp_source.html    |   4 +-
 94 files changed, 1141 insertions(+), 960 deletions(-)

diff --git a/docs/master/array__tuple__sketch_8hpp_source.html b/docs/master/array__tuple__sketch_8hpp_source.html
index 572145d..1813cf1 100644
--- a/docs/master/array__tuple__sketch_8hpp_source.html
+++ b/docs/master/array__tuple__sketch_8hpp_source.html
@@ -263,11 +263,11 @@ $(function() {
 <div class="ttc" id="aclassdatasketches_1_1compact__array__tuple__sketch_html_a1bcdd98ee6e6eb9b501b8dc5de5e8924"><div class="ttname"><a href="classdatasketches_1_1compact__array__tuple__sketch.html#a1bcdd98ee6e6eb9b501b8dc5de5e8924">datasketches::compact_array_tuple_sketch::serialize</a></div><div class="ttdeci">void serialize(std::ostream &amp;os) const</div><div class="ttdoc">This method serializes the sketch into a given stream in a binary form.</div><div class="ttdef"><b>Definition:< [...]
 <div class="ttc" id="aclassdatasketches_1_1compact__array__tuple__sketch_html_a1d5f786024b3df2ab6993056a22abad0"><div class="ttname"><a href="classdatasketches_1_1compact__array__tuple__sketch.html#a1d5f786024b3df2ab6993056a22abad0">datasketches::compact_array_tuple_sketch::compact_array_tuple_sketch</a></div><div class="ttdeci">compact_array_tuple_sketch(const Sketch &amp;other, bool ordered=true)</div><div class="ttdoc">Copy constructor.</div></div>
 <div class="ttc" id="aclassdatasketches_1_1compact__array__tuple__sketch_html_a94e90deb78db69a750d375b6fae0c585"><div class="ttname"><a href="classdatasketches_1_1compact__array__tuple__sketch.html#a94e90deb78db69a750d375b6fae0c585">datasketches::compact_array_tuple_sketch::deserialize</a></div><div class="ttdeci">static compact_array_tuple_sketch deserialize(std::istream &amp;is, uint64_t seed=DEFAULT_SEED, const Allocator &amp;allocator=Allocator())</div><div class="ttdoc">This method  [...]
-<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html">datasketches::compact_tuple_sketch</a></div><div class="ttdoc">Compact Tuple sketch.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:407</div></div>
-<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a5a2b7a58dc85678d08752945ff655362"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a5a2b7a58dc85678d08752945ff655362">datasketches::compact_tuple_sketch&lt; Array, typename Array::allocator_type &gt;::is_empty</a></div><div class="ttdeci">virtual bool is_empty() const</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:323</div></div>
-<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a5f5b393314c0c1819f79b73232a506e8"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a5f5b393314c0c1819f79b73232a506e8">datasketches::compact_tuple_sketch&lt; Array, typename Array::allocator_type &gt;::is_ordered</a></div><div class="ttdeci">virtual bool is_ordered() const</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:328</div></div>
+<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html">datasketches::compact_tuple_sketch</a></div><div class="ttdoc">Compact Tuple sketch.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:416</div></div>
+<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a5a2b7a58dc85678d08752945ff655362"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a5a2b7a58dc85678d08752945ff655362">datasketches::compact_tuple_sketch&lt; Array, typename Array::allocator_type &gt;::is_empty</a></div><div class="ttdeci">virtual bool is_empty() const</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:329</div></div>
+<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a5f5b393314c0c1819f79b73232a506e8"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a5f5b393314c0c1819f79b73232a506e8">datasketches::compact_tuple_sketch&lt; Array, typename Array::allocator_type &gt;::is_ordered</a></div><div class="ttdeci">virtual bool is_ordered() const</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:334</div></div>
 <div class="ttc" id="aclassdatasketches_1_1default__array__tuple__update__policy_html"><div class="ttname"><a href="classdatasketches_1_1default__array__tuple__update__policy.html">datasketches::default_array_tuple_update_policy</a></div><div class="ttdoc">default array tuple update policy</div><div class="ttdef"><b>Definition:</b> array_tuple_sketch.hpp:89</div></div>
-<div class="ttc" id="aclassdatasketches_1_1tuple__base__builder_html"><div class="ttname"><a href="classdatasketches_1_1tuple__base__builder.html">datasketches::tuple_base_builder</a></div><div class="ttdoc">Tuple base builder.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:587</div></div>
+<div class="ttc" id="aclassdatasketches_1_1tuple__base__builder_html"><div class="ttname"><a href="classdatasketches_1_1tuple__base__builder.html">datasketches::tuple_base_builder</a></div><div class="ttdoc">Tuple base builder.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:614</div></div>
 <div class="ttc" id="aclassdatasketches_1_1update__array__tuple__sketch_1_1builder_html"><div class="ttname"><a href="classdatasketches_1_1update__array__tuple__sketch_1_1builder.html">datasketches::update_array_tuple_sketch::builder</a></div><div class="ttdoc">Update array tuple sketch builder.</div><div class="ttdef"><b>Definition:</b> array_tuple_sketch.hpp:145</div></div>
 <div class="ttc" id="aclassdatasketches_1_1update__array__tuple__sketch_html"><div class="ttname"><a href="classdatasketches_1_1update__array__tuple__sketch.html">datasketches::update_array_tuple_sketch</a></div><div class="ttdoc">Update array tuple sketch.</div><div class="ttdef"><b>Definition:</b> array_tuple_sketch.hpp:125</div></div>
 <div class="ttc" id="aclassdatasketches_1_1update__array__tuple__sketch_html_a005404841e22f08ab76ce513d9b39bd1"><div class="ttname"><a href="classdatasketches_1_1update__array__tuple__sketch.html#a005404841e22f08ab76ce513d9b39bd1">datasketches::update_array_tuple_sketch::get_num_values</a></div><div class="ttdeci">uint8_t get_num_values() const</div><div class="ttdef"><b>Definition:</b> array_tuple_sketch_impl.hpp:28</div></div>
diff --git a/docs/master/array__tuple__sketch__impl_8hpp_source.html b/docs/master/array__tuple__sketch__impl_8hpp_source.html
index 5f9aef7..9666d93 100644
--- a/docs/master/array__tuple__sketch__impl_8hpp_source.html
+++ b/docs/master/array__tuple__sketch__impl_8hpp_source.html
@@ -298,7 +298,7 @@ $(function() {
 <div class="ttc" id="aclassdatasketches_1_1compact__array__tuple__sketch_html_a1bcdd98ee6e6eb9b501b8dc5de5e8924"><div class="ttname"><a href="classdatasketches_1_1compact__array__tuple__sketch.html#a1bcdd98ee6e6eb9b501b8dc5de5e8924">datasketches::compact_array_tuple_sketch::serialize</a></div><div class="ttdeci">void serialize(std::ostream &amp;os) const</div><div class="ttdoc">This method serializes the sketch into a given stream in a binary form.</div><div class="ttdef"><b>Definition:< [...]
 <div class="ttc" id="aclassdatasketches_1_1compact__array__tuple__sketch_html_a1d5f786024b3df2ab6993056a22abad0"><div class="ttname"><a href="classdatasketches_1_1compact__array__tuple__sketch.html#a1d5f786024b3df2ab6993056a22abad0">datasketches::compact_array_tuple_sketch::compact_array_tuple_sketch</a></div><div class="ttdeci">compact_array_tuple_sketch(const Sketch &amp;other, bool ordered=true)</div><div class="ttdoc">Copy constructor.</div></div>
 <div class="ttc" id="aclassdatasketches_1_1compact__array__tuple__sketch_html_a94e90deb78db69a750d375b6fae0c585"><div class="ttname"><a href="classdatasketches_1_1compact__array__tuple__sketch.html#a94e90deb78db69a750d375b6fae0c585">datasketches::compact_array_tuple_sketch::deserialize</a></div><div class="ttdeci">static compact_array_tuple_sketch deserialize(std::istream &amp;is, uint64_t seed=DEFAULT_SEED, const Allocator &amp;allocator=Allocator())</div><div class="ttdoc">This method  [...]
-<div class="ttc" id="aclassdatasketches_1_1tuple__base__builder_html"><div class="ttname"><a href="classdatasketches_1_1tuple__base__builder.html">datasketches::tuple_base_builder</a></div><div class="ttdoc">Tuple base builder.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:587</div></div>
+<div class="ttc" id="aclassdatasketches_1_1tuple__base__builder_html"><div class="ttname"><a href="classdatasketches_1_1tuple__base__builder.html">datasketches::tuple_base_builder</a></div><div class="ttdoc">Tuple base builder.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:614</div></div>
 <div class="ttc" id="aclassdatasketches_1_1update__array__tuple__sketch_1_1builder_html"><div class="ttname"><a href="classdatasketches_1_1update__array__tuple__sketch_1_1builder.html">datasketches::update_array_tuple_sketch::builder</a></div><div class="ttdoc">Update array tuple sketch builder.</div><div class="ttdef"><b>Definition:</b> array_tuple_sketch.hpp:145</div></div>
 <div class="ttc" id="aclassdatasketches_1_1update__array__tuple__sketch_1_1builder_html_a5641adbacdefd99f6833e1c8de16be43"><div class="ttname"><a href="classdatasketches_1_1update__array__tuple__sketch_1_1builder.html#a5641adbacdefd99f6833e1c8de16be43">datasketches::update_array_tuple_sketch::builder::build</a></div><div class="ttdeci">update_array_tuple_sketch build() const</div><div class="ttdef"><b>Definition:</b> array_tuple_sketch_impl.hpp:44</div></div>
 <div class="ttc" id="aclassdatasketches_1_1update__array__tuple__sketch_html"><div class="ttname"><a href="classdatasketches_1_1update__array__tuple__sketch.html">datasketches::update_array_tuple_sketch</a></div><div class="ttdoc">Update array tuple sketch.</div><div class="ttdef"><b>Definition:</b> array_tuple_sketch.hpp:125</div></div>
diff --git a/docs/master/array__tuple__union_8hpp_source.html b/docs/master/array__tuple__union_8hpp_source.html
index 069bca2..c4979e7 100644
--- a/docs/master/array__tuple__union_8hpp_source.html
+++ b/docs/master/array__tuple__union_8hpp_source.html
@@ -150,7 +150,7 @@ $(function() {
 <div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="preprocessor">#endif</span></div>
 <div class="ttc" id="aclassdatasketches_1_1array__tuple__union_html"><div class="ttname"><a href="classdatasketches_1_1array__tuple__union.html">datasketches::array_tuple_union</a></div><div class="ttdoc">array tuple union</div><div class="ttdef"><b>Definition:</b> array_tuple_union.hpp:54</div></div>
 <div class="ttc" id="aclassdatasketches_1_1compact__array__tuple__sketch_html"><div class="ttname"><a href="classdatasketches_1_1compact__array__tuple__sketch.html">datasketches::compact_array_tuple_sketch</a></div><div class="ttdoc">Compact array tuple sketch.</div><div class="ttdef"><b>Definition:</b> array_tuple_sketch.hpp:163</div></div>
-<div class="ttc" id="aclassdatasketches_1_1tuple__base__builder_html"><div class="ttname"><a href="classdatasketches_1_1tuple__base__builder.html">datasketches::tuple_base_builder</a></div><div class="ttdoc">Tuple base builder.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:587</div></div>
+<div class="ttc" id="aclassdatasketches_1_1tuple__base__builder_html"><div class="ttname"><a href="classdatasketches_1_1tuple__base__builder.html">datasketches::tuple_base_builder</a></div><div class="ttdoc">Tuple base builder.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:614</div></div>
 <div class="ttc" id="aclassdatasketches_1_1tuple__union_html"><div class="ttname"><a href="classdatasketches_1_1tuple__union.html">datasketches::tuple_union</a></div><div class="ttdoc">Tuple Union.</div><div class="ttdef"><b>Definition:</b> tuple_union.hpp:45</div></div>
 <div class="ttc" id="anamespacedatasketches_1_1theta__constants_html_a329224ced789e065aed0698566b954a4"><div class="ttname"><a href="namespacedatasketches_1_1theta__constants.html#a329224ced789e065aed0698566b954a4">datasketches::theta_constants::resize_factor</a></div><div class="ttdeci">datasketches::resize_factor resize_factor</div><div class="ttdoc">hash table resize factor</div><div class="ttdef"><b>Definition:</b> theta_constants.hpp:31</div></div>
 <div class="ttc" id="anamespacedatasketches_html"><div class="ttname"><a href="namespacedatasketches.html">datasketches</a></div><div class="ttdoc">DataSketches namespace.</div><div class="ttdef"><b>Definition:</b> binomial_bounds.hpp:38</div></div>
diff --git a/docs/master/classdatasketches_1_1compact__array__tuple__sketch-members.html b/docs/master/classdatasketches_1_1compact__array__tuple__sketch-members.html
index 3d72ce4..2ebe447 100644
--- a/docs/master/classdatasketches_1_1compact__array__tuple__sketch-members.html
+++ b/docs/master/classdatasketches_1_1compact__array__tuple__sketch-members.html
@@ -85,6 +85,8 @@ $(function() {
   <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#a37f6a609deea82bf072b744f2f3e4ea8">compact_tuple_sketch&lt; Array, typename Array::allocator_type &gt;::deserialize</a>(const void *bytes, size_t size, uint64_t seed=DEFAULT_SEED, const SerDe &amp;sd=SerDe(), const typename Array::allocator_type &amp;allocator=typename Array::allocator_type())</td><td class="entry"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html" [...]
   <tr><td class="entry"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#a7727305d5e1ec66a181e22c43af9a581">end</a>()</td><td class="entry"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch&lt; Array, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#ae11e60e117300685401961e36f196f7a">end</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch&lt; Array, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#a45b4c825a3545299d8bfeeadc70708c3">filter</a>(const Predicate &amp;predicate) const</td><td class="entry"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch&lt; Array, typename Array::allocator_type &gt;</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#a52e3b99cd0e081aaeffeb1569dcff39f">filter</a>(const Sketch &amp;sketch, const Predicate &amp;predicate)</td><td class="entry"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch&lt; Array, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
   <tr><td class="entry"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#a9d85cf47c4ecd0580ec623c42006dd1b">get_allocator</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch&lt; Array, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html#a2afb71f2ef2d82290be4c8eafc08f2a2">get_estimate</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt; Array, typename Array::allocator_type &gt;</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><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><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt; Array, typename Array::allocator_type &gt;</a></td><td class="entry"></td></tr>
diff --git a/docs/master/classdatasketches_1_1compact__array__tuple__sketch.html b/docs/master/classdatasketches_1_1compact__array__tuple__sketch.html
index b8d19c7..523eeb6 100644
--- a/docs/master/classdatasketches_1_1compact__array__tuple__sketch.html
+++ b/docs/master/classdatasketches_1_1compact__array__tuple__sketch.html
@@ -122,6 +122,9 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:ad031c8e903006ee06e9cb91ead4ffb38 inherit pub_methods_classdatasketches_1_1compact__tuple__sketch"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#ad031c8e903006ee06e9cb91ead4ffb38">operator=</a> (<a class="el" href="classdatasketches_1_1compact__tu [...]
 <tr class="memdesc:ad031c8e903006ee06e9cb91ead4ffb38 inherit pub_methods_classdatasketches_1_1compact__tuple__sketch"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assignment.  <a href="classdatasketches_1_1compact__tuple__sketch.html#ad031c8e903006ee06e9cb91ead4ffb38">More...</a><br /></td></tr>
 <tr class="separator:ad031c8e903006ee06e9cb91ead4ffb38 inherit pub_methods_classdatasketches_1_1compact__tuple__sketch"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a45b4c825a3545299d8bfeeadc70708c3 inherit pub_methods_classdatasketches_1_1compact__tuple__sketch"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#a45b4c825a3545299d8bfeeadc70708c3">filter</a> (const Predicate &amp;predicate) const</td></tr>
+<tr class="memdesc:a45b4c825a3545299d8bfeeadc70708c3 inherit pub_methods_classdatasketches_1_1compact__tuple__sketch"><td class="mdescLeft">&#160;</td><td class="mdescRight">Produces a Compact Tuple sketch from this sketch by applying a given predicate to each entry.  <a href="classdatasketches_1_1compact__tuple__sketch.html#a45b4c825a3545299d8bfeeadc70708c3">More...</a><br /></td></tr>
+<tr class="separator:a45b4c825a3545299d8bfeeadc70708c3 inherit pub_methods_classdatasketches_1_1compact__tuple__sketch"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a538940c100e4353b3671ad452d3d3056 inherit pub_methods_classdatasketches_1_1compact__tuple__sketch"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#a538940c100e4353b3671ad452d3d3056">serialize</a> (std::ostream &amp;os, const SerDe &amp;sd=SerDe()) const</td></tr>
 <tr class="memdesc:a538940c100e4353b3671ad452d3d3056 inherit pub_methods_classdatasketches_1_1compact__tuple__sketch"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method serializes the sketch into a given stream in a binary form.  <a href="classdatasketches_1_1compact__tuple__sketch.html#a538940c100e4353b3671ad452d3d3056">More...</a><br /></td></tr>
 <tr class="separator:a538940c100e4353b3671ad452d3d3056 inherit pub_methods_classdatasketches_1_1compact__tuple__sketch"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -160,6 +163,9 @@ Static Public Member Functions</h2></td></tr>
 <tr class="memdesc:a17862798b607e6f16a9b20ebbc34b0d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method deserializes a sketch from a given array of bytes.  <a href="classdatasketches_1_1compact__array__tuple__sketch.html#a17862798b607e6f16a9b20ebbc34b0d0">More...</a><br /></td></tr>
 <tr class="separator:a17862798b607e6f16a9b20ebbc34b0d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pub_static_methods_classdatasketches_1_1compact__tuple__sketch"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classdatasketches_1_1compact__tuple__sketch')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch&lt; Array, typename Array::allocator_type &gt;</a></td></tr>
+<tr class="memitem:a52e3b99cd0e081aaeffeb1569dcff39f inherit pub_static_methods_classdatasketches_1_1compact__tuple__sketch"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#a52e3b99cd0e081aaeffeb1569dcff39f">filter</a> (const Sketch &amp;sketch, const Predicate &amp; [...]
+<tr class="memdesc:a52e3b99cd0e081aaeffeb1569dcff39f inherit pub_static_methods_classdatasketches_1_1compact__tuple__sketch"><td class="mdescLeft">&#160;</td><td class="mdescRight">Produces a Compact Tuple sketch from a given sketch (Update or Compact) by applying a given predicate to each entry.  <a href="classdatasketches_1_1compact__tuple__sketch.html#a52e3b99cd0e081aaeffeb1569dcff39f">More...</a><br /></td></tr>
+<tr class="separator:a52e3b99cd0e081aaeffeb1569dcff39f inherit pub_static_methods_classdatasketches_1_1compact__tuple__sketch"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:aa4654837acac56f89e5c083198374eda inherit pub_static_methods_classdatasketches_1_1compact__tuple__sketch"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#aa4654837acac56f89e5c083198374eda">deserialize</a> (std::istream &amp;is, uint64_t seed=DEFAUL [...]
 <tr class="memdesc:aa4654837acac56f89e5c083198374eda inherit pub_static_methods_classdatasketches_1_1compact__tuple__sketch"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method deserializes a sketch from a given stream.  <a href="classdatasketches_1_1compact__tuple__sketch.html#aa4654837acac56f89e5c083198374eda">More...</a><br /></td></tr>
 <tr class="separator:aa4654837acac56f89e5c083198374eda inherit pub_static_methods_classdatasketches_1_1compact__tuple__sketch"><td class="memSeparator" colspan="2">&#160;</td></tr>
diff --git a/docs/master/classdatasketches_1_1compact__tuple__sketch-members.html b/docs/master/classdatasketches_1_1compact__tuple__sketch-members.html
index 9cabdf9..f74cf49 100644
--- a/docs/master/classdatasketches_1_1compact__tuple__sketch-members.html
+++ b/docs/master/classdatasketches_1_1compact__tuple__sketch-members.html
@@ -82,6 +82,8 @@ $(function() {
   <tr><td class="entry"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#a37f6a609deea82bf072b744f2f3e4ea8">deserialize</a>(const void *bytes, size_t size, uint64_t seed=DEFAULT_SEED, const SerDe &amp;sd=SerDe(), const Allocator &amp;allocator=Allocator())</td><td class="entry"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch&lt; Summary, Allocator &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#a7727305d5e1ec66a181e22c43af9a581">end</a>()</td><td class="entry"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch&lt; Summary, Allocator &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
   <tr><td class="entry"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#ae11e60e117300685401961e36f196f7a">end</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch&lt; Summary, Allocator &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#a45b4c825a3545299d8bfeeadc70708c3">filter</a>(const Predicate &amp;predicate) const</td><td class="entry"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch&lt; Summary, Allocator &gt;</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#a52e3b99cd0e081aaeffeb1569dcff39f">filter</a>(const Sketch &amp;sketch, const Predicate &amp;predicate)</td><td class="entry"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch&lt; Summary, Allocator &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#a9d85cf47c4ecd0580ec623c42006dd1b">get_allocator</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch&lt; Summary, Allocator &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
   <tr><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html#a2afb71f2ef2d82290be4c8eafc08f2a2">get_estimate</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt; Summary, std::allocator&lt; Summary &gt; &gt;</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><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><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt; Summary, std::allocator&lt; Summary &gt; &gt;</a></td><td class="entry"></td></tr>
diff --git a/docs/master/classdatasketches_1_1compact__tuple__sketch.html b/docs/master/classdatasketches_1_1compact__tuple__sketch.html
index 34686f3..307e95c 100644
--- a/docs/master/classdatasketches_1_1compact__tuple__sketch.html
+++ b/docs/master/classdatasketches_1_1compact__tuple__sketch.html
@@ -121,6 +121,10 @@ Public Member Functions</h2></td></tr>
 <tr class="separator:a31fa76458d81a17dbebfcb828e531f14"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a6f69b50bc13da11d255d0e583e2376ba"><td class="memItemLeft" align="right" valign="top">virtual uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#a6f69b50bc13da11d255d0e583e2376ba">get_seed_hash</a> () const</td></tr>
 <tr class="separator:a6f69b50bc13da11d255d0e583e2376ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a45b4c825a3545299d8bfeeadc70708c3"><td class="memTemplParams" colspan="2">template&lt;typename Predicate &gt; </td></tr>
+<tr class="memitem:a45b4c825a3545299d8bfeeadc70708c3"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#a45b4c825a3545299d8bfeeadc70708c3">filter</a> (const Predicate &amp;predicate) const</td></tr>
+<tr class="memdesc:a45b4c825a3545299d8bfeeadc70708c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Produces a Compact Tuple sketch from this sketch by applying a given predicate to each entry.  <a href="classdatasketches_1_1compact__tuple__sketch.html#a45b4c825a3545299d8bfeeadc70708c3">More...</a><br /></td></tr>
+<tr class="separator:a45b4c825a3545299d8bfeeadc70708c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a538940c100e4353b3671ad452d3d3056"><td class="memTemplParams" colspan="2">template&lt;typename SerDe  = serde&lt;Summary&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_1compact__tuple__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.  <a href="classdatasketches_1_1compact__tuple__sketch.html#a538940c100e4353b3671ad452d3d3056">More...</a><br /></td></tr>
@@ -166,6 +170,10 @@ Public Member Functions</h2></td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
 Static Public Member Functions</h2></td></tr>
+<tr class="memitem:a52e3b99cd0e081aaeffeb1569dcff39f"><td class="memTemplParams" colspan="2">template&lt;typename Sketch , typename Predicate &gt; </td></tr>
+<tr class="memitem:a52e3b99cd0e081aaeffeb1569dcff39f"><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#a52e3b99cd0e081aaeffeb1569dcff39f">filter</a> (const Sketch &amp;sketch, const Predicate &amp;predicate)</td></tr>
+<tr class="memdesc:a52e3b99cd0e081aaeffeb1569dcff39f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Produces a Compact Tuple sketch from a given sketch (Update or Compact) by applying a given predicate to each entry.  <a href="classdatasketches_1_1compact__tuple__sketch.html#a52e3b99cd0e081aaeffeb1569dcff39f">More...</a><br /></td></tr>
+<tr class="separator:a52e3b99cd0e081aaeffeb1569dcff39f"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:aa4654837acac56f89e5c083198374eda"><td class="memTemplParams" colspan="2">template&lt;typename SerDe  = serde&lt;Summary&gt;&gt; </td></tr>
 <tr class="memitem:aa4654837acac56f89e5c083198374eda"><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#aa4654837acac56f89e5c083198374eda">deserialize</a> (std::istream &amp;is, uint64_t seed=DEFAULT_SEED, const SerDe &amp;sd=SerDe(), const Allocator &amp;all [...]
 <tr class="memdesc:aa4654837acac56f89e5c083198374eda"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method deserializes a sketch from a given stream.  <a href="classdatasketches_1_1compact__tuple__sketch.html#aa4654837acac56f89e5c083198374eda">More...</a><br /></td></tr>
@@ -561,6 +569,79 @@ class datasketches::compact_tuple_sketch&lt; Summary, Allocator &gt;</h3>
 
 <p>Implements <a class="el" href="classdatasketches_1_1tuple__sketch.html#ab76bd6487f5a75a356083bfe163a7079">tuple_sketch&lt; Summary, std::allocator&lt; Summary &gt; &gt;</a>.</p>
 
+</div>
+</div>
+<a id="a45b4c825a3545299d8bfeeadc70708c3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a45b4c825a3545299d8bfeeadc70708c3">&#9670;&nbsp;</a></span>filter() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a> filter </td>
+          <td>(</td>
+          <td class="paramtype">const Predicate &amp;&#160;</td>
+          <td class="paramname"><em>predicate</em></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Produces a Compact Tuple sketch from this sketch by applying a given predicate to each entry. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">predicate</td><td>should return true for the entries to keep </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>compact sketch with the entries retained according to the predicate </dd></dl>
+
+</div>
+</div>
+<a id="a52e3b99cd0e081aaeffeb1569dcff39f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a52e3b99cd0e081aaeffeb1569dcff39f">&#9670;&nbsp;</a></span>filter() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">static <a class="el" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a> filter </td>
+          <td>(</td>
+          <td class="paramtype">const Sketch &amp;&#160;</td>
+          <td class="paramname"><em>sketch</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const Predicate &amp;&#160;</td>
+          <td class="paramname"><em>predicate</em>&#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>Produces a Compact Tuple sketch from a given sketch (Update or Compact) by applying a given predicate to each entry. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sketch</td><td>input sketch </td></tr>
+    <tr><td class="paramname">predicate</td><td>should return true for the entries to keep </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>compact sketch with the entries retained according to the predicate </dd></dl>
+
 </div>
 </div>
 <a id="a538940c100e4353b3671ad452d3d3056"></a>
diff --git a/docs/master/classdatasketches_1_1update__array__tuple__sketch-members.html b/docs/master/classdatasketches_1_1update__array__tuple__sketch-members.html
index 9336a87..7f64b43 100644
--- a/docs/master/classdatasketches_1_1update__array__tuple__sketch-members.html
+++ b/docs/master/classdatasketches_1_1update__array__tuple__sketch-members.html
@@ -76,37 +76,38 @@ $(function() {
   <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#ad5c959a538216a09ab28c5283585956c">begin</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a7727305d5e1ec66a181e22c43af9a581">end</a>()</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
   <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#ae11e60e117300685401961e36f196f7a">end</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a9d85cf47c4ecd0580ec623c42006dd1b">get_allocator</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html#a2afb71f2ef2d82290be4c8eafc08f2a2">get_estimate</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt; Array, typename Array::allocator_type &gt;</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a8f8b2691781d682411a6de23996a8be2">get_lg_k</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><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><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt; Array, typename Array::allocator_type &gt;</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html#a2e5c990494331d901c3b38cd4eb316e6">get_lower_bound</a>(uint8_t num_std_devs) const</td><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt; Array, typename Array::allocator_type &gt;</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a31fa76458d81a17dbebfcb828e531f14">get_num_retained</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__array__tuple__sketch.html#a005404841e22f08ab76ce513d9b39bd1">get_num_values</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__array__tuple__sketch.html">update_array_tuple_sketch&lt; Array, Policy, Allocator &gt;</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a36c928e86272441d56f794cc596fd598">get_rf</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a6f69b50bc13da11d255d0e583e2376ba">get_seed_hash</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html#aa784d7f8ac02e9c4e26e7fe9f177a7aa">get_theta</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt; Array, typename Array::allocator_type &gt;</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a2b072fe55377eb51a6ee477827fc3b95">get_theta64</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><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><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt; Array, typename Array::allocator_type &gt;</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html#aa408e90fef0f988eca7d132875c7c7e1">get_upper_bound</a>(uint8_t num_std_devs) const</td><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt; Array, typename Array::allocator_type &gt;</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a5a2b7a58dc85678d08752945ff655362">is_empty</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html#ae95a04b1d7dccb3d9b3f3c3d087aa8e6">is_estimation_mode</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt; Array, typename Array::allocator_type &gt;</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a5f5b393314c0c1819f79b73232a506e8">is_ordered</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#ad20897c5c8bd47f5d4005989bead0e55">reset</a>()</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html#a60a5fe73c86554c313705666f8fb227a">to_string</a>(bool print_items=false) const</td><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt; Array, typename Array::allocator_type &gt;</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a268ae12a22c9f97b84833e4c39fb2278">trim</a>()</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a9040689a2df4e2819fb64690667eaca5">update</a>(const std::string &amp;key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a2a1600e5744952a6b912ae4dbf654dde">update</a>(uint64_t key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#ad02f663b02e9c1668141eece1c4adc33">update</a>(int64_t key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a981d2038132151b982935ee7713add7a">update</a>(uint32_t key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a4524000e8e41183562588e961543336e">update</a>(int32_t key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#ae252110d18331eaa68e8dee1faddc684">update</a>(uint16_t key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a0d3921cf5bcfbda1b545b043b0b1b830">update</a>(int16_t key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a9625343612a687c7eb250cc19d032f6c">update</a>(uint8_t key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a808c14c6a7dcaf10dcbd25023d83f637">update</a>(int8_t key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#adf12e466eec013888159bdb19a2a25b1">update</a>(double key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a635198371a6d59ecbcd3a66abdbbf0b5">update</a>(float key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#ad91de65acdf8e8908a7697e716b06147">update</a>(const void *key, size_t length, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#aa37bb6b08780486ee17d59be552db371">filter</a>(const Predicate &amp;predicate) const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a9d85cf47c4ecd0580ec623c42006dd1b">get_allocator</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html#a2afb71f2ef2d82290be4c8eafc08f2a2">get_estimate</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt; Array, typename Array::allocator_type &gt;</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a8f8b2691781d682411a6de23996a8be2">get_lg_k</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><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><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt; Array, typename Array::allocator_type &gt;</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html#a2e5c990494331d901c3b38cd4eb316e6">get_lower_bound</a>(uint8_t num_std_devs) const</td><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt; Array, typename Array::allocator_type &gt;</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a31fa76458d81a17dbebfcb828e531f14">get_num_retained</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__array__tuple__sketch.html#a005404841e22f08ab76ce513d9b39bd1">get_num_values</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__array__tuple__sketch.html">update_array_tuple_sketch&lt; Array, Policy, Allocator &gt;</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a36c928e86272441d56f794cc596fd598">get_rf</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a6f69b50bc13da11d255d0e583e2376ba">get_seed_hash</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html#aa784d7f8ac02e9c4e26e7fe9f177a7aa">get_theta</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt; Array, typename Array::allocator_type &gt;</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a2b072fe55377eb51a6ee477827fc3b95">get_theta64</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><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><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt; Array, typename Array::allocator_type &gt;</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html#aa408e90fef0f988eca7d132875c7c7e1">get_upper_bound</a>(uint8_t num_std_devs) const</td><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt; Array, typename Array::allocator_type &gt;</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a5a2b7a58dc85678d08752945ff655362">is_empty</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html#ae95a04b1d7dccb3d9b3f3c3d087aa8e6">is_estimation_mode</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt; Array, typename Array::allocator_type &gt;</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a5f5b393314c0c1819f79b73232a506e8">is_ordered</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#ad20897c5c8bd47f5d4005989bead0e55">reset</a>()</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html#a60a5fe73c86554c313705666f8fb227a">to_string</a>(bool print_items=false) const</td><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt; Array, typename Array::allocator_type &gt;</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a268ae12a22c9f97b84833e4c39fb2278">trim</a>()</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a9040689a2df4e2819fb64690667eaca5">update</a>(const std::string &amp;key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a2a1600e5744952a6b912ae4dbf654dde">update</a>(uint64_t key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#ad02f663b02e9c1668141eece1c4adc33">update</a>(int64_t key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a981d2038132151b982935ee7713add7a">update</a>(uint32_t key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a4524000e8e41183562588e961543336e">update</a>(int32_t key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#ae252110d18331eaa68e8dee1faddc684">update</a>(uint16_t key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a0d3921cf5bcfbda1b545b043b0b1b830">update</a>(int16_t key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a9625343612a687c7eb250cc19d032f6c">update</a>(uint8_t key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a808c14c6a7dcaf10dcbd25023d83f637">update</a>(int8_t key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#adf12e466eec013888159bdb19a2a25b1">update</a>(double key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a635198371a6d59ecbcd3a66abdbbf0b5">update</a>(float key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#ad91de65acdf8e8908a7697e716b06147">update</a>(const void *key, size_t length, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/docs/master/classdatasketches_1_1update__array__tuple__sketch.html b/docs/master/classdatasketches_1_1update__array__tuple__sketch.html
index 448bbce..bae18b9 100644
--- a/docs/master/classdatasketches_1_1update__array__tuple__sketch.html
+++ b/docs/master/classdatasketches_1_1update__array__tuple__sketch.html
@@ -151,6 +151,9 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <tr class="memitem:a8adfe3908612dc77d3708cecddb65515 inherit pub_methods_classdatasketches_1_1update__tuple__sketch"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a>&lt; Array, typename Array::allocator_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a8adfe3908612dc77d3708cecddb65515">compact</a> (bool ordered=tr [...]
 <tr class="memdesc:a8adfe3908612dc77d3708cecddb65515 inherit pub_methods_classdatasketches_1_1update__tuple__sketch"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts this sketch to a compact sketch (ordered or unordered).  <a href="classdatasketches_1_1update__tuple__sketch.html#a8adfe3908612dc77d3708cecddb65515">More...</a><br /></td></tr>
 <tr class="separator:a8adfe3908612dc77d3708cecddb65515 inherit pub_methods_classdatasketches_1_1update__tuple__sketch"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa37bb6b08780486ee17d59be552db371 inherit pub_methods_classdatasketches_1_1update__tuple__sketch"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a>&lt; Array, typename Array::allocator_type &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#aa37bb6b08780486ee17d59be552db371">filter</a> (const Predicate  [...]
+<tr class="memdesc:aa37bb6b08780486ee17d59be552db371 inherit pub_methods_classdatasketches_1_1update__tuple__sketch"><td class="mdescLeft">&#160;</td><td class="mdescRight">Produces a Compact Tuple sketch from this sketch by applying a given predicate to each entry.  <a href="classdatasketches_1_1update__tuple__sketch.html#aa37bb6b08780486ee17d59be552db371">More...</a><br /></td></tr>
+<tr class="separator:aa37bb6b08780486ee17d59be552db371 inherit pub_methods_classdatasketches_1_1update__tuple__sketch"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pub_methods_classdatasketches_1_1tuple__sketch"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classdatasketches_1_1tuple__sketch')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt; Array, typename Array::allocator_type &gt;</a></td></tr>
 <tr class="memitem:a2afb71f2ef2d82290be4c8eafc08f2a2 inherit pub_methods_classdatasketches_1_1tuple__sketch"><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 inherit pub_methods_classdatasketches_1_1tuple__sketch"><td class="memSeparator" colspan="2">&#160;</td></tr>
diff --git a/docs/master/classdatasketches_1_1update__tuple__sketch-members.html b/docs/master/classdatasketches_1_1update__tuple__sketch-members.html
index 90a8d4f..f8b20d0 100644
--- a/docs/master/classdatasketches_1_1update__tuple__sketch-members.html
+++ b/docs/master/classdatasketches_1_1update__tuple__sketch-members.html
@@ -77,36 +77,37 @@ $(function() {
   <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a8adfe3908612dc77d3708cecddb65515">compact</a>(bool ordered=true) const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a7727305d5e1ec66a181e22c43af9a581">end</a>()</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#ae11e60e117300685401961e36f196f7a">end</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a9d85cf47c4ecd0580ec623c42006dd1b">get_allocator</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html#a2afb71f2ef2d82290be4c8eafc08f2a2">get_estimate</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt; Summary, std::allocator&lt; Summary &gt; &gt;</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a8f8b2691781d682411a6de23996a8be2">get_lg_k</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><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><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt; Summary, std::allocator&lt; Summary &gt; &gt;</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html#a2e5c990494331d901c3b38cd4eb316e6">get_lower_bound</a>(uint8_t num_std_devs) const</td><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt; Summary, std::allocator&lt; Summary &gt; &gt;</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a31fa76458d81a17dbebfcb828e531f14">get_num_retained</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a36c928e86272441d56f794cc596fd598">get_rf</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a6f69b50bc13da11d255d0e583e2376ba">get_seed_hash</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html#aa784d7f8ac02e9c4e26e7fe9f177a7aa">get_theta</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt; Summary, std::allocator&lt; Summary &gt; &gt;</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a2b072fe55377eb51a6ee477827fc3b95">get_theta64</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><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><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt; Summary, std::allocator&lt; Summary &gt; &gt;</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html#aa408e90fef0f988eca7d132875c7c7e1">get_upper_bound</a>(uint8_t num_std_devs) const</td><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt; Summary, std::allocator&lt; Summary &gt; &gt;</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a5a2b7a58dc85678d08752945ff655362">is_empty</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html#ae95a04b1d7dccb3d9b3f3c3d087aa8e6">is_estimation_mode</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt; Summary, std::allocator&lt; Summary &gt; &gt;</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a5f5b393314c0c1819f79b73232a506e8">is_ordered</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#ad20897c5c8bd47f5d4005989bead0e55">reset</a>()</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html#a60a5fe73c86554c313705666f8fb227a">to_string</a>(bool print_items=false) const</td><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt; Summary, std::allocator&lt; Summary &gt; &gt;</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a268ae12a22c9f97b84833e4c39fb2278">trim</a>()</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a9040689a2df4e2819fb64690667eaca5">update</a>(const std::string &amp;key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a2a1600e5744952a6b912ae4dbf654dde">update</a>(uint64_t key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#ad02f663b02e9c1668141eece1c4adc33">update</a>(int64_t key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a981d2038132151b982935ee7713add7a">update</a>(uint32_t key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a4524000e8e41183562588e961543336e">update</a>(int32_t key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#ae252110d18331eaa68e8dee1faddc684">update</a>(uint16_t key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a0d3921cf5bcfbda1b545b043b0b1b830">update</a>(int16_t key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a9625343612a687c7eb250cc19d032f6c">update</a>(uint8_t key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a808c14c6a7dcaf10dcbd25023d83f637">update</a>(int8_t key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#adf12e466eec013888159bdb19a2a25b1">update</a>(double key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a635198371a6d59ecbcd3a66abdbbf0b5">update</a>(float key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#ad91de65acdf8e8908a7697e716b06147">update</a>(const void *key, size_t length, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#aa37bb6b08780486ee17d59be552db371">filter</a>(const Predicate &amp;predicate) const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a9d85cf47c4ecd0580ec623c42006dd1b">get_allocator</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html#a2afb71f2ef2d82290be4c8eafc08f2a2">get_estimate</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt; Summary, std::allocator&lt; Summary &gt; &gt;</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a8f8b2691781d682411a6de23996a8be2">get_lg_k</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><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><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt; Summary, std::allocator&lt; Summary &gt; &gt;</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html#a2e5c990494331d901c3b38cd4eb316e6">get_lower_bound</a>(uint8_t num_std_devs) const</td><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt; Summary, std::allocator&lt; Summary &gt; &gt;</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a31fa76458d81a17dbebfcb828e531f14">get_num_retained</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a36c928e86272441d56f794cc596fd598">get_rf</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a6f69b50bc13da11d255d0e583e2376ba">get_seed_hash</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html#aa784d7f8ac02e9c4e26e7fe9f177a7aa">get_theta</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt; Summary, std::allocator&lt; Summary &gt; &gt;</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a2b072fe55377eb51a6ee477827fc3b95">get_theta64</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><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><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt; Summary, std::allocator&lt; Summary &gt; &gt;</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html#aa408e90fef0f988eca7d132875c7c7e1">get_upper_bound</a>(uint8_t num_std_devs) const</td><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt; Summary, std::allocator&lt; Summary &gt; &gt;</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a5a2b7a58dc85678d08752945ff655362">is_empty</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html#ae95a04b1d7dccb3d9b3f3c3d087aa8e6">is_estimation_mode</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt; Summary, std::allocator&lt; Summary &gt; &gt;</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a5f5b393314c0c1819f79b73232a506e8">is_ordered</a>() const</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#ad20897c5c8bd47f5d4005989bead0e55">reset</a>()</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html#a60a5fe73c86554c313705666f8fb227a">to_string</a>(bool print_items=false) const</td><td class="entry"><a class="el" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt; Summary, std::allocator&lt; Summary &gt; &gt;</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a268ae12a22c9f97b84833e4c39fb2278">trim</a>()</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a9040689a2df4e2819fb64690667eaca5">update</a>(const std::string &amp;key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a2a1600e5744952a6b912ae4dbf654dde">update</a>(uint64_t key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#ad02f663b02e9c1668141eece1c4adc33">update</a>(int64_t key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a981d2038132151b982935ee7713add7a">update</a>(uint32_t key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a4524000e8e41183562588e961543336e">update</a>(int32_t key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#ae252110d18331eaa68e8dee1faddc684">update</a>(uint16_t key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a0d3921cf5bcfbda1b545b043b0b1b830">update</a>(int16_t key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a9625343612a687c7eb250cc19d032f6c">update</a>(uint8_t key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a808c14c6a7dcaf10dcbd25023d83f637">update</a>(int8_t key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#adf12e466eec013888159bdb19a2a25b1">update</a>(double key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a635198371a6d59ecbcd3a66abdbbf0b5">update</a>(float key, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#ad91de65acdf8e8908a7697e716b06147">update</a>(const void *key, size_t length, FwdUpdate &amp;&amp;value)</td><td class="entry"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/docs/master/classdatasketches_1_1update__tuple__sketch.html b/docs/master/classdatasketches_1_1update__tuple__sketch.html
index 4d33eac..a7d9957 100644
--- a/docs/master/classdatasketches_1_1update__tuple__sketch.html
+++ b/docs/master/classdatasketches_1_1update__tuple__sketch.html
@@ -171,6 +171,10 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <tr class="memitem:a8adfe3908612dc77d3708cecddb65515"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a>&lt; Summary, Allocator &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#a8adfe3908612dc77d3708cecddb65515">compact</a> (bool ordered=true) const</td></tr>
 <tr class="memdesc:a8adfe3908612dc77d3708cecddb65515"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts this sketch to a compact sketch (ordered or unordered).  <a href="classdatasketches_1_1update__tuple__sketch.html#a8adfe3908612dc77d3708cecddb65515">More...</a><br /></td></tr>
 <tr class="separator:a8adfe3908612dc77d3708cecddb65515"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa37bb6b08780486ee17d59be552db371"><td class="memTemplParams" colspan="2">template&lt;typename Predicate &gt; </td></tr>
+<tr class="memitem:aa37bb6b08780486ee17d59be552db371"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a>&lt; Summary, Allocator &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#aa37bb6b08780486ee17d59be552db371">filter</a> (const Predicate &amp;predicate) const</td></tr>
+<tr class="memdesc:aa37bb6b08780486ee17d59be552db371"><td class="mdescLeft">&#160;</td><td class="mdescRight">Produces a Compact Tuple sketch from this sketch by applying a given predicate to each entry.  <a href="classdatasketches_1_1update__tuple__sketch.html#aa37bb6b08780486ee17d59be552db371">More...</a><br /></td></tr>
+<tr class="separator:aa37bb6b08780486ee17d59be552db371"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ad950587c89b4306f927b08b5e5cb7e89"><td class="memItemLeft" align="right" valign="top">virtual iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdatasketches_1_1update__tuple__sketch.html#ad950587c89b4306f927b08b5e5cb7e89">begin</a> ()</td></tr>
 <tr class="memdesc:ad950587c89b4306f927b08b5e5cb7e89"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterator over entries in this sketch.  <a href="classdatasketches_1_1update__tuple__sketch.html#ad950587c89b4306f927b08b5e5cb7e89">More...</a><br /></td></tr>
 <tr class="separator:ad950587c89b4306f927b08b5e5cb7e89"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -957,6 +961,33 @@ class datasketches::update_tuple_sketch&lt; Summary, Update, Policy, Allocator &
 </dl>
 <dl class="section return"><dt>Returns</dt><dd>compact sketch </dd></dl>
 
+</div>
+</div>
+<a id="aa37bb6b08780486ee17d59be552db371"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa37bb6b08780486ee17d59be552db371">&#9670;&nbsp;</a></span>filter()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a>&lt;Summary, Allocator&gt; filter </td>
+          <td>(</td>
+          <td class="paramtype">const Predicate &amp;&#160;</td>
+          <td class="paramname"><em>predicate</em></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Produces a Compact Tuple sketch from this sketch by applying a given predicate to each entry. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">predicate</td><td>should return true for the entries to keep </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>compact sketch with the entries retained according to the predicate </dd></dl>
+
 </div>
 </div>
 <a id="ad950587c89b4306f927b08b5e5cb7e89"></a>
diff --git a/docs/master/functions_f.html b/docs/master/functions_f.html
index ecc4599..37aa57c 100644
--- a/docs/master/functions_f.html
+++ b/docs/master/functions_f.html
@@ -64,6 +64,10 @@ $(function() {
 <div class="textblock">Here is a list of all documented class members with links to the class documentation for each member:</div>
 
 <h3><a id="index_f"></a>- f -</h3><ul>
+<li>filter()
+: <a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#a45b4c825a3545299d8bfeeadc70708c3">compact_tuple_sketch&lt; Summary, Allocator &gt;</a>
+, <a class="el" href="classdatasketches_1_1update__tuple__sketch.html#aa37bb6b08780486ee17d59be552db371">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a>
+</li>
 <li>frequent_items_sketch()
 : <a class="el" href="classdatasketches_1_1frequent__items__sketch.html#a225f700985a82a592a6fd7dc685d6044">frequent_items_sketch&lt; T, W, H, E, A &gt;</a>
 </li>
diff --git a/docs/master/functions_func_f.html b/docs/master/functions_func_f.html
index 76fb42d..8775ca0 100644
--- a/docs/master/functions_func_f.html
+++ b/docs/master/functions_func_f.html
@@ -64,6 +64,10 @@ $(function() {
 &#160;
 
 <h3><a id="index_f"></a>- f -</h3><ul>
+<li>filter()
+: <a class="el" href="classdatasketches_1_1compact__tuple__sketch.html#a45b4c825a3545299d8bfeeadc70708c3">compact_tuple_sketch&lt; Summary, Allocator &gt;</a>
+, <a class="el" href="classdatasketches_1_1update__tuple__sketch.html#aa37bb6b08780486ee17d59be552db371">update_tuple_sketch&lt; Summary, Update, Policy, Allocator &gt;</a>
+</li>
 <li>frequent_items_sketch()
 : <a class="el" href="classdatasketches_1_1frequent__items__sketch.html#a225f700985a82a592a6fd7dc685d6044">frequent_items_sketch&lt; T, W, H, E, A &gt;</a>
 </li>
diff --git a/docs/master/search/all_10.js b/docs/master/search/all_10.js
index 46aca22..f138f60 100644
--- a/docs/master/search/all_10.js
+++ b/docs/master/search/all_10.js
@@ -1,7 +1,7 @@
 var searchData=
 [
-  ['req_5fsketch_148',['req_sketch',['../classdatasketches_1_1req__sketch.html',1,'req_sketch&lt; T, Comparator, Allocator &gt;'],['../classdatasketches_1_1req__sketch.html#a732d80ecaa19aab05f65ca62bdf0452c',1,'datasketches::req_sketch::req_sketch(uint16_t k, bool hra=true, const Comparator &amp;comparator=Comparator(), const Allocator &amp;allocator=Allocator())'],['../classdatasketches_1_1req__sketch.html#a4ec3122d5c0994c725123257065de56b',1,'datasketches::req_sketch::req_sketch(const  [...]
-  ['reset_149',['reset',['../classdatasketches_1_1hll__union__alloc.html#ad20897c5c8bd47f5d4005989bead0e55',1,'datasketches::hll_union_alloc::reset()'],['../classdatasketches_1_1update__theta__sketch__alloc.html#ad20897c5c8bd47f5d4005989bead0e55',1,'datasketches::update_theta_sketch_alloc::reset()'],['../classdatasketches_1_1theta__union__alloc.html#ad20897c5c8bd47f5d4005989bead0e55',1,'datasketches::theta_union_alloc::reset()'],['../classdatasketches_1_1update__tuple__sketch.html#ad2089 [...]
-  ['resize_5ffactor_150',['resize_factor',['../namespacedatasketches_1_1theta__constants.html#a329224ced789e065aed0698566b954a4',1,'datasketches::theta_constants']]],
-  ['row_151',['row',['../classdatasketches_1_1frequent__items__sketch_1_1row.html',1,'datasketches::frequent_items_sketch']]]
+  ['req_5fsketch_149',['req_sketch',['../classdatasketches_1_1req__sketch.html',1,'req_sketch&lt; T, Comparator, Allocator &gt;'],['../classdatasketches_1_1req__sketch.html#a732d80ecaa19aab05f65ca62bdf0452c',1,'datasketches::req_sketch::req_sketch(uint16_t k, bool hra=true, const Comparator &amp;comparator=Comparator(), const Allocator &amp;allocator=Allocator())'],['../classdatasketches_1_1req__sketch.html#a4ec3122d5c0994c725123257065de56b',1,'datasketches::req_sketch::req_sketch(const  [...]
+  ['reset_150',['reset',['../classdatasketches_1_1hll__union__alloc.html#ad20897c5c8bd47f5d4005989bead0e55',1,'datasketches::hll_union_alloc::reset()'],['../classdatasketches_1_1update__theta__sketch__alloc.html#ad20897c5c8bd47f5d4005989bead0e55',1,'datasketches::update_theta_sketch_alloc::reset()'],['../classdatasketches_1_1theta__union__alloc.html#ad20897c5c8bd47f5d4005989bead0e55',1,'datasketches::theta_union_alloc::reset()'],['../classdatasketches_1_1update__tuple__sketch.html#ad2089 [...]
+  ['resize_5ffactor_151',['resize_factor',['../namespacedatasketches_1_1theta__constants.html#a329224ced789e065aed0698566b954a4',1,'datasketches::theta_constants']]],
+  ['row_152',['row',['../classdatasketches_1_1frequent__items__sketch_1_1row.html',1,'datasketches::frequent_items_sketch']]]
 ];
diff --git a/docs/master/search/all_11.js b/docs/master/search/all_11.js
index ce32598..e47e740 100644
--- a/docs/master/search/all_11.js
+++ b/docs/master/search/all_11.js
@@ -1,17 +1,17 @@
 var searchData=
 [
-  ['serde_152',['serde',['../structdatasketches_1_1serde.html',1,'datasketches']]],
-  ['serde_3c_20std_3a_3astring_20_3e_153',['serde&lt; std::string &gt;',['../structdatasketches_1_1serde_3_01std_1_1string_01_4.html',1,'datasketches']]],
-  ['serde_3c_20t_2c_20typename_20std_3a_3aenable_5fif_3c_20std_3a_3ais_5farithmetic_3c_20t_20_3e_3a_3avalue_20_3e_3a_3atype_20_3e_154',['serde&lt; T, typename std::enable_if&lt; std::is_arithmetic&lt; T &gt;::value &gt;::type &gt;',['../structdatasketches_1_1serde_3_01T_00_01typename_01std_1_1enable__if_3_01std_1_1is__arithmetic_3_54408b64e8a7918b8a177594393deb4e.html',1,'datasketches']]],
-  ['serialize_155',['serialize',['../classdatasketches_1_1quantiles__sketch.html#a538940c100e4353b3671ad452d3d3056',1,'datasketches::quantiles_sketch::serialize()'],['../classdatasketches_1_1var__opt__sketch.html#a538940c100e4353b3671ad452d3d3056',1,'datasketches::var_opt_sketch::serialize()'],['../classdatasketches_1_1quantiles__sketch.html#a1d0c269c23926e93b1c7a9c00e86af97',1,'datasketches::quantiles_sketch::serialize()'],['../classdatasketches_1_1ebpps__sketch.html#a1d0c269c23926e93b1 [...]
-  ['serialize_5fcompressed_156',['serialize_compressed',['../classdatasketches_1_1compact__theta__sketch__alloc.html#ad340191a312ae81cd5aa18e4e0145460',1,'datasketches::compact_theta_sketch_alloc::serialize_compressed(std::ostream &amp;os) const'],['../classdatasketches_1_1compact__theta__sketch__alloc.html#af3f9c5afb4b31aa40bf248cc96ff5daf',1,'datasketches::compact_theta_sketch_alloc::serialize_compressed(unsigned header_size_bytes=0) const']]],
-  ['set_5flg_5fk_157',['set_lg_k',['../classdatasketches_1_1theta__base__builder.html#a249f556d18a3e5547e6ffef88d7e03ce',1,'datasketches::theta_base_builder']]],
-  ['set_5fp_158',['set_p',['../classdatasketches_1_1theta__base__builder.html#ad17b87a607ca9cbeda22aca45d0a03b0',1,'datasketches::theta_base_builder']]],
-  ['set_5fresize_5ffactor_159',['set_resize_factor',['../classdatasketches_1_1theta__base__builder.html#a872b7237127174b060f0f8ddd00fe7de',1,'datasketches::theta_base_builder']]],
-  ['set_5fseed_160',['set_seed',['../classdatasketches_1_1theta__base__builder.html#aef1998c3c61c65a50d9500395d611c7a',1,'datasketches::theta_base_builder']]],
-  ['similarity_5ftest_161',['similarity_test',['../classdatasketches_1_1jaccard__similarity__base.html#a919ce3dd7d15658fe67eb359368e9f07',1,'datasketches::jaccard_similarity_base']]],
-  ['size_162',['size',['../classdatasketches_1_1quantiles__sorted__view.html#a259cb5a711406a8c3e5d937eb9350cca',1,'datasketches::quantiles_sorted_view']]],
-  ['size_5fof_5fitem_163',['size_of_item',['../structdatasketches_1_1serde.html#a3291383cf9767a56e84b1a0ef5da178e',1,'datasketches::serde::size_of_item()'],['../structdatasketches_1_1serde_3_01T_00_01typename_01std_1_1enable__if_3_01std_1_1is__arithmetic_3_54408b64e8a7918b8a177594393deb4e.html#a3291383cf9767a56e84b1a0ef5da178e',1,'datasketches::serde&lt; T, typename std::enable_if&lt; std::is_arithmetic&lt; T &gt;::value &gt;::type &gt;::size_of_item()'],['../structdatasketches_1_1serde_ [...]
-  ['suggest_5fnum_5fbuckets_164',['suggest_num_buckets',['../classdatasketches_1_1count__min__sketch.html#a2909753e9106aad95a740580c3865d98',1,'datasketches::count_min_sketch']]],
-  ['suggest_5fnum_5fhashes_165',['suggest_num_hashes',['../classdatasketches_1_1count__min__sketch.html#a40b2f93d707496a57b16679be4a58a2f',1,'datasketches::count_min_sketch']]]
+  ['serde_153',['serde',['../structdatasketches_1_1serde.html',1,'datasketches']]],
+  ['serde_3c_20std_3a_3astring_20_3e_154',['serde&lt; std::string &gt;',['../structdatasketches_1_1serde_3_01std_1_1string_01_4.html',1,'datasketches']]],
+  ['serde_3c_20t_2c_20typename_20std_3a_3aenable_5fif_3c_20std_3a_3ais_5farithmetic_3c_20t_20_3e_3a_3avalue_20_3e_3a_3atype_20_3e_155',['serde&lt; T, typename std::enable_if&lt; std::is_arithmetic&lt; T &gt;::value &gt;::type &gt;',['../structdatasketches_1_1serde_3_01T_00_01typename_01std_1_1enable__if_3_01std_1_1is__arithmetic_3_54408b64e8a7918b8a177594393deb4e.html',1,'datasketches']]],
+  ['serialize_156',['serialize',['../classdatasketches_1_1quantiles__sketch.html#a538940c100e4353b3671ad452d3d3056',1,'datasketches::quantiles_sketch::serialize()'],['../classdatasketches_1_1var__opt__sketch.html#a538940c100e4353b3671ad452d3d3056',1,'datasketches::var_opt_sketch::serialize()'],['../classdatasketches_1_1quantiles__sketch.html#a1d0c269c23926e93b1c7a9c00e86af97',1,'datasketches::quantiles_sketch::serialize()'],['../classdatasketches_1_1ebpps__sketch.html#a1d0c269c23926e93b1 [...]
+  ['serialize_5fcompressed_157',['serialize_compressed',['../classdatasketches_1_1compact__theta__sketch__alloc.html#ad340191a312ae81cd5aa18e4e0145460',1,'datasketches::compact_theta_sketch_alloc::serialize_compressed(std::ostream &amp;os) const'],['../classdatasketches_1_1compact__theta__sketch__alloc.html#af3f9c5afb4b31aa40bf248cc96ff5daf',1,'datasketches::compact_theta_sketch_alloc::serialize_compressed(unsigned header_size_bytes=0) const']]],
+  ['set_5flg_5fk_158',['set_lg_k',['../classdatasketches_1_1theta__base__builder.html#a249f556d18a3e5547e6ffef88d7e03ce',1,'datasketches::theta_base_builder']]],
+  ['set_5fp_159',['set_p',['../classdatasketches_1_1theta__base__builder.html#ad17b87a607ca9cbeda22aca45d0a03b0',1,'datasketches::theta_base_builder']]],
+  ['set_5fresize_5ffactor_160',['set_resize_factor',['../classdatasketches_1_1theta__base__builder.html#a872b7237127174b060f0f8ddd00fe7de',1,'datasketches::theta_base_builder']]],
+  ['set_5fseed_161',['set_seed',['../classdatasketches_1_1theta__base__builder.html#aef1998c3c61c65a50d9500395d611c7a',1,'datasketches::theta_base_builder']]],
+  ['similarity_5ftest_162',['similarity_test',['../classdatasketches_1_1jaccard__similarity__base.html#a919ce3dd7d15658fe67eb359368e9f07',1,'datasketches::jaccard_similarity_base']]],
+  ['size_163',['size',['../classdatasketches_1_1quantiles__sorted__view.html#a259cb5a711406a8c3e5d937eb9350cca',1,'datasketches::quantiles_sorted_view']]],
+  ['size_5fof_5fitem_164',['size_of_item',['../structdatasketches_1_1serde.html#a3291383cf9767a56e84b1a0ef5da178e',1,'datasketches::serde::size_of_item()'],['../structdatasketches_1_1serde_3_01T_00_01typename_01std_1_1enable__if_3_01std_1_1is__arithmetic_3_54408b64e8a7918b8a177594393deb4e.html#a3291383cf9767a56e84b1a0ef5da178e',1,'datasketches::serde&lt; T, typename std::enable_if&lt; std::is_arithmetic&lt; T &gt;::value &gt;::type &gt;::size_of_item()'],['../structdatasketches_1_1serde_ [...]
+  ['suggest_5fnum_5fbuckets_165',['suggest_num_buckets',['../classdatasketches_1_1count__min__sketch.html#a2909753e9106aad95a740580c3865d98',1,'datasketches::count_min_sketch']]],
+  ['suggest_5fnum_5fhashes_166',['suggest_num_hashes',['../classdatasketches_1_1count__min__sketch.html#a40b2f93d707496a57b16679be4a58a2f',1,'datasketches::count_min_sketch']]]
 ];
diff --git a/docs/master/search/all_12.js b/docs/master/search/all_12.js
index a991d4d..b39b535 100644
--- a/docs/master/search/all_12.js
+++ b/docs/master/search/all_12.js
@@ -1,32 +1,32 @@
 var searchData=
 [
-  ['target_5fhll_5ftype_166',['target_hll_type',['../namespacedatasketches.html#a76c1ad9235877691984d49415bb263e4',1,'datasketches']]],
-  ['test_167',['test',['../classdatasketches_1_1kolmogorov__smirnov.html#abe35b8f2ba44099903040c3e9beabd21',1,'datasketches::kolmogorov_smirnov']]],
-  ['theta_5fa_5fnot_5fb_5falloc_168',['theta_a_not_b_alloc',['../classdatasketches_1_1theta__a__not__b__alloc.html',1,'theta_a_not_b_alloc&lt; Allocator &gt;'],['../classdatasketches_1_1theta__a__not__b__alloc.html#aad68590e0fdd7ae1f794c1734b4e94e4',1,'datasketches::theta_a_not_b_alloc::theta_a_not_b_alloc()']]],
-  ['theta_5fbase_5fbuilder_169',['theta_base_builder',['../classdatasketches_1_1theta__base__builder.html',1,'theta_base_builder&lt; Derived, Allocator &gt;'],['../classdatasketches_1_1theta__base__builder.html#a4b0aff81dd617849c00e8c1624a4218b',1,'datasketches::theta_base_builder::theta_base_builder()']]],
-  ['theta_5fbase_5fbuilder_3c_20builder_2c_20a_20_3e_170',['theta_base_builder&lt; builder, A &gt;',['../classdatasketches_1_1theta__base__builder.html',1,'datasketches']]],
-  ['theta_5fbase_5fbuilder_3c_20builder_2c_20allocator_20_3e_171',['theta_base_builder&lt; builder, Allocator &gt;',['../classdatasketches_1_1theta__base__builder.html',1,'datasketches']]],
-  ['theta_5fintersection_5falloc_172',['theta_intersection_alloc',['../classdatasketches_1_1theta__intersection__alloc.html',1,'theta_intersection_alloc&lt; Allocator &gt;'],['../classdatasketches_1_1theta__intersection__alloc.html#a47ac95e76c9f21fb19108e3ab9c21012',1,'datasketches::theta_intersection_alloc::theta_intersection_alloc()']]],
-  ['theta_5fjaccard_5fsimilarity_173',['theta_jaccard_similarity',['../namespacedatasketches.html#aabfc61022ee6d85f5ff9cc2e060eb205',1,'datasketches']]],
-  ['theta_5fjaccard_5fsimilarity_5falloc_174',['theta_jaccard_similarity_alloc',['../namespacedatasketches.html#ad0107085ac33da52e1cc9c3c4d50a152',1,'datasketches']]],
-  ['theta_5fsketch_175',['theta_sketch',['../namespacedatasketches.html#af64cbe6dbddcc92a648ea50dd3e7d525',1,'datasketches']]],
-  ['theta_5fsketch_5falloc_176',['theta_sketch_alloc',['../classdatasketches_1_1theta__sketch__alloc.html',1,'datasketches']]],
-  ['theta_5fsketch_5falloc_3c_20std_3a_3aallocator_3c_20uint64_5ft_20_3e_20_3e_177',['theta_sketch_alloc&lt; std::allocator&lt; uint64_t &gt; &gt;',['../classdatasketches_1_1theta__sketch__alloc.html',1,'datasketches']]],
-  ['theta_5funion_5falloc_178',['theta_union_alloc',['../classdatasketches_1_1theta__union__alloc.html',1,'datasketches']]],
-  ['threshold_179',['threshold',['../classdatasketches_1_1kolmogorov__smirnov.html#af92dd2e35bc4c560b837a056797f75af',1,'datasketches::kolmogorov_smirnov']]],
-  ['to_5fstring_180',['to_string',['../classdatasketches_1_1count__min__sketch.html#aed372241c10ffd041bee85602edb199a',1,'datasketches::count_min_sketch::to_string()'],['../classdatasketches_1_1frequent__items__sketch.html#a60a5fe73c86554c313705666f8fb227a',1,'datasketches::frequent_items_sketch::to_string()'],['../classdatasketches_1_1density__sketch.html#a592a7af55659ff803b26a45552a68dda',1,'datasketches::density_sketch::to_string()'],['../classdatasketches_1_1var__opt__union.html#aed3 [...]
-  ['trim_181',['trim',['../classdatasketches_1_1update__theta__sketch__alloc.html#a268ae12a22c9f97b84833e4c39fb2278',1,'datasketches::update_theta_sketch_alloc::trim()'],['../classdatasketches_1_1update__tuple__sketch.html#a268ae12a22c9f97b84833e4c39fb2278',1,'datasketches::update_tuple_sketch::trim()']]],
-  ['tuple_5fa_5fnot_5fb_182',['tuple_a_not_b',['../classdatasketches_1_1tuple__a__not__b.html',1,'tuple_a_not_b&lt; Summary, Allocator &gt;'],['../classdatasketches_1_1tuple__a__not__b.html#ab7aabf86559ad403741955663d86f83d',1,'datasketches::tuple_a_not_b::tuple_a_not_b()']]],
-  ['tuple_5fa_5fnot_5fb_3c_20array_2c_20typename_20array_3a_3aallocator_5ftype_20_3e_183',['tuple_a_not_b&lt; Array, typename Array::allocator_type &gt;',['../classdatasketches_1_1tuple__a__not__b.html',1,'datasketches']]],
-  ['tuple_5fbase_5fbuilder_184',['tuple_base_builder',['../classdatasketches_1_1tuple__base__builder.html',1,'datasketches']]],
-  ['tuple_5fbase_5fbuilder_3c_20builder_2c_20p_2c_20a_20_3e_185',['tuple_base_builder&lt; builder, P, A &gt;',['../classdatasketches_1_1tuple__base__builder.html',1,'datasketches']]],
-  ['tuple_5fbase_5fbuilder_3c_20builder_2c_20policy_2c_20allocator_20_3e_186',['tuple_base_builder&lt; builder, Policy, Allocator &gt;',['../classdatasketches_1_1tuple__base__builder.html',1,'datasketches']]],
-  ['tuple_5fintersection_187',['tuple_intersection',['../classdatasketches_1_1tuple__intersection.html',1,'tuple_intersection&lt; Summary, Policy, Allocator &gt;'],['../classdatasketches_1_1tuple__intersection.html#a4cff2978362ac6d1c74a1a69c3b3843f',1,'datasketches::tuple_intersection::tuple_intersection()']]],
-  ['tuple_5fintersection_3c_20array_2c_20policy_2c_20typename_20array_3a_3aallocator_5ftype_20_3e_188',['tuple_intersection&lt; Array, Policy, typename Array::allocator_type &gt;',['../classdatasketches_1_1tuple__intersection.html',1,'datasketches']]],
-  ['tuple_5fjaccard_5fsimilarity_189',['tuple_jaccard_similarity',['../namespacedatasketches.html#a9edbdcf6010c8d35813ca718d5127212',1,'datasketches']]],
-  ['tuple_5fsketch_190',['tuple_sketch',['../classdatasketches_1_1tuple__sketch.html',1,'datasketches']]],
-  ['tuple_5fsketch_3c_20array_2c_20typename_20array_3a_3aallocator_5ftype_20_3e_191',['tuple_sketch&lt; Array, typename Array::allocator_type &gt;',['../classdatasketches_1_1tuple__sketch.html',1,'datasketches']]],
-  ['tuple_5fsketch_3c_20summary_2c_20std_3a_3aallocator_3c_20summary_20_3e_20_3e_192',['tuple_sketch&lt; Summary, std::allocator&lt; Summary &gt; &gt;',['../classdatasketches_1_1tuple__sketch.html',1,'datasketches']]],
-  ['tuple_5funion_193',['tuple_union',['../classdatasketches_1_1tuple__union.html',1,'datasketches']]],
-  ['tuple_5funion_3c_20array_2c_20default_5farray_5ftuple_5funion_5fpolicy_3c_20array_20_3e_2c_20typename_20array_3a_3aallocator_5ftype_20_3e_194',['tuple_union&lt; Array, default_array_tuple_union_policy&lt; Array &gt;, typename Array::allocator_type &gt;',['../classdatasketches_1_1tuple__union.html',1,'datasketches']]]
+  ['target_5fhll_5ftype_167',['target_hll_type',['../namespacedatasketches.html#a76c1ad9235877691984d49415bb263e4',1,'datasketches']]],
+  ['test_168',['test',['../classdatasketches_1_1kolmogorov__smirnov.html#abe35b8f2ba44099903040c3e9beabd21',1,'datasketches::kolmogorov_smirnov']]],
+  ['theta_5fa_5fnot_5fb_5falloc_169',['theta_a_not_b_alloc',['../classdatasketches_1_1theta__a__not__b__alloc.html',1,'theta_a_not_b_alloc&lt; Allocator &gt;'],['../classdatasketches_1_1theta__a__not__b__alloc.html#aad68590e0fdd7ae1f794c1734b4e94e4',1,'datasketches::theta_a_not_b_alloc::theta_a_not_b_alloc()']]],
+  ['theta_5fbase_5fbuilder_170',['theta_base_builder',['../classdatasketches_1_1theta__base__builder.html',1,'theta_base_builder&lt; Derived, Allocator &gt;'],['../classdatasketches_1_1theta__base__builder.html#a4b0aff81dd617849c00e8c1624a4218b',1,'datasketches::theta_base_builder::theta_base_builder()']]],
+  ['theta_5fbase_5fbuilder_3c_20builder_2c_20a_20_3e_171',['theta_base_builder&lt; builder, A &gt;',['../classdatasketches_1_1theta__base__builder.html',1,'datasketches']]],
+  ['theta_5fbase_5fbuilder_3c_20builder_2c_20allocator_20_3e_172',['theta_base_builder&lt; builder, Allocator &gt;',['../classdatasketches_1_1theta__base__builder.html',1,'datasketches']]],
+  ['theta_5fintersection_5falloc_173',['theta_intersection_alloc',['../classdatasketches_1_1theta__intersection__alloc.html',1,'theta_intersection_alloc&lt; Allocator &gt;'],['../classdatasketches_1_1theta__intersection__alloc.html#a47ac95e76c9f21fb19108e3ab9c21012',1,'datasketches::theta_intersection_alloc::theta_intersection_alloc()']]],
+  ['theta_5fjaccard_5fsimilarity_174',['theta_jaccard_similarity',['../namespacedatasketches.html#aabfc61022ee6d85f5ff9cc2e060eb205',1,'datasketches']]],
+  ['theta_5fjaccard_5fsimilarity_5falloc_175',['theta_jaccard_similarity_alloc',['../namespacedatasketches.html#ad0107085ac33da52e1cc9c3c4d50a152',1,'datasketches']]],
+  ['theta_5fsketch_176',['theta_sketch',['../namespacedatasketches.html#af64cbe6dbddcc92a648ea50dd3e7d525',1,'datasketches']]],
+  ['theta_5fsketch_5falloc_177',['theta_sketch_alloc',['../classdatasketches_1_1theta__sketch__alloc.html',1,'datasketches']]],
+  ['theta_5fsketch_5falloc_3c_20std_3a_3aallocator_3c_20uint64_5ft_20_3e_20_3e_178',['theta_sketch_alloc&lt; std::allocator&lt; uint64_t &gt; &gt;',['../classdatasketches_1_1theta__sketch__alloc.html',1,'datasketches']]],
+  ['theta_5funion_5falloc_179',['theta_union_alloc',['../classdatasketches_1_1theta__union__alloc.html',1,'datasketches']]],
+  ['threshold_180',['threshold',['../classdatasketches_1_1kolmogorov__smirnov.html#af92dd2e35bc4c560b837a056797f75af',1,'datasketches::kolmogorov_smirnov']]],
+  ['to_5fstring_181',['to_string',['../classdatasketches_1_1count__min__sketch.html#aed372241c10ffd041bee85602edb199a',1,'datasketches::count_min_sketch::to_string()'],['../classdatasketches_1_1frequent__items__sketch.html#a60a5fe73c86554c313705666f8fb227a',1,'datasketches::frequent_items_sketch::to_string()'],['../classdatasketches_1_1density__sketch.html#a592a7af55659ff803b26a45552a68dda',1,'datasketches::density_sketch::to_string()'],['../classdatasketches_1_1var__opt__union.html#aed3 [...]
+  ['trim_182',['trim',['../classdatasketches_1_1update__theta__sketch__alloc.html#a268ae12a22c9f97b84833e4c39fb2278',1,'datasketches::update_theta_sketch_alloc::trim()'],['../classdatasketches_1_1update__tuple__sketch.html#a268ae12a22c9f97b84833e4c39fb2278',1,'datasketches::update_tuple_sketch::trim()']]],
+  ['tuple_5fa_5fnot_5fb_183',['tuple_a_not_b',['../classdatasketches_1_1tuple__a__not__b.html',1,'tuple_a_not_b&lt; Summary, Allocator &gt;'],['../classdatasketches_1_1tuple__a__not__b.html#ab7aabf86559ad403741955663d86f83d',1,'datasketches::tuple_a_not_b::tuple_a_not_b()']]],
+  ['tuple_5fa_5fnot_5fb_3c_20array_2c_20typename_20array_3a_3aallocator_5ftype_20_3e_184',['tuple_a_not_b&lt; Array, typename Array::allocator_type &gt;',['../classdatasketches_1_1tuple__a__not__b.html',1,'datasketches']]],
+  ['tuple_5fbase_5fbuilder_185',['tuple_base_builder',['../classdatasketches_1_1tuple__base__builder.html',1,'datasketches']]],
+  ['tuple_5fbase_5fbuilder_3c_20builder_2c_20p_2c_20a_20_3e_186',['tuple_base_builder&lt; builder, P, A &gt;',['../classdatasketches_1_1tuple__base__builder.html',1,'datasketches']]],
+  ['tuple_5fbase_5fbuilder_3c_20builder_2c_20policy_2c_20allocator_20_3e_187',['tuple_base_builder&lt; builder, Policy, Allocator &gt;',['../classdatasketches_1_1tuple__base__builder.html',1,'datasketches']]],
+  ['tuple_5fintersection_188',['tuple_intersection',['../classdatasketches_1_1tuple__intersection.html',1,'tuple_intersection&lt; Summary, Policy, Allocator &gt;'],['../classdatasketches_1_1tuple__intersection.html#a4cff2978362ac6d1c74a1a69c3b3843f',1,'datasketches::tuple_intersection::tuple_intersection()']]],
+  ['tuple_5fintersection_3c_20array_2c_20policy_2c_20typename_20array_3a_3aallocator_5ftype_20_3e_189',['tuple_intersection&lt; Array, Policy, typename Array::allocator_type &gt;',['../classdatasketches_1_1tuple__intersection.html',1,'datasketches']]],
+  ['tuple_5fjaccard_5fsimilarity_190',['tuple_jaccard_similarity',['../namespacedatasketches.html#a9edbdcf6010c8d35813ca718d5127212',1,'datasketches']]],
+  ['tuple_5fsketch_191',['tuple_sketch',['../classdatasketches_1_1tuple__sketch.html',1,'datasketches']]],
+  ['tuple_5fsketch_3c_20array_2c_20typename_20array_3a_3aallocator_5ftype_20_3e_192',['tuple_sketch&lt; Array, typename Array::allocator_type &gt;',['../classdatasketches_1_1tuple__sketch.html',1,'datasketches']]],
+  ['tuple_5fsketch_3c_20summary_2c_20std_3a_3aallocator_3c_20summary_20_3e_20_3e_193',['tuple_sketch&lt; Summary, std::allocator&lt; Summary &gt; &gt;',['../classdatasketches_1_1tuple__sketch.html',1,'datasketches']]],
+  ['tuple_5funion_194',['tuple_union',['../classdatasketches_1_1tuple__union.html',1,'datasketches']]],
+  ['tuple_5funion_3c_20array_2c_20default_5farray_5ftuple_5funion_5fpolicy_3c_20array_20_3e_2c_20typename_20array_3a_3aallocator_5ftype_20_3e_195',['tuple_union&lt; Array, default_array_tuple_union_policy&lt; Array &gt;, typename Array::allocator_type &gt;',['../classdatasketches_1_1tuple__union.html',1,'datasketches']]]
 ];
diff --git a/docs/master/search/all_13.js b/docs/master/search/all_13.js
index 709ff7e..da3058d 100644
--- a/docs/master/search/all_13.js
+++ b/docs/master/search/all_13.js
@@ -1,11 +1,11 @@
 var searchData=
 [
-  ['update_195',['update',['../classdatasketches_1_1theta__union__alloc.html#a4fac8167b04c9b5dbaeb5ccbd053703c',1,'datasketches::theta_union_alloc::update()'],['../classdatasketches_1_1update__tuple__sketch.html#a9625343612a687c7eb250cc19d032f6c',1,'datasketches::update_tuple_sketch::update(uint8_t key, FwdUpdate &amp;&amp;value)'],['../classdatasketches_1_1update__tuple__sketch.html#a0d3921cf5bcfbda1b545b043b0b1b830',1,'datasketches::update_tuple_sketch::update(int16_t key, FwdUpdate &a [...]
-  ['update_5farray_5fof_5fdoubles_5fsketch_196',['update_array_of_doubles_sketch',['../namespacedatasketches.html#a1f2cb976e39fb4c31b9d422290cab713',1,'datasketches']]],
-  ['update_5farray_5ftuple_5fsketch_197',['update_array_tuple_sketch',['../classdatasketches_1_1update__array__tuple__sketch.html',1,'datasketches']]],
-  ['update_5ftheta_5fsketch_198',['update_theta_sketch',['../namespacedatasketches.html#acf9e476bd4c4a803558121dcd504a231',1,'datasketches']]],
-  ['update_5ftheta_5fsketch_5falloc_199',['update_theta_sketch_alloc',['../classdatasketches_1_1update__theta__sketch__alloc.html',1,'update_theta_sketch_alloc&lt; Allocator &gt;'],['../classdatasketches_1_1update__theta__sketch__alloc.html#af865582cdd7f9938251ecb41518ecb99',1,'datasketches::update_theta_sketch_alloc::update_theta_sketch_alloc(const update_theta_sketch_alloc &amp;other)=default'],['../classdatasketches_1_1update__theta__sketch__alloc.html#a70a347dfef00f6b9fb18d8eabf1699c [...]
-  ['update_5ftuple_5fsketch_200',['update_tuple_sketch',['../classdatasketches_1_1update__tuple__sketch.html',1,'datasketches']]],
-  ['update_5ftuple_5fsketch_3c_20array_2c_20array_2c_20default_5farray_5ftuple_5fupdate_5fpolicy_3c_20array_20_3e_2c_20typename_20array_3a_3aallocator_5ftype_20_3e_201',['update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;',['../classdatasketches_1_1update__tuple__sketch.html',1,'datasketches']]],
-  ['upper_5fbound_5ffor_5fb_5fover_5fa_202',['upper_bound_for_b_over_a',['../classdatasketches_1_1bounds__on__ratios__in__sampled__sets.html#a2453c33c83f730e780c3e7eb7ac17826',1,'datasketches::bounds_on_ratios_in_sampled_sets::upper_bound_for_b_over_a()'],['../classdatasketches_1_1bounds__on__ratios__in__theta__sketched__sets.html#ad293e15d58608067e1e0d6664802bfd2',1,'datasketches::bounds_on_ratios_in_theta_sketched_sets::upper_bound_for_b_over_a()']]]
+  ['update_196',['update',['../classdatasketches_1_1theta__union__alloc.html#a4fac8167b04c9b5dbaeb5ccbd053703c',1,'datasketches::theta_union_alloc::update()'],['../classdatasketches_1_1update__tuple__sketch.html#a9625343612a687c7eb250cc19d032f6c',1,'datasketches::update_tuple_sketch::update(uint8_t key, FwdUpdate &amp;&amp;value)'],['../classdatasketches_1_1update__tuple__sketch.html#a0d3921cf5bcfbda1b545b043b0b1b830',1,'datasketches::update_tuple_sketch::update(int16_t key, FwdUpdate &a [...]
+  ['update_5farray_5fof_5fdoubles_5fsketch_197',['update_array_of_doubles_sketch',['../namespacedatasketches.html#a1f2cb976e39fb4c31b9d422290cab713',1,'datasketches']]],
+  ['update_5farray_5ftuple_5fsketch_198',['update_array_tuple_sketch',['../classdatasketches_1_1update__array__tuple__sketch.html',1,'datasketches']]],
+  ['update_5ftheta_5fsketch_199',['update_theta_sketch',['../namespacedatasketches.html#acf9e476bd4c4a803558121dcd504a231',1,'datasketches']]],
+  ['update_5ftheta_5fsketch_5falloc_200',['update_theta_sketch_alloc',['../classdatasketches_1_1update__theta__sketch__alloc.html',1,'update_theta_sketch_alloc&lt; Allocator &gt;'],['../classdatasketches_1_1update__theta__sketch__alloc.html#af865582cdd7f9938251ecb41518ecb99',1,'datasketches::update_theta_sketch_alloc::update_theta_sketch_alloc(const update_theta_sketch_alloc &amp;other)=default'],['../classdatasketches_1_1update__theta__sketch__alloc.html#a70a347dfef00f6b9fb18d8eabf1699c [...]
+  ['update_5ftuple_5fsketch_201',['update_tuple_sketch',['../classdatasketches_1_1update__tuple__sketch.html',1,'datasketches']]],
+  ['update_5ftuple_5fsketch_3c_20array_2c_20array_2c_20default_5farray_5ftuple_5fupdate_5fpolicy_3c_20array_20_3e_2c_20typename_20array_3a_3aallocator_5ftype_20_3e_202',['update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;',['../classdatasketches_1_1update__tuple__sketch.html',1,'datasketches']]],
+  ['upper_5fbound_5ffor_5fb_5fover_5fa_203',['upper_bound_for_b_over_a',['../classdatasketches_1_1bounds__on__ratios__in__sampled__sets.html#a2453c33c83f730e780c3e7eb7ac17826',1,'datasketches::bounds_on_ratios_in_sampled_sets::upper_bound_for_b_over_a()'],['../classdatasketches_1_1bounds__on__ratios__in__theta__sketched__sets.html#ad293e15d58608067e1e0d6664802bfd2',1,'datasketches::bounds_on_ratios_in_theta_sketched_sets::upper_bound_for_b_over_a()']]]
 ];
diff --git a/docs/master/search/all_14.js b/docs/master/search/all_14.js
index 6b7a05c..43446bd 100644
--- a/docs/master/search/all_14.js
+++ b/docs/master/search/all_14.js
@@ -1,7 +1,7 @@
 var searchData=
 [
-  ['var_5fopt_5fsketch_203',['var_opt_sketch',['../classdatasketches_1_1var__opt__sketch.html',1,'var_opt_sketch&lt; T, A &gt;'],['../classdatasketches_1_1var__opt__sketch.html#a6df9f2226b7197a0f612ee4aec0233e7',1,'datasketches::var_opt_sketch::var_opt_sketch(uint32_t k, resize_factor rf=var_opt_constants::DEFAULT_RESIZE_FACTOR, const A &amp;allocator=A())'],['../classdatasketches_1_1var__opt__sketch.html#a3efbe40f3a9091fa581eaeef126b8285',1,'datasketches::var_opt_sketch::var_opt_sketch( [...]
-  ['var_5fopt_5fsketch_3c_20t_2c_20a_20_3e_204',['var_opt_sketch&lt; T, A &gt;',['../classdatasketches_1_1var__opt__sketch.html',1,'datasketches']]],
-  ['var_5fopt_5fsketch_3c_20t_2c_20std_3a_3aallocator_3c_20t_20_3e_20_3e_205',['var_opt_sketch&lt; T, std::allocator&lt; T &gt; &gt;',['../classdatasketches_1_1var__opt__sketch.html',1,'datasketches']]],
-  ['var_5fopt_5funion_206',['var_opt_union',['../classdatasketches_1_1var__opt__union.html',1,'datasketches']]]
+  ['var_5fopt_5fsketch_204',['var_opt_sketch',['../classdatasketches_1_1var__opt__sketch.html',1,'var_opt_sketch&lt; T, A &gt;'],['../classdatasketches_1_1var__opt__sketch.html#a6df9f2226b7197a0f612ee4aec0233e7',1,'datasketches::var_opt_sketch::var_opt_sketch(uint32_t k, resize_factor rf=var_opt_constants::DEFAULT_RESIZE_FACTOR, const A &amp;allocator=A())'],['../classdatasketches_1_1var__opt__sketch.html#a3efbe40f3a9091fa581eaeef126b8285',1,'datasketches::var_opt_sketch::var_opt_sketch( [...]
+  ['var_5fopt_5fsketch_3c_20t_2c_20a_20_3e_205',['var_opt_sketch&lt; T, A &gt;',['../classdatasketches_1_1var__opt__sketch.html',1,'datasketches']]],
+  ['var_5fopt_5fsketch_3c_20t_2c_20std_3a_3aallocator_3c_20t_20_3e_20_3e_206',['var_opt_sketch&lt; T, std::allocator&lt; T &gt; &gt;',['../classdatasketches_1_1var__opt__sketch.html',1,'datasketches']]],
+  ['var_5fopt_5funion_207',['var_opt_union',['../classdatasketches_1_1var__opt__union.html',1,'datasketches']]]
 ];
diff --git a/docs/master/search/all_15.js b/docs/master/search/all_15.js
index 6dd38c3..e8de28f 100644
--- a/docs/master/search/all_15.js
+++ b/docs/master/search/all_15.js
@@ -1,6 +1,6 @@
 var searchData=
 [
-  ['wrap_207',['wrap',['../classdatasketches_1_1wrapped__compact__theta__sketch__alloc.html#a7c8fcc5351cb17b746aef835e65b403a',1,'datasketches::wrapped_compact_theta_sketch_alloc']]],
-  ['wrapped_5fcompact_5ftheta_5fsketch_208',['wrapped_compact_theta_sketch',['../namespacedatasketches.html#aa3beeb0f7bcab82d98ea34a3bab848b6',1,'datasketches']]],
-  ['wrapped_5fcompact_5ftheta_5fsketch_5falloc_209',['wrapped_compact_theta_sketch_alloc',['../classdatasketches_1_1wrapped__compact__theta__sketch__alloc.html',1,'datasketches']]]
+  ['wrap_208',['wrap',['../classdatasketches_1_1wrapped__compact__theta__sketch__alloc.html#a7c8fcc5351cb17b746aef835e65b403a',1,'datasketches::wrapped_compact_theta_sketch_alloc']]],
+  ['wrapped_5fcompact_5ftheta_5fsketch_209',['wrapped_compact_theta_sketch',['../namespacedatasketches.html#aa3beeb0f7bcab82d98ea34a3bab848b6',1,'datasketches']]],
+  ['wrapped_5fcompact_5ftheta_5fsketch_5falloc_210',['wrapped_compact_theta_sketch_alloc',['../classdatasketches_1_1wrapped__compact__theta__sketch__alloc.html',1,'datasketches']]]
 ];
diff --git a/docs/master/search/all_5.js b/docs/master/search/all_5.js
index 6c43228..b9529a6 100644
--- a/docs/master/search/all_5.js
+++ b/docs/master/search/all_5.js
@@ -1,5 +1,6 @@
 var searchData=
 [
-  ['frequent_5fitems_5ferror_5ftype_61',['frequent_items_error_type',['../namespacedatasketches.html#ae94a02fc822bc3f745ab6ef0ac9c1f0f',1,'datasketches']]],
-  ['frequent_5fitems_5fsketch_62',['frequent_items_sketch',['../classdatasketches_1_1frequent__items__sketch.html',1,'frequent_items_sketch&lt; T, W, H, E, A &gt;'],['../classdatasketches_1_1frequent__items__sketch.html#a225f700985a82a592a6fd7dc685d6044',1,'datasketches::frequent_items_sketch::frequent_items_sketch()']]]
+  ['filter_61',['filter',['../classdatasketches_1_1update__tuple__sketch.html#aa37bb6b08780486ee17d59be552db371',1,'datasketches::update_tuple_sketch::filter()'],['../classdatasketches_1_1compact__tuple__sketch.html#a45b4c825a3545299d8bfeeadc70708c3',1,'datasketches::compact_tuple_sketch::filter(const Predicate &amp;predicate) const'],['../classdatasketches_1_1compact__tuple__sketch.html#a52e3b99cd0e081aaeffeb1569dcff39f',1,'datasketches::compact_tuple_sketch::filter(const Sketch &amp;sk [...]
+  ['frequent_5fitems_5ferror_5ftype_62',['frequent_items_error_type',['../namespacedatasketches.html#ae94a02fc822bc3f745ab6ef0ac9c1f0f',1,'datasketches']]],
+  ['frequent_5fitems_5fsketch_63',['frequent_items_sketch',['../classdatasketches_1_1frequent__items__sketch.html',1,'frequent_items_sketch&lt; T, W, H, E, A &gt;'],['../classdatasketches_1_1frequent__items__sketch.html#a225f700985a82a592a6fd7dc685d6044',1,'datasketches::frequent_items_sketch::frequent_items_sketch()']]]
 ];
diff --git a/docs/master/search/all_6.js b/docs/master/search/all_6.js
index abe8079..7f6975e 100644
--- a/docs/master/search/all_6.js
+++ b/docs/master/search/all_6.js
@@ -1,52 +1,52 @@
 var searchData=
 [
-  ['get_5fallocator_63',['get_allocator',['../classdatasketches_1_1count__min__sketch.html#a6e99c6263568d88f95ca01dc694f1051',1,'datasketches::count_min_sketch::get_allocator()'],['../classdatasketches_1_1cpc__sketch__alloc.html#a9d85cf47c4ecd0580ec623c42006dd1b',1,'datasketches::cpc_sketch_alloc::get_allocator()'],['../classdatasketches_1_1req__sketch.html#a9d85cf47c4ecd0580ec623c42006dd1b',1,'datasketches::req_sketch::get_allocator()'],['../classdatasketches_1_1density__sketch.html#a9d [...]
-  ['get_5fapriori_5ferror_64',['get_apriori_error',['../classdatasketches_1_1frequent__items__sketch.html#a6731cfa90aabc42089e1f449d3aa9a66',1,'datasketches::frequent_items_sketch']]],
-  ['get_5fc_65',['get_c',['../classdatasketches_1_1ebpps__sketch.html#ad9a95d52fa46cfa85b026802397b2154',1,'datasketches::ebpps_sketch']]],
-  ['get_5fcdf_66',['get_CDF',['../classdatasketches_1_1quantiles__sorted__view.html#a20a4d992209b2aa58614c998d143705c',1,'datasketches::quantiles_sorted_view::get_CDF()'],['../classdatasketches_1_1kll__sketch.html#a20a4d992209b2aa58614c998d143705c',1,'datasketches::kll_sketch::get_CDF()'],['../classdatasketches_1_1quantiles__sketch.html#a20a4d992209b2aa58614c998d143705c',1,'datasketches::quantiles_sketch::get_CDF()'],['../classdatasketches_1_1req__sketch.html#a20a4d992209b2aa58614c998d14 [...]
-  ['get_5fcomparator_67',['get_comparator',['../classdatasketches_1_1kll__sketch.html#a076f89979daa6471a3868cb97ea99b40',1,'datasketches::kll_sketch::get_comparator()'],['../classdatasketches_1_1quantiles__sketch.html#a076f89979daa6471a3868cb97ea99b40',1,'datasketches::quantiles_sketch::get_comparator()'],['../classdatasketches_1_1req__sketch.html#a076f89979daa6471a3868cb97ea99b40',1,'datasketches::req_sketch::get_comparator()']]],
-  ['get_5fcomposite_5festimate_68',['get_composite_estimate',['../classdatasketches_1_1hll__union__alloc.html#a1d6c3cd1e88796786ea124a7aed3800d',1,'datasketches::hll_union_alloc']]],
-  ['get_5fcumulative_5fweight_69',['get_cumulative_weight',['../classdatasketches_1_1ebpps__sketch.html#a8c7e54338adc46e68f7c53676bcecde8',1,'datasketches::ebpps_sketch']]],
-  ['get_5fdim_70',['get_dim',['../classdatasketches_1_1density__sketch.html#a57bff8d89cd2bde903090aa30208f610',1,'datasketches::density_sketch']]],
-  ['get_5fepsilon_71',['get_epsilon',['../classdatasketches_1_1frequent__items__sketch.html#a7d758ee3fb67c30c547628bd8cc2d266',1,'datasketches::frequent_items_sketch::get_epsilon() const'],['../classdatasketches_1_1frequent__items__sketch.html#a88b29ea8d3966b76de96e183789f7f3e',1,'datasketches::frequent_items_sketch::get_epsilon(uint8_t lg_max_map_size)']]],
-  ['get_5festimate_72',['get_estimate',['../classdatasketches_1_1count__min__sketch.html#a8c7a3314a5665e9d244acc5c1b5c43d6',1,'datasketches::count_min_sketch::get_estimate(uint64_t item) const'],['../classdatasketches_1_1count__min__sketch.html#af6b3c87aab0c7a3c2ee213fbc7aa48e3',1,'datasketches::count_min_sketch::get_estimate(const void *item, size_t size) const'],['../classdatasketches_1_1count__min__sketch.html#ae77ba09c468a102946bbc2f0a0a5d7bf',1,'datasketches::count_min_sketch::get_e [...]
-  ['get_5festimate_5fof_5fb_5fover_5fa_73',['get_estimate_of_b_over_a',['../classdatasketches_1_1bounds__on__ratios__in__sampled__sets.html#a0063345d4a1d4c7f7ae90fa6271e919f',1,'datasketches::bounds_on_ratios_in_sampled_sets']]],
-  ['get_5ffrequent_5fitems_74',['get_frequent_items',['../classdatasketches_1_1frequent__items__sketch.html#a5412230c8878e0cc1be2c6940512f508',1,'datasketches::frequent_items_sketch::get_frequent_items(frequent_items_error_type err_type) const'],['../classdatasketches_1_1frequent__items__sketch.html#a9b0618f5181938adc5bd00b9f40516b9',1,'datasketches::frequent_items_sketch::get_frequent_items(frequent_items_error_type err_type, W threshold) const']]],
-  ['get_5fitem_75',['get_item',['../classdatasketches_1_1frequent__items__sketch_1_1row.html#af171de2811f050046877452beb48144e',1,'datasketches::frequent_items_sketch::row']]],
-  ['get_5fk_76',['get_k',['../classdatasketches_1_1var__opt__sketch.html#af561f5cd76ff61773713c627bc53b0a2',1,'datasketches::var_opt_sketch::get_k()'],['../classdatasketches_1_1req__sketch.html#a59f4c39b9f2e762e8e3445ef89e1d264',1,'datasketches::req_sketch::get_k()'],['../classdatasketches_1_1density__sketch.html#a59f4c39b9f2e762e8e3445ef89e1d264',1,'datasketches::density_sketch::get_k()'],['../classdatasketches_1_1ebpps__sketch.html#af561f5cd76ff61773713c627bc53b0a2',1,'datasketches::eb [...]
-  ['get_5flg_5fconfig_5fk_77',['get_lg_config_k',['../classdatasketches_1_1hll__union__alloc.html#aacaad8ccad500578a2cae9bef58ad436',1,'datasketches::hll_union_alloc']]],
-  ['get_5flg_5fk_78',['get_lg_k',['../classdatasketches_1_1cpc__sketch__alloc.html#a8f8b2691781d682411a6de23996a8be2',1,'datasketches::cpc_sketch_alloc::get_lg_k()'],['../classdatasketches_1_1update__theta__sketch__alloc.html#a8f8b2691781d682411a6de23996a8be2',1,'datasketches::update_theta_sketch_alloc::get_lg_k()'],['../classdatasketches_1_1update__tuple__sketch.html#a8f8b2691781d682411a6de23996a8be2',1,'datasketches::update_tuple_sketch::get_lg_k()']]],
-  ['get_5flower_5fbound_79',['get_lower_bound',['../classdatasketches_1_1tuple__sketch.html#a2e5c990494331d901c3b38cd4eb316e6',1,'datasketches::tuple_sketch::get_lower_bound()'],['../classdatasketches_1_1count__min__sketch.html#a4170344c96a738e9c14933e6d40c2c5f',1,'datasketches::count_min_sketch::get_lower_bound(const std::string &amp;item) const'],['../classdatasketches_1_1count__min__sketch.html#ab131655963c3d3a786ada936f67f5cb7',1,'datasketches::count_min_sketch::get_lower_bound(uint6 [...]
-  ['get_5fmax_5fitem_80',['get_max_item',['../classdatasketches_1_1kll__sketch.html#a4cdb10e4f2949d55d29421c6e381a300',1,'datasketches::kll_sketch::get_max_item()'],['../classdatasketches_1_1quantiles__sketch.html#a687ed2123bdc7e67fbda0c081e3acf21',1,'datasketches::quantiles_sketch::get_max_item()'],['../classdatasketches_1_1req__sketch.html#a687ed2123bdc7e67fbda0c081e3acf21',1,'datasketches::req_sketch::get_max_item()']]],
-  ['get_5fmax_5fserialized_5fsize_5fbytes_81',['get_max_serialized_size_bytes',['../classdatasketches_1_1kll__sketch.html#a02cd0e67339d17d0b48f6f43bc26d381',1,'datasketches::kll_sketch::get_max_serialized_size_bytes()'],['../classdatasketches_1_1compact__theta__sketch__alloc.html#a7fcd4a0f58526cadbf7557c5c7f540dc',1,'datasketches::compact_theta_sketch_alloc::get_max_serialized_size_bytes()'],['../classdatasketches_1_1kll__sketch.html#adb2232570b4977756cddd02b4b6b845b',1,'datasketches::kl [...]
-  ['get_5fmaximum_5ferror_82',['get_maximum_error',['../classdatasketches_1_1frequent__items__sketch.html#aa6a8295801139cde1c0136867cf1f188',1,'datasketches::frequent_items_sketch']]],
-  ['get_5fmin_5fitem_83',['get_min_item',['../classdatasketches_1_1kll__sketch.html#aa3f3769ba3fae6fa0e8a0bd65fef5422',1,'datasketches::kll_sketch::get_min_item()'],['../classdatasketches_1_1quantiles__sketch.html#af2fa890815acf3a1418ea8eee466075c',1,'datasketches::quantiles_sketch::get_min_item()'],['../classdatasketches_1_1req__sketch.html#af2fa890815acf3a1418ea8eee466075c',1,'datasketches::req_sketch::get_min_item()']]],
-  ['get_5fn_84',['get_n',['../classdatasketches_1_1kll__sketch.html#af857be9469a7565252626f27e1f9d74d',1,'datasketches::kll_sketch::get_n()'],['../classdatasketches_1_1quantiles__sketch.html#af857be9469a7565252626f27e1f9d74d',1,'datasketches::quantiles_sketch::get_n()'],['../classdatasketches_1_1ebpps__sketch.html#af857be9469a7565252626f27e1f9d74d',1,'datasketches::ebpps_sketch::get_n()'],['../classdatasketches_1_1var__opt__sketch.html#af857be9469a7565252626f27e1f9d74d',1,'datasketches:: [...]
-  ['get_5fnormalized_5frank_5ferror_85',['get_normalized_rank_error',['../classdatasketches_1_1kll__sketch.html#ae08ba9502b0403ad4448d649ce29b850',1,'datasketches::kll_sketch::get_normalized_rank_error()'],['../classdatasketches_1_1quantiles__sketch.html#ae957f61cebc92305fc758dcfad797a41',1,'datasketches::quantiles_sketch::get_normalized_rank_error(uint16_t k, bool is_pmf)'],['../classdatasketches_1_1quantiles__sketch.html#a3efad6c7f1aa59649203cc9f70cf36c9',1,'datasketches::quantiles_ske [...]
-  ['get_5fnum_5factive_5fitems_86',['get_num_active_items',['../classdatasketches_1_1frequent__items__sketch.html#af72439eee5521a156379f0fbd869cb12',1,'datasketches::frequent_items_sketch']]],
-  ['get_5fnum_5fbuckets_87',['get_num_buckets',['../classdatasketches_1_1count__min__sketch.html#a56843138b87eb57c033f4ad26d8eb146',1,'datasketches::count_min_sketch']]],
-  ['get_5fnum_5fhashes_88',['get_num_hashes',['../classdatasketches_1_1count__min__sketch.html#a6bd30e22135f7abd37d5b2b45d577d0c',1,'datasketches::count_min_sketch']]],
-  ['get_5fnum_5fretained_89',['get_num_retained',['../classdatasketches_1_1req__sketch.html#a31fa76458d81a17dbebfcb828e531f14',1,'datasketches::req_sketch::get_num_retained()'],['../classdatasketches_1_1density__sketch.html#a31fa76458d81a17dbebfcb828e531f14',1,'datasketches::density_sketch::get_num_retained()'],['../classdatasketches_1_1update__theta__sketch__alloc.html#a31fa76458d81a17dbebfcb828e531f14',1,'datasketches::update_theta_sketch_alloc::get_num_retained()'],['../classdatasketc [...]
-  ['get_5fnum_5fsamples_90',['get_num_samples',['../classdatasketches_1_1var__opt__sketch.html#ac481918ec96d79b27813d32bcc2a247d',1,'datasketches::var_opt_sketch']]],
-  ['get_5fnum_5fvalues_91',['get_num_values',['../classdatasketches_1_1update__array__tuple__sketch.html#a005404841e22f08ab76ce513d9b39bd1',1,'datasketches::update_array_tuple_sketch::get_num_values()'],['../classdatasketches_1_1compact__array__tuple__sketch.html#a005404841e22f08ab76ce513d9b39bd1',1,'datasketches::compact_array_tuple_sketch::get_num_values()']]],
-  ['get_5fpmf_92',['get_PMF',['../classdatasketches_1_1quantiles__sorted__view.html#a44226b755e73883ea2c128876e35b1d1',1,'datasketches::quantiles_sorted_view::get_PMF()'],['../classdatasketches_1_1kll__sketch.html#a44226b755e73883ea2c128876e35b1d1',1,'datasketches::kll_sketch::get_PMF()'],['../classdatasketches_1_1quantiles__sketch.html#a44226b755e73883ea2c128876e35b1d1',1,'datasketches::quantiles_sketch::get_PMF()'],['../classdatasketches_1_1req__sketch.html#a44226b755e73883ea2c128876e3 [...]
-  ['get_5fquantile_93',['get_quantile',['../classdatasketches_1_1quantiles__sorted__view.html#ac02fcfb6e706148458a2ef89390223a9',1,'datasketches::quantiles_sorted_view::get_quantile()'],['../classdatasketches_1_1req__sketch.html#ac02fcfb6e706148458a2ef89390223a9',1,'datasketches::req_sketch::get_quantile()'],['../classdatasketches_1_1quantiles__sketch.html#ac02fcfb6e706148458a2ef89390223a9',1,'datasketches::quantiles_sketch::get_quantile()'],['../classdatasketches_1_1kll__sketch.html#ac0 [...]
-  ['get_5frank_94',['get_rank',['../classdatasketches_1_1quantiles__sorted__view.html#a849dfa06c183fd2fdfe4fe4a7e29d918',1,'datasketches::quantiles_sorted_view::get_rank()'],['../classdatasketches_1_1kll__sketch.html#a849dfa06c183fd2fdfe4fe4a7e29d918',1,'datasketches::kll_sketch::get_rank()'],['../classdatasketches_1_1quantiles__sketch.html#a849dfa06c183fd2fdfe4fe4a7e29d918',1,'datasketches::quantiles_sketch::get_rank()'],['../classdatasketches_1_1req__sketch.html#a849dfa06c183fd2fdfe4fe [...]
-  ['get_5frank_5flower_5fbound_95',['get_rank_lower_bound',['../classdatasketches_1_1req__sketch.html#a978630658d411c9c79fffa5909f5c8d0',1,'datasketches::req_sketch']]],
-  ['get_5frank_5fupper_5fbound_96',['get_rank_upper_bound',['../classdatasketches_1_1req__sketch.html#a750349aa79dff6db2d13857ab50248bb',1,'datasketches::req_sketch']]],
-  ['get_5frel_5ferr_97',['get_rel_err',['../classdatasketches_1_1hll__union__alloc.html#af1abb48488246839a8732c9f20e3f7db',1,'datasketches::hll_union_alloc']]],
-  ['get_5frelative_5ferror_98',['get_relative_error',['../classdatasketches_1_1count__min__sketch.html#a5356c92bb629951dcb748e51677a3886',1,'datasketches::count_min_sketch']]],
-  ['get_5fresult_99',['get_result',['../classdatasketches_1_1tuple__union.html#a037835e8f8e6b5233fa0f0996bba6a99',1,'datasketches::tuple_union::get_result()'],['../classdatasketches_1_1var__opt__union.html#a28e630639a11dc71d7f72c4e0518b2fe',1,'datasketches::var_opt_union::get_result()'],['../classdatasketches_1_1ebpps__sketch.html#af55091df8eaaa2a9dc834f1e1d5340e7',1,'datasketches::ebpps_sketch::get_result()'],['../classdatasketches_1_1tuple__intersection.html#a037835e8f8e6b5233fa0f0996b [...]
-  ['get_5frf_100',['get_rf',['../classdatasketches_1_1update__theta__sketch__alloc.html#a36c928e86272441d56f794cc596fd598',1,'datasketches::update_theta_sketch_alloc::get_rf()'],['../classdatasketches_1_1update__tuple__sketch.html#a36c928e86272441d56f794cc596fd598',1,'datasketches::update_tuple_sketch::get_rf()']]],
-  ['get_5frse_101',['get_RSE',['../classdatasketches_1_1req__sketch.html#a899bef2c5e0ea489ed4b023d2b9900ee',1,'datasketches::req_sketch']]],
-  ['get_5fseed_102',['get_seed',['../classdatasketches_1_1count__min__sketch.html#a9004656ac2e34c35d8a7a0773285385a',1,'datasketches::count_min_sketch']]],
-  ['get_5fseed_5fhash_103',['get_seed_hash',['../classdatasketches_1_1compact__tuple__sketch.html#a6f69b50bc13da11d255d0e583e2376ba',1,'datasketches::compact_tuple_sketch::get_seed_hash()'],['../classdatasketches_1_1update__tuple__sketch.html#a6f69b50bc13da11d255d0e583e2376ba',1,'datasketches::update_tuple_sketch::get_seed_hash()'],['../classdatasketches_1_1tuple__sketch.html#ab76bd6487f5a75a356083bfe163a7079',1,'datasketches::tuple_sketch::get_seed_hash()'],['../classdatasketches_1_1com [...]
-  ['get_5fserialized_5fsize_5fbytes_104',['get_serialized_size_bytes',['../classdatasketches_1_1kll__sketch.html#ad9a5259d93d148b5c2050d68e7788716',1,'datasketches::kll_sketch::get_serialized_size_bytes()'],['../classdatasketches_1_1req__sketch.html#ad9a5259d93d148b5c2050d68e7788716',1,'datasketches::req_sketch::get_serialized_size_bytes(const SerDe &amp;sd=SerDe()) const'],['../classdatasketches_1_1req__sketch.html#ad9a5259d93d148b5c2050d68e7788716',1,'datasketches::req_sketch::get_seri [...]
-  ['get_5fserialized_5fsize_5fsummaries_5fbytes_105',['get_serialized_size_summaries_bytes',['../classdatasketches_1_1compact__tuple__sketch.html#aebe0bd9f97ef071d15ae25b9c3418e65',1,'datasketches::compact_tuple_sketch::get_serialized_size_summaries_bytes(const SerDe &amp;sd) const'],['../classdatasketches_1_1compact__tuple__sketch.html#aebe0bd9f97ef071d15ae25b9c3418e65',1,'datasketches::compact_tuple_sketch::get_serialized_size_summaries_bytes(const SerDe &amp;sd) const']]],
-  ['get_5fsorted_5fview_106',['get_sorted_view',['../classdatasketches_1_1kll__sketch.html#a0a9c9c240dd591017fd6a80e147b7c00',1,'datasketches::kll_sketch::get_sorted_view()'],['../classdatasketches_1_1quantiles__sketch.html#a0a9c9c240dd591017fd6a80e147b7c00',1,'datasketches::quantiles_sketch::get_sorted_view()'],['../classdatasketches_1_1req__sketch.html#a0a9c9c240dd591017fd6a80e147b7c00',1,'datasketches::req_sketch::get_sorted_view()']]],
-  ['get_5ftarget_5ftype_107',['get_target_type',['../classdatasketches_1_1hll__union__alloc.html#a0387c920d914fe59fd3c4c53a9a99093',1,'datasketches::hll_union_alloc']]],
-  ['get_5ftheta_108',['get_theta',['../classdatasketches_1_1tuple__sketch.html#aa784d7f8ac02e9c4e26e7fe9f177a7aa',1,'datasketches::tuple_sketch::get_theta()'],['../classdatasketches_1_1base__theta__sketch__alloc.html#aa784d7f8ac02e9c4e26e7fe9f177a7aa',1,'datasketches::base_theta_sketch_alloc::get_theta() const']]],
-  ['get_5ftheta64_109',['get_theta64',['../classdatasketches_1_1base__theta__sketch__alloc.html#aef2e47ecd9c33fc2a6a9e905a2a0516a',1,'datasketches::base_theta_sketch_alloc::get_theta64()'],['../classdatasketches_1_1update__theta__sketch__alloc.html#a2b072fe55377eb51a6ee477827fc3b95',1,'datasketches::update_theta_sketch_alloc::get_theta64()'],['../classdatasketches_1_1compact__theta__sketch__alloc.html#a2b072fe55377eb51a6ee477827fc3b95',1,'datasketches::compact_theta_sketch_alloc::get_the [...]
-  ['get_5ftotal_5fweight_110',['get_total_weight',['../classdatasketches_1_1frequent__items__sketch.html#a68bf5133e42650cdfe20a7916037ab4b',1,'datasketches::frequent_items_sketch::get_total_weight()'],['../classdatasketches_1_1count__min__sketch.html#a68bf5133e42650cdfe20a7916037ab4b',1,'datasketches::count_min_sketch::get_total_weight() const']]],
-  ['get_5fupper_5fbound_111',['get_upper_bound',['../classdatasketches_1_1count__min__sketch.html#af378c05bd5303198f7dfc182c725df83',1,'datasketches::count_min_sketch::get_upper_bound(const std::string &amp;item) const'],['../classdatasketches_1_1count__min__sketch.html#ab8f47f2378d8a057d82e82736ff37f3c',1,'datasketches::count_min_sketch::get_upper_bound(uint64_t item) const'],['../classdatasketches_1_1count__min__sketch.html#a6b7ba50a6af6e76423cc65947194d14c',1,'datasketches::count_min_ [...]
+  ['get_5fallocator_64',['get_allocator',['../classdatasketches_1_1count__min__sketch.html#a6e99c6263568d88f95ca01dc694f1051',1,'datasketches::count_min_sketch::get_allocator()'],['../classdatasketches_1_1cpc__sketch__alloc.html#a9d85cf47c4ecd0580ec623c42006dd1b',1,'datasketches::cpc_sketch_alloc::get_allocator()'],['../classdatasketches_1_1req__sketch.html#a9d85cf47c4ecd0580ec623c42006dd1b',1,'datasketches::req_sketch::get_allocator()'],['../classdatasketches_1_1density__sketch.html#a9d [...]
+  ['get_5fapriori_5ferror_65',['get_apriori_error',['../classdatasketches_1_1frequent__items__sketch.html#a6731cfa90aabc42089e1f449d3aa9a66',1,'datasketches::frequent_items_sketch']]],
+  ['get_5fc_66',['get_c',['../classdatasketches_1_1ebpps__sketch.html#ad9a95d52fa46cfa85b026802397b2154',1,'datasketches::ebpps_sketch']]],
+  ['get_5fcdf_67',['get_CDF',['../classdatasketches_1_1quantiles__sorted__view.html#a20a4d992209b2aa58614c998d143705c',1,'datasketches::quantiles_sorted_view::get_CDF()'],['../classdatasketches_1_1kll__sketch.html#a20a4d992209b2aa58614c998d143705c',1,'datasketches::kll_sketch::get_CDF()'],['../classdatasketches_1_1quantiles__sketch.html#a20a4d992209b2aa58614c998d143705c',1,'datasketches::quantiles_sketch::get_CDF()'],['../classdatasketches_1_1req__sketch.html#a20a4d992209b2aa58614c998d14 [...]
+  ['get_5fcomparator_68',['get_comparator',['../classdatasketches_1_1kll__sketch.html#a076f89979daa6471a3868cb97ea99b40',1,'datasketches::kll_sketch::get_comparator()'],['../classdatasketches_1_1quantiles__sketch.html#a076f89979daa6471a3868cb97ea99b40',1,'datasketches::quantiles_sketch::get_comparator()'],['../classdatasketches_1_1req__sketch.html#a076f89979daa6471a3868cb97ea99b40',1,'datasketches::req_sketch::get_comparator()']]],
+  ['get_5fcomposite_5festimate_69',['get_composite_estimate',['../classdatasketches_1_1hll__union__alloc.html#a1d6c3cd1e88796786ea124a7aed3800d',1,'datasketches::hll_union_alloc']]],
+  ['get_5fcumulative_5fweight_70',['get_cumulative_weight',['../classdatasketches_1_1ebpps__sketch.html#a8c7e54338adc46e68f7c53676bcecde8',1,'datasketches::ebpps_sketch']]],
+  ['get_5fdim_71',['get_dim',['../classdatasketches_1_1density__sketch.html#a57bff8d89cd2bde903090aa30208f610',1,'datasketches::density_sketch']]],
+  ['get_5fepsilon_72',['get_epsilon',['../classdatasketches_1_1frequent__items__sketch.html#a7d758ee3fb67c30c547628bd8cc2d266',1,'datasketches::frequent_items_sketch::get_epsilon() const'],['../classdatasketches_1_1frequent__items__sketch.html#a88b29ea8d3966b76de96e183789f7f3e',1,'datasketches::frequent_items_sketch::get_epsilon(uint8_t lg_max_map_size)']]],
+  ['get_5festimate_73',['get_estimate',['../classdatasketches_1_1count__min__sketch.html#a8c7a3314a5665e9d244acc5c1b5c43d6',1,'datasketches::count_min_sketch::get_estimate(uint64_t item) const'],['../classdatasketches_1_1count__min__sketch.html#af6b3c87aab0c7a3c2ee213fbc7aa48e3',1,'datasketches::count_min_sketch::get_estimate(const void *item, size_t size) const'],['../classdatasketches_1_1count__min__sketch.html#ae77ba09c468a102946bbc2f0a0a5d7bf',1,'datasketches::count_min_sketch::get_e [...]
+  ['get_5festimate_5fof_5fb_5fover_5fa_74',['get_estimate_of_b_over_a',['../classdatasketches_1_1bounds__on__ratios__in__sampled__sets.html#a0063345d4a1d4c7f7ae90fa6271e919f',1,'datasketches::bounds_on_ratios_in_sampled_sets']]],
+  ['get_5ffrequent_5fitems_75',['get_frequent_items',['../classdatasketches_1_1frequent__items__sketch.html#a5412230c8878e0cc1be2c6940512f508',1,'datasketches::frequent_items_sketch::get_frequent_items(frequent_items_error_type err_type) const'],['../classdatasketches_1_1frequent__items__sketch.html#a9b0618f5181938adc5bd00b9f40516b9',1,'datasketches::frequent_items_sketch::get_frequent_items(frequent_items_error_type err_type, W threshold) const']]],
+  ['get_5fitem_76',['get_item',['../classdatasketches_1_1frequent__items__sketch_1_1row.html#af171de2811f050046877452beb48144e',1,'datasketches::frequent_items_sketch::row']]],
+  ['get_5fk_77',['get_k',['../classdatasketches_1_1var__opt__sketch.html#af561f5cd76ff61773713c627bc53b0a2',1,'datasketches::var_opt_sketch::get_k()'],['../classdatasketches_1_1req__sketch.html#a59f4c39b9f2e762e8e3445ef89e1d264',1,'datasketches::req_sketch::get_k()'],['../classdatasketches_1_1density__sketch.html#a59f4c39b9f2e762e8e3445ef89e1d264',1,'datasketches::density_sketch::get_k()'],['../classdatasketches_1_1ebpps__sketch.html#af561f5cd76ff61773713c627bc53b0a2',1,'datasketches::eb [...]
+  ['get_5flg_5fconfig_5fk_78',['get_lg_config_k',['../classdatasketches_1_1hll__union__alloc.html#aacaad8ccad500578a2cae9bef58ad436',1,'datasketches::hll_union_alloc']]],
+  ['get_5flg_5fk_79',['get_lg_k',['../classdatasketches_1_1cpc__sketch__alloc.html#a8f8b2691781d682411a6de23996a8be2',1,'datasketches::cpc_sketch_alloc::get_lg_k()'],['../classdatasketches_1_1update__theta__sketch__alloc.html#a8f8b2691781d682411a6de23996a8be2',1,'datasketches::update_theta_sketch_alloc::get_lg_k()'],['../classdatasketches_1_1update__tuple__sketch.html#a8f8b2691781d682411a6de23996a8be2',1,'datasketches::update_tuple_sketch::get_lg_k()']]],
+  ['get_5flower_5fbound_80',['get_lower_bound',['../classdatasketches_1_1tuple__sketch.html#a2e5c990494331d901c3b38cd4eb316e6',1,'datasketches::tuple_sketch::get_lower_bound()'],['../classdatasketches_1_1count__min__sketch.html#a4170344c96a738e9c14933e6d40c2c5f',1,'datasketches::count_min_sketch::get_lower_bound(const std::string &amp;item) const'],['../classdatasketches_1_1count__min__sketch.html#ab131655963c3d3a786ada936f67f5cb7',1,'datasketches::count_min_sketch::get_lower_bound(uint6 [...]
+  ['get_5fmax_5fitem_81',['get_max_item',['../classdatasketches_1_1kll__sketch.html#a4cdb10e4f2949d55d29421c6e381a300',1,'datasketches::kll_sketch::get_max_item()'],['../classdatasketches_1_1quantiles__sketch.html#a687ed2123bdc7e67fbda0c081e3acf21',1,'datasketches::quantiles_sketch::get_max_item()'],['../classdatasketches_1_1req__sketch.html#a687ed2123bdc7e67fbda0c081e3acf21',1,'datasketches::req_sketch::get_max_item()']]],
+  ['get_5fmax_5fserialized_5fsize_5fbytes_82',['get_max_serialized_size_bytes',['../classdatasketches_1_1kll__sketch.html#a02cd0e67339d17d0b48f6f43bc26d381',1,'datasketches::kll_sketch::get_max_serialized_size_bytes()'],['../classdatasketches_1_1compact__theta__sketch__alloc.html#a7fcd4a0f58526cadbf7557c5c7f540dc',1,'datasketches::compact_theta_sketch_alloc::get_max_serialized_size_bytes()'],['../classdatasketches_1_1kll__sketch.html#adb2232570b4977756cddd02b4b6b845b',1,'datasketches::kl [...]
+  ['get_5fmaximum_5ferror_83',['get_maximum_error',['../classdatasketches_1_1frequent__items__sketch.html#aa6a8295801139cde1c0136867cf1f188',1,'datasketches::frequent_items_sketch']]],
+  ['get_5fmin_5fitem_84',['get_min_item',['../classdatasketches_1_1kll__sketch.html#aa3f3769ba3fae6fa0e8a0bd65fef5422',1,'datasketches::kll_sketch::get_min_item()'],['../classdatasketches_1_1quantiles__sketch.html#af2fa890815acf3a1418ea8eee466075c',1,'datasketches::quantiles_sketch::get_min_item()'],['../classdatasketches_1_1req__sketch.html#af2fa890815acf3a1418ea8eee466075c',1,'datasketches::req_sketch::get_min_item()']]],
+  ['get_5fn_85',['get_n',['../classdatasketches_1_1kll__sketch.html#af857be9469a7565252626f27e1f9d74d',1,'datasketches::kll_sketch::get_n()'],['../classdatasketches_1_1quantiles__sketch.html#af857be9469a7565252626f27e1f9d74d',1,'datasketches::quantiles_sketch::get_n()'],['../classdatasketches_1_1ebpps__sketch.html#af857be9469a7565252626f27e1f9d74d',1,'datasketches::ebpps_sketch::get_n()'],['../classdatasketches_1_1var__opt__sketch.html#af857be9469a7565252626f27e1f9d74d',1,'datasketches:: [...]
+  ['get_5fnormalized_5frank_5ferror_86',['get_normalized_rank_error',['../classdatasketches_1_1kll__sketch.html#ae08ba9502b0403ad4448d649ce29b850',1,'datasketches::kll_sketch::get_normalized_rank_error()'],['../classdatasketches_1_1quantiles__sketch.html#ae957f61cebc92305fc758dcfad797a41',1,'datasketches::quantiles_sketch::get_normalized_rank_error(uint16_t k, bool is_pmf)'],['../classdatasketches_1_1quantiles__sketch.html#a3efad6c7f1aa59649203cc9f70cf36c9',1,'datasketches::quantiles_ske [...]
+  ['get_5fnum_5factive_5fitems_87',['get_num_active_items',['../classdatasketches_1_1frequent__items__sketch.html#af72439eee5521a156379f0fbd869cb12',1,'datasketches::frequent_items_sketch']]],
+  ['get_5fnum_5fbuckets_88',['get_num_buckets',['../classdatasketches_1_1count__min__sketch.html#a56843138b87eb57c033f4ad26d8eb146',1,'datasketches::count_min_sketch']]],
+  ['get_5fnum_5fhashes_89',['get_num_hashes',['../classdatasketches_1_1count__min__sketch.html#a6bd30e22135f7abd37d5b2b45d577d0c',1,'datasketches::count_min_sketch']]],
+  ['get_5fnum_5fretained_90',['get_num_retained',['../classdatasketches_1_1req__sketch.html#a31fa76458d81a17dbebfcb828e531f14',1,'datasketches::req_sketch::get_num_retained()'],['../classdatasketches_1_1density__sketch.html#a31fa76458d81a17dbebfcb828e531f14',1,'datasketches::density_sketch::get_num_retained()'],['../classdatasketches_1_1update__theta__sketch__alloc.html#a31fa76458d81a17dbebfcb828e531f14',1,'datasketches::update_theta_sketch_alloc::get_num_retained()'],['../classdatasketc [...]
+  ['get_5fnum_5fsamples_91',['get_num_samples',['../classdatasketches_1_1var__opt__sketch.html#ac481918ec96d79b27813d32bcc2a247d',1,'datasketches::var_opt_sketch']]],
+  ['get_5fnum_5fvalues_92',['get_num_values',['../classdatasketches_1_1update__array__tuple__sketch.html#a005404841e22f08ab76ce513d9b39bd1',1,'datasketches::update_array_tuple_sketch::get_num_values()'],['../classdatasketches_1_1compact__array__tuple__sketch.html#a005404841e22f08ab76ce513d9b39bd1',1,'datasketches::compact_array_tuple_sketch::get_num_values()']]],
+  ['get_5fpmf_93',['get_PMF',['../classdatasketches_1_1quantiles__sorted__view.html#a44226b755e73883ea2c128876e35b1d1',1,'datasketches::quantiles_sorted_view::get_PMF()'],['../classdatasketches_1_1kll__sketch.html#a44226b755e73883ea2c128876e35b1d1',1,'datasketches::kll_sketch::get_PMF()'],['../classdatasketches_1_1quantiles__sketch.html#a44226b755e73883ea2c128876e35b1d1',1,'datasketches::quantiles_sketch::get_PMF()'],['../classdatasketches_1_1req__sketch.html#a44226b755e73883ea2c128876e3 [...]
+  ['get_5fquantile_94',['get_quantile',['../classdatasketches_1_1quantiles__sorted__view.html#ac02fcfb6e706148458a2ef89390223a9',1,'datasketches::quantiles_sorted_view::get_quantile()'],['../classdatasketches_1_1req__sketch.html#ac02fcfb6e706148458a2ef89390223a9',1,'datasketches::req_sketch::get_quantile()'],['../classdatasketches_1_1quantiles__sketch.html#ac02fcfb6e706148458a2ef89390223a9',1,'datasketches::quantiles_sketch::get_quantile()'],['../classdatasketches_1_1kll__sketch.html#ac0 [...]
+  ['get_5frank_95',['get_rank',['../classdatasketches_1_1quantiles__sorted__view.html#a849dfa06c183fd2fdfe4fe4a7e29d918',1,'datasketches::quantiles_sorted_view::get_rank()'],['../classdatasketches_1_1kll__sketch.html#a849dfa06c183fd2fdfe4fe4a7e29d918',1,'datasketches::kll_sketch::get_rank()'],['../classdatasketches_1_1quantiles__sketch.html#a849dfa06c183fd2fdfe4fe4a7e29d918',1,'datasketches::quantiles_sketch::get_rank()'],['../classdatasketches_1_1req__sketch.html#a849dfa06c183fd2fdfe4fe [...]
+  ['get_5frank_5flower_5fbound_96',['get_rank_lower_bound',['../classdatasketches_1_1req__sketch.html#a978630658d411c9c79fffa5909f5c8d0',1,'datasketches::req_sketch']]],
+  ['get_5frank_5fupper_5fbound_97',['get_rank_upper_bound',['../classdatasketches_1_1req__sketch.html#a750349aa79dff6db2d13857ab50248bb',1,'datasketches::req_sketch']]],
+  ['get_5frel_5ferr_98',['get_rel_err',['../classdatasketches_1_1hll__union__alloc.html#af1abb48488246839a8732c9f20e3f7db',1,'datasketches::hll_union_alloc']]],
+  ['get_5frelative_5ferror_99',['get_relative_error',['../classdatasketches_1_1count__min__sketch.html#a5356c92bb629951dcb748e51677a3886',1,'datasketches::count_min_sketch']]],
+  ['get_5fresult_100',['get_result',['../classdatasketches_1_1tuple__union.html#a037835e8f8e6b5233fa0f0996bba6a99',1,'datasketches::tuple_union::get_result()'],['../classdatasketches_1_1var__opt__union.html#a28e630639a11dc71d7f72c4e0518b2fe',1,'datasketches::var_opt_union::get_result()'],['../classdatasketches_1_1ebpps__sketch.html#af55091df8eaaa2a9dc834f1e1d5340e7',1,'datasketches::ebpps_sketch::get_result()'],['../classdatasketches_1_1tuple__intersection.html#a037835e8f8e6b5233fa0f0996 [...]
+  ['get_5frf_101',['get_rf',['../classdatasketches_1_1update__theta__sketch__alloc.html#a36c928e86272441d56f794cc596fd598',1,'datasketches::update_theta_sketch_alloc::get_rf()'],['../classdatasketches_1_1update__tuple__sketch.html#a36c928e86272441d56f794cc596fd598',1,'datasketches::update_tuple_sketch::get_rf()']]],
+  ['get_5frse_102',['get_RSE',['../classdatasketches_1_1req__sketch.html#a899bef2c5e0ea489ed4b023d2b9900ee',1,'datasketches::req_sketch']]],
+  ['get_5fseed_103',['get_seed',['../classdatasketches_1_1count__min__sketch.html#a9004656ac2e34c35d8a7a0773285385a',1,'datasketches::count_min_sketch']]],
+  ['get_5fseed_5fhash_104',['get_seed_hash',['../classdatasketches_1_1compact__tuple__sketch.html#a6f69b50bc13da11d255d0e583e2376ba',1,'datasketches::compact_tuple_sketch::get_seed_hash()'],['../classdatasketches_1_1update__tuple__sketch.html#a6f69b50bc13da11d255d0e583e2376ba',1,'datasketches::update_tuple_sketch::get_seed_hash()'],['../classdatasketches_1_1tuple__sketch.html#ab76bd6487f5a75a356083bfe163a7079',1,'datasketches::tuple_sketch::get_seed_hash()'],['../classdatasketches_1_1com [...]
+  ['get_5fserialized_5fsize_5fbytes_105',['get_serialized_size_bytes',['../classdatasketches_1_1kll__sketch.html#ad9a5259d93d148b5c2050d68e7788716',1,'datasketches::kll_sketch::get_serialized_size_bytes()'],['../classdatasketches_1_1req__sketch.html#ad9a5259d93d148b5c2050d68e7788716',1,'datasketches::req_sketch::get_serialized_size_bytes(const SerDe &amp;sd=SerDe()) const'],['../classdatasketches_1_1req__sketch.html#ad9a5259d93d148b5c2050d68e7788716',1,'datasketches::req_sketch::get_seri [...]
+  ['get_5fserialized_5fsize_5fsummaries_5fbytes_106',['get_serialized_size_summaries_bytes',['../classdatasketches_1_1compact__tuple__sketch.html#aebe0bd9f97ef071d15ae25b9c3418e65',1,'datasketches::compact_tuple_sketch::get_serialized_size_summaries_bytes(const SerDe &amp;sd) const'],['../classdatasketches_1_1compact__tuple__sketch.html#aebe0bd9f97ef071d15ae25b9c3418e65',1,'datasketches::compact_tuple_sketch::get_serialized_size_summaries_bytes(const SerDe &amp;sd) const']]],
+  ['get_5fsorted_5fview_107',['get_sorted_view',['../classdatasketches_1_1kll__sketch.html#a0a9c9c240dd591017fd6a80e147b7c00',1,'datasketches::kll_sketch::get_sorted_view()'],['../classdatasketches_1_1quantiles__sketch.html#a0a9c9c240dd591017fd6a80e147b7c00',1,'datasketches::quantiles_sketch::get_sorted_view()'],['../classdatasketches_1_1req__sketch.html#a0a9c9c240dd591017fd6a80e147b7c00',1,'datasketches::req_sketch::get_sorted_view()']]],
+  ['get_5ftarget_5ftype_108',['get_target_type',['../classdatasketches_1_1hll__union__alloc.html#a0387c920d914fe59fd3c4c53a9a99093',1,'datasketches::hll_union_alloc']]],
+  ['get_5ftheta_109',['get_theta',['../classdatasketches_1_1tuple__sketch.html#aa784d7f8ac02e9c4e26e7fe9f177a7aa',1,'datasketches::tuple_sketch::get_theta()'],['../classdatasketches_1_1base__theta__sketch__alloc.html#aa784d7f8ac02e9c4e26e7fe9f177a7aa',1,'datasketches::base_theta_sketch_alloc::get_theta() const']]],
+  ['get_5ftheta64_110',['get_theta64',['../classdatasketches_1_1base__theta__sketch__alloc.html#aef2e47ecd9c33fc2a6a9e905a2a0516a',1,'datasketches::base_theta_sketch_alloc::get_theta64()'],['../classdatasketches_1_1update__theta__sketch__alloc.html#a2b072fe55377eb51a6ee477827fc3b95',1,'datasketches::update_theta_sketch_alloc::get_theta64()'],['../classdatasketches_1_1compact__theta__sketch__alloc.html#a2b072fe55377eb51a6ee477827fc3b95',1,'datasketches::compact_theta_sketch_alloc::get_the [...]
+  ['get_5ftotal_5fweight_111',['get_total_weight',['../classdatasketches_1_1frequent__items__sketch.html#a68bf5133e42650cdfe20a7916037ab4b',1,'datasketches::frequent_items_sketch::get_total_weight()'],['../classdatasketches_1_1count__min__sketch.html#a68bf5133e42650cdfe20a7916037ab4b',1,'datasketches::count_min_sketch::get_total_weight() const']]],
+  ['get_5fupper_5fbound_112',['get_upper_bound',['../classdatasketches_1_1count__min__sketch.html#af378c05bd5303198f7dfc182c725df83',1,'datasketches::count_min_sketch::get_upper_bound(const std::string &amp;item) const'],['../classdatasketches_1_1count__min__sketch.html#ab8f47f2378d8a057d82e82736ff37f3c',1,'datasketches::count_min_sketch::get_upper_bound(uint64_t item) const'],['../classdatasketches_1_1count__min__sketch.html#a6b7ba50a6af6e76423cc65947194d14c',1,'datasketches::count_min_ [...]
 ];
diff --git a/docs/master/search/all_7.js b/docs/master/search/all_7.js
index 372d562..cb78446 100644
--- a/docs/master/search/all_7.js
+++ b/docs/master/search/all_7.js
@@ -1,12 +1,12 @@
 var searchData=
 [
-  ['has_5fresult_112',['has_result',['../classdatasketches_1_1theta__intersection__alloc.html#a4ef54f76786bbe6e50c2597943874de3',1,'datasketches::theta_intersection_alloc::has_result()'],['../classdatasketches_1_1tuple__intersection.html#a4ef54f76786bbe6e50c2597943874de3',1,'datasketches::tuple_intersection::has_result()']]],
-  ['hll_5f4_113',['HLL_4',['../namespacedatasketches.html#a76c1ad9235877691984d49415bb263e4aebdac6704039b95d8b82629cda14b1b9',1,'datasketches']]],
-  ['hll_5f6_114',['HLL_6',['../namespacedatasketches.html#a76c1ad9235877691984d49415bb263e4a0a2179d612c2ce6887e96279f25d7a77',1,'datasketches']]],
-  ['hll_5f8_115',['HLL_8',['../namespacedatasketches.html#a76c1ad9235877691984d49415bb263e4a3a5efa79623d3e2ab53f27ef53237c7f',1,'datasketches']]],
-  ['hll_5fsketch_116',['hll_sketch',['../namespacedatasketches.html#aba485b07e1fa18592cbb0ba4b4544429',1,'datasketches']]],
-  ['hll_5funion_117',['hll_union',['../namespacedatasketches.html#a4c2cf15edaa7f14833a9b34b5b45d472',1,'datasketches']]],
-  ['hll_5funion_5falloc_118',['hll_union_alloc',['../classdatasketches_1_1hll__union__alloc.html',1,'hll_union_alloc&lt; A &gt;'],['../classdatasketches_1_1hll__union__alloc.html#abdb81912e4fcd2547e27c0165affbb99',1,'datasketches::hll_union_alloc::hll_union_alloc()']]],
-  ['hllsketchimpl_119',['HllSketchImpl',['../classdatasketches_1_1HllSketchImpl.html',1,'datasketches']]],
-  ['hllsketchimpl_3c_20std_3a_3aallocator_3c_20uint8_5ft_20_3e_20_3e_120',['HllSketchImpl&lt; std::allocator&lt; uint8_t &gt; &gt;',['../classdatasketches_1_1HllSketchImpl.html',1,'datasketches']]]
+  ['has_5fresult_113',['has_result',['../classdatasketches_1_1theta__intersection__alloc.html#a4ef54f76786bbe6e50c2597943874de3',1,'datasketches::theta_intersection_alloc::has_result()'],['../classdatasketches_1_1tuple__intersection.html#a4ef54f76786bbe6e50c2597943874de3',1,'datasketches::tuple_intersection::has_result()']]],
+  ['hll_5f4_114',['HLL_4',['../namespacedatasketches.html#a76c1ad9235877691984d49415bb263e4aebdac6704039b95d8b82629cda14b1b9',1,'datasketches']]],
+  ['hll_5f6_115',['HLL_6',['../namespacedatasketches.html#a76c1ad9235877691984d49415bb263e4a0a2179d612c2ce6887e96279f25d7a77',1,'datasketches']]],
+  ['hll_5f8_116',['HLL_8',['../namespacedatasketches.html#a76c1ad9235877691984d49415bb263e4a3a5efa79623d3e2ab53f27ef53237c7f',1,'datasketches']]],
+  ['hll_5fsketch_117',['hll_sketch',['../namespacedatasketches.html#aba485b07e1fa18592cbb0ba4b4544429',1,'datasketches']]],
+  ['hll_5funion_118',['hll_union',['../namespacedatasketches.html#a4c2cf15edaa7f14833a9b34b5b45d472',1,'datasketches']]],
+  ['hll_5funion_5falloc_119',['hll_union_alloc',['../classdatasketches_1_1hll__union__alloc.html',1,'hll_union_alloc&lt; A &gt;'],['../classdatasketches_1_1hll__union__alloc.html#abdb81912e4fcd2547e27c0165affbb99',1,'datasketches::hll_union_alloc::hll_union_alloc()']]],
+  ['hllsketchimpl_120',['HllSketchImpl',['../classdatasketches_1_1HllSketchImpl.html',1,'datasketches']]],
+  ['hllsketchimpl_3c_20std_3a_3aallocator_3c_20uint8_5ft_20_3e_20_3e_121',['HllSketchImpl&lt; std::allocator&lt; uint8_t &gt; &gt;',['../classdatasketches_1_1HllSketchImpl.html',1,'datasketches']]]
 ];
diff --git a/docs/master/search/all_8.js b/docs/master/search/all_8.js
index 18d22b3..05fc4a6 100644
--- a/docs/master/search/all_8.js
+++ b/docs/master/search/all_8.js
@@ -1,9 +1,9 @@
 var searchData=
 [
-  ['init_5fnum_5fsections_121',['INIT_NUM_SECTIONS',['../namespacedatasketches_1_1req__constants.html#a141418d3d37a4b49c0c5bb41b507f2b5',1,'datasketches::req_constants']]],
-  ['is_5fempty_122',['is_empty',['../classdatasketches_1_1hll__union__alloc.html#a5a2b7a58dc85678d08752945ff655362',1,'datasketches::hll_union_alloc::is_empty()'],['../classdatasketches_1_1req__sketch.html#a5a2b7a58dc85678d08752945ff655362',1,'datasketches::req_sketch::is_empty()'],['../classdatasketches_1_1count__min__sketch.html#a5a2b7a58dc85678d08752945ff655362',1,'datasketches::count_min_sketch::is_empty()'],['../classdatasketches_1_1frequent__items__sketch.html#a5a2b7a58dc85678d0875 [...]
-  ['is_5festimation_5fmode_123',['is_estimation_mode',['../classdatasketches_1_1kll__sketch.html#ae95a04b1d7dccb3d9b3f3c3d087aa8e6',1,'datasketches::kll_sketch::is_estimation_mode()'],['../classdatasketches_1_1req__sketch.html#ae95a04b1d7dccb3d9b3f3c3d087aa8e6',1,'datasketches::req_sketch::is_estimation_mode()'],['../classdatasketches_1_1density__sketch.html#ae95a04b1d7dccb3d9b3f3c3d087aa8e6',1,'datasketches::density_sketch::is_estimation_mode()'],['../classdatasketches_1_1quantiles__ske [...]
-  ['is_5fhra_124',['is_HRA',['../classdatasketches_1_1req__sketch.html#af6177b85206272c56ee75747bb885735',1,'datasketches::req_sketch']]],
-  ['is_5fordered_125',['is_ordered',['../classdatasketches_1_1base__theta__sketch__alloc.html#a358923431da50e8d43651795e2515c01',1,'datasketches::base_theta_sketch_alloc::is_ordered()'],['../classdatasketches_1_1update__theta__sketch__alloc.html#a5f5b393314c0c1819f79b73232a506e8',1,'datasketches::update_theta_sketch_alloc::is_ordered()'],['../classdatasketches_1_1compact__theta__sketch__alloc.html#a5f5b393314c0c1819f79b73232a506e8',1,'datasketches::compact_theta_sketch_alloc::is_ordered( [...]
-  ['items_5fto_5fstring_126',['items_to_string',['../classdatasketches_1_1ebpps__sketch.html#a0fa52dd153f1e3cac57d4742e2fef6fc',1,'datasketches::ebpps_sketch::items_to_string()'],['../classdatasketches_1_1var__opt__sketch.html#a0fa52dd153f1e3cac57d4742e2fef6fc',1,'datasketches::var_opt_sketch::items_to_string()']]]
+  ['init_5fnum_5fsections_122',['INIT_NUM_SECTIONS',['../namespacedatasketches_1_1req__constants.html#a141418d3d37a4b49c0c5bb41b507f2b5',1,'datasketches::req_constants']]],
+  ['is_5fempty_123',['is_empty',['../classdatasketches_1_1hll__union__alloc.html#a5a2b7a58dc85678d08752945ff655362',1,'datasketches::hll_union_alloc::is_empty()'],['../classdatasketches_1_1req__sketch.html#a5a2b7a58dc85678d08752945ff655362',1,'datasketches::req_sketch::is_empty()'],['../classdatasketches_1_1count__min__sketch.html#a5a2b7a58dc85678d08752945ff655362',1,'datasketches::count_min_sketch::is_empty()'],['../classdatasketches_1_1frequent__items__sketch.html#a5a2b7a58dc85678d0875 [...]
+  ['is_5festimation_5fmode_124',['is_estimation_mode',['../classdatasketches_1_1kll__sketch.html#ae95a04b1d7dccb3d9b3f3c3d087aa8e6',1,'datasketches::kll_sketch::is_estimation_mode()'],['../classdatasketches_1_1req__sketch.html#ae95a04b1d7dccb3d9b3f3c3d087aa8e6',1,'datasketches::req_sketch::is_estimation_mode()'],['../classdatasketches_1_1density__sketch.html#ae95a04b1d7dccb3d9b3f3c3d087aa8e6',1,'datasketches::density_sketch::is_estimation_mode()'],['../classdatasketches_1_1quantiles__ske [...]
+  ['is_5fhra_125',['is_HRA',['../classdatasketches_1_1req__sketch.html#af6177b85206272c56ee75747bb885735',1,'datasketches::req_sketch']]],
+  ['is_5fordered_126',['is_ordered',['../classdatasketches_1_1base__theta__sketch__alloc.html#a358923431da50e8d43651795e2515c01',1,'datasketches::base_theta_sketch_alloc::is_ordered()'],['../classdatasketches_1_1update__theta__sketch__alloc.html#a5f5b393314c0c1819f79b73232a506e8',1,'datasketches::update_theta_sketch_alloc::is_ordered()'],['../classdatasketches_1_1compact__theta__sketch__alloc.html#a5f5b393314c0c1819f79b73232a506e8',1,'datasketches::compact_theta_sketch_alloc::is_ordered( [...]
+  ['items_5fto_5fstring_127',['items_to_string',['../classdatasketches_1_1ebpps__sketch.html#a0fa52dd153f1e3cac57d4742e2fef6fc',1,'datasketches::ebpps_sketch::items_to_string()'],['../classdatasketches_1_1var__opt__sketch.html#a0fa52dd153f1e3cac57d4742e2fef6fc',1,'datasketches::var_opt_sketch::items_to_string()']]]
 ];
diff --git a/docs/master/search/all_9.js b/docs/master/search/all_9.js
index 9aa4c41..12aa627 100644
--- a/docs/master/search/all_9.js
+++ b/docs/master/search/all_9.js
@@ -1,5 +1,5 @@
 var searchData=
 [
-  ['jaccard_127',['jaccard',['../classdatasketches_1_1jaccard__similarity__base.html#a733368dc893af01141bb6dff468bf008',1,'datasketches::jaccard_similarity_base']]],
-  ['jaccard_5fsimilarity_5fbase_128',['jaccard_similarity_base',['../classdatasketches_1_1jaccard__similarity__base.html',1,'datasketches']]]
+  ['jaccard_128',['jaccard',['../classdatasketches_1_1jaccard__similarity__base.html#a733368dc893af01141bb6dff468bf008',1,'datasketches::jaccard_similarity_base']]],
+  ['jaccard_5fsimilarity_5fbase_129',['jaccard_similarity_base',['../classdatasketches_1_1jaccard__similarity__base.html',1,'datasketches']]]
 ];
diff --git a/docs/master/search/all_a.js b/docs/master/search/all_a.js
index 0015497..14eddc6 100644
--- a/docs/master/search/all_a.js
+++ b/docs/master/search/all_a.js
@@ -1,5 +1,5 @@
 var searchData=
 [
-  ['kll_5fsketch_129',['kll_sketch',['../classdatasketches_1_1kll__sketch.html',1,'kll_sketch&lt; T, C, A &gt;'],['../classdatasketches_1_1kll__sketch.html#afca1c904b4598d7a9548a40a802ed2b4',1,'datasketches::kll_sketch::kll_sketch(uint16_t k=kll_constants::DEFAULT_K, const C &amp;comparator=C(), const A &amp;allocator=A())'],['../classdatasketches_1_1kll__sketch.html#af7352580134284b937cb2510d192434e',1,'datasketches::kll_sketch::kll_sketch(const kll_sketch &amp;other)'],['../classdatask [...]
-  ['kolmogorov_5fsmirnov_130',['kolmogorov_smirnov',['../classdatasketches_1_1kolmogorov__smirnov.html',1,'datasketches']]]
+  ['kll_5fsketch_130',['kll_sketch',['../classdatasketches_1_1kll__sketch.html',1,'kll_sketch&lt; T, C, A &gt;'],['../classdatasketches_1_1kll__sketch.html#afca1c904b4598d7a9548a40a802ed2b4',1,'datasketches::kll_sketch::kll_sketch(uint16_t k=kll_constants::DEFAULT_K, const C &amp;comparator=C(), const A &amp;allocator=A())'],['../classdatasketches_1_1kll__sketch.html#af7352580134284b937cb2510d192434e',1,'datasketches::kll_sketch::kll_sketch(const kll_sketch &amp;other)'],['../classdatask [...]
+  ['kolmogorov_5fsmirnov_131',['kolmogorov_smirnov',['../classdatasketches_1_1kolmogorov__smirnov.html',1,'datasketches']]]
 ];
diff --git a/docs/master/search/all_b.js b/docs/master/search/all_b.js
index 1c96708..745870f 100644
--- a/docs/master/search/all_b.js
+++ b/docs/master/search/all_b.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['lower_5fbound_5ffor_5fb_5fover_5fa_131',['lower_bound_for_b_over_a',['../classdatasketches_1_1bounds__on__ratios__in__sampled__sets.html#a64c2690d8b956838e5726128ab295211',1,'datasketches::bounds_on_ratios_in_sampled_sets::lower_bound_for_b_over_a()'],['../classdatasketches_1_1bounds__on__ratios__in__theta__sketched__sets.html#afca4842e0e5f98bf5eba713429b9e388',1,'datasketches::bounds_on_ratios_in_theta_sketched_sets::lower_bound_for_b_over_a()']]]
+  ['lower_5fbound_5ffor_5fb_5fover_5fa_132',['lower_bound_for_b_over_a',['../classdatasketches_1_1bounds__on__ratios__in__sampled__sets.html#a64c2690d8b956838e5726128ab295211',1,'datasketches::bounds_on_ratios_in_sampled_sets::lower_bound_for_b_over_a()'],['../classdatasketches_1_1bounds__on__ratios__in__theta__sketched__sets.html#afca4842e0e5f98bf5eba713429b9e388',1,'datasketches::bounds_on_ratios_in_theta_sketched_sets::lower_bound_for_b_over_a()']]]
 ];
diff --git a/docs/master/search/all_c.js b/docs/master/search/all_c.js
index 6836d6f..bb501dc 100644
--- a/docs/master/search/all_c.js
+++ b/docs/master/search/all_c.js
@@ -1,10 +1,10 @@
 var searchData=
 [
-  ['max_5fk_132',['MAX_K',['../namespacedatasketches_1_1var__opt__constants.html#aef0073265694689f2a7281205c133523',1,'datasketches::var_opt_constants::MAX_K()'],['../namespacedatasketches_1_1ebpps__constants.html#aef0073265694689f2a7281205c133523',1,'datasketches::ebpps_constants::MAX_K()'],['../namespacedatasketches_1_1quantiles__constants.html#a3bd28528c16e8911658faff9c98b305f',1,'datasketches::quantiles_constants::MAX_K()'],['../namespacedatasketches_1_1kll__constants.html#a3bd28528c [...]
-  ['max_5flg_5fk_133',['MAX_LG_K',['../namespacedatasketches_1_1theta__constants.html#ad15c7a6b3af91806e0a9743d27943d49',1,'datasketches::theta_constants::MAX_LG_K()'],['../namespacedatasketches_1_1cpc__constants.html#ad15c7a6b3af91806e0a9743d27943d49',1,'datasketches::cpc_constants::MAX_LG_K()']]],
-  ['max_5ftheta_134',['MAX_THETA',['../namespacedatasketches_1_1theta__constants.html#ae3243c6bd90c8d8577c32b86100d97ad',1,'datasketches::theta_constants']]],
-  ['merge_135',['merge',['../classdatasketches_1_1quantiles__sketch.html#a49bb19e78f36fb72b8496cd6cff71fec',1,'datasketches::quantiles_sketch::merge()'],['../classdatasketches_1_1req__sketch.html#a49bb19e78f36fb72b8496cd6cff71fec',1,'datasketches::req_sketch::merge()'],['../classdatasketches_1_1count__min__sketch.html#ab53a0403cb869426c5eb6a8c70ca3e7f',1,'datasketches::count_min_sketch::merge()'],['../classdatasketches_1_1frequent__items__sketch.html#a67646860b1cb8e835604a008fd7d062a',1, [...]
-  ['min_5fk_136',['MIN_K',['../namespacedatasketches_1_1kll__constants.html#ab9f2b631adf46fe04a11814cd1018926',1,'datasketches::kll_constants::MIN_K()'],['../namespacedatasketches_1_1quantiles__constants.html#ab9f2b631adf46fe04a11814cd1018926',1,'datasketches::quantiles_constants::MIN_K()'],['../namespacedatasketches_1_1req__constants.html#ab9f2b631adf46fe04a11814cd1018926',1,'datasketches::req_constants::MIN_K()']]],
-  ['min_5flg_5fk_137',['MIN_LG_K',['../namespacedatasketches_1_1cpc__constants.html#a80c5dfefaf69318c0894ec34c34d0987',1,'datasketches::cpc_constants::MIN_LG_K()'],['../namespacedatasketches_1_1theta__constants.html#a80c5dfefaf69318c0894ec34c34d0987',1,'datasketches::theta_constants::MIN_LG_K()']]],
-  ['multiplier_138',['MULTIPLIER',['../namespacedatasketches_1_1req__constants.html#a634c013942663d10f47cf3d4a16de49a',1,'datasketches::req_constants']]]
+  ['max_5fk_133',['MAX_K',['../namespacedatasketches_1_1var__opt__constants.html#aef0073265694689f2a7281205c133523',1,'datasketches::var_opt_constants::MAX_K()'],['../namespacedatasketches_1_1ebpps__constants.html#aef0073265694689f2a7281205c133523',1,'datasketches::ebpps_constants::MAX_K()'],['../namespacedatasketches_1_1quantiles__constants.html#a3bd28528c16e8911658faff9c98b305f',1,'datasketches::quantiles_constants::MAX_K()'],['../namespacedatasketches_1_1kll__constants.html#a3bd28528c [...]
+  ['max_5flg_5fk_134',['MAX_LG_K',['../namespacedatasketches_1_1theta__constants.html#ad15c7a6b3af91806e0a9743d27943d49',1,'datasketches::theta_constants::MAX_LG_K()'],['../namespacedatasketches_1_1cpc__constants.html#ad15c7a6b3af91806e0a9743d27943d49',1,'datasketches::cpc_constants::MAX_LG_K()']]],
+  ['max_5ftheta_135',['MAX_THETA',['../namespacedatasketches_1_1theta__constants.html#ae3243c6bd90c8d8577c32b86100d97ad',1,'datasketches::theta_constants']]],
+  ['merge_136',['merge',['../classdatasketches_1_1quantiles__sketch.html#a49bb19e78f36fb72b8496cd6cff71fec',1,'datasketches::quantiles_sketch::merge()'],['../classdatasketches_1_1req__sketch.html#a49bb19e78f36fb72b8496cd6cff71fec',1,'datasketches::req_sketch::merge()'],['../classdatasketches_1_1count__min__sketch.html#ab53a0403cb869426c5eb6a8c70ca3e7f',1,'datasketches::count_min_sketch::merge()'],['../classdatasketches_1_1frequent__items__sketch.html#a67646860b1cb8e835604a008fd7d062a',1, [...]
+  ['min_5fk_137',['MIN_K',['../namespacedatasketches_1_1kll__constants.html#ab9f2b631adf46fe04a11814cd1018926',1,'datasketches::kll_constants::MIN_K()'],['../namespacedatasketches_1_1quantiles__constants.html#ab9f2b631adf46fe04a11814cd1018926',1,'datasketches::quantiles_constants::MIN_K()'],['../namespacedatasketches_1_1req__constants.html#ab9f2b631adf46fe04a11814cd1018926',1,'datasketches::req_constants::MIN_K()']]],
+  ['min_5flg_5fk_138',['MIN_LG_K',['../namespacedatasketches_1_1cpc__constants.html#a80c5dfefaf69318c0894ec34c34d0987',1,'datasketches::cpc_constants::MIN_LG_K()'],['../namespacedatasketches_1_1theta__constants.html#a80c5dfefaf69318c0894ec34c34d0987',1,'datasketches::theta_constants::MIN_LG_K()']]],
+  ['multiplier_139',['MULTIPLIER',['../namespacedatasketches_1_1req__constants.html#a634c013942663d10f47cf3d4a16de49a',1,'datasketches::req_constants']]]
 ];
diff --git a/docs/master/search/all_d.js b/docs/master/search/all_d.js
index 77fe8c5..15bb442 100644
--- a/docs/master/search/all_d.js
+++ b/docs/master/search/all_d.js
@@ -1,6 +1,6 @@
 var searchData=
 [
-  ['no_5ffalse_5fnegatives_139',['NO_FALSE_NEGATIVES',['../namespacedatasketches.html#ae94a02fc822bc3f745ab6ef0ac9c1f0fa5338495a1938a260d0f0489d35b2e8dd',1,'datasketches']]],
-  ['no_5ffalse_5fpositives_140',['NO_FALSE_POSITIVES',['../namespacedatasketches.html#ae94a02fc822bc3f745ab6ef0ac9c1f0fa6f0f5df0005d6b6f0428d126eb0d75e9',1,'datasketches']]],
-  ['normal_5fcdf_141',['normal_cdf',['../classdatasketches_1_1bounds__binomial__proportions.html#a842aac311b818d8b074f8d1c344b903a',1,'datasketches::bounds_binomial_proportions']]]
+  ['no_5ffalse_5fnegatives_140',['NO_FALSE_NEGATIVES',['../namespacedatasketches.html#ae94a02fc822bc3f745ab6ef0ac9c1f0fa5338495a1938a260d0f0489d35b2e8dd',1,'datasketches']]],
+  ['no_5ffalse_5fpositives_141',['NO_FALSE_POSITIVES',['../namespacedatasketches.html#ae94a02fc822bc3f745ab6ef0ac9c1f0fa6f0f5df0005d6b6f0428d126eb0d75e9',1,'datasketches']]],
+  ['normal_5fcdf_142',['normal_cdf',['../classdatasketches_1_1bounds__binomial__proportions.html#a842aac311b818d8b074f8d1c344b903a',1,'datasketches::bounds_binomial_proportions']]]
 ];
diff --git a/docs/master/search/all_e.js b/docs/master/search/all_e.js
index 0c19b00..2c6c663 100644
--- a/docs/master/search/all_e.js
+++ b/docs/master/search/all_e.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['operator_3d_142',['operator=',['../classdatasketches_1_1cpc__union__alloc.html#ae7b219e0931e711ebea10684e30cb538',1,'datasketches::cpc_union_alloc::operator=(const cpc_union_alloc&lt; A &gt; &amp;other)'],['../classdatasketches_1_1cpc__union__alloc.html#ae9b7627c7be9e2d8c386225668e3ed9b',1,'datasketches::cpc_union_alloc::operator=(cpc_union_alloc&lt; A &gt; &amp;&amp;other) noexcept'],['../classdatasketches_1_1kll__sketch.html#a0d934088182b8615c2fa34a4716d7d44',1,'datasketches::kll_s [...]
+  ['operator_3d_143',['operator=',['../classdatasketches_1_1cpc__union__alloc.html#ae7b219e0931e711ebea10684e30cb538',1,'datasketches::cpc_union_alloc::operator=(const cpc_union_alloc&lt; A &gt; &amp;other)'],['../classdatasketches_1_1cpc__union__alloc.html#ae9b7627c7be9e2d8c386225668e3ed9b',1,'datasketches::cpc_union_alloc::operator=(cpc_union_alloc&lt; A &gt; &amp;&amp;other) noexcept'],['../classdatasketches_1_1kll__sketch.html#a0d934088182b8615c2fa34a4716d7d44',1,'datasketches::kll_s [...]
 ];
diff --git a/docs/master/search/all_f.js b/docs/master/search/all_f.js
index 88f5fce..729cc32 100644
--- a/docs/master/search/all_f.js
+++ b/docs/master/search/all_f.js
@@ -1,8 +1,8 @@
 var searchData=
 [
-  ['quantile_5freturn_5ftype_143',['quantile_return_type',['../classdatasketches_1_1quantiles__sorted__view.html#a5ab4905c4f3ebeb14de4e7a2f5d92832',1,'datasketches::quantiles_sorted_view::quantile_return_type()'],['../classdatasketches_1_1kll__sketch.html#aa796209b1ef5dc41e83ed8158f77d280',1,'datasketches::kll_sketch::quantile_return_type()'],['../classdatasketches_1_1req__sketch.html#a4c80d2361c940f99df9f850615c2dcbe',1,'datasketches::req_sketch::quantile_return_type()']]],
-  ['quantiles_5fsketch_144',['quantiles_sketch',['../classdatasketches_1_1quantiles__sketch.html',1,'quantiles_sketch&lt; T, Comparator, Allocator &gt;'],['../classdatasketches_1_1quantiles__sketch.html#a19c140a63e6b0d34f4354c41d93e5e6c',1,'datasketches::quantiles_sketch::quantiles_sketch(uint16_t k=quantiles_constants::DEFAULT_K, const Comparator &amp;comparator=Comparator(), const Allocator &amp;allocator=Allocator())'],['../classdatasketches_1_1quantiles__sketch.html#a391bae83eaddd8b3 [...]
-  ['quantiles_5fsorted_5fview_145',['quantiles_sorted_view',['../classdatasketches_1_1quantiles__sorted__view.html',1,'datasketches']]],
-  ['quantiles_5fsorted_5fview_3c_20t_2c_20c_2c_20a_20_3e_146',['quantiles_sorted_view&lt; T, C, A &gt;',['../classdatasketches_1_1quantiles__sorted__view.html',1,'datasketches']]],
-  ['quantiles_5fsorted_5fview_3c_20t_2c_20std_3a_3aless_3c_20t_20_3e_2c_20std_3a_3aallocator_3c_20t_20_3e_20_3e_147',['quantiles_sorted_view&lt; T, std::less&lt; T &gt;, std::allocator&lt; T &gt; &gt;',['../classdatasketches_1_1quantiles__sorted__view.html',1,'datasketches']]]
+  ['quantile_5freturn_5ftype_144',['quantile_return_type',['../classdatasketches_1_1quantiles__sorted__view.html#a5ab4905c4f3ebeb14de4e7a2f5d92832',1,'datasketches::quantiles_sorted_view::quantile_return_type()'],['../classdatasketches_1_1kll__sketch.html#aa796209b1ef5dc41e83ed8158f77d280',1,'datasketches::kll_sketch::quantile_return_type()'],['../classdatasketches_1_1req__sketch.html#a4c80d2361c940f99df9f850615c2dcbe',1,'datasketches::req_sketch::quantile_return_type()']]],
+  ['quantiles_5fsketch_145',['quantiles_sketch',['../classdatasketches_1_1quantiles__sketch.html',1,'quantiles_sketch&lt; T, Comparator, Allocator &gt;'],['../classdatasketches_1_1quantiles__sketch.html#a19c140a63e6b0d34f4354c41d93e5e6c',1,'datasketches::quantiles_sketch::quantiles_sketch(uint16_t k=quantiles_constants::DEFAULT_K, const Comparator &amp;comparator=Comparator(), const Allocator &amp;allocator=Allocator())'],['../classdatasketches_1_1quantiles__sketch.html#a391bae83eaddd8b3 [...]
+  ['quantiles_5fsorted_5fview_146',['quantiles_sorted_view',['../classdatasketches_1_1quantiles__sorted__view.html',1,'datasketches']]],
+  ['quantiles_5fsorted_5fview_3c_20t_2c_20c_2c_20a_20_3e_147',['quantiles_sorted_view&lt; T, C, A &gt;',['../classdatasketches_1_1quantiles__sorted__view.html',1,'datasketches']]],
+  ['quantiles_5fsorted_5fview_3c_20t_2c_20std_3a_3aless_3c_20t_20_3e_2c_20std_3a_3aallocator_3c_20t_20_3e_20_3e_148',['quantiles_sorted_view&lt; T, std::less&lt; T &gt;, std::allocator&lt; T &gt; &gt;',['../classdatasketches_1_1quantiles__sorted__view.html',1,'datasketches']]]
 ];
diff --git a/docs/master/search/classes_0.js b/docs/master/search/classes_0.js
index de789a1..18f27e1 100644
--- a/docs/master/search/classes_0.js
+++ b/docs/master/search/classes_0.js
@@ -1,6 +1,6 @@
 var searchData=
 [
-  ['array_5ftuple_5fa_5fnot_5fb_210',['array_tuple_a_not_b',['../classdatasketches_1_1array__tuple__a__not__b.html',1,'datasketches']]],
-  ['array_5ftuple_5fintersection_211',['array_tuple_intersection',['../classdatasketches_1_1array__tuple__intersection.html',1,'datasketches']]],
-  ['array_5ftuple_5funion_212',['array_tuple_union',['../classdatasketches_1_1array__tuple__union.html',1,'datasketches']]]
+  ['array_5ftuple_5fa_5fnot_5fb_211',['array_tuple_a_not_b',['../classdatasketches_1_1array__tuple__a__not__b.html',1,'datasketches']]],
+  ['array_5ftuple_5fintersection_212',['array_tuple_intersection',['../classdatasketches_1_1array__tuple__intersection.html',1,'datasketches']]],
+  ['array_5ftuple_5funion_213',['array_tuple_union',['../classdatasketches_1_1array__tuple__union.html',1,'datasketches']]]
 ];
diff --git a/docs/master/search/classes_1.js b/docs/master/search/classes_1.js
index 5ef0ff0..10f68a3 100644
--- a/docs/master/search/classes_1.js
+++ b/docs/master/search/classes_1.js
@@ -1,9 +1,9 @@
 var searchData=
 [
-  ['base_5ftheta_5fsketch_5falloc_213',['base_theta_sketch_alloc',['../classdatasketches_1_1base__theta__sketch__alloc.html',1,'datasketches']]],
-  ['base_5ftheta_5fsketch_5falloc_3c_20std_3a_3aallocator_3c_20uint64_5ft_20_3e_20_3e_214',['base_theta_sketch_alloc&lt; std::allocator&lt; uint64_t &gt; &gt;',['../classdatasketches_1_1base__theta__sketch__alloc.html',1,'datasketches']]],
-  ['bounds_5fbinomial_5fproportions_215',['bounds_binomial_proportions',['../classdatasketches_1_1bounds__binomial__proportions.html',1,'datasketches']]],
-  ['bounds_5fon_5fratios_5fin_5fsampled_5fsets_216',['bounds_on_ratios_in_sampled_sets',['../classdatasketches_1_1bounds__on__ratios__in__sampled__sets.html',1,'datasketches']]],
-  ['bounds_5fon_5fratios_5fin_5ftheta_5fsketched_5fsets_217',['bounds_on_ratios_in_theta_sketched_sets',['../classdatasketches_1_1bounds__on__ratios__in__theta__sketched__sets.html',1,'datasketches']]],
-  ['builder_218',['builder',['../classdatasketches_1_1theta__union__alloc_1_1builder.html',1,'theta_union_alloc&lt; Allocator &gt;::builder'],['../classdatasketches_1_1tuple__union_1_1builder.html',1,'tuple_union&lt; Summary, Policy, Allocator &gt;::builder'],['../classdatasketches_1_1update__array__tuple__sketch_1_1builder.html',1,'update_array_tuple_sketch&lt; Array, Policy, Allocator &gt;::builder'],['../classdatasketches_1_1update__theta__sketch__alloc_1_1builder.html',1,'update_thet [...]
+  ['base_5ftheta_5fsketch_5falloc_214',['base_theta_sketch_alloc',['../classdatasketches_1_1base__theta__sketch__alloc.html',1,'datasketches']]],
+  ['base_5ftheta_5fsketch_5falloc_3c_20std_3a_3aallocator_3c_20uint64_5ft_20_3e_20_3e_215',['base_theta_sketch_alloc&lt; std::allocator&lt; uint64_t &gt; &gt;',['../classdatasketches_1_1base__theta__sketch__alloc.html',1,'datasketches']]],
+  ['bounds_5fbinomial_5fproportions_216',['bounds_binomial_proportions',['../classdatasketches_1_1bounds__binomial__proportions.html',1,'datasketches']]],
+  ['bounds_5fon_5fratios_5fin_5fsampled_5fsets_217',['bounds_on_ratios_in_sampled_sets',['../classdatasketches_1_1bounds__on__ratios__in__sampled__sets.html',1,'datasketches']]],
+  ['bounds_5fon_5fratios_5fin_5ftheta_5fsketched_5fsets_218',['bounds_on_ratios_in_theta_sketched_sets',['../classdatasketches_1_1bounds__on__ratios__in__theta__sketched__sets.html',1,'datasketches']]],
+  ['builder_219',['builder',['../classdatasketches_1_1theta__union__alloc_1_1builder.html',1,'theta_union_alloc&lt; Allocator &gt;::builder'],['../classdatasketches_1_1tuple__union_1_1builder.html',1,'tuple_union&lt; Summary, Policy, Allocator &gt;::builder'],['../classdatasketches_1_1update__array__tuple__sketch_1_1builder.html',1,'update_array_tuple_sketch&lt; Array, Policy, Allocator &gt;::builder'],['../classdatasketches_1_1update__theta__sketch__alloc_1_1builder.html',1,'update_thet [...]
 ];
diff --git a/docs/master/search/classes_2.js b/docs/master/search/classes_2.js
index e883be9..c9f929c 100644
--- a/docs/master/search/classes_2.js
+++ b/docs/master/search/classes_2.js
@@ -1,10 +1,10 @@
 var searchData=
 [
-  ['compact_5farray_5ftuple_5fsketch_219',['compact_array_tuple_sketch',['../classdatasketches_1_1compact__array__tuple__sketch.html',1,'datasketches']]],
-  ['compact_5ftheta_5fsketch_5falloc_220',['compact_theta_sketch_alloc',['../classdatasketches_1_1compact__theta__sketch__alloc.html',1,'datasketches']]],
-  ['compact_5ftuple_5fsketch_221',['compact_tuple_sketch',['../classdatasketches_1_1compact__tuple__sketch.html',1,'datasketches']]],
-  ['compact_5ftuple_5fsketch_3c_20array_2c_20typename_20array_3a_3aallocator_5ftype_20_3e_222',['compact_tuple_sketch&lt; Array, typename Array::allocator_type &gt;',['../classdatasketches_1_1compact__tuple__sketch.html',1,'datasketches']]],
-  ['count_5fmin_5fsketch_223',['count_min_sketch',['../classdatasketches_1_1count__min__sketch.html',1,'datasketches']]],
-  ['cpc_5fsketch_5falloc_224',['cpc_sketch_alloc',['../classdatasketches_1_1cpc__sketch__alloc.html',1,'datasketches']]],
-  ['cpc_5funion_5falloc_225',['cpc_union_alloc',['../classdatasketches_1_1cpc__union__alloc.html',1,'datasketches']]]
+  ['compact_5farray_5ftuple_5fsketch_220',['compact_array_tuple_sketch',['../classdatasketches_1_1compact__array__tuple__sketch.html',1,'datasketches']]],
+  ['compact_5ftheta_5fsketch_5falloc_221',['compact_theta_sketch_alloc',['../classdatasketches_1_1compact__theta__sketch__alloc.html',1,'datasketches']]],
+  ['compact_5ftuple_5fsketch_222',['compact_tuple_sketch',['../classdatasketches_1_1compact__tuple__sketch.html',1,'datasketches']]],
+  ['compact_5ftuple_5fsketch_3c_20array_2c_20typename_20array_3a_3aallocator_5ftype_20_3e_223',['compact_tuple_sketch&lt; Array, typename Array::allocator_type &gt;',['../classdatasketches_1_1compact__tuple__sketch.html',1,'datasketches']]],
+  ['count_5fmin_5fsketch_224',['count_min_sketch',['../classdatasketches_1_1count__min__sketch.html',1,'datasketches']]],
+  ['cpc_5fsketch_5falloc_225',['cpc_sketch_alloc',['../classdatasketches_1_1cpc__sketch__alloc.html',1,'datasketches']]],
+  ['cpc_5funion_5falloc_226',['cpc_union_alloc',['../classdatasketches_1_1cpc__union__alloc.html',1,'datasketches']]]
 ];
diff --git a/docs/master/search/classes_3.js b/docs/master/search/classes_3.js
index a98af9a..84e96da 100644
--- a/docs/master/search/classes_3.js
+++ b/docs/master/search/classes_3.js
@@ -1,7 +1,7 @@
 var searchData=
 [
-  ['default_5farray_5ftuple_5funion_5fpolicy_226',['default_array_tuple_union_policy',['../structdatasketches_1_1default__array__tuple__union__policy.html',1,'datasketches']]],
-  ['default_5farray_5ftuple_5fupdate_5fpolicy_227',['default_array_tuple_update_policy',['../classdatasketches_1_1default__array__tuple__update__policy.html',1,'datasketches']]],
-  ['density_5fsketch_228',['density_sketch',['../classdatasketches_1_1density__sketch.html',1,'datasketches']]],
-  ['density_5fsketch_3c_20t_2c_20k_2c_20a_20_3e_229',['density_sketch&lt; T, K, A &gt;',['../classdatasketches_1_1density__sketch.html',1,'datasketches']]]
+  ['default_5farray_5ftuple_5funion_5fpolicy_227',['default_array_tuple_union_policy',['../structdatasketches_1_1default__array__tuple__union__policy.html',1,'datasketches']]],
+  ['default_5farray_5ftuple_5fupdate_5fpolicy_228',['default_array_tuple_update_policy',['../classdatasketches_1_1default__array__tuple__update__policy.html',1,'datasketches']]],
+  ['density_5fsketch_229',['density_sketch',['../classdatasketches_1_1density__sketch.html',1,'datasketches']]],
+  ['density_5fsketch_3c_20t_2c_20k_2c_20a_20_3e_230',['density_sketch&lt; T, K, A &gt;',['../classdatasketches_1_1density__sketch.html',1,'datasketches']]]
 ];
diff --git a/docs/master/search/classes_4.js b/docs/master/search/classes_4.js
index b425efd..58c334d 100644
--- a/docs/master/search/classes_4.js
+++ b/docs/master/search/classes_4.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['ebpps_5fsketch_230',['ebpps_sketch',['../classdatasketches_1_1ebpps__sketch.html',1,'datasketches']]]
+  ['ebpps_5fsketch_231',['ebpps_sketch',['../classdatasketches_1_1ebpps__sketch.html',1,'datasketches']]]
 ];
diff --git a/docs/master/search/classes_5.js b/docs/master/search/classes_5.js
index eb395a2..d5a6822 100644
--- a/docs/master/search/classes_5.js
+++ b/docs/master/search/classes_5.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['frequent_5fitems_5fsketch_231',['frequent_items_sketch',['../classdatasketches_1_1frequent__items__sketch.html',1,'datasketches']]]
+  ['frequent_5fitems_5fsketch_232',['frequent_items_sketch',['../classdatasketches_1_1frequent__items__sketch.html',1,'datasketches']]]
 ];
diff --git a/docs/master/search/classes_6.js b/docs/master/search/classes_6.js
index ed9d0f6..419ed26 100644
--- a/docs/master/search/classes_6.js
+++ b/docs/master/search/classes_6.js
@@ -1,6 +1,6 @@
 var searchData=
 [
-  ['hll_5funion_5falloc_232',['hll_union_alloc',['../classdatasketches_1_1hll__union__alloc.html',1,'datasketches']]],
-  ['hllsketchimpl_233',['HllSketchImpl',['../classdatasketches_1_1HllSketchImpl.html',1,'datasketches']]],
-  ['hllsketchimpl_3c_20std_3a_3aallocator_3c_20uint8_5ft_20_3e_20_3e_234',['HllSketchImpl&lt; std::allocator&lt; uint8_t &gt; &gt;',['../classdatasketches_1_1HllSketchImpl.html',1,'datasketches']]]
+  ['hll_5funion_5falloc_233',['hll_union_alloc',['../classdatasketches_1_1hll__union__alloc.html',1,'datasketches']]],
+  ['hllsketchimpl_234',['HllSketchImpl',['../classdatasketches_1_1HllSketchImpl.html',1,'datasketches']]],
+  ['hllsketchimpl_3c_20std_3a_3aallocator_3c_20uint8_5ft_20_3e_20_3e_235',['HllSketchImpl&lt; std::allocator&lt; uint8_t &gt; &gt;',['../classdatasketches_1_1HllSketchImpl.html',1,'datasketches']]]
 ];
diff --git a/docs/master/search/classes_7.js b/docs/master/search/classes_7.js
index ce1bbf6..bb9927e 100644
--- a/docs/master/search/classes_7.js
+++ b/docs/master/search/classes_7.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['jaccard_5fsimilarity_5fbase_235',['jaccard_similarity_base',['../classdatasketches_1_1jaccard__similarity__base.html',1,'datasketches']]]
+  ['jaccard_5fsimilarity_5fbase_236',['jaccard_similarity_base',['../classdatasketches_1_1jaccard__similarity__base.html',1,'datasketches']]]
 ];
diff --git a/docs/master/search/classes_8.js b/docs/master/search/classes_8.js
index e8d8cbe..ef10947 100644
--- a/docs/master/search/classes_8.js
+++ b/docs/master/search/classes_8.js
@@ -1,5 +1,5 @@
 var searchData=
 [
-  ['kll_5fsketch_236',['kll_sketch',['../classdatasketches_1_1kll__sketch.html',1,'datasketches']]],
-  ['kolmogorov_5fsmirnov_237',['kolmogorov_smirnov',['../classdatasketches_1_1kolmogorov__smirnov.html',1,'datasketches']]]
+  ['kll_5fsketch_237',['kll_sketch',['../classdatasketches_1_1kll__sketch.html',1,'datasketches']]],
+  ['kolmogorov_5fsmirnov_238',['kolmogorov_smirnov',['../classdatasketches_1_1kolmogorov__smirnov.html',1,'datasketches']]]
 ];
diff --git a/docs/master/search/classes_9.js b/docs/master/search/classes_9.js
index 166e89a..49015cd 100644
--- a/docs/master/search/classes_9.js
+++ b/docs/master/search/classes_9.js
@@ -1,7 +1,7 @@
 var searchData=
 [
-  ['quantiles_5fsketch_238',['quantiles_sketch',['../classdatasketches_1_1quantiles__sketch.html',1,'datasketches']]],
-  ['quantiles_5fsorted_5fview_239',['quantiles_sorted_view',['../classdatasketches_1_1quantiles__sorted__view.html',1,'datasketches']]],
-  ['quantiles_5fsorted_5fview_3c_20t_2c_20c_2c_20a_20_3e_240',['quantiles_sorted_view&lt; T, C, A &gt;',['../classdatasketches_1_1quantiles__sorted__view.html',1,'datasketches']]],
-  ['quantiles_5fsorted_5fview_3c_20t_2c_20std_3a_3aless_3c_20t_20_3e_2c_20std_3a_3aallocator_3c_20t_20_3e_20_3e_241',['quantiles_sorted_view&lt; T, std::less&lt; T &gt;, std::allocator&lt; T &gt; &gt;',['../classdatasketches_1_1quantiles__sorted__view.html',1,'datasketches']]]
+  ['quantiles_5fsketch_239',['quantiles_sketch',['../classdatasketches_1_1quantiles__sketch.html',1,'datasketches']]],
+  ['quantiles_5fsorted_5fview_240',['quantiles_sorted_view',['../classdatasketches_1_1quantiles__sorted__view.html',1,'datasketches']]],
+  ['quantiles_5fsorted_5fview_3c_20t_2c_20c_2c_20a_20_3e_241',['quantiles_sorted_view&lt; T, C, A &gt;',['../classdatasketches_1_1quantiles__sorted__view.html',1,'datasketches']]],
+  ['quantiles_5fsorted_5fview_3c_20t_2c_20std_3a_3aless_3c_20t_20_3e_2c_20std_3a_3aallocator_3c_20t_20_3e_20_3e_242',['quantiles_sorted_view&lt; T, std::less&lt; T &gt;, std::allocator&lt; T &gt; &gt;',['../classdatasketches_1_1quantiles__sorted__view.html',1,'datasketches']]]
 ];
diff --git a/docs/master/search/classes_a.js b/docs/master/search/classes_a.js
index ee5e269..45d7ddd 100644
--- a/docs/master/search/classes_a.js
+++ b/docs/master/search/classes_a.js
@@ -1,5 +1,5 @@
 var searchData=
 [
-  ['req_5fsketch_242',['req_sketch',['../classdatasketches_1_1req__sketch.html',1,'datasketches']]],
-  ['row_243',['row',['../classdatasketches_1_1frequent__items__sketch_1_1row.html',1,'datasketches::frequent_items_sketch']]]
+  ['req_5fsketch_243',['req_sketch',['../classdatasketches_1_1req__sketch.html',1,'datasketches']]],
+  ['row_244',['row',['../classdatasketches_1_1frequent__items__sketch_1_1row.html',1,'datasketches::frequent_items_sketch']]]
 ];
diff --git a/docs/master/search/classes_b.js b/docs/master/search/classes_b.js
index 5bbeee2..4f07093 100644
--- a/docs/master/search/classes_b.js
+++ b/docs/master/search/classes_b.js
@@ -1,6 +1,6 @@
 var searchData=
 [
-  ['serde_244',['serde',['../structdatasketches_1_1serde.html',1,'datasketches']]],
-  ['serde_3c_20std_3a_3astring_20_3e_245',['serde&lt; std::string &gt;',['../structdatasketches_1_1serde_3_01std_1_1string_01_4.html',1,'datasketches']]],
-  ['serde_3c_20t_2c_20typename_20std_3a_3aenable_5fif_3c_20std_3a_3ais_5farithmetic_3c_20t_20_3e_3a_3avalue_20_3e_3a_3atype_20_3e_246',['serde&lt; T, typename std::enable_if&lt; std::is_arithmetic&lt; T &gt;::value &gt;::type &gt;',['../structdatasketches_1_1serde_3_01T_00_01typename_01std_1_1enable__if_3_01std_1_1is__arithmetic_3_54408b64e8a7918b8a177594393deb4e.html',1,'datasketches']]]
+  ['serde_245',['serde',['../structdatasketches_1_1serde.html',1,'datasketches']]],
+  ['serde_3c_20std_3a_3astring_20_3e_246',['serde&lt; std::string &gt;',['../structdatasketches_1_1serde_3_01std_1_1string_01_4.html',1,'datasketches']]],
+  ['serde_3c_20t_2c_20typename_20std_3a_3aenable_5fif_3c_20std_3a_3ais_5farithmetic_3c_20t_20_3e_3a_3avalue_20_3e_3a_3atype_20_3e_247',['serde&lt; T, typename std::enable_if&lt; std::is_arithmetic&lt; T &gt;::value &gt;::type &gt;',['../structdatasketches_1_1serde_3_01T_00_01typename_01std_1_1enable__if_3_01std_1_1is__arithmetic_3_54408b64e8a7918b8a177594393deb4e.html',1,'datasketches']]]
 ];
diff --git a/docs/master/search/classes_c.js b/docs/master/search/classes_c.js
index aeffbc8..f229206 100644
--- a/docs/master/search/classes_c.js
+++ b/docs/master/search/classes_c.js
@@ -1,23 +1,23 @@
 var searchData=
 [
-  ['theta_5fa_5fnot_5fb_5falloc_247',['theta_a_not_b_alloc',['../classdatasketches_1_1theta__a__not__b__alloc.html',1,'datasketches']]],
-  ['theta_5fbase_5fbuilder_248',['theta_base_builder',['../classdatasketches_1_1theta__base__builder.html',1,'datasketches']]],
-  ['theta_5fbase_5fbuilder_3c_20builder_2c_20a_20_3e_249',['theta_base_builder&lt; builder, A &gt;',['../classdatasketches_1_1theta__base__builder.html',1,'datasketches']]],
-  ['theta_5fbase_5fbuilder_3c_20builder_2c_20allocator_20_3e_250',['theta_base_builder&lt; builder, Allocator &gt;',['../classdatasketches_1_1theta__base__builder.html',1,'datasketches']]],
-  ['theta_5fintersection_5falloc_251',['theta_intersection_alloc',['../classdatasketches_1_1theta__intersection__alloc.html',1,'datasketches']]],
-  ['theta_5fsketch_5falloc_252',['theta_sketch_alloc',['../classdatasketches_1_1theta__sketch__alloc.html',1,'datasketches']]],
-  ['theta_5fsketch_5falloc_3c_20std_3a_3aallocator_3c_20uint64_5ft_20_3e_20_3e_253',['theta_sketch_alloc&lt; std::allocator&lt; uint64_t &gt; &gt;',['../classdatasketches_1_1theta__sketch__alloc.html',1,'datasketches']]],
-  ['theta_5funion_5falloc_254',['theta_union_alloc',['../classdatasketches_1_1theta__union__alloc.html',1,'datasketches']]],
-  ['tuple_5fa_5fnot_5fb_255',['tuple_a_not_b',['../classdatasketches_1_1tuple__a__not__b.html',1,'datasketches']]],
-  ['tuple_5fa_5fnot_5fb_3c_20array_2c_20typename_20array_3a_3aallocator_5ftype_20_3e_256',['tuple_a_not_b&lt; Array, typename Array::allocator_type &gt;',['../classdatasketches_1_1tuple__a__not__b.html',1,'datasketches']]],
-  ['tuple_5fbase_5fbuilder_257',['tuple_base_builder',['../classdatasketches_1_1tuple__base__builder.html',1,'datasketches']]],
-  ['tuple_5fbase_5fbuilder_3c_20builder_2c_20p_2c_20a_20_3e_258',['tuple_base_builder&lt; builder, P, A &gt;',['../classdatasketches_1_1tuple__base__builder.html',1,'datasketches']]],
-  ['tuple_5fbase_5fbuilder_3c_20builder_2c_20policy_2c_20allocator_20_3e_259',['tuple_base_builder&lt; builder, Policy, Allocator &gt;',['../classdatasketches_1_1tuple__base__builder.html',1,'datasketches']]],
-  ['tuple_5fintersection_260',['tuple_intersection',['../classdatasketches_1_1tuple__intersection.html',1,'datasketches']]],
-  ['tuple_5fintersection_3c_20array_2c_20policy_2c_20typename_20array_3a_3aallocator_5ftype_20_3e_261',['tuple_intersection&lt; Array, Policy, typename Array::allocator_type &gt;',['../classdatasketches_1_1tuple__intersection.html',1,'datasketches']]],
-  ['tuple_5fsketch_262',['tuple_sketch',['../classdatasketches_1_1tuple__sketch.html',1,'datasketches']]],
-  ['tuple_5fsketch_3c_20array_2c_20typename_20array_3a_3aallocator_5ftype_20_3e_263',['tuple_sketch&lt; Array, typename Array::allocator_type &gt;',['../classdatasketches_1_1tuple__sketch.html',1,'datasketches']]],
-  ['tuple_5fsketch_3c_20summary_2c_20std_3a_3aallocator_3c_20summary_20_3e_20_3e_264',['tuple_sketch&lt; Summary, std::allocator&lt; Summary &gt; &gt;',['../classdatasketches_1_1tuple__sketch.html',1,'datasketches']]],
-  ['tuple_5funion_265',['tuple_union',['../classdatasketches_1_1tuple__union.html',1,'datasketches']]],
-  ['tuple_5funion_3c_20array_2c_20default_5farray_5ftuple_5funion_5fpolicy_3c_20array_20_3e_2c_20typename_20array_3a_3aallocator_5ftype_20_3e_266',['tuple_union&lt; Array, default_array_tuple_union_policy&lt; Array &gt;, typename Array::allocator_type &gt;',['../classdatasketches_1_1tuple__union.html',1,'datasketches']]]
+  ['theta_5fa_5fnot_5fb_5falloc_248',['theta_a_not_b_alloc',['../classdatasketches_1_1theta__a__not__b__alloc.html',1,'datasketches']]],
+  ['theta_5fbase_5fbuilder_249',['theta_base_builder',['../classdatasketches_1_1theta__base__builder.html',1,'datasketches']]],
+  ['theta_5fbase_5fbuilder_3c_20builder_2c_20a_20_3e_250',['theta_base_builder&lt; builder, A &gt;',['../classdatasketches_1_1theta__base__builder.html',1,'datasketches']]],
+  ['theta_5fbase_5fbuilder_3c_20builder_2c_20allocator_20_3e_251',['theta_base_builder&lt; builder, Allocator &gt;',['../classdatasketches_1_1theta__base__builder.html',1,'datasketches']]],
+  ['theta_5fintersection_5falloc_252',['theta_intersection_alloc',['../classdatasketches_1_1theta__intersection__alloc.html',1,'datasketches']]],
+  ['theta_5fsketch_5falloc_253',['theta_sketch_alloc',['../classdatasketches_1_1theta__sketch__alloc.html',1,'datasketches']]],
+  ['theta_5fsketch_5falloc_3c_20std_3a_3aallocator_3c_20uint64_5ft_20_3e_20_3e_254',['theta_sketch_alloc&lt; std::allocator&lt; uint64_t &gt; &gt;',['../classdatasketches_1_1theta__sketch__alloc.html',1,'datasketches']]],
+  ['theta_5funion_5falloc_255',['theta_union_alloc',['../classdatasketches_1_1theta__union__alloc.html',1,'datasketches']]],
+  ['tuple_5fa_5fnot_5fb_256',['tuple_a_not_b',['../classdatasketches_1_1tuple__a__not__b.html',1,'datasketches']]],
+  ['tuple_5fa_5fnot_5fb_3c_20array_2c_20typename_20array_3a_3aallocator_5ftype_20_3e_257',['tuple_a_not_b&lt; Array, typename Array::allocator_type &gt;',['../classdatasketches_1_1tuple__a__not__b.html',1,'datasketches']]],
+  ['tuple_5fbase_5fbuilder_258',['tuple_base_builder',['../classdatasketches_1_1tuple__base__builder.html',1,'datasketches']]],
+  ['tuple_5fbase_5fbuilder_3c_20builder_2c_20p_2c_20a_20_3e_259',['tuple_base_builder&lt; builder, P, A &gt;',['../classdatasketches_1_1tuple__base__builder.html',1,'datasketches']]],
+  ['tuple_5fbase_5fbuilder_3c_20builder_2c_20policy_2c_20allocator_20_3e_260',['tuple_base_builder&lt; builder, Policy, Allocator &gt;',['../classdatasketches_1_1tuple__base__builder.html',1,'datasketches']]],
+  ['tuple_5fintersection_261',['tuple_intersection',['../classdatasketches_1_1tuple__intersection.html',1,'datasketches']]],
+  ['tuple_5fintersection_3c_20array_2c_20policy_2c_20typename_20array_3a_3aallocator_5ftype_20_3e_262',['tuple_intersection&lt; Array, Policy, typename Array::allocator_type &gt;',['../classdatasketches_1_1tuple__intersection.html',1,'datasketches']]],
+  ['tuple_5fsketch_263',['tuple_sketch',['../classdatasketches_1_1tuple__sketch.html',1,'datasketches']]],
+  ['tuple_5fsketch_3c_20array_2c_20typename_20array_3a_3aallocator_5ftype_20_3e_264',['tuple_sketch&lt; Array, typename Array::allocator_type &gt;',['../classdatasketches_1_1tuple__sketch.html',1,'datasketches']]],
+  ['tuple_5fsketch_3c_20summary_2c_20std_3a_3aallocator_3c_20summary_20_3e_20_3e_265',['tuple_sketch&lt; Summary, std::allocator&lt; Summary &gt; &gt;',['../classdatasketches_1_1tuple__sketch.html',1,'datasketches']]],
+  ['tuple_5funion_266',['tuple_union',['../classdatasketches_1_1tuple__union.html',1,'datasketches']]],
+  ['tuple_5funion_3c_20array_2c_20default_5farray_5ftuple_5funion_5fpolicy_3c_20array_20_3e_2c_20typename_20array_3a_3aallocator_5ftype_20_3e_267',['tuple_union&lt; Array, default_array_tuple_union_policy&lt; Array &gt;, typename Array::allocator_type &gt;',['../classdatasketches_1_1tuple__union.html',1,'datasketches']]]
 ];
diff --git a/docs/master/search/classes_d.js b/docs/master/search/classes_d.js
index 5986237..88f9f6c 100644
--- a/docs/master/search/classes_d.js
+++ b/docs/master/search/classes_d.js
@@ -1,7 +1,7 @@
 var searchData=
 [
-  ['update_5farray_5ftuple_5fsketch_267',['update_array_tuple_sketch',['../classdatasketches_1_1update__array__tuple__sketch.html',1,'datasketches']]],
-  ['update_5ftheta_5fsketch_5falloc_268',['update_theta_sketch_alloc',['../classdatasketches_1_1update__theta__sketch__alloc.html',1,'datasketches']]],
-  ['update_5ftuple_5fsketch_269',['update_tuple_sketch',['../classdatasketches_1_1update__tuple__sketch.html',1,'datasketches']]],
-  ['update_5ftuple_5fsketch_3c_20array_2c_20array_2c_20default_5farray_5ftuple_5fupdate_5fpolicy_3c_20array_20_3e_2c_20typename_20array_3a_3aallocator_5ftype_20_3e_270',['update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;',['../classdatasketches_1_1update__tuple__sketch.html',1,'datasketches']]]
+  ['update_5farray_5ftuple_5fsketch_268',['update_array_tuple_sketch',['../classdatasketches_1_1update__array__tuple__sketch.html',1,'datasketches']]],
+  ['update_5ftheta_5fsketch_5falloc_269',['update_theta_sketch_alloc',['../classdatasketches_1_1update__theta__sketch__alloc.html',1,'datasketches']]],
+  ['update_5ftuple_5fsketch_270',['update_tuple_sketch',['../classdatasketches_1_1update__tuple__sketch.html',1,'datasketches']]],
+  ['update_5ftuple_5fsketch_3c_20array_2c_20array_2c_20default_5farray_5ftuple_5fupdate_5fpolicy_3c_20array_20_3e_2c_20typename_20array_3a_3aallocator_5ftype_20_3e_271',['update_tuple_sketch&lt; Array, Array, default_array_tuple_update_policy&lt; Array &gt;, typename Array::allocator_type &gt;',['../classdatasketches_1_1update__tuple__sketch.html',1,'datasketches']]]
 ];
diff --git a/docs/master/search/classes_e.js b/docs/master/search/classes_e.js
index 172a457..ab4ee04 100644
--- a/docs/master/search/classes_e.js
+++ b/docs/master/search/classes_e.js
@@ -1,7 +1,7 @@
 var searchData=
 [
-  ['var_5fopt_5fsketch_271',['var_opt_sketch',['../classdatasketches_1_1var__opt__sketch.html',1,'datasketches']]],
-  ['var_5fopt_5fsketch_3c_20t_2c_20a_20_3e_272',['var_opt_sketch&lt; T, A &gt;',['../classdatasketches_1_1var__opt__sketch.html',1,'datasketches']]],
-  ['var_5fopt_5fsketch_3c_20t_2c_20std_3a_3aallocator_3c_20t_20_3e_20_3e_273',['var_opt_sketch&lt; T, std::allocator&lt; T &gt; &gt;',['../classdatasketches_1_1var__opt__sketch.html',1,'datasketches']]],
-  ['var_5fopt_5funion_274',['var_opt_union',['../classdatasketches_1_1var__opt__union.html',1,'datasketches']]]
+  ['var_5fopt_5fsketch_272',['var_opt_sketch',['../classdatasketches_1_1var__opt__sketch.html',1,'datasketches']]],
+  ['var_5fopt_5fsketch_3c_20t_2c_20a_20_3e_273',['var_opt_sketch&lt; T, A &gt;',['../classdatasketches_1_1var__opt__sketch.html',1,'datasketches']]],
+  ['var_5fopt_5fsketch_3c_20t_2c_20std_3a_3aallocator_3c_20t_20_3e_20_3e_274',['var_opt_sketch&lt; T, std::allocator&lt; T &gt; &gt;',['../classdatasketches_1_1var__opt__sketch.html',1,'datasketches']]],
+  ['var_5fopt_5funion_275',['var_opt_union',['../classdatasketches_1_1var__opt__union.html',1,'datasketches']]]
 ];
diff --git a/docs/master/search/classes_f.js b/docs/master/search/classes_f.js
index ee43bed..61b7866 100644
--- a/docs/master/search/classes_f.js
+++ b/docs/master/search/classes_f.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['wrapped_5fcompact_5ftheta_5fsketch_5falloc_275',['wrapped_compact_theta_sketch_alloc',['../classdatasketches_1_1wrapped__compact__theta__sketch__alloc.html',1,'datasketches']]]
+  ['wrapped_5fcompact_5ftheta_5fsketch_5falloc_276',['wrapped_compact_theta_sketch_alloc',['../classdatasketches_1_1wrapped__compact__theta__sketch__alloc.html',1,'datasketches']]]
 ];
diff --git a/docs/master/search/enums_0.js b/docs/master/search/enums_0.js
index 47918eb..af4238f 100644
--- a/docs/master/search/enums_0.js
+++ b/docs/master/search/enums_0.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['frequent_5fitems_5ferror_5ftype_435',['frequent_items_error_type',['../namespacedatasketches.html#ae94a02fc822bc3f745ab6ef0ac9c1f0f',1,'datasketches']]]
+  ['frequent_5fitems_5ferror_5ftype_437',['frequent_items_error_type',['../namespacedatasketches.html#ae94a02fc822bc3f745ab6ef0ac9c1f0f',1,'datasketches']]]
 ];
diff --git a/docs/master/search/enums_1.js b/docs/master/search/enums_1.js
index f7352d6..0ec866b 100644
--- a/docs/master/search/enums_1.js
+++ b/docs/master/search/enums_1.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['target_5fhll_5ftype_436',['target_hll_type',['../namespacedatasketches.html#a76c1ad9235877691984d49415bb263e4',1,'datasketches']]]
+  ['target_5fhll_5ftype_438',['target_hll_type',['../namespacedatasketches.html#a76c1ad9235877691984d49415bb263e4',1,'datasketches']]]
 ];
diff --git a/docs/master/search/enumvalues_0.js b/docs/master/search/enumvalues_0.js
index bed7fa4..fea33b9 100644
--- a/docs/master/search/enumvalues_0.js
+++ b/docs/master/search/enumvalues_0.js
@@ -1,6 +1,6 @@
 var searchData=
 [
-  ['hll_5f4_437',['HLL_4',['../namespacedatasketches.html#a76c1ad9235877691984d49415bb263e4aebdac6704039b95d8b82629cda14b1b9',1,'datasketches']]],
-  ['hll_5f6_438',['HLL_6',['../namespacedatasketches.html#a76c1ad9235877691984d49415bb263e4a0a2179d612c2ce6887e96279f25d7a77',1,'datasketches']]],
-  ['hll_5f8_439',['HLL_8',['../namespacedatasketches.html#a76c1ad9235877691984d49415bb263e4a3a5efa79623d3e2ab53f27ef53237c7f',1,'datasketches']]]
+  ['hll_5f4_439',['HLL_4',['../namespacedatasketches.html#a76c1ad9235877691984d49415bb263e4aebdac6704039b95d8b82629cda14b1b9',1,'datasketches']]],
+  ['hll_5f6_440',['HLL_6',['../namespacedatasketches.html#a76c1ad9235877691984d49415bb263e4a0a2179d612c2ce6887e96279f25d7a77',1,'datasketches']]],
+  ['hll_5f8_441',['HLL_8',['../namespacedatasketches.html#a76c1ad9235877691984d49415bb263e4a3a5efa79623d3e2ab53f27ef53237c7f',1,'datasketches']]]
 ];
diff --git a/docs/master/search/enumvalues_1.js b/docs/master/search/enumvalues_1.js
index c0f2735..c28fb7f 100644
--- a/docs/master/search/enumvalues_1.js
+++ b/docs/master/search/enumvalues_1.js
@@ -1,5 +1,5 @@
 var searchData=
 [
-  ['no_5ffalse_5fnegatives_440',['NO_FALSE_NEGATIVES',['../namespacedatasketches.html#ae94a02fc822bc3f745ab6ef0ac9c1f0fa5338495a1938a260d0f0489d35b2e8dd',1,'datasketches']]],
-  ['no_5ffalse_5fpositives_441',['NO_FALSE_POSITIVES',['../namespacedatasketches.html#ae94a02fc822bc3f745ab6ef0ac9c1f0fa6f0f5df0005d6b6f0428d126eb0d75e9',1,'datasketches']]]
+  ['no_5ffalse_5fnegatives_442',['NO_FALSE_NEGATIVES',['../namespacedatasketches.html#ae94a02fc822bc3f745ab6ef0ac9c1f0fa5338495a1938a260d0f0489d35b2e8dd',1,'datasketches']]],
+  ['no_5ffalse_5fpositives_443',['NO_FALSE_POSITIVES',['../namespacedatasketches.html#ae94a02fc822bc3f745ab6ef0ac9c1f0fa6f0f5df0005d6b6f0428d126eb0d75e9',1,'datasketches']]]
 ];
diff --git a/docs/master/search/functions_0.js b/docs/master/search/functions_0.js
index f4a5b70..794ff88 100644
--- a/docs/master/search/functions_0.js
+++ b/docs/master/search/functions_0.js
@@ -1,7 +1,7 @@
 var searchData=
 [
-  ['approximate_5flower_5fbound_5fon_5fp_284',['approximate_lower_bound_on_p',['../classdatasketches_1_1bounds__binomial__proportions.html#aeaf7a3842e7bc82772b1dc33891f8c50',1,'datasketches::bounds_binomial_proportions']]],
-  ['approximate_5fupper_5fbound_5fon_5fp_285',['approximate_upper_bound_on_p',['../classdatasketches_1_1bounds__binomial__proportions.html#a497df40100e75dd55e6f0cdccd90b60a',1,'datasketches::bounds_binomial_proportions']]],
-  ['array_5ftuple_5fa_5fnot_5fb_286',['array_tuple_a_not_b',['../classdatasketches_1_1array__tuple__a__not__b.html#afc12166e05f904485a0fd4fe84436336',1,'datasketches::array_tuple_a_not_b']]],
-  ['array_5ftuple_5fintersection_287',['array_tuple_intersection',['../classdatasketches_1_1array__tuple__intersection.html#af032c7e2eeeafda87bf316647465ba4a',1,'datasketches::array_tuple_intersection']]]
+  ['approximate_5flower_5fbound_5fon_5fp_285',['approximate_lower_bound_on_p',['../classdatasketches_1_1bounds__binomial__proportions.html#aeaf7a3842e7bc82772b1dc33891f8c50',1,'datasketches::bounds_binomial_proportions']]],
+  ['approximate_5fupper_5fbound_5fon_5fp_286',['approximate_upper_bound_on_p',['../classdatasketches_1_1bounds__binomial__proportions.html#a497df40100e75dd55e6f0cdccd90b60a',1,'datasketches::bounds_binomial_proportions']]],
+  ['array_5ftuple_5fa_5fnot_5fb_287',['array_tuple_a_not_b',['../classdatasketches_1_1array__tuple__a__not__b.html#afc12166e05f904485a0fd4fe84436336',1,'datasketches::array_tuple_a_not_b']]],
+  ['array_5ftuple_5fintersection_288',['array_tuple_intersection',['../classdatasketches_1_1array__tuple__intersection.html#af032c7e2eeeafda87bf316647465ba4a',1,'datasketches::array_tuple_intersection']]]
 ];
diff --git a/docs/master/search/functions_1.js b/docs/master/search/functions_1.js
index cf1a372..386eb29 100644
--- a/docs/master/search/functions_1.js
+++ b/docs/master/search/functions_1.js
@@ -1,6 +1,6 @@
 var searchData=
 [
-  ['begin_288',['begin',['../classdatasketches_1_1kll__sketch.html#a288af208cb43c6bdd67b788dc92037ea',1,'datasketches::kll_sketch::begin()'],['../classdatasketches_1_1req__sketch.html#ad5c959a538216a09ab28c5283585956c',1,'datasketches::req_sketch::begin()'],['../classdatasketches_1_1count__min__sketch.html#afa7956f1d2c14624431b3fb7cd976f63',1,'datasketches::count_min_sketch::begin()'],['../classdatasketches_1_1density__sketch.html#ad5c959a538216a09ab28c5283585956c',1,'datasketches::densi [...]
-  ['build_289',['build',['../classdatasketches_1_1update__theta__sketch__alloc_1_1builder.html#af9a3043edefda59a1b97e7299506a494',1,'datasketches::update_theta_sketch_alloc::builder::build()'],['../classdatasketches_1_1theta__union__alloc_1_1builder.html#a5641adbacdefd99f6833e1c8de16be43',1,'datasketches::theta_union_alloc::builder::build()'],['../classdatasketches_1_1update__array__tuple__sketch_1_1builder.html#a5641adbacdefd99f6833e1c8de16be43',1,'datasketches::update_array_tuple_sketc [...]
-  ['builder_290',['builder',['../classdatasketches_1_1update__theta__sketch__alloc_1_1builder.html#acb9ce8d7607c97e6bf7dfa2df52926dc',1,'datasketches::update_theta_sketch_alloc::builder::builder()'],['../classdatasketches_1_1update__array__tuple__sketch_1_1builder.html#aa5a67185e858074f733c7ef6019219d4',1,'datasketches::update_array_tuple_sketch::builder::builder()'],['../classdatasketches_1_1update__tuple__sketch_1_1builder.html#a4939c16cc8f9c221b2f796eda6db7a81',1,'datasketches::update [...]
+  ['begin_289',['begin',['../classdatasketches_1_1kll__sketch.html#a288af208cb43c6bdd67b788dc92037ea',1,'datasketches::kll_sketch::begin()'],['../classdatasketches_1_1req__sketch.html#ad5c959a538216a09ab28c5283585956c',1,'datasketches::req_sketch::begin()'],['../classdatasketches_1_1count__min__sketch.html#afa7956f1d2c14624431b3fb7cd976f63',1,'datasketches::count_min_sketch::begin()'],['../classdatasketches_1_1density__sketch.html#ad5c959a538216a09ab28c5283585956c',1,'datasketches::densi [...]
+  ['build_290',['build',['../classdatasketches_1_1update__theta__sketch__alloc_1_1builder.html#af9a3043edefda59a1b97e7299506a494',1,'datasketches::update_theta_sketch_alloc::builder::build()'],['../classdatasketches_1_1theta__union__alloc_1_1builder.html#a5641adbacdefd99f6833e1c8de16be43',1,'datasketches::theta_union_alloc::builder::build()'],['../classdatasketches_1_1update__array__tuple__sketch_1_1builder.html#a5641adbacdefd99f6833e1c8de16be43',1,'datasketches::update_array_tuple_sketc [...]
+  ['builder_291',['builder',['../classdatasketches_1_1update__theta__sketch__alloc_1_1builder.html#acb9ce8d7607c97e6bf7dfa2df52926dc',1,'datasketches::update_theta_sketch_alloc::builder::builder()'],['../classdatasketches_1_1update__array__tuple__sketch_1_1builder.html#aa5a67185e858074f733c7ef6019219d4',1,'datasketches::update_array_tuple_sketch::builder::builder()'],['../classdatasketches_1_1update__tuple__sketch_1_1builder.html#a4939c16cc8f9c221b2f796eda6db7a81',1,'datasketches::update [...]
 ];
diff --git a/docs/master/search/functions_10.js b/docs/master/search/functions_10.js
index f0fa156..b2a7e61 100644
--- a/docs/master/search/functions_10.js
+++ b/docs/master/search/functions_10.js
@@ -1,5 +1,5 @@
 var searchData=
 [
-  ['req_5fsketch_377',['req_sketch',['../classdatasketches_1_1req__sketch.html#a732d80ecaa19aab05f65ca62bdf0452c',1,'datasketches::req_sketch::req_sketch(uint16_t k, bool hra=true, const Comparator &amp;comparator=Comparator(), const Allocator &amp;allocator=Allocator())'],['../classdatasketches_1_1req__sketch.html#a4ec3122d5c0994c725123257065de56b',1,'datasketches::req_sketch::req_sketch(const req_sketch &amp;other)'],['../classdatasketches_1_1req__sketch.html#a25d0fc41e0544761ffc626aa7 [...]
-  ['reset_378',['reset',['../classdatasketches_1_1hll__union__alloc.html#ad20897c5c8bd47f5d4005989bead0e55',1,'datasketches::hll_union_alloc::reset()'],['../classdatasketches_1_1update__theta__sketch__alloc.html#ad20897c5c8bd47f5d4005989bead0e55',1,'datasketches::update_theta_sketch_alloc::reset()'],['../classdatasketches_1_1theta__union__alloc.html#ad20897c5c8bd47f5d4005989bead0e55',1,'datasketches::theta_union_alloc::reset()'],['../classdatasketches_1_1update__tuple__sketch.html#ad2089 [...]
+  ['req_5fsketch_379',['req_sketch',['../classdatasketches_1_1req__sketch.html#a732d80ecaa19aab05f65ca62bdf0452c',1,'datasketches::req_sketch::req_sketch(uint16_t k, bool hra=true, const Comparator &amp;comparator=Comparator(), const Allocator &amp;allocator=Allocator())'],['../classdatasketches_1_1req__sketch.html#a4ec3122d5c0994c725123257065de56b',1,'datasketches::req_sketch::req_sketch(const req_sketch &amp;other)'],['../classdatasketches_1_1req__sketch.html#a25d0fc41e0544761ffc626aa7 [...]
+  ['reset_380',['reset',['../classdatasketches_1_1hll__union__alloc.html#ad20897c5c8bd47f5d4005989bead0e55',1,'datasketches::hll_union_alloc::reset()'],['../classdatasketches_1_1update__theta__sketch__alloc.html#ad20897c5c8bd47f5d4005989bead0e55',1,'datasketches::update_theta_sketch_alloc::reset()'],['../classdatasketches_1_1theta__union__alloc.html#ad20897c5c8bd47f5d4005989bead0e55',1,'datasketches::theta_union_alloc::reset()'],['../classdatasketches_1_1update__tuple__sketch.html#ad2089 [...]
 ];
diff --git a/docs/master/search/functions_11.js b/docs/master/search/functions_11.js
index 132fd17..05f4bd2 100644
--- a/docs/master/search/functions_11.js
+++ b/docs/master/search/functions_11.js
@@ -1,14 +1,14 @@
 var searchData=
 [
-  ['serialize_379',['serialize',['../structdatasketches_1_1serde.html#a8cf20deb8d752971876e996135c26eaa',1,'datasketches::serde::serialize()'],['../classdatasketches_1_1req__sketch.html#a1d0c269c23926e93b1c7a9c00e86af97',1,'datasketches::req_sketch::serialize(unsigned header_size_bytes=0, const SerDe &amp;sd=SerDe()) const'],['../classdatasketches_1_1req__sketch.html#a538940c100e4353b3671ad452d3d3056',1,'datasketches::req_sketch::serialize(std::ostream &amp;os, const SerDe &amp;sd=SerDe( [...]
-  ['serialize_5fcompressed_380',['serialize_compressed',['../classdatasketches_1_1compact__theta__sketch__alloc.html#ad340191a312ae81cd5aa18e4e0145460',1,'datasketches::compact_theta_sketch_alloc::serialize_compressed(std::ostream &amp;os) const'],['../classdatasketches_1_1compact__theta__sketch__alloc.html#af3f9c5afb4b31aa40bf248cc96ff5daf',1,'datasketches::compact_theta_sketch_alloc::serialize_compressed(unsigned header_size_bytes=0) const']]],
-  ['set_5flg_5fk_381',['set_lg_k',['../classdatasketches_1_1theta__base__builder.html#a249f556d18a3e5547e6ffef88d7e03ce',1,'datasketches::theta_base_builder']]],
-  ['set_5fp_382',['set_p',['../classdatasketches_1_1theta__base__builder.html#ad17b87a607ca9cbeda22aca45d0a03b0',1,'datasketches::theta_base_builder']]],
-  ['set_5fresize_5ffactor_383',['set_resize_factor',['../classdatasketches_1_1theta__base__builder.html#a872b7237127174b060f0f8ddd00fe7de',1,'datasketches::theta_base_builder']]],
-  ['set_5fseed_384',['set_seed',['../classdatasketches_1_1theta__base__builder.html#aef1998c3c61c65a50d9500395d611c7a',1,'datasketches::theta_base_builder']]],
-  ['similarity_5ftest_385',['similarity_test',['../classdatasketches_1_1jaccard__similarity__base.html#a919ce3dd7d15658fe67eb359368e9f07',1,'datasketches::jaccard_similarity_base']]],
-  ['size_386',['size',['../classdatasketches_1_1quantiles__sorted__view.html#a259cb5a711406a8c3e5d937eb9350cca',1,'datasketches::quantiles_sorted_view']]],
-  ['size_5fof_5fitem_387',['size_of_item',['../structdatasketches_1_1serde.html#a3291383cf9767a56e84b1a0ef5da178e',1,'datasketches::serde::size_of_item()'],['../structdatasketches_1_1serde_3_01T_00_01typename_01std_1_1enable__if_3_01std_1_1is__arithmetic_3_54408b64e8a7918b8a177594393deb4e.html#a3291383cf9767a56e84b1a0ef5da178e',1,'datasketches::serde&lt; T, typename std::enable_if&lt; std::is_arithmetic&lt; T &gt;::value &gt;::type &gt;::size_of_item()'],['../structdatasketches_1_1serde_ [...]
-  ['suggest_5fnum_5fbuckets_388',['suggest_num_buckets',['../classdatasketches_1_1count__min__sketch.html#a2909753e9106aad95a740580c3865d98',1,'datasketches::count_min_sketch']]],
-  ['suggest_5fnum_5fhashes_389',['suggest_num_hashes',['../classdatasketches_1_1count__min__sketch.html#a40b2f93d707496a57b16679be4a58a2f',1,'datasketches::count_min_sketch']]]
+  ['serialize_381',['serialize',['../structdatasketches_1_1serde.html#a8cf20deb8d752971876e996135c26eaa',1,'datasketches::serde::serialize()'],['../classdatasketches_1_1req__sketch.html#a1d0c269c23926e93b1c7a9c00e86af97',1,'datasketches::req_sketch::serialize(unsigned header_size_bytes=0, const SerDe &amp;sd=SerDe()) const'],['../classdatasketches_1_1req__sketch.html#a538940c100e4353b3671ad452d3d3056',1,'datasketches::req_sketch::serialize(std::ostream &amp;os, const SerDe &amp;sd=SerDe( [...]
+  ['serialize_5fcompressed_382',['serialize_compressed',['../classdatasketches_1_1compact__theta__sketch__alloc.html#ad340191a312ae81cd5aa18e4e0145460',1,'datasketches::compact_theta_sketch_alloc::serialize_compressed(std::ostream &amp;os) const'],['../classdatasketches_1_1compact__theta__sketch__alloc.html#af3f9c5afb4b31aa40bf248cc96ff5daf',1,'datasketches::compact_theta_sketch_alloc::serialize_compressed(unsigned header_size_bytes=0) const']]],
+  ['set_5flg_5fk_383',['set_lg_k',['../classdatasketches_1_1theta__base__builder.html#a249f556d18a3e5547e6ffef88d7e03ce',1,'datasketches::theta_base_builder']]],
+  ['set_5fp_384',['set_p',['../classdatasketches_1_1theta__base__builder.html#ad17b87a607ca9cbeda22aca45d0a03b0',1,'datasketches::theta_base_builder']]],
+  ['set_5fresize_5ffactor_385',['set_resize_factor',['../classdatasketches_1_1theta__base__builder.html#a872b7237127174b060f0f8ddd00fe7de',1,'datasketches::theta_base_builder']]],
+  ['set_5fseed_386',['set_seed',['../classdatasketches_1_1theta__base__builder.html#aef1998c3c61c65a50d9500395d611c7a',1,'datasketches::theta_base_builder']]],
+  ['similarity_5ftest_387',['similarity_test',['../classdatasketches_1_1jaccard__similarity__base.html#a919ce3dd7d15658fe67eb359368e9f07',1,'datasketches::jaccard_similarity_base']]],
+  ['size_388',['size',['../classdatasketches_1_1quantiles__sorted__view.html#a259cb5a711406a8c3e5d937eb9350cca',1,'datasketches::quantiles_sorted_view']]],
+  ['size_5fof_5fitem_389',['size_of_item',['../structdatasketches_1_1serde.html#a3291383cf9767a56e84b1a0ef5da178e',1,'datasketches::serde::size_of_item()'],['../structdatasketches_1_1serde_3_01T_00_01typename_01std_1_1enable__if_3_01std_1_1is__arithmetic_3_54408b64e8a7918b8a177594393deb4e.html#a3291383cf9767a56e84b1a0ef5da178e',1,'datasketches::serde&lt; T, typename std::enable_if&lt; std::is_arithmetic&lt; T &gt;::value &gt;::type &gt;::size_of_item()'],['../structdatasketches_1_1serde_ [...]
+  ['suggest_5fnum_5fbuckets_390',['suggest_num_buckets',['../classdatasketches_1_1count__min__sketch.html#a2909753e9106aad95a740580c3865d98',1,'datasketches::count_min_sketch']]],
+  ['suggest_5fnum_5fhashes_391',['suggest_num_hashes',['../classdatasketches_1_1count__min__sketch.html#a40b2f93d707496a57b16679be4a58a2f',1,'datasketches::count_min_sketch']]]
 ];
diff --git a/docs/master/search/functions_12.js b/docs/master/search/functions_12.js
index 409b436..17e9df1 100644
--- a/docs/master/search/functions_12.js
+++ b/docs/master/search/functions_12.js
@@ -1,12 +1,12 @@
 var searchData=
 [
-  ['test_390',['test',['../classdatasketches_1_1kolmogorov__smirnov.html#abe35b8f2ba44099903040c3e9beabd21',1,'datasketches::kolmogorov_smirnov']]],
-  ['theta_5fa_5fnot_5fb_5falloc_391',['theta_a_not_b_alloc',['../classdatasketches_1_1theta__a__not__b__alloc.html#aad68590e0fdd7ae1f794c1734b4e94e4',1,'datasketches::theta_a_not_b_alloc']]],
-  ['theta_5fbase_5fbuilder_392',['theta_base_builder',['../classdatasketches_1_1theta__base__builder.html#a4b0aff81dd617849c00e8c1624a4218b',1,'datasketches::theta_base_builder']]],
-  ['theta_5fintersection_5falloc_393',['theta_intersection_alloc',['../classdatasketches_1_1theta__intersection__alloc.html#a47ac95e76c9f21fb19108e3ab9c21012',1,'datasketches::theta_intersection_alloc']]],
-  ['threshold_394',['threshold',['../classdatasketches_1_1kolmogorov__smirnov.html#af92dd2e35bc4c560b837a056797f75af',1,'datasketches::kolmogorov_smirnov']]],
-  ['to_5fstring_395',['to_string',['../classdatasketches_1_1ebpps__sketch.html#aed372241c10ffd041bee85602edb199a',1,'datasketches::ebpps_sketch::to_string()'],['../classdatasketches_1_1req__sketch.html#a592a7af55659ff803b26a45552a68dda',1,'datasketches::req_sketch::to_string()'],['../classdatasketches_1_1count__min__sketch.html#aed372241c10ffd041bee85602edb199a',1,'datasketches::count_min_sketch::to_string()'],['../classdatasketches_1_1frequent__items__sketch.html#a60a5fe73c86554c3137056 [...]
-  ['trim_396',['trim',['../classdatasketches_1_1update__theta__sketch__alloc.html#a268ae12a22c9f97b84833e4c39fb2278',1,'datasketches::update_theta_sketch_alloc::trim()'],['../classdatasketches_1_1update__tuple__sketch.html#a268ae12a22c9f97b84833e4c39fb2278',1,'datasketches::update_tuple_sketch::trim()']]],
-  ['tuple_5fa_5fnot_5fb_397',['tuple_a_not_b',['../classdatasketches_1_1tuple__a__not__b.html#ab7aabf86559ad403741955663d86f83d',1,'datasketches::tuple_a_not_b']]],
-  ['tuple_5fintersection_398',['tuple_intersection',['../classdatasketches_1_1tuple__intersection.html#a4cff2978362ac6d1c74a1a69c3b3843f',1,'datasketches::tuple_intersection']]]
+  ['test_392',['test',['../classdatasketches_1_1kolmogorov__smirnov.html#abe35b8f2ba44099903040c3e9beabd21',1,'datasketches::kolmogorov_smirnov']]],
+  ['theta_5fa_5fnot_5fb_5falloc_393',['theta_a_not_b_alloc',['../classdatasketches_1_1theta__a__not__b__alloc.html#aad68590e0fdd7ae1f794c1734b4e94e4',1,'datasketches::theta_a_not_b_alloc']]],
+  ['theta_5fbase_5fbuilder_394',['theta_base_builder',['../classdatasketches_1_1theta__base__builder.html#a4b0aff81dd617849c00e8c1624a4218b',1,'datasketches::theta_base_builder']]],
+  ['theta_5fintersection_5falloc_395',['theta_intersection_alloc',['../classdatasketches_1_1theta__intersection__alloc.html#a47ac95e76c9f21fb19108e3ab9c21012',1,'datasketches::theta_intersection_alloc']]],
+  ['threshold_396',['threshold',['../classdatasketches_1_1kolmogorov__smirnov.html#af92dd2e35bc4c560b837a056797f75af',1,'datasketches::kolmogorov_smirnov']]],
+  ['to_5fstring_397',['to_string',['../classdatasketches_1_1ebpps__sketch.html#aed372241c10ffd041bee85602edb199a',1,'datasketches::ebpps_sketch::to_string()'],['../classdatasketches_1_1req__sketch.html#a592a7af55659ff803b26a45552a68dda',1,'datasketches::req_sketch::to_string()'],['../classdatasketches_1_1count__min__sketch.html#aed372241c10ffd041bee85602edb199a',1,'datasketches::count_min_sketch::to_string()'],['../classdatasketches_1_1frequent__items__sketch.html#a60a5fe73c86554c3137056 [...]
+  ['trim_398',['trim',['../classdatasketches_1_1update__theta__sketch__alloc.html#a268ae12a22c9f97b84833e4c39fb2278',1,'datasketches::update_theta_sketch_alloc::trim()'],['../classdatasketches_1_1update__tuple__sketch.html#a268ae12a22c9f97b84833e4c39fb2278',1,'datasketches::update_tuple_sketch::trim()']]],
+  ['tuple_5fa_5fnot_5fb_399',['tuple_a_not_b',['../classdatasketches_1_1tuple__a__not__b.html#ab7aabf86559ad403741955663d86f83d',1,'datasketches::tuple_a_not_b']]],
+  ['tuple_5fintersection_400',['tuple_intersection',['../classdatasketches_1_1tuple__intersection.html#a4cff2978362ac6d1c74a1a69c3b3843f',1,'datasketches::tuple_intersection']]]
 ];
diff --git a/docs/master/search/functions_13.js b/docs/master/search/functions_13.js
index 8bb28de..0f51833 100644
--- a/docs/master/search/functions_13.js
+++ b/docs/master/search/functions_13.js
@@ -1,6 +1,6 @@
 var searchData=
 [
-  ['update_399',['update',['../classdatasketches_1_1update__tuple__sketch.html#a2a1600e5744952a6b912ae4dbf654dde',1,'datasketches::update_tuple_sketch::update(uint64_t key, FwdUpdate &amp;&amp;value)'],['../classdatasketches_1_1update__tuple__sketch.html#adf12e466eec013888159bdb19a2a25b1',1,'datasketches::update_tuple_sketch::update(double key, FwdUpdate &amp;&amp;value)'],['../classdatasketches_1_1update__tuple__sketch.html#a808c14c6a7dcaf10dcbd25023d83f637',1,'datasketches::update_tupl [...]
-  ['update_5ftheta_5fsketch_5falloc_400',['update_theta_sketch_alloc',['../classdatasketches_1_1update__theta__sketch__alloc.html#af865582cdd7f9938251ecb41518ecb99',1,'datasketches::update_theta_sketch_alloc::update_theta_sketch_alloc(const update_theta_sketch_alloc &amp;other)=default'],['../classdatasketches_1_1update__theta__sketch__alloc.html#a70a347dfef00f6b9fb18d8eabf1699c4',1,'datasketches::update_theta_sketch_alloc::update_theta_sketch_alloc(update_theta_sketch_alloc &amp;&amp;ot [...]
-  ['upper_5fbound_5ffor_5fb_5fover_5fa_401',['upper_bound_for_b_over_a',['../classdatasketches_1_1bounds__on__ratios__in__sampled__sets.html#a2453c33c83f730e780c3e7eb7ac17826',1,'datasketches::bounds_on_ratios_in_sampled_sets::upper_bound_for_b_over_a()'],['../classdatasketches_1_1bounds__on__ratios__in__theta__sketched__sets.html#ad293e15d58608067e1e0d6664802bfd2',1,'datasketches::bounds_on_ratios_in_theta_sketched_sets::upper_bound_for_b_over_a()']]]
+  ['update_401',['update',['../classdatasketches_1_1update__tuple__sketch.html#a2a1600e5744952a6b912ae4dbf654dde',1,'datasketches::update_tuple_sketch::update(uint64_t key, FwdUpdate &amp;&amp;value)'],['../classdatasketches_1_1update__tuple__sketch.html#adf12e466eec013888159bdb19a2a25b1',1,'datasketches::update_tuple_sketch::update(double key, FwdUpdate &amp;&amp;value)'],['../classdatasketches_1_1update__tuple__sketch.html#a808c14c6a7dcaf10dcbd25023d83f637',1,'datasketches::update_tupl [...]
+  ['update_5ftheta_5fsketch_5falloc_402',['update_theta_sketch_alloc',['../classdatasketches_1_1update__theta__sketch__alloc.html#af865582cdd7f9938251ecb41518ecb99',1,'datasketches::update_theta_sketch_alloc::update_theta_sketch_alloc(const update_theta_sketch_alloc &amp;other)=default'],['../classdatasketches_1_1update__theta__sketch__alloc.html#a70a347dfef00f6b9fb18d8eabf1699c4',1,'datasketches::update_theta_sketch_alloc::update_theta_sketch_alloc(update_theta_sketch_alloc &amp;&amp;ot [...]
+  ['upper_5fbound_5ffor_5fb_5fover_5fa_403',['upper_bound_for_b_over_a',['../classdatasketches_1_1bounds__on__ratios__in__sampled__sets.html#a2453c33c83f730e780c3e7eb7ac17826',1,'datasketches::bounds_on_ratios_in_sampled_sets::upper_bound_for_b_over_a()'],['../classdatasketches_1_1bounds__on__ratios__in__theta__sketched__sets.html#ad293e15d58608067e1e0d6664802bfd2',1,'datasketches::bounds_on_ratios_in_theta_sketched_sets::upper_bound_for_b_over_a()']]]
 ];
diff --git a/docs/master/search/functions_14.js b/docs/master/search/functions_14.js
index 535d90e..bb1514f 100644
--- a/docs/master/search/functions_14.js
+++ b/docs/master/search/functions_14.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['var_5fopt_5fsketch_402',['var_opt_sketch',['../classdatasketches_1_1var__opt__sketch.html#a6df9f2226b7197a0f612ee4aec0233e7',1,'datasketches::var_opt_sketch::var_opt_sketch(uint32_t k, resize_factor rf=var_opt_constants::DEFAULT_RESIZE_FACTOR, const A &amp;allocator=A())'],['../classdatasketches_1_1var__opt__sketch.html#a3efbe40f3a9091fa581eaeef126b8285',1,'datasketches::var_opt_sketch::var_opt_sketch(const var_opt_sketch &amp;other)'],['../classdatasketches_1_1var__opt__sketch.html# [...]
+  ['var_5fopt_5fsketch_404',['var_opt_sketch',['../classdatasketches_1_1var__opt__sketch.html#a6df9f2226b7197a0f612ee4aec0233e7',1,'datasketches::var_opt_sketch::var_opt_sketch(uint32_t k, resize_factor rf=var_opt_constants::DEFAULT_RESIZE_FACTOR, const A &amp;allocator=A())'],['../classdatasketches_1_1var__opt__sketch.html#a3efbe40f3a9091fa581eaeef126b8285',1,'datasketches::var_opt_sketch::var_opt_sketch(const var_opt_sketch &amp;other)'],['../classdatasketches_1_1var__opt__sketch.html# [...]
 ];
diff --git a/docs/master/search/functions_15.js b/docs/master/search/functions_15.js
index 7b0cb9b..fa0b4e4 100644
--- a/docs/master/search/functions_15.js
+++ b/docs/master/search/functions_15.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['wrap_403',['wrap',['../classdatasketches_1_1wrapped__compact__theta__sketch__alloc.html#a7c8fcc5351cb17b746aef835e65b403a',1,'datasketches::wrapped_compact_theta_sketch_alloc']]]
+  ['wrap_405',['wrap',['../classdatasketches_1_1wrapped__compact__theta__sketch__alloc.html#a7c8fcc5351cb17b746aef835e65b403a',1,'datasketches::wrapped_compact_theta_sketch_alloc']]]
 ];
diff --git a/docs/master/search/functions_2.js b/docs/master/search/functions_2.js
index 585cfc4..9cd8b86 100644
--- a/docs/master/search/functions_2.js
+++ b/docs/master/search/functions_2.js
@@ -1,12 +1,12 @@
 var searchData=
 [
-  ['compact_291',['compact',['../classdatasketches_1_1update__tuple__sketch.html#a8adfe3908612dc77d3708cecddb65515',1,'datasketches::update_tuple_sketch::compact()'],['../classdatasketches_1_1update__theta__sketch__alloc.html#af2a874b603390c143ecd4e6814ecbe3b',1,'datasketches::update_theta_sketch_alloc::compact()']]],
-  ['compact_5farray_5ftuple_5fsketch_292',['compact_array_tuple_sketch',['../classdatasketches_1_1compact__array__tuple__sketch.html#a1d5f786024b3df2ab6993056a22abad0',1,'datasketches::compact_array_tuple_sketch']]],
-  ['compact_5ftheta_5fsketch_5falloc_293',['compact_theta_sketch_alloc',['../classdatasketches_1_1compact__theta__sketch__alloc.html#a0eaea2a9894acb7b92f5c3f3224c618c',1,'datasketches::compact_theta_sketch_alloc::compact_theta_sketch_alloc(const Other &amp;other, bool ordered)'],['../classdatasketches_1_1compact__theta__sketch__alloc.html#a0f097d346334e1ad237b64133d0adf94',1,'datasketches::compact_theta_sketch_alloc::compact_theta_sketch_alloc(const compact_theta_sketch_alloc &amp;other) [...]
-  ['compact_5ftuple_5fsketch_294',['compact_tuple_sketch',['../classdatasketches_1_1compact__tuple__sketch.html#a519b06cb3b46caf95b967ce404246105',1,'datasketches::compact_tuple_sketch::compact_tuple_sketch(const theta_sketch_alloc&lt; AllocU64 &gt; &amp;other, const Summary &amp;summary, bool ordered=true)'],['../classdatasketches_1_1compact__tuple__sketch.html#a35916bac524f4ff4ff02739553bd4622',1,'datasketches::compact_tuple_sketch::compact_tuple_sketch(compact_tuple_sketch &amp;&amp;) [...]
-  ['compute_295',['compute',['../classdatasketches_1_1theta__a__not__b__alloc.html#a3ee0c8ec70c980979f84c68065da3d9b',1,'datasketches::theta_a_not_b_alloc::compute()'],['../classdatasketches_1_1array__tuple__a__not__b.html#a3ee0c8ec70c980979f84c68065da3d9b',1,'datasketches::array_tuple_a_not_b::compute()'],['../classdatasketches_1_1tuple__a__not__b.html#a3ee0c8ec70c980979f84c68065da3d9b',1,'datasketches::tuple_a_not_b::compute()']]],
-  ['count_5fmin_5fsketch_296',['count_min_sketch',['../classdatasketches_1_1count__min__sketch.html#a8dbb00b2bf984b434482e3da006e2238',1,'datasketches::count_min_sketch']]],
-  ['cpc_5finit_297',['cpc_init',['../namespacedatasketches.html#a3a7ac5efb6156547a8da91e937a06b07',1,'datasketches']]],
-  ['cpc_5fsketch_5falloc_298',['cpc_sketch_alloc',['../classdatasketches_1_1cpc__sketch__alloc.html#a39d6cd5eff1a9af78f58108ba5297b47',1,'datasketches::cpc_sketch_alloc']]],
-  ['cpc_5funion_5falloc_299',['cpc_union_alloc',['../classdatasketches_1_1cpc__union__alloc.html#a7d54d46a338588afe9fb768cb0e22082',1,'datasketches::cpc_union_alloc::cpc_union_alloc(uint8_t lg_k=cpc_constants::DEFAULT_LG_K, uint64_t seed=DEFAULT_SEED, const A &amp;allocator=A())'],['../classdatasketches_1_1cpc__union__alloc.html#a58b7403d28fc1784030af8671a979a16',1,'datasketches::cpc_union_alloc::cpc_union_alloc(const cpc_union_alloc&lt; A &gt; &amp;other)'],['../classdatasketches_1_1cpc [...]
+  ['compact_292',['compact',['../classdatasketches_1_1update__tuple__sketch.html#a8adfe3908612dc77d3708cecddb65515',1,'datasketches::update_tuple_sketch::compact()'],['../classdatasketches_1_1update__theta__sketch__alloc.html#af2a874b603390c143ecd4e6814ecbe3b',1,'datasketches::update_theta_sketch_alloc::compact()']]],
+  ['compact_5farray_5ftuple_5fsketch_293',['compact_array_tuple_sketch',['../classdatasketches_1_1compact__array__tuple__sketch.html#a1d5f786024b3df2ab6993056a22abad0',1,'datasketches::compact_array_tuple_sketch']]],
+  ['compact_5ftheta_5fsketch_5falloc_294',['compact_theta_sketch_alloc',['../classdatasketches_1_1compact__theta__sketch__alloc.html#a0eaea2a9894acb7b92f5c3f3224c618c',1,'datasketches::compact_theta_sketch_alloc::compact_theta_sketch_alloc(const Other &amp;other, bool ordered)'],['../classdatasketches_1_1compact__theta__sketch__alloc.html#a0f097d346334e1ad237b64133d0adf94',1,'datasketches::compact_theta_sketch_alloc::compact_theta_sketch_alloc(const compact_theta_sketch_alloc &amp;other) [...]
+  ['compact_5ftuple_5fsketch_295',['compact_tuple_sketch',['../classdatasketches_1_1compact__tuple__sketch.html#a519b06cb3b46caf95b967ce404246105',1,'datasketches::compact_tuple_sketch::compact_tuple_sketch(const theta_sketch_alloc&lt; AllocU64 &gt; &amp;other, const Summary &amp;summary, bool ordered=true)'],['../classdatasketches_1_1compact__tuple__sketch.html#a35916bac524f4ff4ff02739553bd4622',1,'datasketches::compact_tuple_sketch::compact_tuple_sketch(compact_tuple_sketch &amp;&amp;) [...]
+  ['compute_296',['compute',['../classdatasketches_1_1theta__a__not__b__alloc.html#a3ee0c8ec70c980979f84c68065da3d9b',1,'datasketches::theta_a_not_b_alloc::compute()'],['../classdatasketches_1_1array__tuple__a__not__b.html#a3ee0c8ec70c980979f84c68065da3d9b',1,'datasketches::array_tuple_a_not_b::compute()'],['../classdatasketches_1_1tuple__a__not__b.html#a3ee0c8ec70c980979f84c68065da3d9b',1,'datasketches::tuple_a_not_b::compute()']]],
+  ['count_5fmin_5fsketch_297',['count_min_sketch',['../classdatasketches_1_1count__min__sketch.html#a8dbb00b2bf984b434482e3da006e2238',1,'datasketches::count_min_sketch']]],
+  ['cpc_5finit_298',['cpc_init',['../namespacedatasketches.html#a3a7ac5efb6156547a8da91e937a06b07',1,'datasketches']]],
+  ['cpc_5fsketch_5falloc_299',['cpc_sketch_alloc',['../classdatasketches_1_1cpc__sketch__alloc.html#a39d6cd5eff1a9af78f58108ba5297b47',1,'datasketches::cpc_sketch_alloc']]],
+  ['cpc_5funion_5falloc_300',['cpc_union_alloc',['../classdatasketches_1_1cpc__union__alloc.html#a7d54d46a338588afe9fb768cb0e22082',1,'datasketches::cpc_union_alloc::cpc_union_alloc(uint8_t lg_k=cpc_constants::DEFAULT_LG_K, uint64_t seed=DEFAULT_SEED, const A &amp;allocator=A())'],['../classdatasketches_1_1cpc__union__alloc.html#a58b7403d28fc1784030af8671a979a16',1,'datasketches::cpc_union_alloc::cpc_union_alloc(const cpc_union_alloc&lt; A &gt; &amp;other)'],['../classdatasketches_1_1cpc [...]
 ];
diff --git a/docs/master/search/functions_3.js b/docs/master/search/functions_3.js
index 45c3e85..422c9a8 100644
--- a/docs/master/search/functions_3.js
+++ b/docs/master/search/functions_3.js
@@ -1,7 +1,7 @@
 var searchData=
 [
-  ['delta_300',['delta',['../classdatasketches_1_1kolmogorov__smirnov.html#a82e763cc1d3d2411cf94690abe08804d',1,'datasketches::kolmogorov_smirnov']]],
-  ['density_5fsketch_301',['density_sketch',['../classdatasketches_1_1density__sketch.html#a08daaa6a0d62a61b612a0dbbbd0b22d5',1,'datasketches::density_sketch']]],
-  ['deserialize_302',['deserialize',['../classdatasketches_1_1req__sketch.html#ae7e9fdcb69c547de681bb6f10ae5ef3e',1,'datasketches::req_sketch::deserialize(const void *bytes, size_t size, const SerDe &amp;sd=SerDe(), const Comparator &amp;comparator=Comparator(), const Allocator &amp;allocator=Allocator())'],['../classdatasketches_1_1req__sketch.html#a1936c2c39faaf2c19243949a57cec8e0',1,'datasketches::req_sketch::deserialize(std::istream &amp;is, const SerDe &amp;sd=SerDe(), const Compara [...]
-  ['dissimilarity_5ftest_303',['dissimilarity_test',['../classdatasketches_1_1jaccard__similarity__base.html#a5bc3426c328c625eb345a5c00c755004',1,'datasketches::jaccard_similarity_base']]]
+  ['delta_301',['delta',['../classdatasketches_1_1kolmogorov__smirnov.html#a82e763cc1d3d2411cf94690abe08804d',1,'datasketches::kolmogorov_smirnov']]],
+  ['density_5fsketch_302',['density_sketch',['../classdatasketches_1_1density__sketch.html#a08daaa6a0d62a61b612a0dbbbd0b22d5',1,'datasketches::density_sketch']]],
+  ['deserialize_303',['deserialize',['../classdatasketches_1_1req__sketch.html#ae7e9fdcb69c547de681bb6f10ae5ef3e',1,'datasketches::req_sketch::deserialize(const void *bytes, size_t size, const SerDe &amp;sd=SerDe(), const Comparator &amp;comparator=Comparator(), const Allocator &amp;allocator=Allocator())'],['../classdatasketches_1_1req__sketch.html#a1936c2c39faaf2c19243949a57cec8e0',1,'datasketches::req_sketch::deserialize(std::istream &amp;is, const SerDe &amp;sd=SerDe(), const Compara [...]
+  ['dissimilarity_5ftest_304',['dissimilarity_test',['../classdatasketches_1_1jaccard__similarity__base.html#a5bc3426c328c625eb345a5c00c755004',1,'datasketches::jaccard_similarity_base']]]
 ];
diff --git a/docs/master/search/functions_4.js b/docs/master/search/functions_4.js
index dd932ab..9dbee6a 100644
--- a/docs/master/search/functions_4.js
+++ b/docs/master/search/functions_4.js
@@ -1,12 +1,12 @@
 var searchData=
 [
-  ['ebpps_5fsketch_304',['ebpps_sketch',['../classdatasketches_1_1ebpps__sketch.html#a15f1a34587bbc0a93cf97dfc2cc6c205',1,'datasketches::ebpps_sketch']]],
-  ['end_305',['end',['../classdatasketches_1_1quantiles__sorted__view.html#ae11e60e117300685401961e36f196f7a',1,'datasketches::quantiles_sorted_view::end()'],['../classdatasketches_1_1req__sketch.html#ae11e60e117300685401961e36f196f7a',1,'datasketches::req_sketch::end()'],['../classdatasketches_1_1count__min__sketch.html#a2c2da097065929e9f586049b19039fc9',1,'datasketches::count_min_sketch::end()'],['../classdatasketches_1_1density__sketch.html#ae11e60e117300685401961e36f196f7a',1,'datask [...]
-  ['erf_306',['erf',['../classdatasketches_1_1bounds__binomial__proportions.html#ab0c083907bbd0cf5c9532f7c094ae6ef',1,'datasketches::bounds_binomial_proportions']]],
-  ['estimate_5fof_5fa_307',['estimate_of_a',['../classdatasketches_1_1bounds__on__ratios__in__sampled__sets.html#a27702b0df49741ee38a568cf0b84c9d3',1,'datasketches::bounds_on_ratios_in_sampled_sets']]],
-  ['estimate_5fof_5fb_308',['estimate_of_b',['../classdatasketches_1_1bounds__on__ratios__in__sampled__sets.html#a11c8f2c4698014d9b0a20e953d1ba96c',1,'datasketches::bounds_on_ratios_in_sampled_sets']]],
-  ['estimate_5fof_5fb_5fover_5fa_309',['estimate_of_b_over_a',['../classdatasketches_1_1bounds__on__ratios__in__theta__sketched__sets.html#aaf6f3e30b2d0b2f01f2f2196ac97a203',1,'datasketches::bounds_on_ratios_in_theta_sketched_sets']]],
-  ['estimate_5fsubset_5fsum_310',['estimate_subset_sum',['../classdatasketches_1_1var__opt__sketch.html#a71f1302dd93f895508f65893f96796fa',1,'datasketches::var_opt_sketch']]],
-  ['estimate_5funknown_5fp_311',['estimate_unknown_p',['../classdatasketches_1_1bounds__binomial__proportions.html#a04e345ceea6646f2789a4fc8868c470d',1,'datasketches::bounds_binomial_proportions']]],
-  ['exactly_5fequal_312',['exactly_equal',['../classdatasketches_1_1jaccard__similarity__base.html#a18c18c5c7351430540000bf360f523fc',1,'datasketches::jaccard_similarity_base']]]
+  ['ebpps_5fsketch_305',['ebpps_sketch',['../classdatasketches_1_1ebpps__sketch.html#a15f1a34587bbc0a93cf97dfc2cc6c205',1,'datasketches::ebpps_sketch']]],
+  ['end_306',['end',['../classdatasketches_1_1quantiles__sorted__view.html#ae11e60e117300685401961e36f196f7a',1,'datasketches::quantiles_sorted_view::end()'],['../classdatasketches_1_1req__sketch.html#ae11e60e117300685401961e36f196f7a',1,'datasketches::req_sketch::end()'],['../classdatasketches_1_1count__min__sketch.html#a2c2da097065929e9f586049b19039fc9',1,'datasketches::count_min_sketch::end()'],['../classdatasketches_1_1density__sketch.html#ae11e60e117300685401961e36f196f7a',1,'datask [...]
+  ['erf_307',['erf',['../classdatasketches_1_1bounds__binomial__proportions.html#ab0c083907bbd0cf5c9532f7c094ae6ef',1,'datasketches::bounds_binomial_proportions']]],
+  ['estimate_5fof_5fa_308',['estimate_of_a',['../classdatasketches_1_1bounds__on__ratios__in__sampled__sets.html#a27702b0df49741ee38a568cf0b84c9d3',1,'datasketches::bounds_on_ratios_in_sampled_sets']]],
+  ['estimate_5fof_5fb_309',['estimate_of_b',['../classdatasketches_1_1bounds__on__ratios__in__sampled__sets.html#a11c8f2c4698014d9b0a20e953d1ba96c',1,'datasketches::bounds_on_ratios_in_sampled_sets']]],
+  ['estimate_5fof_5fb_5fover_5fa_310',['estimate_of_b_over_a',['../classdatasketches_1_1bounds__on__ratios__in__theta__sketched__sets.html#aaf6f3e30b2d0b2f01f2f2196ac97a203',1,'datasketches::bounds_on_ratios_in_theta_sketched_sets']]],
+  ['estimate_5fsubset_5fsum_311',['estimate_subset_sum',['../classdatasketches_1_1var__opt__sketch.html#a71f1302dd93f895508f65893f96796fa',1,'datasketches::var_opt_sketch']]],
+  ['estimate_5funknown_5fp_312',['estimate_unknown_p',['../classdatasketches_1_1bounds__binomial__proportions.html#a04e345ceea6646f2789a4fc8868c470d',1,'datasketches::bounds_binomial_proportions']]],
+  ['exactly_5fequal_313',['exactly_equal',['../classdatasketches_1_1jaccard__similarity__base.html#a18c18c5c7351430540000bf360f523fc',1,'datasketches::jaccard_similarity_base']]]
 ];
diff --git a/docs/master/search/functions_5.js b/docs/master/search/functions_5.js
index d0c0703..5216e57 100644
--- a/docs/master/search/functions_5.js
+++ b/docs/master/search/functions_5.js
@@ -1,4 +1,5 @@
 var searchData=
 [
-  ['frequent_5fitems_5fsketch_313',['frequent_items_sketch',['../classdatasketches_1_1frequent__items__sketch.html#a225f700985a82a592a6fd7dc685d6044',1,'datasketches::frequent_items_sketch']]]
+  ['filter_314',['filter',['../classdatasketches_1_1update__tuple__sketch.html#aa37bb6b08780486ee17d59be552db371',1,'datasketches::update_tuple_sketch::filter()'],['../classdatasketches_1_1compact__tuple__sketch.html#a45b4c825a3545299d8bfeeadc70708c3',1,'datasketches::compact_tuple_sketch::filter(const Predicate &amp;predicate) const'],['../classdatasketches_1_1compact__tuple__sketch.html#a52e3b99cd0e081aaeffeb1569dcff39f',1,'datasketches::compact_tuple_sketch::filter(const Sketch &amp;s [...]
+  ['frequent_5fitems_5fsketch_315',['frequent_items_sketch',['../classdatasketches_1_1frequent__items__sketch.html#a225f700985a82a592a6fd7dc685d6044',1,'datasketches::frequent_items_sketch']]]
 ];
diff --git a/docs/master/search/functions_6.js b/docs/master/search/functions_6.js
index d91d99f..49f20e3 100644
--- a/docs/master/search/functions_6.js
+++ b/docs/master/search/functions_6.js
@@ -1,52 +1,52 @@
 var searchData=
 [
-  ['get_5fallocator_314',['get_allocator',['../classdatasketches_1_1count__min__sketch.html#a6e99c6263568d88f95ca01dc694f1051',1,'datasketches::count_min_sketch::get_allocator()'],['../classdatasketches_1_1cpc__sketch__alloc.html#a9d85cf47c4ecd0580ec623c42006dd1b',1,'datasketches::cpc_sketch_alloc::get_allocator()'],['../classdatasketches_1_1req__sketch.html#a9d85cf47c4ecd0580ec623c42006dd1b',1,'datasketches::req_sketch::get_allocator()'],['../classdatasketches_1_1density__sketch.html#a9 [...]
-  ['get_5fapriori_5ferror_315',['get_apriori_error',['../classdatasketches_1_1frequent__items__sketch.html#a6731cfa90aabc42089e1f449d3aa9a66',1,'datasketches::frequent_items_sketch']]],
-  ['get_5fc_316',['get_c',['../classdatasketches_1_1ebpps__sketch.html#ad9a95d52fa46cfa85b026802397b2154',1,'datasketches::ebpps_sketch']]],
-  ['get_5fcdf_317',['get_CDF',['../classdatasketches_1_1quantiles__sorted__view.html#a20a4d992209b2aa58614c998d143705c',1,'datasketches::quantiles_sorted_view::get_CDF()'],['../classdatasketches_1_1kll__sketch.html#a20a4d992209b2aa58614c998d143705c',1,'datasketches::kll_sketch::get_CDF()'],['../classdatasketches_1_1quantiles__sketch.html#a20a4d992209b2aa58614c998d143705c',1,'datasketches::quantiles_sketch::get_CDF()'],['../classdatasketches_1_1req__sketch.html#a20a4d992209b2aa58614c998d1 [...]
-  ['get_5fcomparator_318',['get_comparator',['../classdatasketches_1_1kll__sketch.html#a076f89979daa6471a3868cb97ea99b40',1,'datasketches::kll_sketch::get_comparator()'],['../classdatasketches_1_1quantiles__sketch.html#a076f89979daa6471a3868cb97ea99b40',1,'datasketches::quantiles_sketch::get_comparator()'],['../classdatasketches_1_1req__sketch.html#a076f89979daa6471a3868cb97ea99b40',1,'datasketches::req_sketch::get_comparator()']]],
-  ['get_5fcomposite_5festimate_319',['get_composite_estimate',['../classdatasketches_1_1hll__union__alloc.html#a1d6c3cd1e88796786ea124a7aed3800d',1,'datasketches::hll_union_alloc']]],
-  ['get_5fcumulative_5fweight_320',['get_cumulative_weight',['../classdatasketches_1_1ebpps__sketch.html#a8c7e54338adc46e68f7c53676bcecde8',1,'datasketches::ebpps_sketch']]],
-  ['get_5fdim_321',['get_dim',['../classdatasketches_1_1density__sketch.html#a57bff8d89cd2bde903090aa30208f610',1,'datasketches::density_sketch']]],
-  ['get_5fepsilon_322',['get_epsilon',['../classdatasketches_1_1frequent__items__sketch.html#a7d758ee3fb67c30c547628bd8cc2d266',1,'datasketches::frequent_items_sketch::get_epsilon() const'],['../classdatasketches_1_1frequent__items__sketch.html#a88b29ea8d3966b76de96e183789f7f3e',1,'datasketches::frequent_items_sketch::get_epsilon(uint8_t lg_max_map_size)']]],
-  ['get_5festimate_323',['get_estimate',['../classdatasketches_1_1count__min__sketch.html#a8c7a3314a5665e9d244acc5c1b5c43d6',1,'datasketches::count_min_sketch::get_estimate(uint64_t item) const'],['../classdatasketches_1_1count__min__sketch.html#af6b3c87aab0c7a3c2ee213fbc7aa48e3',1,'datasketches::count_min_sketch::get_estimate(const void *item, size_t size) const'],['../classdatasketches_1_1count__min__sketch.html#ae77ba09c468a102946bbc2f0a0a5d7bf',1,'datasketches::count_min_sketch::get_ [...]
-  ['get_5festimate_5fof_5fb_5fover_5fa_324',['get_estimate_of_b_over_a',['../classdatasketches_1_1bounds__on__ratios__in__sampled__sets.html#a0063345d4a1d4c7f7ae90fa6271e919f',1,'datasketches::bounds_on_ratios_in_sampled_sets']]],
-  ['get_5ffrequent_5fitems_325',['get_frequent_items',['../classdatasketches_1_1frequent__items__sketch.html#a5412230c8878e0cc1be2c6940512f508',1,'datasketches::frequent_items_sketch::get_frequent_items(frequent_items_error_type err_type) const'],['../classdatasketches_1_1frequent__items__sketch.html#a9b0618f5181938adc5bd00b9f40516b9',1,'datasketches::frequent_items_sketch::get_frequent_items(frequent_items_error_type err_type, W threshold) const']]],
-  ['get_5fitem_326',['get_item',['../classdatasketches_1_1frequent__items__sketch_1_1row.html#af171de2811f050046877452beb48144e',1,'datasketches::frequent_items_sketch::row']]],
-  ['get_5fk_327',['get_k',['../classdatasketches_1_1var__opt__sketch.html#af561f5cd76ff61773713c627bc53b0a2',1,'datasketches::var_opt_sketch::get_k()'],['../classdatasketches_1_1req__sketch.html#a59f4c39b9f2e762e8e3445ef89e1d264',1,'datasketches::req_sketch::get_k()'],['../classdatasketches_1_1density__sketch.html#a59f4c39b9f2e762e8e3445ef89e1d264',1,'datasketches::density_sketch::get_k()'],['../classdatasketches_1_1ebpps__sketch.html#af561f5cd76ff61773713c627bc53b0a2',1,'datasketches::e [...]
-  ['get_5flg_5fconfig_5fk_328',['get_lg_config_k',['../classdatasketches_1_1hll__union__alloc.html#aacaad8ccad500578a2cae9bef58ad436',1,'datasketches::hll_union_alloc']]],
-  ['get_5flg_5fk_329',['get_lg_k',['../classdatasketches_1_1cpc__sketch__alloc.html#a8f8b2691781d682411a6de23996a8be2',1,'datasketches::cpc_sketch_alloc::get_lg_k()'],['../classdatasketches_1_1update__theta__sketch__alloc.html#a8f8b2691781d682411a6de23996a8be2',1,'datasketches::update_theta_sketch_alloc::get_lg_k()'],['../classdatasketches_1_1update__tuple__sketch.html#a8f8b2691781d682411a6de23996a8be2',1,'datasketches::update_tuple_sketch::get_lg_k()']]],
-  ['get_5flower_5fbound_330',['get_lower_bound',['../classdatasketches_1_1tuple__sketch.html#a2e5c990494331d901c3b38cd4eb316e6',1,'datasketches::tuple_sketch::get_lower_bound()'],['../classdatasketches_1_1count__min__sketch.html#a4170344c96a738e9c14933e6d40c2c5f',1,'datasketches::count_min_sketch::get_lower_bound(const std::string &amp;item) const'],['../classdatasketches_1_1count__min__sketch.html#ab131655963c3d3a786ada936f67f5cb7',1,'datasketches::count_min_sketch::get_lower_bound(uint [...]
-  ['get_5fmax_5fitem_331',['get_max_item',['../classdatasketches_1_1kll__sketch.html#a4cdb10e4f2949d55d29421c6e381a300',1,'datasketches::kll_sketch::get_max_item()'],['../classdatasketches_1_1quantiles__sketch.html#a687ed2123bdc7e67fbda0c081e3acf21',1,'datasketches::quantiles_sketch::get_max_item()'],['../classdatasketches_1_1req__sketch.html#a687ed2123bdc7e67fbda0c081e3acf21',1,'datasketches::req_sketch::get_max_item()']]],
-  ['get_5fmax_5fserialized_5fsize_5fbytes_332',['get_max_serialized_size_bytes',['../classdatasketches_1_1kll__sketch.html#a02cd0e67339d17d0b48f6f43bc26d381',1,'datasketches::kll_sketch::get_max_serialized_size_bytes()'],['../classdatasketches_1_1compact__theta__sketch__alloc.html#a7fcd4a0f58526cadbf7557c5c7f540dc',1,'datasketches::compact_theta_sketch_alloc::get_max_serialized_size_bytes()'],['../classdatasketches_1_1kll__sketch.html#adb2232570b4977756cddd02b4b6b845b',1,'datasketches::k [...]
-  ['get_5fmaximum_5ferror_333',['get_maximum_error',['../classdatasketches_1_1frequent__items__sketch.html#aa6a8295801139cde1c0136867cf1f188',1,'datasketches::frequent_items_sketch']]],
-  ['get_5fmin_5fitem_334',['get_min_item',['../classdatasketches_1_1kll__sketch.html#aa3f3769ba3fae6fa0e8a0bd65fef5422',1,'datasketches::kll_sketch::get_min_item()'],['../classdatasketches_1_1quantiles__sketch.html#af2fa890815acf3a1418ea8eee466075c',1,'datasketches::quantiles_sketch::get_min_item()'],['../classdatasketches_1_1req__sketch.html#af2fa890815acf3a1418ea8eee466075c',1,'datasketches::req_sketch::get_min_item()']]],
-  ['get_5fn_335',['get_n',['../classdatasketches_1_1kll__sketch.html#af857be9469a7565252626f27e1f9d74d',1,'datasketches::kll_sketch::get_n()'],['../classdatasketches_1_1quantiles__sketch.html#af857be9469a7565252626f27e1f9d74d',1,'datasketches::quantiles_sketch::get_n()'],['../classdatasketches_1_1ebpps__sketch.html#af857be9469a7565252626f27e1f9d74d',1,'datasketches::ebpps_sketch::get_n()'],['../classdatasketches_1_1var__opt__sketch.html#af857be9469a7565252626f27e1f9d74d',1,'datasketches: [...]
-  ['get_5fnormalized_5frank_5ferror_336',['get_normalized_rank_error',['../classdatasketches_1_1kll__sketch.html#ae08ba9502b0403ad4448d649ce29b850',1,'datasketches::kll_sketch::get_normalized_rank_error()'],['../classdatasketches_1_1quantiles__sketch.html#ae957f61cebc92305fc758dcfad797a41',1,'datasketches::quantiles_sketch::get_normalized_rank_error(uint16_t k, bool is_pmf)'],['../classdatasketches_1_1quantiles__sketch.html#a3efad6c7f1aa59649203cc9f70cf36c9',1,'datasketches::quantiles_sk [...]
-  ['get_5fnum_5factive_5fitems_337',['get_num_active_items',['../classdatasketches_1_1frequent__items__sketch.html#af72439eee5521a156379f0fbd869cb12',1,'datasketches::frequent_items_sketch']]],
-  ['get_5fnum_5fbuckets_338',['get_num_buckets',['../classdatasketches_1_1count__min__sketch.html#a56843138b87eb57c033f4ad26d8eb146',1,'datasketches::count_min_sketch']]],
-  ['get_5fnum_5fhashes_339',['get_num_hashes',['../classdatasketches_1_1count__min__sketch.html#a6bd30e22135f7abd37d5b2b45d577d0c',1,'datasketches::count_min_sketch']]],
-  ['get_5fnum_5fretained_340',['get_num_retained',['../classdatasketches_1_1req__sketch.html#a31fa76458d81a17dbebfcb828e531f14',1,'datasketches::req_sketch::get_num_retained()'],['../classdatasketches_1_1density__sketch.html#a31fa76458d81a17dbebfcb828e531f14',1,'datasketches::density_sketch::get_num_retained()'],['../classdatasketches_1_1update__theta__sketch__alloc.html#a31fa76458d81a17dbebfcb828e531f14',1,'datasketches::update_theta_sketch_alloc::get_num_retained()'],['../classdatasket [...]
-  ['get_5fnum_5fsamples_341',['get_num_samples',['../classdatasketches_1_1var__opt__sketch.html#ac481918ec96d79b27813d32bcc2a247d',1,'datasketches::var_opt_sketch']]],
-  ['get_5fnum_5fvalues_342',['get_num_values',['../classdatasketches_1_1update__array__tuple__sketch.html#a005404841e22f08ab76ce513d9b39bd1',1,'datasketches::update_array_tuple_sketch::get_num_values()'],['../classdatasketches_1_1compact__array__tuple__sketch.html#a005404841e22f08ab76ce513d9b39bd1',1,'datasketches::compact_array_tuple_sketch::get_num_values()']]],
-  ['get_5fpmf_343',['get_PMF',['../classdatasketches_1_1quantiles__sorted__view.html#a44226b755e73883ea2c128876e35b1d1',1,'datasketches::quantiles_sorted_view::get_PMF()'],['../classdatasketches_1_1kll__sketch.html#a44226b755e73883ea2c128876e35b1d1',1,'datasketches::kll_sketch::get_PMF()'],['../classdatasketches_1_1quantiles__sketch.html#a44226b755e73883ea2c128876e35b1d1',1,'datasketches::quantiles_sketch::get_PMF()'],['../classdatasketches_1_1req__sketch.html#a44226b755e73883ea2c128876e [...]
-  ['get_5fquantile_344',['get_quantile',['../classdatasketches_1_1quantiles__sorted__view.html#ac02fcfb6e706148458a2ef89390223a9',1,'datasketches::quantiles_sorted_view::get_quantile()'],['../classdatasketches_1_1req__sketch.html#ac02fcfb6e706148458a2ef89390223a9',1,'datasketches::req_sketch::get_quantile()'],['../classdatasketches_1_1quantiles__sketch.html#ac02fcfb6e706148458a2ef89390223a9',1,'datasketches::quantiles_sketch::get_quantile()'],['../classdatasketches_1_1kll__sketch.html#ac [...]
-  ['get_5frank_345',['get_rank',['../classdatasketches_1_1quantiles__sorted__view.html#a849dfa06c183fd2fdfe4fe4a7e29d918',1,'datasketches::quantiles_sorted_view::get_rank()'],['../classdatasketches_1_1kll__sketch.html#a849dfa06c183fd2fdfe4fe4a7e29d918',1,'datasketches::kll_sketch::get_rank()'],['../classdatasketches_1_1quantiles__sketch.html#a849dfa06c183fd2fdfe4fe4a7e29d918',1,'datasketches::quantiles_sketch::get_rank()'],['../classdatasketches_1_1req__sketch.html#a849dfa06c183fd2fdfe4f [...]
-  ['get_5frank_5flower_5fbound_346',['get_rank_lower_bound',['../classdatasketches_1_1req__sketch.html#a978630658d411c9c79fffa5909f5c8d0',1,'datasketches::req_sketch']]],
-  ['get_5frank_5fupper_5fbound_347',['get_rank_upper_bound',['../classdatasketches_1_1req__sketch.html#a750349aa79dff6db2d13857ab50248bb',1,'datasketches::req_sketch']]],
-  ['get_5frel_5ferr_348',['get_rel_err',['../classdatasketches_1_1hll__union__alloc.html#af1abb48488246839a8732c9f20e3f7db',1,'datasketches::hll_union_alloc']]],
-  ['get_5frelative_5ferror_349',['get_relative_error',['../classdatasketches_1_1count__min__sketch.html#a5356c92bb629951dcb748e51677a3886',1,'datasketches::count_min_sketch']]],
-  ['get_5fresult_350',['get_result',['../classdatasketches_1_1tuple__union.html#a037835e8f8e6b5233fa0f0996bba6a99',1,'datasketches::tuple_union::get_result()'],['../classdatasketches_1_1var__opt__union.html#a28e630639a11dc71d7f72c4e0518b2fe',1,'datasketches::var_opt_union::get_result()'],['../classdatasketches_1_1ebpps__sketch.html#af55091df8eaaa2a9dc834f1e1d5340e7',1,'datasketches::ebpps_sketch::get_result()'],['../classdatasketches_1_1tuple__intersection.html#a037835e8f8e6b5233fa0f0996 [...]
-  ['get_5frf_351',['get_rf',['../classdatasketches_1_1update__theta__sketch__alloc.html#a36c928e86272441d56f794cc596fd598',1,'datasketches::update_theta_sketch_alloc::get_rf()'],['../classdatasketches_1_1update__tuple__sketch.html#a36c928e86272441d56f794cc596fd598',1,'datasketches::update_tuple_sketch::get_rf()']]],
-  ['get_5frse_352',['get_RSE',['../classdatasketches_1_1req__sketch.html#a899bef2c5e0ea489ed4b023d2b9900ee',1,'datasketches::req_sketch']]],
-  ['get_5fseed_353',['get_seed',['../classdatasketches_1_1count__min__sketch.html#a9004656ac2e34c35d8a7a0773285385a',1,'datasketches::count_min_sketch']]],
-  ['get_5fseed_5fhash_354',['get_seed_hash',['../classdatasketches_1_1compact__tuple__sketch.html#a6f69b50bc13da11d255d0e583e2376ba',1,'datasketches::compact_tuple_sketch::get_seed_hash()'],['../classdatasketches_1_1update__tuple__sketch.html#a6f69b50bc13da11d255d0e583e2376ba',1,'datasketches::update_tuple_sketch::get_seed_hash()'],['../classdatasketches_1_1tuple__sketch.html#ab76bd6487f5a75a356083bfe163a7079',1,'datasketches::tuple_sketch::get_seed_hash()'],['../classdatasketches_1_1com [...]
-  ['get_5fserialized_5fsize_5fbytes_355',['get_serialized_size_bytes',['../classdatasketches_1_1kll__sketch.html#ad9a5259d93d148b5c2050d68e7788716',1,'datasketches::kll_sketch::get_serialized_size_bytes()'],['../classdatasketches_1_1req__sketch.html#ad9a5259d93d148b5c2050d68e7788716',1,'datasketches::req_sketch::get_serialized_size_bytes(const SerDe &amp;sd=SerDe()) const'],['../classdatasketches_1_1req__sketch.html#ad9a5259d93d148b5c2050d68e7788716',1,'datasketches::req_sketch::get_seri [...]
-  ['get_5fserialized_5fsize_5fsummaries_5fbytes_356',['get_serialized_size_summaries_bytes',['../classdatasketches_1_1compact__tuple__sketch.html#aebe0bd9f97ef071d15ae25b9c3418e65',1,'datasketches::compact_tuple_sketch::get_serialized_size_summaries_bytes(const SerDe &amp;sd) const'],['../classdatasketches_1_1compact__tuple__sketch.html#aebe0bd9f97ef071d15ae25b9c3418e65',1,'datasketches::compact_tuple_sketch::get_serialized_size_summaries_bytes(const SerDe &amp;sd) const']]],
-  ['get_5fsorted_5fview_357',['get_sorted_view',['../classdatasketches_1_1kll__sketch.html#a0a9c9c240dd591017fd6a80e147b7c00',1,'datasketches::kll_sketch::get_sorted_view()'],['../classdatasketches_1_1quantiles__sketch.html#a0a9c9c240dd591017fd6a80e147b7c00',1,'datasketches::quantiles_sketch::get_sorted_view()'],['../classdatasketches_1_1req__sketch.html#a0a9c9c240dd591017fd6a80e147b7c00',1,'datasketches::req_sketch::get_sorted_view()']]],
-  ['get_5ftarget_5ftype_358',['get_target_type',['../classdatasketches_1_1hll__union__alloc.html#a0387c920d914fe59fd3c4c53a9a99093',1,'datasketches::hll_union_alloc']]],
-  ['get_5ftheta_359',['get_theta',['../classdatasketches_1_1tuple__sketch.html#aa784d7f8ac02e9c4e26e7fe9f177a7aa',1,'datasketches::tuple_sketch::get_theta()'],['../classdatasketches_1_1base__theta__sketch__alloc.html#aa784d7f8ac02e9c4e26e7fe9f177a7aa',1,'datasketches::base_theta_sketch_alloc::get_theta() const']]],
-  ['get_5ftheta64_360',['get_theta64',['../classdatasketches_1_1base__theta__sketch__alloc.html#aef2e47ecd9c33fc2a6a9e905a2a0516a',1,'datasketches::base_theta_sketch_alloc::get_theta64()'],['../classdatasketches_1_1update__theta__sketch__alloc.html#a2b072fe55377eb51a6ee477827fc3b95',1,'datasketches::update_theta_sketch_alloc::get_theta64()'],['../classdatasketches_1_1compact__theta__sketch__alloc.html#a2b072fe55377eb51a6ee477827fc3b95',1,'datasketches::compact_theta_sketch_alloc::get_the [...]
-  ['get_5ftotal_5fweight_361',['get_total_weight',['../classdatasketches_1_1frequent__items__sketch.html#a68bf5133e42650cdfe20a7916037ab4b',1,'datasketches::frequent_items_sketch::get_total_weight()'],['../classdatasketches_1_1count__min__sketch.html#a68bf5133e42650cdfe20a7916037ab4b',1,'datasketches::count_min_sketch::get_total_weight() const']]],
-  ['get_5fupper_5fbound_362',['get_upper_bound',['../classdatasketches_1_1count__min__sketch.html#af378c05bd5303198f7dfc182c725df83',1,'datasketches::count_min_sketch::get_upper_bound(const std::string &amp;item) const'],['../classdatasketches_1_1count__min__sketch.html#ab8f47f2378d8a057d82e82736ff37f3c',1,'datasketches::count_min_sketch::get_upper_bound(uint64_t item) const'],['../classdatasketches_1_1count__min__sketch.html#a6b7ba50a6af6e76423cc65947194d14c',1,'datasketches::count_min_ [...]
+  ['get_5fallocator_316',['get_allocator',['../classdatasketches_1_1count__min__sketch.html#a6e99c6263568d88f95ca01dc694f1051',1,'datasketches::count_min_sketch::get_allocator()'],['../classdatasketches_1_1cpc__sketch__alloc.html#a9d85cf47c4ecd0580ec623c42006dd1b',1,'datasketches::cpc_sketch_alloc::get_allocator()'],['../classdatasketches_1_1req__sketch.html#a9d85cf47c4ecd0580ec623c42006dd1b',1,'datasketches::req_sketch::get_allocator()'],['../classdatasketches_1_1density__sketch.html#a9 [...]
+  ['get_5fapriori_5ferror_317',['get_apriori_error',['../classdatasketches_1_1frequent__items__sketch.html#a6731cfa90aabc42089e1f449d3aa9a66',1,'datasketches::frequent_items_sketch']]],
+  ['get_5fc_318',['get_c',['../classdatasketches_1_1ebpps__sketch.html#ad9a95d52fa46cfa85b026802397b2154',1,'datasketches::ebpps_sketch']]],
+  ['get_5fcdf_319',['get_CDF',['../classdatasketches_1_1quantiles__sorted__view.html#a20a4d992209b2aa58614c998d143705c',1,'datasketches::quantiles_sorted_view::get_CDF()'],['../classdatasketches_1_1kll__sketch.html#a20a4d992209b2aa58614c998d143705c',1,'datasketches::kll_sketch::get_CDF()'],['../classdatasketches_1_1quantiles__sketch.html#a20a4d992209b2aa58614c998d143705c',1,'datasketches::quantiles_sketch::get_CDF()'],['../classdatasketches_1_1req__sketch.html#a20a4d992209b2aa58614c998d1 [...]
+  ['get_5fcomparator_320',['get_comparator',['../classdatasketches_1_1kll__sketch.html#a076f89979daa6471a3868cb97ea99b40',1,'datasketches::kll_sketch::get_comparator()'],['../classdatasketches_1_1quantiles__sketch.html#a076f89979daa6471a3868cb97ea99b40',1,'datasketches::quantiles_sketch::get_comparator()'],['../classdatasketches_1_1req__sketch.html#a076f89979daa6471a3868cb97ea99b40',1,'datasketches::req_sketch::get_comparator()']]],
+  ['get_5fcomposite_5festimate_321',['get_composite_estimate',['../classdatasketches_1_1hll__union__alloc.html#a1d6c3cd1e88796786ea124a7aed3800d',1,'datasketches::hll_union_alloc']]],
+  ['get_5fcumulative_5fweight_322',['get_cumulative_weight',['../classdatasketches_1_1ebpps__sketch.html#a8c7e54338adc46e68f7c53676bcecde8',1,'datasketches::ebpps_sketch']]],
+  ['get_5fdim_323',['get_dim',['../classdatasketches_1_1density__sketch.html#a57bff8d89cd2bde903090aa30208f610',1,'datasketches::density_sketch']]],
+  ['get_5fepsilon_324',['get_epsilon',['../classdatasketches_1_1frequent__items__sketch.html#a7d758ee3fb67c30c547628bd8cc2d266',1,'datasketches::frequent_items_sketch::get_epsilon() const'],['../classdatasketches_1_1frequent__items__sketch.html#a88b29ea8d3966b76de96e183789f7f3e',1,'datasketches::frequent_items_sketch::get_epsilon(uint8_t lg_max_map_size)']]],
+  ['get_5festimate_325',['get_estimate',['../classdatasketches_1_1count__min__sketch.html#a8c7a3314a5665e9d244acc5c1b5c43d6',1,'datasketches::count_min_sketch::get_estimate(uint64_t item) const'],['../classdatasketches_1_1count__min__sketch.html#af6b3c87aab0c7a3c2ee213fbc7aa48e3',1,'datasketches::count_min_sketch::get_estimate(const void *item, size_t size) const'],['../classdatasketches_1_1count__min__sketch.html#ae77ba09c468a102946bbc2f0a0a5d7bf',1,'datasketches::count_min_sketch::get_ [...]
+  ['get_5festimate_5fof_5fb_5fover_5fa_326',['get_estimate_of_b_over_a',['../classdatasketches_1_1bounds__on__ratios__in__sampled__sets.html#a0063345d4a1d4c7f7ae90fa6271e919f',1,'datasketches::bounds_on_ratios_in_sampled_sets']]],
+  ['get_5ffrequent_5fitems_327',['get_frequent_items',['../classdatasketches_1_1frequent__items__sketch.html#a5412230c8878e0cc1be2c6940512f508',1,'datasketches::frequent_items_sketch::get_frequent_items(frequent_items_error_type err_type) const'],['../classdatasketches_1_1frequent__items__sketch.html#a9b0618f5181938adc5bd00b9f40516b9',1,'datasketches::frequent_items_sketch::get_frequent_items(frequent_items_error_type err_type, W threshold) const']]],
+  ['get_5fitem_328',['get_item',['../classdatasketches_1_1frequent__items__sketch_1_1row.html#af171de2811f050046877452beb48144e',1,'datasketches::frequent_items_sketch::row']]],
+  ['get_5fk_329',['get_k',['../classdatasketches_1_1var__opt__sketch.html#af561f5cd76ff61773713c627bc53b0a2',1,'datasketches::var_opt_sketch::get_k()'],['../classdatasketches_1_1req__sketch.html#a59f4c39b9f2e762e8e3445ef89e1d264',1,'datasketches::req_sketch::get_k()'],['../classdatasketches_1_1density__sketch.html#a59f4c39b9f2e762e8e3445ef89e1d264',1,'datasketches::density_sketch::get_k()'],['../classdatasketches_1_1ebpps__sketch.html#af561f5cd76ff61773713c627bc53b0a2',1,'datasketches::e [...]
+  ['get_5flg_5fconfig_5fk_330',['get_lg_config_k',['../classdatasketches_1_1hll__union__alloc.html#aacaad8ccad500578a2cae9bef58ad436',1,'datasketches::hll_union_alloc']]],
+  ['get_5flg_5fk_331',['get_lg_k',['../classdatasketches_1_1cpc__sketch__alloc.html#a8f8b2691781d682411a6de23996a8be2',1,'datasketches::cpc_sketch_alloc::get_lg_k()'],['../classdatasketches_1_1update__theta__sketch__alloc.html#a8f8b2691781d682411a6de23996a8be2',1,'datasketches::update_theta_sketch_alloc::get_lg_k()'],['../classdatasketches_1_1update__tuple__sketch.html#a8f8b2691781d682411a6de23996a8be2',1,'datasketches::update_tuple_sketch::get_lg_k()']]],
+  ['get_5flower_5fbound_332',['get_lower_bound',['../classdatasketches_1_1tuple__sketch.html#a2e5c990494331d901c3b38cd4eb316e6',1,'datasketches::tuple_sketch::get_lower_bound()'],['../classdatasketches_1_1count__min__sketch.html#a4170344c96a738e9c14933e6d40c2c5f',1,'datasketches::count_min_sketch::get_lower_bound(const std::string &amp;item) const'],['../classdatasketches_1_1count__min__sketch.html#ab131655963c3d3a786ada936f67f5cb7',1,'datasketches::count_min_sketch::get_lower_bound(uint [...]
+  ['get_5fmax_5fitem_333',['get_max_item',['../classdatasketches_1_1kll__sketch.html#a4cdb10e4f2949d55d29421c6e381a300',1,'datasketches::kll_sketch::get_max_item()'],['../classdatasketches_1_1quantiles__sketch.html#a687ed2123bdc7e67fbda0c081e3acf21',1,'datasketches::quantiles_sketch::get_max_item()'],['../classdatasketches_1_1req__sketch.html#a687ed2123bdc7e67fbda0c081e3acf21',1,'datasketches::req_sketch::get_max_item()']]],
+  ['get_5fmax_5fserialized_5fsize_5fbytes_334',['get_max_serialized_size_bytes',['../classdatasketches_1_1kll__sketch.html#a02cd0e67339d17d0b48f6f43bc26d381',1,'datasketches::kll_sketch::get_max_serialized_size_bytes()'],['../classdatasketches_1_1compact__theta__sketch__alloc.html#a7fcd4a0f58526cadbf7557c5c7f540dc',1,'datasketches::compact_theta_sketch_alloc::get_max_serialized_size_bytes()'],['../classdatasketches_1_1kll__sketch.html#adb2232570b4977756cddd02b4b6b845b',1,'datasketches::k [...]
+  ['get_5fmaximum_5ferror_335',['get_maximum_error',['../classdatasketches_1_1frequent__items__sketch.html#aa6a8295801139cde1c0136867cf1f188',1,'datasketches::frequent_items_sketch']]],
+  ['get_5fmin_5fitem_336',['get_min_item',['../classdatasketches_1_1kll__sketch.html#aa3f3769ba3fae6fa0e8a0bd65fef5422',1,'datasketches::kll_sketch::get_min_item()'],['../classdatasketches_1_1quantiles__sketch.html#af2fa890815acf3a1418ea8eee466075c',1,'datasketches::quantiles_sketch::get_min_item()'],['../classdatasketches_1_1req__sketch.html#af2fa890815acf3a1418ea8eee466075c',1,'datasketches::req_sketch::get_min_item()']]],
+  ['get_5fn_337',['get_n',['../classdatasketches_1_1kll__sketch.html#af857be9469a7565252626f27e1f9d74d',1,'datasketches::kll_sketch::get_n()'],['../classdatasketches_1_1quantiles__sketch.html#af857be9469a7565252626f27e1f9d74d',1,'datasketches::quantiles_sketch::get_n()'],['../classdatasketches_1_1ebpps__sketch.html#af857be9469a7565252626f27e1f9d74d',1,'datasketches::ebpps_sketch::get_n()'],['../classdatasketches_1_1var__opt__sketch.html#af857be9469a7565252626f27e1f9d74d',1,'datasketches: [...]
+  ['get_5fnormalized_5frank_5ferror_338',['get_normalized_rank_error',['../classdatasketches_1_1kll__sketch.html#ae08ba9502b0403ad4448d649ce29b850',1,'datasketches::kll_sketch::get_normalized_rank_error()'],['../classdatasketches_1_1quantiles__sketch.html#ae957f61cebc92305fc758dcfad797a41',1,'datasketches::quantiles_sketch::get_normalized_rank_error(uint16_t k, bool is_pmf)'],['../classdatasketches_1_1quantiles__sketch.html#a3efad6c7f1aa59649203cc9f70cf36c9',1,'datasketches::quantiles_sk [...]
+  ['get_5fnum_5factive_5fitems_339',['get_num_active_items',['../classdatasketches_1_1frequent__items__sketch.html#af72439eee5521a156379f0fbd869cb12',1,'datasketches::frequent_items_sketch']]],
+  ['get_5fnum_5fbuckets_340',['get_num_buckets',['../classdatasketches_1_1count__min__sketch.html#a56843138b87eb57c033f4ad26d8eb146',1,'datasketches::count_min_sketch']]],
+  ['get_5fnum_5fhashes_341',['get_num_hashes',['../classdatasketches_1_1count__min__sketch.html#a6bd30e22135f7abd37d5b2b45d577d0c',1,'datasketches::count_min_sketch']]],
+  ['get_5fnum_5fretained_342',['get_num_retained',['../classdatasketches_1_1req__sketch.html#a31fa76458d81a17dbebfcb828e531f14',1,'datasketches::req_sketch::get_num_retained()'],['../classdatasketches_1_1density__sketch.html#a31fa76458d81a17dbebfcb828e531f14',1,'datasketches::density_sketch::get_num_retained()'],['../classdatasketches_1_1update__theta__sketch__alloc.html#a31fa76458d81a17dbebfcb828e531f14',1,'datasketches::update_theta_sketch_alloc::get_num_retained()'],['../classdatasket [...]
+  ['get_5fnum_5fsamples_343',['get_num_samples',['../classdatasketches_1_1var__opt__sketch.html#ac481918ec96d79b27813d32bcc2a247d',1,'datasketches::var_opt_sketch']]],
+  ['get_5fnum_5fvalues_344',['get_num_values',['../classdatasketches_1_1update__array__tuple__sketch.html#a005404841e22f08ab76ce513d9b39bd1',1,'datasketches::update_array_tuple_sketch::get_num_values()'],['../classdatasketches_1_1compact__array__tuple__sketch.html#a005404841e22f08ab76ce513d9b39bd1',1,'datasketches::compact_array_tuple_sketch::get_num_values()']]],
+  ['get_5fpmf_345',['get_PMF',['../classdatasketches_1_1quantiles__sorted__view.html#a44226b755e73883ea2c128876e35b1d1',1,'datasketches::quantiles_sorted_view::get_PMF()'],['../classdatasketches_1_1kll__sketch.html#a44226b755e73883ea2c128876e35b1d1',1,'datasketches::kll_sketch::get_PMF()'],['../classdatasketches_1_1quantiles__sketch.html#a44226b755e73883ea2c128876e35b1d1',1,'datasketches::quantiles_sketch::get_PMF()'],['../classdatasketches_1_1req__sketch.html#a44226b755e73883ea2c128876e [...]
+  ['get_5fquantile_346',['get_quantile',['../classdatasketches_1_1quantiles__sorted__view.html#ac02fcfb6e706148458a2ef89390223a9',1,'datasketches::quantiles_sorted_view::get_quantile()'],['../classdatasketches_1_1req__sketch.html#ac02fcfb6e706148458a2ef89390223a9',1,'datasketches::req_sketch::get_quantile()'],['../classdatasketches_1_1quantiles__sketch.html#ac02fcfb6e706148458a2ef89390223a9',1,'datasketches::quantiles_sketch::get_quantile()'],['../classdatasketches_1_1kll__sketch.html#ac [...]
+  ['get_5frank_347',['get_rank',['../classdatasketches_1_1quantiles__sorted__view.html#a849dfa06c183fd2fdfe4fe4a7e29d918',1,'datasketches::quantiles_sorted_view::get_rank()'],['../classdatasketches_1_1kll__sketch.html#a849dfa06c183fd2fdfe4fe4a7e29d918',1,'datasketches::kll_sketch::get_rank()'],['../classdatasketches_1_1quantiles__sketch.html#a849dfa06c183fd2fdfe4fe4a7e29d918',1,'datasketches::quantiles_sketch::get_rank()'],['../classdatasketches_1_1req__sketch.html#a849dfa06c183fd2fdfe4f [...]
+  ['get_5frank_5flower_5fbound_348',['get_rank_lower_bound',['../classdatasketches_1_1req__sketch.html#a978630658d411c9c79fffa5909f5c8d0',1,'datasketches::req_sketch']]],
+  ['get_5frank_5fupper_5fbound_349',['get_rank_upper_bound',['../classdatasketches_1_1req__sketch.html#a750349aa79dff6db2d13857ab50248bb',1,'datasketches::req_sketch']]],
+  ['get_5frel_5ferr_350',['get_rel_err',['../classdatasketches_1_1hll__union__alloc.html#af1abb48488246839a8732c9f20e3f7db',1,'datasketches::hll_union_alloc']]],
+  ['get_5frelative_5ferror_351',['get_relative_error',['../classdatasketches_1_1count__min__sketch.html#a5356c92bb629951dcb748e51677a3886',1,'datasketches::count_min_sketch']]],
+  ['get_5fresult_352',['get_result',['../classdatasketches_1_1tuple__union.html#a037835e8f8e6b5233fa0f0996bba6a99',1,'datasketches::tuple_union::get_result()'],['../classdatasketches_1_1var__opt__union.html#a28e630639a11dc71d7f72c4e0518b2fe',1,'datasketches::var_opt_union::get_result()'],['../classdatasketches_1_1ebpps__sketch.html#af55091df8eaaa2a9dc834f1e1d5340e7',1,'datasketches::ebpps_sketch::get_result()'],['../classdatasketches_1_1tuple__intersection.html#a037835e8f8e6b5233fa0f0996 [...]
+  ['get_5frf_353',['get_rf',['../classdatasketches_1_1update__theta__sketch__alloc.html#a36c928e86272441d56f794cc596fd598',1,'datasketches::update_theta_sketch_alloc::get_rf()'],['../classdatasketches_1_1update__tuple__sketch.html#a36c928e86272441d56f794cc596fd598',1,'datasketches::update_tuple_sketch::get_rf()']]],
+  ['get_5frse_354',['get_RSE',['../classdatasketches_1_1req__sketch.html#a899bef2c5e0ea489ed4b023d2b9900ee',1,'datasketches::req_sketch']]],
+  ['get_5fseed_355',['get_seed',['../classdatasketches_1_1count__min__sketch.html#a9004656ac2e34c35d8a7a0773285385a',1,'datasketches::count_min_sketch']]],
+  ['get_5fseed_5fhash_356',['get_seed_hash',['../classdatasketches_1_1compact__tuple__sketch.html#a6f69b50bc13da11d255d0e583e2376ba',1,'datasketches::compact_tuple_sketch::get_seed_hash()'],['../classdatasketches_1_1update__tuple__sketch.html#a6f69b50bc13da11d255d0e583e2376ba',1,'datasketches::update_tuple_sketch::get_seed_hash()'],['../classdatasketches_1_1tuple__sketch.html#ab76bd6487f5a75a356083bfe163a7079',1,'datasketches::tuple_sketch::get_seed_hash()'],['../classdatasketches_1_1com [...]
+  ['get_5fserialized_5fsize_5fbytes_357',['get_serialized_size_bytes',['../classdatasketches_1_1kll__sketch.html#ad9a5259d93d148b5c2050d68e7788716',1,'datasketches::kll_sketch::get_serialized_size_bytes()'],['../classdatasketches_1_1req__sketch.html#ad9a5259d93d148b5c2050d68e7788716',1,'datasketches::req_sketch::get_serialized_size_bytes(const SerDe &amp;sd=SerDe()) const'],['../classdatasketches_1_1req__sketch.html#ad9a5259d93d148b5c2050d68e7788716',1,'datasketches::req_sketch::get_seri [...]
+  ['get_5fserialized_5fsize_5fsummaries_5fbytes_358',['get_serialized_size_summaries_bytes',['../classdatasketches_1_1compact__tuple__sketch.html#aebe0bd9f97ef071d15ae25b9c3418e65',1,'datasketches::compact_tuple_sketch::get_serialized_size_summaries_bytes(const SerDe &amp;sd) const'],['../classdatasketches_1_1compact__tuple__sketch.html#aebe0bd9f97ef071d15ae25b9c3418e65',1,'datasketches::compact_tuple_sketch::get_serialized_size_summaries_bytes(const SerDe &amp;sd) const']]],
+  ['get_5fsorted_5fview_359',['get_sorted_view',['../classdatasketches_1_1kll__sketch.html#a0a9c9c240dd591017fd6a80e147b7c00',1,'datasketches::kll_sketch::get_sorted_view()'],['../classdatasketches_1_1quantiles__sketch.html#a0a9c9c240dd591017fd6a80e147b7c00',1,'datasketches::quantiles_sketch::get_sorted_view()'],['../classdatasketches_1_1req__sketch.html#a0a9c9c240dd591017fd6a80e147b7c00',1,'datasketches::req_sketch::get_sorted_view()']]],
+  ['get_5ftarget_5ftype_360',['get_target_type',['../classdatasketches_1_1hll__union__alloc.html#a0387c920d914fe59fd3c4c53a9a99093',1,'datasketches::hll_union_alloc']]],
+  ['get_5ftheta_361',['get_theta',['../classdatasketches_1_1tuple__sketch.html#aa784d7f8ac02e9c4e26e7fe9f177a7aa',1,'datasketches::tuple_sketch::get_theta()'],['../classdatasketches_1_1base__theta__sketch__alloc.html#aa784d7f8ac02e9c4e26e7fe9f177a7aa',1,'datasketches::base_theta_sketch_alloc::get_theta() const']]],
+  ['get_5ftheta64_362',['get_theta64',['../classdatasketches_1_1base__theta__sketch__alloc.html#aef2e47ecd9c33fc2a6a9e905a2a0516a',1,'datasketches::base_theta_sketch_alloc::get_theta64()'],['../classdatasketches_1_1update__theta__sketch__alloc.html#a2b072fe55377eb51a6ee477827fc3b95',1,'datasketches::update_theta_sketch_alloc::get_theta64()'],['../classdatasketches_1_1compact__theta__sketch__alloc.html#a2b072fe55377eb51a6ee477827fc3b95',1,'datasketches::compact_theta_sketch_alloc::get_the [...]
+  ['get_5ftotal_5fweight_363',['get_total_weight',['../classdatasketches_1_1frequent__items__sketch.html#a68bf5133e42650cdfe20a7916037ab4b',1,'datasketches::frequent_items_sketch::get_total_weight()'],['../classdatasketches_1_1count__min__sketch.html#a68bf5133e42650cdfe20a7916037ab4b',1,'datasketches::count_min_sketch::get_total_weight() const']]],
+  ['get_5fupper_5fbound_364',['get_upper_bound',['../classdatasketches_1_1count__min__sketch.html#af378c05bd5303198f7dfc182c725df83',1,'datasketches::count_min_sketch::get_upper_bound(const std::string &amp;item) const'],['../classdatasketches_1_1count__min__sketch.html#ab8f47f2378d8a057d82e82736ff37f3c',1,'datasketches::count_min_sketch::get_upper_bound(uint64_t item) const'],['../classdatasketches_1_1count__min__sketch.html#a6b7ba50a6af6e76423cc65947194d14c',1,'datasketches::count_min_ [...]
 ];
diff --git a/docs/master/search/functions_7.js b/docs/master/search/functions_7.js
index b5fa0e6..590f5c2 100644
--- a/docs/master/search/functions_7.js
+++ b/docs/master/search/functions_7.js
@@ -1,5 +1,5 @@
 var searchData=
 [
-  ['has_5fresult_363',['has_result',['../classdatasketches_1_1theta__intersection__alloc.html#a4ef54f76786bbe6e50c2597943874de3',1,'datasketches::theta_intersection_alloc::has_result()'],['../classdatasketches_1_1tuple__intersection.html#a4ef54f76786bbe6e50c2597943874de3',1,'datasketches::tuple_intersection::has_result()']]],
-  ['hll_5funion_5falloc_364',['hll_union_alloc',['../classdatasketches_1_1hll__union__alloc.html#abdb81912e4fcd2547e27c0165affbb99',1,'datasketches::hll_union_alloc']]]
+  ['has_5fresult_365',['has_result',['../classdatasketches_1_1theta__intersection__alloc.html#a4ef54f76786bbe6e50c2597943874de3',1,'datasketches::theta_intersection_alloc::has_result()'],['../classdatasketches_1_1tuple__intersection.html#a4ef54f76786bbe6e50c2597943874de3',1,'datasketches::tuple_intersection::has_result()']]],
+  ['hll_5funion_5falloc_366',['hll_union_alloc',['../classdatasketches_1_1hll__union__alloc.html#abdb81912e4fcd2547e27c0165affbb99',1,'datasketches::hll_union_alloc']]]
 ];
diff --git a/docs/master/search/functions_8.js b/docs/master/search/functions_8.js
index f4756e3..ee3512e 100644
--- a/docs/master/search/functions_8.js
+++ b/docs/master/search/functions_8.js
@@ -1,8 +1,8 @@
 var searchData=
 [
-  ['is_5fempty_365',['is_empty',['../classdatasketches_1_1hll__union__alloc.html#a5a2b7a58dc85678d08752945ff655362',1,'datasketches::hll_union_alloc::is_empty()'],['../classdatasketches_1_1req__sketch.html#a5a2b7a58dc85678d08752945ff655362',1,'datasketches::req_sketch::is_empty()'],['../classdatasketches_1_1count__min__sketch.html#a5a2b7a58dc85678d08752945ff655362',1,'datasketches::count_min_sketch::is_empty()'],['../classdatasketches_1_1frequent__items__sketch.html#a5a2b7a58dc85678d0875 [...]
-  ['is_5festimation_5fmode_366',['is_estimation_mode',['../classdatasketches_1_1density__sketch.html#ae95a04b1d7dccb3d9b3f3c3d087aa8e6',1,'datasketches::density_sketch::is_estimation_mode()'],['../classdatasketches_1_1req__sketch.html#ae95a04b1d7dccb3d9b3f3c3d087aa8e6',1,'datasketches::req_sketch::is_estimation_mode()'],['../classdatasketches_1_1quantiles__sketch.html#ae95a04b1d7dccb3d9b3f3c3d087aa8e6',1,'datasketches::quantiles_sketch::is_estimation_mode()'],['../classdatasketches_1_1tu [...]
-  ['is_5fhra_367',['is_HRA',['../classdatasketches_1_1req__sketch.html#af6177b85206272c56ee75747bb885735',1,'datasketches::req_sketch']]],
-  ['is_5fordered_368',['is_ordered',['../classdatasketches_1_1base__theta__sketch__alloc.html#a358923431da50e8d43651795e2515c01',1,'datasketches::base_theta_sketch_alloc::is_ordered()'],['../classdatasketches_1_1update__theta__sketch__alloc.html#a5f5b393314c0c1819f79b73232a506e8',1,'datasketches::update_theta_sketch_alloc::is_ordered()'],['../classdatasketches_1_1compact__theta__sketch__alloc.html#a5f5b393314c0c1819f79b73232a506e8',1,'datasketches::compact_theta_sketch_alloc::is_ordered( [...]
-  ['items_5fto_5fstring_369',['items_to_string',['../classdatasketches_1_1ebpps__sketch.html#a0fa52dd153f1e3cac57d4742e2fef6fc',1,'datasketches::ebpps_sketch::items_to_string()'],['../classdatasketches_1_1var__opt__sketch.html#a0fa52dd153f1e3cac57d4742e2fef6fc',1,'datasketches::var_opt_sketch::items_to_string()']]]
+  ['is_5fempty_367',['is_empty',['../classdatasketches_1_1hll__union__alloc.html#a5a2b7a58dc85678d08752945ff655362',1,'datasketches::hll_union_alloc::is_empty()'],['../classdatasketches_1_1req__sketch.html#a5a2b7a58dc85678d08752945ff655362',1,'datasketches::req_sketch::is_empty()'],['../classdatasketches_1_1count__min__sketch.html#a5a2b7a58dc85678d08752945ff655362',1,'datasketches::count_min_sketch::is_empty()'],['../classdatasketches_1_1frequent__items__sketch.html#a5a2b7a58dc85678d0875 [...]
+  ['is_5festimation_5fmode_368',['is_estimation_mode',['../classdatasketches_1_1density__sketch.html#ae95a04b1d7dccb3d9b3f3c3d087aa8e6',1,'datasketches::density_sketch::is_estimation_mode()'],['../classdatasketches_1_1req__sketch.html#ae95a04b1d7dccb3d9b3f3c3d087aa8e6',1,'datasketches::req_sketch::is_estimation_mode()'],['../classdatasketches_1_1quantiles__sketch.html#ae95a04b1d7dccb3d9b3f3c3d087aa8e6',1,'datasketches::quantiles_sketch::is_estimation_mode()'],['../classdatasketches_1_1tu [...]
+  ['is_5fhra_369',['is_HRA',['../classdatasketches_1_1req__sketch.html#af6177b85206272c56ee75747bb885735',1,'datasketches::req_sketch']]],
+  ['is_5fordered_370',['is_ordered',['../classdatasketches_1_1base__theta__sketch__alloc.html#a358923431da50e8d43651795e2515c01',1,'datasketches::base_theta_sketch_alloc::is_ordered()'],['../classdatasketches_1_1update__theta__sketch__alloc.html#a5f5b393314c0c1819f79b73232a506e8',1,'datasketches::update_theta_sketch_alloc::is_ordered()'],['../classdatasketches_1_1compact__theta__sketch__alloc.html#a5f5b393314c0c1819f79b73232a506e8',1,'datasketches::compact_theta_sketch_alloc::is_ordered( [...]
+  ['items_5fto_5fstring_371',['items_to_string',['../classdatasketches_1_1ebpps__sketch.html#a0fa52dd153f1e3cac57d4742e2fef6fc',1,'datasketches::ebpps_sketch::items_to_string()'],['../classdatasketches_1_1var__opt__sketch.html#a0fa52dd153f1e3cac57d4742e2fef6fc',1,'datasketches::var_opt_sketch::items_to_string()']]]
 ];
diff --git a/docs/master/search/functions_9.js b/docs/master/search/functions_9.js
index 80adca4..563985f 100644
--- a/docs/master/search/functions_9.js
+++ b/docs/master/search/functions_9.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['jaccard_370',['jaccard',['../classdatasketches_1_1jaccard__similarity__base.html#a733368dc893af01141bb6dff468bf008',1,'datasketches::jaccard_similarity_base']]]
+  ['jaccard_372',['jaccard',['../classdatasketches_1_1jaccard__similarity__base.html#a733368dc893af01141bb6dff468bf008',1,'datasketches::jaccard_similarity_base']]]
 ];
diff --git a/docs/master/search/functions_a.js b/docs/master/search/functions_a.js
index 271b268..cbd6ea2 100644
--- a/docs/master/search/functions_a.js
+++ b/docs/master/search/functions_a.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['kll_5fsketch_371',['kll_sketch',['../classdatasketches_1_1kll__sketch.html#afca1c904b4598d7a9548a40a802ed2b4',1,'datasketches::kll_sketch::kll_sketch(uint16_t k=kll_constants::DEFAULT_K, const C &amp;comparator=C(), const A &amp;allocator=A())'],['../classdatasketches_1_1kll__sketch.html#af7352580134284b937cb2510d192434e',1,'datasketches::kll_sketch::kll_sketch(const kll_sketch &amp;other)'],['../classdatasketches_1_1kll__sketch.html#acd53c0366552f3211d54e4746e12f1fe',1,'datasketches [...]
+  ['kll_5fsketch_373',['kll_sketch',['../classdatasketches_1_1kll__sketch.html#afca1c904b4598d7a9548a40a802ed2b4',1,'datasketches::kll_sketch::kll_sketch(uint16_t k=kll_constants::DEFAULT_K, const C &amp;comparator=C(), const A &amp;allocator=A())'],['../classdatasketches_1_1kll__sketch.html#af7352580134284b937cb2510d192434e',1,'datasketches::kll_sketch::kll_sketch(const kll_sketch &amp;other)'],['../classdatasketches_1_1kll__sketch.html#acd53c0366552f3211d54e4746e12f1fe',1,'datasketches [...]
 ];
diff --git a/docs/master/search/functions_b.js b/docs/master/search/functions_b.js
index fa1e58b..be3083a 100644
--- a/docs/master/search/functions_b.js
+++ b/docs/master/search/functions_b.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['lower_5fbound_5ffor_5fb_5fover_5fa_372',['lower_bound_for_b_over_a',['../classdatasketches_1_1bounds__on__ratios__in__sampled__sets.html#a64c2690d8b956838e5726128ab295211',1,'datasketches::bounds_on_ratios_in_sampled_sets::lower_bound_for_b_over_a()'],['../classdatasketches_1_1bounds__on__ratios__in__theta__sketched__sets.html#afca4842e0e5f98bf5eba713429b9e388',1,'datasketches::bounds_on_ratios_in_theta_sketched_sets::lower_bound_for_b_over_a()']]]
+  ['lower_5fbound_5ffor_5fb_5fover_5fa_374',['lower_bound_for_b_over_a',['../classdatasketches_1_1bounds__on__ratios__in__sampled__sets.html#a64c2690d8b956838e5726128ab295211',1,'datasketches::bounds_on_ratios_in_sampled_sets::lower_bound_for_b_over_a()'],['../classdatasketches_1_1bounds__on__ratios__in__theta__sketched__sets.html#afca4842e0e5f98bf5eba713429b9e388',1,'datasketches::bounds_on_ratios_in_theta_sketched_sets::lower_bound_for_b_over_a()']]]
 ];
diff --git a/docs/master/search/functions_c.js b/docs/master/search/functions_c.js
index 183908b..483768b 100644
--- a/docs/master/search/functions_c.js
+++ b/docs/master/search/functions_c.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['merge_373',['merge',['../classdatasketches_1_1kll__sketch.html#a49bb19e78f36fb72b8496cd6cff71fec',1,'datasketches::kll_sketch::merge()'],['../classdatasketches_1_1quantiles__sketch.html#a49bb19e78f36fb72b8496cd6cff71fec',1,'datasketches::quantiles_sketch::merge()'],['../classdatasketches_1_1ebpps__sketch.html#aa3e3042bdaf5a90eb65767f1a392125a',1,'datasketches::ebpps_sketch::merge(const ebpps_sketch&lt; T, A &gt; &amp;sketch)'],['../classdatasketches_1_1ebpps__sketch.html#ae71318de5a2 [...]
+  ['merge_375',['merge',['../classdatasketches_1_1kll__sketch.html#a49bb19e78f36fb72b8496cd6cff71fec',1,'datasketches::kll_sketch::merge()'],['../classdatasketches_1_1quantiles__sketch.html#a49bb19e78f36fb72b8496cd6cff71fec',1,'datasketches::quantiles_sketch::merge()'],['../classdatasketches_1_1ebpps__sketch.html#aa3e3042bdaf5a90eb65767f1a392125a',1,'datasketches::ebpps_sketch::merge(const ebpps_sketch&lt; T, A &gt; &amp;sketch)'],['../classdatasketches_1_1ebpps__sketch.html#ae71318de5a2 [...]
 ];
diff --git a/docs/master/search/functions_d.js b/docs/master/search/functions_d.js
index 776cf3f..3cb6000 100644
--- a/docs/master/search/functions_d.js
+++ b/docs/master/search/functions_d.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['normal_5fcdf_374',['normal_cdf',['../classdatasketches_1_1bounds__binomial__proportions.html#a842aac311b818d8b074f8d1c344b903a',1,'datasketches::bounds_binomial_proportions']]]
+  ['normal_5fcdf_376',['normal_cdf',['../classdatasketches_1_1bounds__binomial__proportions.html#a842aac311b818d8b074f8d1c344b903a',1,'datasketches::bounds_binomial_proportions']]]
 ];
diff --git a/docs/master/search/functions_e.js b/docs/master/search/functions_e.js
index 96f0761..e0d251d 100644
--- a/docs/master/search/functions_e.js
+++ b/docs/master/search/functions_e.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['operator_3d_375',['operator=',['../classdatasketches_1_1cpc__union__alloc.html#ae7b219e0931e711ebea10684e30cb538',1,'datasketches::cpc_union_alloc::operator=(const cpc_union_alloc&lt; A &gt; &amp;other)'],['../classdatasketches_1_1cpc__union__alloc.html#ae9b7627c7be9e2d8c386225668e3ed9b',1,'datasketches::cpc_union_alloc::operator=(cpc_union_alloc&lt; A &gt; &amp;&amp;other) noexcept'],['../classdatasketches_1_1kll__sketch.html#a0d934088182b8615c2fa34a4716d7d44',1,'datasketches::kll_s [...]
+  ['operator_3d_377',['operator=',['../classdatasketches_1_1cpc__union__alloc.html#ae7b219e0931e711ebea10684e30cb538',1,'datasketches::cpc_union_alloc::operator=(const cpc_union_alloc&lt; A &gt; &amp;other)'],['../classdatasketches_1_1cpc__union__alloc.html#ae9b7627c7be9e2d8c386225668e3ed9b',1,'datasketches::cpc_union_alloc::operator=(cpc_union_alloc&lt; A &gt; &amp;&amp;other) noexcept'],['../classdatasketches_1_1kll__sketch.html#a0d934088182b8615c2fa34a4716d7d44',1,'datasketches::kll_s [...]
 ];
diff --git a/docs/master/search/functions_f.js b/docs/master/search/functions_f.js
index 20482fc..51efe23 100644
--- a/docs/master/search/functions_f.js
+++ b/docs/master/search/functions_f.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['quantiles_5fsketch_376',['quantiles_sketch',['../classdatasketches_1_1quantiles__sketch.html#a19c140a63e6b0d34f4354c41d93e5e6c',1,'datasketches::quantiles_sketch::quantiles_sketch(uint16_t k=quantiles_constants::DEFAULT_K, const Comparator &amp;comparator=Comparator(), const Allocator &amp;allocator=Allocator())'],['../classdatasketches_1_1quantiles__sketch.html#a391bae83eaddd8b3b0828da495c23164',1,'datasketches::quantiles_sketch::quantiles_sketch(const quantiles_sketch &amp;other)'] [...]
+  ['quantiles_5fsketch_378',['quantiles_sketch',['../classdatasketches_1_1quantiles__sketch.html#a19c140a63e6b0d34f4354c41d93e5e6c',1,'datasketches::quantiles_sketch::quantiles_sketch(uint16_t k=quantiles_constants::DEFAULT_K, const Comparator &amp;comparator=Comparator(), const Allocator &amp;allocator=Allocator())'],['../classdatasketches_1_1quantiles__sketch.html#a391bae83eaddd8b3b0828da495c23164',1,'datasketches::quantiles_sketch::quantiles_sketch(const quantiles_sketch &amp;other)'] [...]
 ];
diff --git a/docs/master/search/namespaces_0.js b/docs/master/search/namespaces_0.js
index f6fd431..f7b88fe 100644
--- a/docs/master/search/namespaces_0.js
+++ b/docs/master/search/namespaces_0.js
@@ -1,11 +1,11 @@
 var searchData=
 [
-  ['cpc_5fconstants_276',['cpc_constants',['../namespacedatasketches_1_1cpc__constants.html',1,'datasketches']]],
-  ['datasketches_277',['datasketches',['../namespacedatasketches.html',1,'']]],
-  ['ebpps_5fconstants_278',['ebpps_constants',['../namespacedatasketches_1_1ebpps__constants.html',1,'datasketches']]],
-  ['kll_5fconstants_279',['kll_constants',['../namespacedatasketches_1_1kll__constants.html',1,'datasketches']]],
-  ['quantiles_5fconstants_280',['quantiles_constants',['../namespacedatasketches_1_1quantiles__constants.html',1,'datasketches']]],
-  ['req_5fconstants_281',['req_constants',['../namespacedatasketches_1_1req__constants.html',1,'datasketches']]],
-  ['theta_5fconstants_282',['theta_constants',['../namespacedatasketches_1_1theta__constants.html',1,'datasketches']]],
-  ['var_5fopt_5fconstants_283',['var_opt_constants',['../namespacedatasketches_1_1var__opt__constants.html',1,'datasketches']]]
+  ['cpc_5fconstants_277',['cpc_constants',['../namespacedatasketches_1_1cpc__constants.html',1,'datasketches']]],
+  ['datasketches_278',['datasketches',['../namespacedatasketches.html',1,'']]],
+  ['ebpps_5fconstants_279',['ebpps_constants',['../namespacedatasketches_1_1ebpps__constants.html',1,'datasketches']]],
+  ['kll_5fconstants_280',['kll_constants',['../namespacedatasketches_1_1kll__constants.html',1,'datasketches']]],
+  ['quantiles_5fconstants_281',['quantiles_constants',['../namespacedatasketches_1_1quantiles__constants.html',1,'datasketches']]],
+  ['req_5fconstants_282',['req_constants',['../namespacedatasketches_1_1req__constants.html',1,'datasketches']]],
+  ['theta_5fconstants_283',['theta_constants',['../namespacedatasketches_1_1theta__constants.html',1,'datasketches']]],
+  ['var_5fopt_5fconstants_284',['var_opt_constants',['../namespacedatasketches_1_1var__opt__constants.html',1,'datasketches']]]
 ];
diff --git a/docs/master/search/pages_0.js b/docs/master/search/pages_0.js
index de18380..21685e1 100644
--- a/docs/master/search/pages_0.js
+++ b/docs/master/search/pages_0.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['apache_20datasketches_20core_20c_2b_2b_20library_20component_442',['Apache DataSketches Core C++ Library Component',['../index.html',1,'']]]
+  ['apache_20datasketches_20core_20c_2b_2b_20library_20component_444',['Apache DataSketches Core C++ Library Component',['../index.html',1,'']]]
 ];
diff --git a/docs/master/search/typedefs_0.js b/docs/master/search/typedefs_0.js
index 2cc59c3..ed3c440 100644
--- a/docs/master/search/typedefs_0.js
+++ b/docs/master/search/typedefs_0.js
@@ -1,6 +1,6 @@
 var searchData=
 [
-  ['array_5fof_5fdoubles_5fa_5fnot_5fb_414',['array_of_doubles_a_not_b',['../namespacedatasketches.html#a8d77b6f0c52087601aa9a3040e14a28a',1,'datasketches']]],
-  ['array_5fof_5fdoubles_5fintersection_415',['array_of_doubles_intersection',['../namespacedatasketches.html#a370e739ec492b40f8fef060acc9112b8',1,'datasketches']]],
-  ['array_5fof_5fdoubles_5funion_416',['array_of_doubles_union',['../namespacedatasketches.html#a58641285855c148e06ac9cb08ae0452e',1,'datasketches']]]
+  ['array_5fof_5fdoubles_5fa_5fnot_5fb_416',['array_of_doubles_a_not_b',['../namespacedatasketches.html#a8d77b6f0c52087601aa9a3040e14a28a',1,'datasketches']]],
+  ['array_5fof_5fdoubles_5fintersection_417',['array_of_doubles_intersection',['../namespacedatasketches.html#a370e739ec492b40f8fef060acc9112b8',1,'datasketches']]],
+  ['array_5fof_5fdoubles_5funion_418',['array_of_doubles_union',['../namespacedatasketches.html#a58641285855c148e06ac9cb08ae0452e',1,'datasketches']]]
 ];
diff --git a/docs/master/search/typedefs_1.js b/docs/master/search/typedefs_1.js
index 7ab1c18..58f5362 100644
--- a/docs/master/search/typedefs_1.js
+++ b/docs/master/search/typedefs_1.js
@@ -1,7 +1,7 @@
 var searchData=
 [
-  ['compact_5farray_5fof_5fdoubles_5fsketch_417',['compact_array_of_doubles_sketch',['../namespacedatasketches.html#a35a4e048561529444021b2657eead4c8',1,'datasketches']]],
-  ['compact_5ftheta_5fsketch_418',['compact_theta_sketch',['../namespacedatasketches.html#afd40c94af655767e4e9c1c4e650d97ed',1,'datasketches']]],
-  ['cpc_5fsketch_419',['cpc_sketch',['../namespacedatasketches.html#a17c863577957f2cb099dc8be4f222aa6',1,'datasketches']]],
-  ['cpc_5funion_420',['cpc_union',['../namespacedatasketches.html#ae1a38b6677f3d0d4f9b3e310413aa395',1,'datasketches']]]
+  ['compact_5farray_5fof_5fdoubles_5fsketch_419',['compact_array_of_doubles_sketch',['../namespacedatasketches.html#a35a4e048561529444021b2657eead4c8',1,'datasketches']]],
+  ['compact_5ftheta_5fsketch_420',['compact_theta_sketch',['../namespacedatasketches.html#afd40c94af655767e4e9c1c4e650d97ed',1,'datasketches']]],
+  ['cpc_5fsketch_421',['cpc_sketch',['../namespacedatasketches.html#a17c863577957f2cb099dc8be4f222aa6',1,'datasketches']]],
+  ['cpc_5funion_422',['cpc_union',['../namespacedatasketches.html#ae1a38b6677f3d0d4f9b3e310413aa395',1,'datasketches']]]
 ];
diff --git a/docs/master/search/typedefs_2.js b/docs/master/search/typedefs_2.js
index f87f953..6f49c78 100644
--- a/docs/master/search/typedefs_2.js
+++ b/docs/master/search/typedefs_2.js
@@ -1,5 +1,5 @@
 var searchData=
 [
-  ['default_5farray_5fof_5fdoubles_5funion_5fpolicy_421',['default_array_of_doubles_union_policy',['../namespacedatasketches.html#a79f01904c200913d50a96ea1e42b14d7',1,'datasketches']]],
-  ['default_5farray_5fof_5fdoubles_5fupdate_5fpolicy_422',['default_array_of_doubles_update_policy',['../namespacedatasketches.html#ab82abb5669f508afc03ee06a04a4f63a',1,'datasketches']]]
+  ['default_5farray_5fof_5fdoubles_5funion_5fpolicy_423',['default_array_of_doubles_union_policy',['../namespacedatasketches.html#a79f01904c200913d50a96ea1e42b14d7',1,'datasketches']]],
+  ['default_5farray_5fof_5fdoubles_5fupdate_5fpolicy_424',['default_array_of_doubles_update_policy',['../namespacedatasketches.html#ab82abb5669f508afc03ee06a04a4f63a',1,'datasketches']]]
 ];
diff --git a/docs/master/search/typedefs_3.js b/docs/master/search/typedefs_3.js
index b1bb564..6378235 100644
--- a/docs/master/search/typedefs_3.js
+++ b/docs/master/search/typedefs_3.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['entry_423',['Entry',['../classdatasketches_1_1quantiles__sorted__view.html#ae30af6850c2fd8b7d84bd14d51ec1d74',1,'datasketches::quantiles_sorted_view']]]
+  ['entry_425',['Entry',['../classdatasketches_1_1quantiles__sorted__view.html#ae30af6850c2fd8b7d84bd14d51ec1d74',1,'datasketches::quantiles_sorted_view']]]
 ];
diff --git a/docs/master/search/typedefs_4.js b/docs/master/search/typedefs_4.js
index a529592..83dfb9d 100644
--- a/docs/master/search/typedefs_4.js
+++ b/docs/master/search/typedefs_4.js
@@ -1,5 +1,5 @@
 var searchData=
 [
-  ['hll_5fsketch_424',['hll_sketch',['../namespacedatasketches.html#aba485b07e1fa18592cbb0ba4b4544429',1,'datasketches']]],
-  ['hll_5funion_425',['hll_union',['../namespacedatasketches.html#a4c2cf15edaa7f14833a9b34b5b45d472',1,'datasketches']]]
+  ['hll_5fsketch_426',['hll_sketch',['../namespacedatasketches.html#aba485b07e1fa18592cbb0ba4b4544429',1,'datasketches']]],
+  ['hll_5funion_427',['hll_union',['../namespacedatasketches.html#a4c2cf15edaa7f14833a9b34b5b45d472',1,'datasketches']]]
 ];
diff --git a/docs/master/search/typedefs_5.js b/docs/master/search/typedefs_5.js
index fd224de..1ebcf6b 100644
--- a/docs/master/search/typedefs_5.js
+++ b/docs/master/search/typedefs_5.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['quantile_5freturn_5ftype_426',['quantile_return_type',['../classdatasketches_1_1quantiles__sorted__view.html#a5ab4905c4f3ebeb14de4e7a2f5d92832',1,'datasketches::quantiles_sorted_view::quantile_return_type()'],['../classdatasketches_1_1kll__sketch.html#aa796209b1ef5dc41e83ed8158f77d280',1,'datasketches::kll_sketch::quantile_return_type()'],['../classdatasketches_1_1req__sketch.html#a4c80d2361c940f99df9f850615c2dcbe',1,'datasketches::req_sketch::quantile_return_type()']]]
+  ['quantile_5freturn_5ftype_428',['quantile_return_type',['../classdatasketches_1_1quantiles__sorted__view.html#a5ab4905c4f3ebeb14de4e7a2f5d92832',1,'datasketches::quantiles_sorted_view::quantile_return_type()'],['../classdatasketches_1_1kll__sketch.html#aa796209b1ef5dc41e83ed8158f77d280',1,'datasketches::kll_sketch::quantile_return_type()'],['../classdatasketches_1_1req__sketch.html#a4c80d2361c940f99df9f850615c2dcbe',1,'datasketches::req_sketch::quantile_return_type()']]]
 ];
diff --git a/docs/master/search/typedefs_6.js b/docs/master/search/typedefs_6.js
index 7120030..3968321 100644
--- a/docs/master/search/typedefs_6.js
+++ b/docs/master/search/typedefs_6.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['resize_5ffactor_427',['resize_factor',['../namespacedatasketches_1_1theta__constants.html#a329224ced789e065aed0698566b954a4',1,'datasketches::theta_constants']]]
+  ['resize_5ffactor_429',['resize_factor',['../namespacedatasketches_1_1theta__constants.html#a329224ced789e065aed0698566b954a4',1,'datasketches::theta_constants']]]
 ];
diff --git a/docs/master/search/typedefs_7.js b/docs/master/search/typedefs_7.js
index 8a71259..43993b2 100644
--- a/docs/master/search/typedefs_7.js
+++ b/docs/master/search/typedefs_7.js
@@ -1,7 +1,7 @@
 var searchData=
 [
-  ['theta_5fjaccard_5fsimilarity_428',['theta_jaccard_similarity',['../namespacedatasketches.html#aabfc61022ee6d85f5ff9cc2e060eb205',1,'datasketches']]],
-  ['theta_5fjaccard_5fsimilarity_5falloc_429',['theta_jaccard_similarity_alloc',['../namespacedatasketches.html#ad0107085ac33da52e1cc9c3c4d50a152',1,'datasketches']]],
-  ['theta_5fsketch_430',['theta_sketch',['../namespacedatasketches.html#af64cbe6dbddcc92a648ea50dd3e7d525',1,'datasketches']]],
-  ['tuple_5fjaccard_5fsimilarity_431',['tuple_jaccard_similarity',['../namespacedatasketches.html#a9edbdcf6010c8d35813ca718d5127212',1,'datasketches']]]
+  ['theta_5fjaccard_5fsimilarity_430',['theta_jaccard_similarity',['../namespacedatasketches.html#aabfc61022ee6d85f5ff9cc2e060eb205',1,'datasketches']]],
+  ['theta_5fjaccard_5fsimilarity_5falloc_431',['theta_jaccard_similarity_alloc',['../namespacedatasketches.html#ad0107085ac33da52e1cc9c3c4d50a152',1,'datasketches']]],
+  ['theta_5fsketch_432',['theta_sketch',['../namespacedatasketches.html#af64cbe6dbddcc92a648ea50dd3e7d525',1,'datasketches']]],
+  ['tuple_5fjaccard_5fsimilarity_433',['tuple_jaccard_similarity',['../namespacedatasketches.html#a9edbdcf6010c8d35813ca718d5127212',1,'datasketches']]]
 ];
diff --git a/docs/master/search/typedefs_8.js b/docs/master/search/typedefs_8.js
index caad54e..879d6db 100644
--- a/docs/master/search/typedefs_8.js
+++ b/docs/master/search/typedefs_8.js
@@ -1,5 +1,5 @@
 var searchData=
 [
-  ['update_5farray_5fof_5fdoubles_5fsketch_432',['update_array_of_doubles_sketch',['../namespacedatasketches.html#a1f2cb976e39fb4c31b9d422290cab713',1,'datasketches']]],
-  ['update_5ftheta_5fsketch_433',['update_theta_sketch',['../namespacedatasketches.html#acf9e476bd4c4a803558121dcd504a231',1,'datasketches']]]
+  ['update_5farray_5fof_5fdoubles_5fsketch_434',['update_array_of_doubles_sketch',['../namespacedatasketches.html#a1f2cb976e39fb4c31b9d422290cab713',1,'datasketches']]],
+  ['update_5ftheta_5fsketch_435',['update_theta_sketch',['../namespacedatasketches.html#acf9e476bd4c4a803558121dcd504a231',1,'datasketches']]]
 ];
diff --git a/docs/master/search/typedefs_9.js b/docs/master/search/typedefs_9.js
index 872fbc4..d3a7570 100644
--- a/docs/master/search/typedefs_9.js
+++ b/docs/master/search/typedefs_9.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['wrapped_5fcompact_5ftheta_5fsketch_434',['wrapped_compact_theta_sketch',['../namespacedatasketches.html#aa3beeb0f7bcab82d98ea34a3bab848b6',1,'datasketches']]]
+  ['wrapped_5fcompact_5ftheta_5fsketch_436',['wrapped_compact_theta_sketch',['../namespacedatasketches.html#aa3beeb0f7bcab82d98ea34a3bab848b6',1,'datasketches']]]
 ];
diff --git a/docs/master/search/variables_0.js b/docs/master/search/variables_0.js
index 901ed22..5d960bf 100644
--- a/docs/master/search/variables_0.js
+++ b/docs/master/search/variables_0.js
@@ -1,6 +1,6 @@
 var searchData=
 [
-  ['default_5fk_404',['DEFAULT_K',['../namespacedatasketches_1_1kll__constants.html#ac8602cb1bd28fc26ae74b484e81a9a52',1,'datasketches::kll_constants::DEFAULT_K()'],['../namespacedatasketches_1_1quantiles__constants.html#ac8602cb1bd28fc26ae74b484e81a9a52',1,'datasketches::quantiles_constants::DEFAULT_K()']]],
-  ['default_5flg_5fk_405',['DEFAULT_LG_K',['../namespacedatasketches_1_1cpc__constants.html#a78468167a70640384c2de5e04fabe4fd',1,'datasketches::cpc_constants::DEFAULT_LG_K()'],['../namespacedatasketches_1_1theta__constants.html#a78468167a70640384c2de5e04fabe4fd',1,'datasketches::theta_constants::DEFAULT_LG_K()']]],
-  ['default_5fresize_5ffactor_406',['DEFAULT_RESIZE_FACTOR',['../namespacedatasketches_1_1theta__constants.html#a02799eee5e87428b1c72e6c4c282d68e',1,'datasketches::theta_constants::DEFAULT_RESIZE_FACTOR()'],['../namespacedatasketches_1_1var__opt__constants.html#a02799eee5e87428b1c72e6c4c282d68e',1,'datasketches::var_opt_constants::DEFAULT_RESIZE_FACTOR()']]]
+  ['default_5fk_406',['DEFAULT_K',['../namespacedatasketches_1_1kll__constants.html#ac8602cb1bd28fc26ae74b484e81a9a52',1,'datasketches::kll_constants::DEFAULT_K()'],['../namespacedatasketches_1_1quantiles__constants.html#ac8602cb1bd28fc26ae74b484e81a9a52',1,'datasketches::quantiles_constants::DEFAULT_K()']]],
+  ['default_5flg_5fk_407',['DEFAULT_LG_K',['../namespacedatasketches_1_1cpc__constants.html#a78468167a70640384c2de5e04fabe4fd',1,'datasketches::cpc_constants::DEFAULT_LG_K()'],['../namespacedatasketches_1_1theta__constants.html#a78468167a70640384c2de5e04fabe4fd',1,'datasketches::theta_constants::DEFAULT_LG_K()']]],
+  ['default_5fresize_5ffactor_408',['DEFAULT_RESIZE_FACTOR',['../namespacedatasketches_1_1theta__constants.html#a02799eee5e87428b1c72e6c4c282d68e',1,'datasketches::theta_constants::DEFAULT_RESIZE_FACTOR()'],['../namespacedatasketches_1_1var__opt__constants.html#a02799eee5e87428b1c72e6c4c282d68e',1,'datasketches::var_opt_constants::DEFAULT_RESIZE_FACTOR()']]]
 ];
diff --git a/docs/master/search/variables_1.js b/docs/master/search/variables_1.js
index 579cf86..db36bd4 100644
--- a/docs/master/search/variables_1.js
+++ b/docs/master/search/variables_1.js
@@ -1,4 +1,4 @@
 var searchData=
 [
-  ['init_5fnum_5fsections_407',['INIT_NUM_SECTIONS',['../namespacedatasketches_1_1req__constants.html#a141418d3d37a4b49c0c5bb41b507f2b5',1,'datasketches::req_constants']]]
+  ['init_5fnum_5fsections_409',['INIT_NUM_SECTIONS',['../namespacedatasketches_1_1req__constants.html#a141418d3d37a4b49c0c5bb41b507f2b5',1,'datasketches::req_constants']]]
 ];
diff --git a/docs/master/search/variables_2.js b/docs/master/search/variables_2.js
index 83e9b41..cd5d503 100644
--- a/docs/master/search/variables_2.js
+++ b/docs/master/search/variables_2.js
@@ -1,9 +1,9 @@
 var searchData=
 [
-  ['max_5fk_408',['MAX_K',['../namespacedatasketches_1_1kll__constants.html#a3bd28528c16e8911658faff9c98b305f',1,'datasketches::kll_constants::MAX_K()'],['../namespacedatasketches_1_1quantiles__constants.html#a3bd28528c16e8911658faff9c98b305f',1,'datasketches::quantiles_constants::MAX_K()'],['../namespacedatasketches_1_1ebpps__constants.html#aef0073265694689f2a7281205c133523',1,'datasketches::ebpps_constants::MAX_K()'],['../namespacedatasketches_1_1var__opt__constants.html#aef00732656946 [...]
-  ['max_5flg_5fk_409',['MAX_LG_K',['../namespacedatasketches_1_1cpc__constants.html#ad15c7a6b3af91806e0a9743d27943d49',1,'datasketches::cpc_constants::MAX_LG_K()'],['../namespacedatasketches_1_1theta__constants.html#ad15c7a6b3af91806e0a9743d27943d49',1,'datasketches::theta_constants::MAX_LG_K()']]],
-  ['max_5ftheta_410',['MAX_THETA',['../namespacedatasketches_1_1theta__constants.html#ae3243c6bd90c8d8577c32b86100d97ad',1,'datasketches::theta_constants']]],
-  ['min_5fk_411',['MIN_K',['../namespacedatasketches_1_1kll__constants.html#ab9f2b631adf46fe04a11814cd1018926',1,'datasketches::kll_constants::MIN_K()'],['../namespacedatasketches_1_1quantiles__constants.html#ab9f2b631adf46fe04a11814cd1018926',1,'datasketches::quantiles_constants::MIN_K()'],['../namespacedatasketches_1_1req__constants.html#ab9f2b631adf46fe04a11814cd1018926',1,'datasketches::req_constants::MIN_K()']]],
-  ['min_5flg_5fk_412',['MIN_LG_K',['../namespacedatasketches_1_1cpc__constants.html#a80c5dfefaf69318c0894ec34c34d0987',1,'datasketches::cpc_constants::MIN_LG_K()'],['../namespacedatasketches_1_1theta__constants.html#a80c5dfefaf69318c0894ec34c34d0987',1,'datasketches::theta_constants::MIN_LG_K()']]],
-  ['multiplier_413',['MULTIPLIER',['../namespacedatasketches_1_1req__constants.html#a634c013942663d10f47cf3d4a16de49a',1,'datasketches::req_constants']]]
+  ['max_5fk_410',['MAX_K',['../namespacedatasketches_1_1kll__constants.html#a3bd28528c16e8911658faff9c98b305f',1,'datasketches::kll_constants::MAX_K()'],['../namespacedatasketches_1_1quantiles__constants.html#a3bd28528c16e8911658faff9c98b305f',1,'datasketches::quantiles_constants::MAX_K()'],['../namespacedatasketches_1_1ebpps__constants.html#aef0073265694689f2a7281205c133523',1,'datasketches::ebpps_constants::MAX_K()'],['../namespacedatasketches_1_1var__opt__constants.html#aef00732656946 [...]
+  ['max_5flg_5fk_411',['MAX_LG_K',['../namespacedatasketches_1_1cpc__constants.html#ad15c7a6b3af91806e0a9743d27943d49',1,'datasketches::cpc_constants::MAX_LG_K()'],['../namespacedatasketches_1_1theta__constants.html#ad15c7a6b3af91806e0a9743d27943d49',1,'datasketches::theta_constants::MAX_LG_K()']]],
+  ['max_5ftheta_412',['MAX_THETA',['../namespacedatasketches_1_1theta__constants.html#ae3243c6bd90c8d8577c32b86100d97ad',1,'datasketches::theta_constants']]],
+  ['min_5fk_413',['MIN_K',['../namespacedatasketches_1_1kll__constants.html#ab9f2b631adf46fe04a11814cd1018926',1,'datasketches::kll_constants::MIN_K()'],['../namespacedatasketches_1_1quantiles__constants.html#ab9f2b631adf46fe04a11814cd1018926',1,'datasketches::quantiles_constants::MIN_K()'],['../namespacedatasketches_1_1req__constants.html#ab9f2b631adf46fe04a11814cd1018926',1,'datasketches::req_constants::MIN_K()']]],
+  ['min_5flg_5fk_414',['MIN_LG_K',['../namespacedatasketches_1_1cpc__constants.html#a80c5dfefaf69318c0894ec34c34d0987',1,'datasketches::cpc_constants::MIN_LG_K()'],['../namespacedatasketches_1_1theta__constants.html#a80c5dfefaf69318c0894ec34c34d0987',1,'datasketches::theta_constants::MIN_LG_K()']]],
+  ['multiplier_415',['MULTIPLIER',['../namespacedatasketches_1_1req__constants.html#a634c013942663d10f47cf3d4a16de49a',1,'datasketches::req_constants']]]
 ];
diff --git a/docs/master/tuple__a__not__b_8hpp_source.html b/docs/master/tuple__a__not__b_8hpp_source.html
index cc3334e..d13bed7 100644
--- a/docs/master/tuple__a__not__b_8hpp_source.html
+++ b/docs/master/tuple__a__not__b_8hpp_source.html
@@ -122,7 +122,7 @@ $(function() {
 <div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="preprocessor">#include &quot;tuple_a_not_b_impl.hpp&quot;</span></div>
 <div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160; </div>
 <div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html">datasketches::compact_tuple_sketch</a></div><div class="ttdoc">Compact Tuple sketch.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:407</div></div>
+<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html">datasketches::compact_tuple_sketch</a></div><div class="ttdoc">Compact Tuple sketch.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:416</div></div>
 <div class="ttc" id="aclassdatasketches_1_1tuple__a__not__b_html"><div class="ttname"><a href="classdatasketches_1_1tuple__a__not__b.html">datasketches::tuple_a_not_b</a></div><div class="ttdoc">tuple A-not-B</div><div class="ttdef"><b>Definition:</b> tuple_a_not_b.hpp:33</div></div>
 <div class="ttc" id="aclassdatasketches_1_1tuple__a__not__b_html_a3ee0c8ec70c980979f84c68065da3d9b"><div class="ttname"><a href="classdatasketches_1_1tuple__a__not__b.html#a3ee0c8ec70c980979f84c68065da3d9b">datasketches::tuple_a_not_b::compute</a></div><div class="ttdeci">CompactSketch compute(FwdSketch &amp;&amp;a, const Sketch &amp;b, bool ordered=true) const</div><div class="ttdoc">Computes the A-not-B set operation given two sketches.</div></div>
 <div class="ttc" id="aclassdatasketches_1_1tuple__a__not__b_html_ab7aabf86559ad403741955663d86f83d"><div class="ttname"><a href="classdatasketches_1_1tuple__a__not__b.html#ab7aabf86559ad403741955663d86f83d">datasketches::tuple_a_not_b::tuple_a_not_b</a></div><div class="ttdeci">tuple_a_not_b(uint64_t seed=DEFAULT_SEED, const Allocator &amp;allocator=Allocator())</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> tuple_a_not_b_impl.hpp:23</div></div>
diff --git a/docs/master/tuple__intersection_8hpp_source.html b/docs/master/tuple__intersection_8hpp_source.html
index 40df617..5e4a2d7 100644
--- a/docs/master/tuple__intersection_8hpp_source.html
+++ b/docs/master/tuple__intersection_8hpp_source.html
@@ -153,7 +153,7 @@ $(function() {
 <div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;<span class="preprocessor">#include &quot;tuple_intersection_impl.hpp&quot;</span></div>
 <div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160; </div>
 <div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html">datasketches::compact_tuple_sketch</a></div><div class="ttdoc">Compact Tuple sketch.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:407</div></div>
+<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html">datasketches::compact_tuple_sketch</a></div><div class="ttdoc">Compact Tuple sketch.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:416</div></div>
 <div class="ttc" id="aclassdatasketches_1_1tuple__intersection_html"><div class="ttname"><a href="classdatasketches_1_1tuple__intersection.html">datasketches::tuple_intersection</a></div><div class="ttdoc">Tuple intersection.</div><div class="ttdef"><b>Definition:</b> tuple_intersection.hpp:47</div></div>
 <div class="ttc" id="aclassdatasketches_1_1tuple__intersection_html_a037835e8f8e6b5233fa0f0996bba6a99"><div class="ttname"><a href="classdatasketches_1_1tuple__intersection.html#a037835e8f8e6b5233fa0f0996bba6a99">datasketches::tuple_intersection::get_result</a></div><div class="ttdeci">CompactSketch get_result(bool ordered=true) const</div><div class="ttdoc">Produces a copy of the current state of the intersection.</div><div class="ttdef"><b>Definition:</b> tuple_intersection_impl.hpp:34 [...]
 <div class="ttc" id="aclassdatasketches_1_1tuple__intersection_html_a4cff2978362ac6d1c74a1a69c3b3843f"><div class="ttname"><a href="classdatasketches_1_1tuple__intersection.html#a4cff2978362ac6d1c74a1a69c3b3843f">datasketches::tuple_intersection::tuple_intersection</a></div><div class="ttdeci">tuple_intersection(uint64_t seed=DEFAULT_SEED, const Policy &amp;policy=Policy(), const Allocator &amp;allocator=Allocator())</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definit [...]
diff --git a/docs/master/tuple__intersection__impl_8hpp_source.html b/docs/master/tuple__intersection__impl_8hpp_source.html
index 928f2ce..ea8e46b 100644
--- a/docs/master/tuple__intersection__impl_8hpp_source.html
+++ b/docs/master/tuple__intersection__impl_8hpp_source.html
@@ -112,7 +112,7 @@ $(function() {
 <div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;}</div>
 <div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160; </div>
 <div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;} <span class="comment">/* namespace datasketches */</span></div>
-<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html">datasketches::compact_tuple_sketch</a></div><div class="ttdoc">Compact Tuple sketch.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:407</div></div>
+<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html">datasketches::compact_tuple_sketch</a></div><div class="ttdoc">Compact Tuple sketch.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:416</div></div>
 <div class="ttc" id="aclassdatasketches_1_1tuple__intersection_html_a037835e8f8e6b5233fa0f0996bba6a99"><div class="ttname"><a href="classdatasketches_1_1tuple__intersection.html#a037835e8f8e6b5233fa0f0996bba6a99">datasketches::tuple_intersection::get_result</a></div><div class="ttdeci">CompactSketch get_result(bool ordered=true) const</div><div class="ttdoc">Produces a copy of the current state of the intersection.</div><div class="ttdef"><b>Definition:</b> tuple_intersection_impl.hpp:34 [...]
 <div class="ttc" id="aclassdatasketches_1_1tuple__intersection_html_a4cff2978362ac6d1c74a1a69c3b3843f"><div class="ttname"><a href="classdatasketches_1_1tuple__intersection.html#a4cff2978362ac6d1c74a1a69c3b3843f">datasketches::tuple_intersection::tuple_intersection</a></div><div class="ttdeci">tuple_intersection(uint64_t seed=DEFAULT_SEED, const Policy &amp;policy=Policy(), const Allocator &amp;allocator=Allocator())</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definit [...]
 <div class="ttc" id="aclassdatasketches_1_1tuple__intersection_html_a4ef54f76786bbe6e50c2597943874de3"><div class="ttname"><a href="classdatasketches_1_1tuple__intersection.html#a4ef54f76786bbe6e50c2597943874de3">datasketches::tuple_intersection::has_result</a></div><div class="ttdeci">bool has_result() const</div><div class="ttdoc">Returns true if the state of the intersection is defined (not infinite &quot;universe&quot;).</div><div class="ttdef"><b>Definition:</b> tuple_intersection_i [...]
diff --git a/docs/master/tuple__sketch_8hpp_source.html b/docs/master/tuple__sketch_8hpp_source.html
index 3e0653c..9e1c629 100644
--- a/docs/master/tuple__sketch_8hpp_source.html
+++ b/docs/master/tuple__sketch_8hpp_source.html
@@ -267,171 +267,180 @@ $(function() {
 <div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160; </div>
 <div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;  <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch&lt;Summary, Allocator&gt;</a> <a class="code" href="classdatasketches_1_1update__tuple__sketch.html#a8adfe3908612dc77d3708cecddb65515">compact</a>(<span class="keywordtype">bool</span> ordered = <span class="keyword">true</span>) <span class="keyword">const</span>;</div>
 <div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160; </div>
-<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;  <span class="keyword">virtual</span> iterator <a class="code" href="classdatasketches_1_1update__tuple__sketch.html#ad950587c89b4306f927b08b5e5cb7e89">begin</a>();</div>
-<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;  <span class="keyword">virtual</span> iterator <a class="code" href="classdatasketches_1_1update__tuple__sketch.html#a7727305d5e1ec66a181e22c43af9a581">end</a>();</div>
-<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;  <span class="keyword">virtual</span> const_iterator <a class="code" href="classdatasketches_1_1update__tuple__sketch.html#ad950587c89b4306f927b08b5e5cb7e89">begin</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;  <span class="keyword">virtual</span> const_iterator <a class="code" href="classdatasketches_1_1update__tuple__sketch.html#a7727305d5e1ec66a181e22c43af9a581">end</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160; </div>
-<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;<span class="keyword">protected</span>:</div>
-<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;  Policy policy_;</div>
-<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;  tuple_map map_;</div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> Predicate&gt;</div>
+<div class="line"><a name="l00391"></a><span class="lineno"><a class="line" href="classdatasketches_1_1update__tuple__sketch.html#aa37bb6b08780486ee17d59be552db371">  391</a></span>&#160;  <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch&lt;Summary, Allocator&gt;</a> <a class="code" href="classdatasketches_1_1update__tuple__sketch.html#aa37bb6b08780486ee17d59be552db371">filter</a>(<span class="keyword">const</span> Predicate&amp; predicate) <sp [...]
 <div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160; </div>
-<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;  <span class="comment">// for builder</span></div>
-<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;  <a class="code" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch</a>(uint8_t lg_cur_size, uint8_t lg_nom_size, resize_factor rf, <span class="keywordtype">float</span> p, uint64_t theta, uint64_t seed, <span class="keyword">const</span> Policy&amp; policy, <span class="keyword">const</span> Allocator&amp; allocator);</div>
-<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160; </div>
-<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> print_specifics(std::ostringstream&amp; os) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;};</div>
-<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160; </div>
-<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;<span class="keyword">template</span>&lt;</div>
-<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;  <span class="keyword">typename</span> Summary,</div>
-<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;  <span class="keyword">typename</span> Allocator = std::allocator&lt;Summary&gt;</div>
-<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;&gt;</div>
-<div class="line"><a name="l00407"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html">  407</a></span>&#160;<span class="keyword">class </span><a class="code" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a>: <span class="keyword">public</span> <a class="code" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch</a>&lt;Summary, Allocator&gt; {</div>
-<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;  <span class="keyword">using</span> <a class="code" href="classdatasketches_1_1tuple__sketch.html">Base</a> = <a class="code" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt;Summary, Allocator&gt;</a>;</div>
-<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;  <span class="keyword">using</span> Entry = <span class="keyword">typename</span> Base::Entry;</div>
-<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;  <span class="keyword">using</span> ExtractKey = <span class="keyword">typename</span> Base::ExtractKey;</div>
-<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;  <span class="keyword">using</span> iterator = <span class="keyword">typename</span> Base::iterator;</div>
-<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;  <span class="keyword">using</span> const_iterator = <span class="keyword">typename</span> Base::const_iterator;</div>
-<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;  <span class="keyword">using</span> AllocEntry = <span class="keyword">typename</span> std::allocator_traits&lt;Allocator&gt;::template rebind_alloc&lt;Entry&gt;;</div>
-<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;  <span class="keyword">using</span> AllocU64 = <span class="keyword">typename</span> std::allocator_traits&lt;Allocator&gt;::template rebind_alloc&lt;uint64_t&gt;;</div>
-<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;  <span class="keyword">using</span> AllocBytes = <span class="keyword">typename</span> std::allocator_traits&lt;Allocator&gt;::template rebind_alloc&lt;uint8_t&gt;;</div>
-<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;  <span class="keyword">using</span> vector_bytes = std::vector&lt;uint8_t, AllocBytes&gt;;</div>
-<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;  <span class="keyword">using</span> comparator = compare_by_key&lt;ExtractKey&gt;;</div>
-<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160; </div>
-<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;  <span class="keyword">static</span> <span class="keyword">const</span> uint8_t SERIAL_VERSION_LEGACY = 1;</div>
-<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;  <span class="keyword">static</span> <span class="keyword">const</span> uint8_t SERIAL_VERSION = 3;</div>
-<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;  <span class="keyword">static</span> <span class="keyword">const</span> uint8_t SKETCH_FAMILY = 9;</div>
-<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;  <span class="keyword">static</span> <span class="keyword">const</span> uint8_t SKETCH_TYPE = 1;</div>
-<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;  <span class="keyword">static</span> <span class="keyword">const</span> uint8_t SKETCH_TYPE_LEGACY = 5;</div>
-<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;  <span class="keyword">enum</span> flags { IS_BIG_ENDIAN, IS_READ_ONLY, IS_EMPTY, IS_COMPACT, IS_ORDERED };</div>
-<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160; </div>
-<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;  <span class="comment">// Instances of this type can be obtained:</span></div>
-<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;  <span class="comment">// - by compacting an update_tuple_sketch</span></div>
-<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;  <span class="comment">// - as a result of a set operation</span></div>
-<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;  <span class="comment">// - by deserializing a previously serialized compact sketch</span></div>
-<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160; </div>
-<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;  <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a919843136e9bb921acd40bfea4ed5aef">compact_tuple_sketch</a>(<span class="keyword">const</span> <a class="code" href="classdatasketches_1_1tuple__sketch.html">Base</a>&amp; other, <span class="keywordtype">bool</span> ordered);</div>
-<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160; </div>
-<div class="line"><a name="l00444"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#ae38beebc4e0badbf382971d635dee089">  444</a></span>&#160;  <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#ae38beebc4e0badbf382971d635dee089">compact_tuple_sketch</a>(<span class="keyword">const</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a>&amp; other) = <span class="keywordflow" [...]
-<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160; </div>
-<div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;  <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a919843136e9bb921acd40bfea4ed5aef">compact_tuple_sketch</a>(<a class="code" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a>&amp;&amp;) noexcept;</div>
-<div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160; </div>
-<div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;  virtual ~<a class="code" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a>() = default;</div>
-<div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160; </div>
-<div class="line"><a name="l00459"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a96777b7312b405f583efd29567e531ee">  459</a></span>&#160;  <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a>&amp; operator=(const <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a>&amp; other) = default;</div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;  <span class="keyword">virtual</span> iterator <a class="code" href="classdatasketches_1_1update__tuple__sketch.html#ad950587c89b4306f927b08b5e5cb7e89">begin</a>();</div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;  <span class="keyword">virtual</span> iterator <a class="code" href="classdatasketches_1_1update__tuple__sketch.html#a7727305d5e1ec66a181e22c43af9a581">end</a>();</div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;  <span class="keyword">virtual</span> const_iterator <a class="code" href="classdatasketches_1_1update__tuple__sketch.html#ad950587c89b4306f927b08b5e5cb7e89">begin</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;  <span class="keyword">virtual</span> const_iterator <a class="code" href="classdatasketches_1_1update__tuple__sketch.html#a7727305d5e1ec66a181e22c43af9a581">end</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160; </div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;<span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;  Policy policy_;</div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;  tuple_map map_;</div>
+<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160; </div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;  <span class="comment">// for builder</span></div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;  <a class="code" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch</a>(uint8_t lg_cur_size, uint8_t lg_nom_size, resize_factor rf, <span class="keywordtype">float</span> p, uint64_t theta, uint64_t seed, <span class="keyword">const</span> Policy&amp; policy, <span class="keyword">const</span> Allocator&amp; allocator);</div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160; </div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> print_specifics(std::ostringstream&amp; os) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;};</div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160; </div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;<span class="keyword">template</span>&lt;</div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;  <span class="keyword">typename</span> Summary,</div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;  <span class="keyword">typename</span> Allocator = std::allocator&lt;Summary&gt;</div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;&gt;</div>
+<div class="line"><a name="l00416"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html">  416</a></span>&#160;<span class="keyword">class </span><a class="code" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a>: <span class="keyword">public</span> <a class="code" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch</a>&lt;Summary, Allocator&gt; {</div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;  <span class="keyword">using</span> <a class="code" href="classdatasketches_1_1tuple__sketch.html">Base</a> = <a class="code" href="classdatasketches_1_1tuple__sketch.html">tuple_sketch&lt;Summary, Allocator&gt;</a>;</div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;  <span class="keyword">using</span> Entry = <span class="keyword">typename</span> Base::Entry;</div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;  <span class="keyword">using</span> ExtractKey = <span class="keyword">typename</span> Base::ExtractKey;</div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;  <span class="keyword">using</span> iterator = <span class="keyword">typename</span> Base::iterator;</div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;  <span class="keyword">using</span> const_iterator = <span class="keyword">typename</span> Base::const_iterator;</div>
+<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;  <span class="keyword">using</span> AllocEntry = <span class="keyword">typename</span> std::allocator_traits&lt;Allocator&gt;::template rebind_alloc&lt;Entry&gt;;</div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;  <span class="keyword">using</span> AllocU64 = <span class="keyword">typename</span> std::allocator_traits&lt;Allocator&gt;::template rebind_alloc&lt;uint64_t&gt;;</div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;  <span class="keyword">using</span> AllocBytes = <span class="keyword">typename</span> std::allocator_traits&lt;Allocator&gt;::template rebind_alloc&lt;uint8_t&gt;;</div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;  <span class="keyword">using</span> vector_bytes = std::vector&lt;uint8_t, AllocBytes&gt;;</div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;  <span class="keyword">using</span> comparator = compare_by_key&lt;ExtractKey&gt;;</div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160; </div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;  <span class="keyword">static</span> <span class="keyword">const</span> uint8_t SERIAL_VERSION_LEGACY = 1;</div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;  <span class="keyword">static</span> <span class="keyword">const</span> uint8_t SERIAL_VERSION = 3;</div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;  <span class="keyword">static</span> <span class="keyword">const</span> uint8_t SKETCH_FAMILY = 9;</div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;  <span class="keyword">static</span> <span class="keyword">const</span> uint8_t SKETCH_TYPE = 1;</div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;  <span class="keyword">static</span> <span class="keyword">const</span> uint8_t SKETCH_TYPE_LEGACY = 5;</div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;  <span class="keyword">enum</span> flags { IS_BIG_ENDIAN, IS_READ_ONLY, IS_EMPTY, IS_COMPACT, IS_ORDERED };</div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160; </div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;  <span class="comment">// Instances of this type can be obtained:</span></div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;  <span class="comment">// - by compacting an update_tuple_sketch</span></div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;  <span class="comment">// - as a result of a set operation</span></div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;  <span class="comment">// - by deserializing a previously serialized compact sketch</span></div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160; </div>
+<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;  <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a919843136e9bb921acd40bfea4ed5aef">compact_tuple_sketch</a>(<span class="keyword">const</span> <a class="code" href="classdatasketches_1_1tuple__sketch.html">Base</a>&amp; other, <span class="keywordtype">bool</span> ordered);</div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160; </div>
+<div class="line"><a name="l00453"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#ae38beebc4e0badbf382971d635dee089">  453</a></span>&#160;  <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#ae38beebc4e0badbf382971d635dee089">compact_tuple_sketch</a>(<span class="keyword">const</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a>&amp; other) = <span class="keywordflow" [...]
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160; </div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;  <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a919843136e9bb921acd40bfea4ed5aef">compact_tuple_sketch</a>(<a class="code" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a>&amp;&amp;) noexcept;</div>
 <div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160; </div>
-<div class="line"><a name="l00466"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#ad031c8e903006ee06e9cb91ead4ffb38">  466</a></span>&#160;  <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a>&amp; operator=(<a class="code" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a>&amp;&amp; other) = default;</div>
-<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160; </div>
-<div class="line"><a name="l00474"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a519b06cb3b46caf95b967ce404246105">  474</a></span>&#160;  <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a>(const <a class="code" href="classdatasketches_1_1theta__sketch__alloc.html">theta_sketch_alloc</a>&lt;AllocU64&gt;&amp; other, const Summary&amp; summary, <span class="keywordtype">bool</span> ordered = tr [...]
-<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160; </div>
-<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;  virtual Allocator <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a9d85cf47c4ecd0580ec623c42006dd1b">get_allocator</a>() const;</div>
-<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;  virtual <span class="keywordtype">bool</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a5a2b7a58dc85678d08752945ff655362">is_empty</a>() const;</div>
-<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;  virtual <span class="keywordtype">bool</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a5f5b393314c0c1819f79b73232a506e8">is_ordered</a>() const;</div>
-<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;  virtual uint64_t <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a2b072fe55377eb51a6ee477827fc3b95">get_theta64</a>() const;</div>
-<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;  virtual uint32_t <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a31fa76458d81a17dbebfcb828e531f14">get_num_retained</a>() const;</div>
-<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;  virtual uint16_t <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a6f69b50bc13da11d255d0e583e2376ba">get_seed_hash</a>() const;</div>
-<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160; </div>
-<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;  template&lt;typename SerDe = <a class="code" href="structdatasketches_1_1serde.html">serde</a>&lt;Summary&gt;&gt;</div>
-<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a538940c100e4353b3671ad452d3d3056">serialize</a>(std::ostream&amp; os, const SerDe&amp; sd = SerDe()) const;</div>
-<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160; </div>
-<div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;  template&lt;typename SerDe = <a class="code" href="structdatasketches_1_1serde.html">serde</a>&lt;Summary&gt;&gt;</div>
-<div class="line"><a name="l00501"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a1d0c269c23926e93b1c7a9c00e86af97">  501</a></span>&#160;  vector_bytes <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a538940c100e4353b3671ad452d3d3056">serialize</a>(<span class="keywordtype">unsigned</span> header_size_bytes = 0, const SerDe&amp; sd = SerDe()) const;</div>
-<div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160; </div>
-<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;  virtual iterator <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#ad950587c89b4306f927b08b5e5cb7e89">begin</a>();</div>
-<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;  virtual iterator <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a7727305d5e1ec66a181e22c43af9a581">end</a>();</div>
-<div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;  virtual const_iterator <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#ad950587c89b4306f927b08b5e5cb7e89">begin</a>() const;</div>
-<div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;  virtual const_iterator <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a7727305d5e1ec66a181e22c43af9a581">end</a>() const;</div>
-<div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160; </div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;  virtual ~<a class="code" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a>() = default;</div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160; </div>
+<div class="line"><a name="l00468"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a96777b7312b405f583efd29567e531ee">  468</a></span>&#160;  <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a>&amp; operator=(const <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a>&amp; other) = default;</div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160; </div>
+<div class="line"><a name="l00475"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#ad031c8e903006ee06e9cb91ead4ffb38">  475</a></span>&#160;  <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a>&amp; operator=(<a class="code" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a>&amp;&amp; other) = default;</div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160; </div>
+<div class="line"><a name="l00483"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a519b06cb3b46caf95b967ce404246105">  483</a></span>&#160;  <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a>(const <a class="code" href="classdatasketches_1_1theta__sketch__alloc.html">theta_sketch_alloc</a>&lt;AllocU64&gt;&amp; other, const Summary&amp; summary, <span class="keywordtype">bool</span> ordered = tr [...]
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160; </div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;  virtual Allocator <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a9d85cf47c4ecd0580ec623c42006dd1b">get_allocator</a>() const;</div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;  virtual <span class="keywordtype">bool</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a5a2b7a58dc85678d08752945ff655362">is_empty</a>() const;</div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;  virtual <span class="keywordtype">bool</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a5f5b393314c0c1819f79b73232a506e8">is_ordered</a>() const;</div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;  virtual uint64_t <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a2b072fe55377eb51a6ee477827fc3b95">get_theta64</a>() const;</div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;  virtual uint32_t <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a31fa76458d81a17dbebfcb828e531f14">get_num_retained</a>() const;</div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;  virtual uint16_t <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a6f69b50bc13da11d255d0e583e2376ba">get_seed_hash</a>() const;</div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160; </div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;  template&lt;typename Predicate&gt;</div>
+<div class="line"><a name="l00499"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a45b4c825a3545299d8bfeeadc70708c3">  499</a></span>&#160;  <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a45b4c825a3545299d8bfeeadc70708c3">filter</a>(const Predicate&amp; predicate) const;</div>
+<div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160; </div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;  template&lt;typename Sketch, typename Predicate&gt;</div>
+<div class="line"><a name="l00509"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a52e3b99cd0e081aaeffeb1569dcff39f">  509</a></span>&#160;  static <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a45b4c825a3545299d8bfeeadc70708c3">filter</a>(const Sketch&amp; sketch, const Predicate&amp; predicate);</div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160; </div>
 <div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;  template&lt;typename SerDe = <a class="code" href="structdatasketches_1_1serde.html">serde</a>&lt;Summary&gt;&gt;</div>
-<div class="line"><a name="l00517"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#aa4654837acac56f89e5c083198374eda">  517</a></span>&#160;  static <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#aa4654837acac56f89e5c083198374eda">deserialize</a>(std::istream&amp; is, uint64_t seed = DEFAULT_SEED,</div>
-<div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;      const SerDe&amp; sd = SerDe(), const Allocator&amp; allocator = Allocator());</div>
-<div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160; </div>
-<div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;  template&lt;typename SerDe = <a class="code" href="structdatasketches_1_1serde.html">serde</a>&lt;Summary&gt;&gt;</div>
-<div class="line"><a name="l00530"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a37f6a609deea82bf072b744f2f3e4ea8">  530</a></span>&#160;  static <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#aa4654837acac56f89e5c083198374eda">deserialize</a>(const <span class="keywordtype">void</span>* bytes, <span class="keywordtype [...]
-<div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;      const SerDe&amp; sd = SerDe(), const Allocator&amp; allocator = Allocator());</div>
-<div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160; </div>
-<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;protected:</div>
-<div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;  <span class="keywordtype">bool</span> is_empty_;</div>
-<div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;  <span class="keywordtype">bool</span> is_ordered_;</div>
-<div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;  uint16_t seed_hash_;</div>
-<div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;  uint64_t theta_;</div>
-<div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;  std::vector&lt;Entry, AllocEntry&gt; entries_;</div>
-<div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160; </div>
-<div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;  template&lt;typename SerDe, typename SS = Summary, typename std::enable_if&lt;std::is_arithmetic&lt;SS&gt;::value, <span class="keywordtype">int</span>&gt;::type = 0&gt;</div>
-<div class="line"><a name="l00546"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#aebe0bd9f97ef071d15ae25b9c3418e65">  546</a></span>&#160;  <span class="keywordtype">size_t</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#aebe0bd9f97ef071d15ae25b9c3418e65">get_serialized_size_summaries_bytes</a>(const SerDe&amp; sd) const;</div>
+<div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a538940c100e4353b3671ad452d3d3056">serialize</a>(std::ostream&amp; os, const SerDe&amp; sd = SerDe()) const;</div>
+<div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160; </div>
+<div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;  template&lt;typename SerDe = <a class="code" href="structdatasketches_1_1serde.html">serde</a>&lt;Summary&gt;&gt;</div>
+<div class="line"><a name="l00529"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a1d0c269c23926e93b1c7a9c00e86af97">  529</a></span>&#160;  vector_bytes <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a538940c100e4353b3671ad452d3d3056">serialize</a>(<span class="keywordtype">unsigned</span> header_size_bytes = 0, const SerDe&amp; sd = SerDe()) const;</div>
+<div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160; </div>
+<div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;  virtual iterator <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#ad950587c89b4306f927b08b5e5cb7e89">begin</a>();</div>
+<div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;  virtual iterator <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a7727305d5e1ec66a181e22c43af9a581">end</a>();</div>
+<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;  virtual const_iterator <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#ad950587c89b4306f927b08b5e5cb7e89">begin</a>() const;</div>
+<div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;  virtual const_iterator <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a7727305d5e1ec66a181e22c43af9a581">end</a>() const;</div>
+<div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160; </div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;  template&lt;typename SerDe = <a class="code" href="structdatasketches_1_1serde.html">serde</a>&lt;Summary&gt;&gt;</div>
+<div class="line"><a name="l00545"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#aa4654837acac56f89e5c083198374eda">  545</a></span>&#160;  static <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#aa4654837acac56f89e5c083198374eda">deserialize</a>(std::istream&amp; is, uint64_t seed = DEFAULT_SEED,</div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;      const SerDe&amp; sd = SerDe(), const Allocator&amp; allocator = Allocator());</div>
 <div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160; </div>
-<div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;  template&lt;typename SerDe, typename SS = Summary, typename std::enable_if&lt;!std::is_arithmetic&lt;SS&gt;::value, <span class="keywordtype">int</span>&gt;::type = 0&gt;</div>
-<div class="line"><a name="l00554"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#aebe0bd9f97ef071d15ae25b9c3418e65">  554</a></span>&#160;  <span class="keywordtype">size_t</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#aebe0bd9f97ef071d15ae25b9c3418e65">get_serialized_size_summaries_bytes</a>(const SerDe&amp; sd) const;</div>
-<div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160; </div>
-<div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;  <span class="comment">// for deserialize</span></div>
-<div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;  class deleter_of_summaries {</div>
-<div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;  <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;    deleter_of_summaries(uint32_t num, <span class="keywordtype">bool</span> destroy, <span class="keyword">const</span> Allocator&amp; allocator):</div>
-<div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;      allocator_(allocator), num_(num), destroy_(destroy) {}</div>
-<div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;    <span class="keywordtype">void</span> set_destroy(<span class="keywordtype">bool</span> destroy) { destroy_ = destroy; }</div>
-<div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;    <span class="keywordtype">void</span> operator() (Summary* ptr) {</div>
-<div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;      <span class="keywordflow">if</span> (ptr != <span class="keyword">nullptr</span>) {</div>
-<div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;        <span class="keywordflow">if</span> (destroy_) {</div>
-<div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;          <span class="keywordflow">for</span> (uint32_t i = 0; i &lt; num_; ++i) ptr[i].~Summary();</div>
-<div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;        }</div>
-<div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;        allocator_.deallocate(ptr, num_);</div>
-<div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;      }</div>
-<div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;    }</div>
-<div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;  <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;    Allocator allocator_;</div>
-<div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;    uint32_t num_;</div>
-<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;    <span class="keywordtype">bool</span> destroy_;</div>
-<div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;  };</div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;  template&lt;typename SerDe = <a class="code" href="structdatasketches_1_1serde.html">serde</a>&lt;Summary&gt;&gt;</div>
+<div class="line"><a name="l00558"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a37f6a609deea82bf072b744f2f3e4ea8">  558</a></span>&#160;  static <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#aa4654837acac56f89e5c083198374eda">deserialize</a>(const <span class="keywordtype">void</span>* bytes, <span class="keywordtype [...]
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;      const SerDe&amp; sd = SerDe(), const Allocator&amp; allocator = Allocator());</div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160; </div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;protected:</div>
+<div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;  <span class="keywordtype">bool</span> is_empty_;</div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;  <span class="keywordtype">bool</span> is_ordered_;</div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;  uint16_t seed_hash_;</div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;  uint64_t theta_;</div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;  std::vector&lt;Entry, AllocEntry&gt; entries_;</div>
+<div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160; </div>
+<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;  template&lt;typename SerDe, typename SS = Summary, typename std::enable_if&lt;std::is_arithmetic&lt;SS&gt;::value, <span class="keywordtype">int</span>&gt;::type = 0&gt;</div>
+<div class="line"><a name="l00574"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#aebe0bd9f97ef071d15ae25b9c3418e65">  574</a></span>&#160;  <span class="keywordtype">size_t</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#aebe0bd9f97ef071d15ae25b9c3418e65">get_serialized_size_summaries_bytes</a>(const SerDe&amp; sd) const;</div>
 <div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160; </div>
-<div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> print_specifics(std::ostringstream&amp; os) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160; </div>
-<div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> E, <span class="keyword">typename</span> EK, <span class="keyword">typename</span> P, <span class="keyword">typename</span> S, <span class="keyword">typename</span> CS, <span class="keyword">typename</span> A&gt; <span class="keyword">friend</span> <span class="keyword">class </span>theta_union_base;</div>
-<div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> E, <span class="keyword">typename</span> EK, <span class="keyword">typename</span> P, <span class="keyword">typename</span> S, <span class="keyword">typename</span> CS, <span class="keyword">typename</span> A&gt; <span class="keyword">friend</span> <span class="keyword">class </span>theta_intersection_base;</div>
-<div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> E, <span class="keyword">typename</span> EK, <span class="keyword">typename</span> CS, <span class="keyword">typename</span> A&gt; <span class="keyword">friend</span> <span class="keyword">class </span>theta_set_difference_base;</div>
-<div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;  <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a919843136e9bb921acd40bfea4ed5aef">compact_tuple_sketch</a>(<span class="keywordtype">bool</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a5a2b7a58dc85678d08752945ff655362">is_empty</a>, <span class="keywordtype">bool</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a5f5b393314c0c [...]
-<div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160; </div>
-<div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;};</div>
-<div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160; </div>
-<div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> Derived, <span class="keyword">typename</span> Policy, <span class="keyword">typename</span> Allocator&gt;</div>
-<div class="line"><a name="l00587"></a><span class="lineno"><a class="line" href="classdatasketches_1_1tuple__base__builder.html">  587</a></span>&#160;<span class="keyword">class </span><a class="code" href="classdatasketches_1_1tuple__base__builder.html">tuple_base_builder</a>: <span class="keyword">public</span> <a class="code" href="classdatasketches_1_1theta__base__builder.html">theta_base_builder</a>&lt;Derived, Allocator&gt; {</div>
-<div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;  <a class="code" href="classdatasketches_1_1tuple__base__builder.html">tuple_base_builder</a>(<span class="keyword">const</span> Policy&amp; policy, <span class="keyword">const</span> Allocator&amp; allocator);</div>
-<div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160; </div>
-<div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;<span class="keyword">protected</span>:</div>
-<div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;  Policy policy_;</div>
-<div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;};</div>
-<div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160; </div>
-<div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> U, <span class="keyword">typename</span> P, <span class="keyword">typename</span> A&gt;</div>
-<div class="line"><a name="l00597"></a><span class="lineno"><a class="line" href="classdatasketches_1_1update__tuple__sketch_1_1builder.html">  597</a></span>&#160;<span class="keyword">class </span><a class="code" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch</a>&lt;S, U, P, A&gt;::<a class="code" href="classdatasketches_1_1update__tuple__sketch_1_1builder.html">builder</a>: <span class="keyword">public</span> <a class="code" href="classdatasketches_1_1tuple [...]
-<div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;  <a class="code" href="classdatasketches_1_1update__tuple__sketch_1_1builder.html">builder</a>(<span class="keyword">const</span> P&amp; policy = P(), <span class="keyword">const</span> A&amp; allocator = A());</div>
-<div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160; </div>
-<div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;  <a class="code" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt;S, U, P, A&gt;</a> build() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;};</div>
-<div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160; </div>
-<div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;} <span class="comment">/* namespace datasketches */</span></div>
-<div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160; </div>
-<div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;<span class="preprocessor">#include &quot;tuple_sketch_impl.hpp&quot;</span></div>
+<div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;  template&lt;typename SerDe, typename SS = Summary, typename std::enable_if&lt;!std::is_arithmetic&lt;SS&gt;::value, <span class="keywordtype">int</span>&gt;::type = 0&gt;</div>
+<div class="line"><a name="l00582"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#aebe0bd9f97ef071d15ae25b9c3418e65">  582</a></span>&#160;  <span class="keywordtype">size_t</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#aebe0bd9f97ef071d15ae25b9c3418e65">get_serialized_size_summaries_bytes</a>(const SerDe&amp; sd) const;</div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160; </div>
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;  <span class="comment">// for deserialize</span></div>
+<div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;  class deleter_of_summaries {</div>
+<div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;    deleter_of_summaries(uint32_t num, <span class="keywordtype">bool</span> destroy, <span class="keyword">const</span> Allocator&amp; allocator):</div>
+<div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;      allocator_(allocator), num_(num), destroy_(destroy) {}</div>
+<div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;    <span class="keywordtype">void</span> set_destroy(<span class="keywordtype">bool</span> destroy) { destroy_ = destroy; }</div>
+<div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;    <span class="keywordtype">void</span> operator() (Summary* ptr) {</div>
+<div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;      <span class="keywordflow">if</span> (ptr != <span class="keyword">nullptr</span>) {</div>
+<div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;        <span class="keywordflow">if</span> (destroy_) {</div>
+<div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;          <span class="keywordflow">for</span> (uint32_t i = 0; i &lt; num_; ++i) ptr[i].~Summary();</div>
+<div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;        }</div>
+<div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;        allocator_.deallocate(ptr, num_);</div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;      }</div>
+<div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;    }</div>
+<div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;    Allocator allocator_;</div>
+<div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;    uint32_t num_;</div>
+<div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;    <span class="keywordtype">bool</span> destroy_;</div>
+<div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;  };</div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160; </div>
+<div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> print_specifics(std::ostringstream&amp; os) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160; </div>
+<div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> E, <span class="keyword">typename</span> EK, <span class="keyword">typename</span> P, <span class="keyword">typename</span> S, <span class="keyword">typename</span> CS, <span class="keyword">typename</span> A&gt; <span class="keyword">friend</span> <span class="keyword">class </span>theta_union_base;</div>
+<div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> E, <span class="keyword">typename</span> EK, <span class="keyword">typename</span> P, <span class="keyword">typename</span> S, <span class="keyword">typename</span> CS, <span class="keyword">typename</span> A&gt; <span class="keyword">friend</span> <span class="keyword">class </span>theta_intersection_base;</div>
+<div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;  <span class="keyword">template</span>&lt;<span class="keyword">typename</span> E, <span class="keyword">typename</span> EK, <span class="keyword">typename</span> CS, <span class="keyword">typename</span> A&gt; <span class="keyword">friend</span> <span class="keyword">class </span>theta_set_difference_base;</div>
+<div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;  <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a919843136e9bb921acd40bfea4ed5aef">compact_tuple_sketch</a>(<span class="keywordtype">bool</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a5a2b7a58dc85678d08752945ff655362">is_empty</a>, <span class="keywordtype">bool</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a5f5b393314c0c [...]
+<div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;};</div>
+<div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160; </div>
+<div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> Derived, <span class="keyword">typename</span> Policy, <span class="keyword">typename</span> Allocator&gt;</div>
+<div class="line"><a name="l00614"></a><span class="lineno"><a class="line" href="classdatasketches_1_1tuple__base__builder.html">  614</a></span>&#160;<span class="keyword">class </span><a class="code" href="classdatasketches_1_1tuple__base__builder.html">tuple_base_builder</a>: <span class="keyword">public</span> <a class="code" href="classdatasketches_1_1theta__base__builder.html">theta_base_builder</a>&lt;Derived, Allocator&gt; {</div>
+<div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;  <a class="code" href="classdatasketches_1_1tuple__base__builder.html">tuple_base_builder</a>(<span class="keyword">const</span> Policy&amp; policy, <span class="keyword">const</span> Allocator&amp; allocator);</div>
 <div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160; </div>
-<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html">datasketches::compact_tuple_sketch</a></div><div class="ttdoc">Compact Tuple sketch.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:407</div></div>
-<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a2b072fe55377eb51a6ee477827fc3b95"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a2b072fe55377eb51a6ee477827fc3b95">datasketches::compact_tuple_sketch::get_theta64</a></div><div class="ttdeci">virtual uint64_t get_theta64() const</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:333</div></div>
-<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a31fa76458d81a17dbebfcb828e531f14"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a31fa76458d81a17dbebfcb828e531f14">datasketches::compact_tuple_sketch::get_num_retained</a></div><div class="ttdeci">virtual uint32_t get_num_retained() const</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:338</div></div>
-<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a538940c100e4353b3671ad452d3d3056"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a538940c100e4353b3671ad452d3d3056">datasketches::compact_tuple_sketch::serialize</a></div><div class="ttdeci">void serialize(std::ostream &amp;os, const SerDe &amp;sd=SerDe()) const</div><div class="ttdoc">This method serializes the sketch into a given stream in a binary form.</div><div class="ttdef"><b>Def [...]
-<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a5a2b7a58dc85678d08752945ff655362"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a5a2b7a58dc85678d08752945ff655362">datasketches::compact_tuple_sketch::is_empty</a></div><div class="ttdeci">virtual bool is_empty() const</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:323</div></div>
-<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a5f5b393314c0c1819f79b73232a506e8"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a5f5b393314c0c1819f79b73232a506e8">datasketches::compact_tuple_sketch::is_ordered</a></div><div class="ttdeci">virtual bool is_ordered() const</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:328</div></div>
-<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a6f69b50bc13da11d255d0e583e2376ba"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a6f69b50bc13da11d255d0e583e2376ba">datasketches::compact_tuple_sketch::get_seed_hash</a></div><div class="ttdeci">virtual uint16_t get_seed_hash() const</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:343</div></div>
-<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a7727305d5e1ec66a181e22c43af9a581"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a7727305d5e1ec66a181e22c43af9a581">datasketches::compact_tuple_sketch::end</a></div><div class="ttdeci">virtual iterator end()</div><div class="ttdoc">Iterator pointing past the valid range.</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:569</div></div>
-<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a919843136e9bb921acd40bfea4ed5aef"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a919843136e9bb921acd40bfea4ed5aef">datasketches::compact_tuple_sketch::compact_tuple_sketch</a></div><div class="ttdeci">compact_tuple_sketch(const Base &amp;other, bool ordered)</div><div class="ttdoc">Copy constructor.</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:281</div></div>
-<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a9d85cf47c4ecd0580ec623c42006dd1b"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a9d85cf47c4ecd0580ec623c42006dd1b">datasketches::compact_tuple_sketch::get_allocator</a></div><div class="ttdeci">virtual Allocator get_allocator() const</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:318</div></div>
+<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;<span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;  Policy policy_;</div>
+<div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;};</div>
+<div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160; </div>
+<div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> U, <span class="keyword">typename</span> P, <span class="keyword">typename</span> A&gt;</div>
+<div class="line"><a name="l00624"></a><span class="lineno"><a class="line" href="classdatasketches_1_1update__tuple__sketch_1_1builder.html">  624</a></span>&#160;<span class="keyword">class </span><a class="code" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch</a>&lt;S, U, P, A&gt;::<a class="code" href="classdatasketches_1_1update__tuple__sketch_1_1builder.html">builder</a>: <span class="keyword">public</span> <a class="code" href="classdatasketches_1_1tuple [...]
+<div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;  <a class="code" href="classdatasketches_1_1update__tuple__sketch_1_1builder.html">builder</a>(<span class="keyword">const</span> P&amp; policy = P(), <span class="keyword">const</span> A&amp; allocator = A());</div>
+<div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160; </div>
+<div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;  <a class="code" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt;S, U, P, A&gt;</a> build() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;};</div>
+<div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160; </div>
+<div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;} <span class="comment">/* namespace datasketches */</span></div>
+<div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160; </div>
+<div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;<span class="preprocessor">#include &quot;tuple_sketch_impl.hpp&quot;</span></div>
+<div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160; </div>
+<div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html">datasketches::compact_tuple_sketch</a></div><div class="ttdoc">Compact Tuple sketch.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:416</div></div>
+<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a2b072fe55377eb51a6ee477827fc3b95"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a2b072fe55377eb51a6ee477827fc3b95">datasketches::compact_tuple_sketch::get_theta64</a></div><div class="ttdeci">virtual uint64_t get_theta64() const</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:339</div></div>
+<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a31fa76458d81a17dbebfcb828e531f14"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a31fa76458d81a17dbebfcb828e531f14">datasketches::compact_tuple_sketch::get_num_retained</a></div><div class="ttdeci">virtual uint32_t get_num_retained() const</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:344</div></div>
+<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a45b4c825a3545299d8bfeeadc70708c3"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a45b4c825a3545299d8bfeeadc70708c3">datasketches::compact_tuple_sketch::filter</a></div><div class="ttdeci">compact_tuple_sketch filter(const Predicate &amp;predicate) const</div><div class="ttdoc">Produces a Compact Tuple sketch from this sketch by applying a given predicate to each entry.</div></div>
+<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a538940c100e4353b3671ad452d3d3056"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a538940c100e4353b3671ad452d3d3056">datasketches::compact_tuple_sketch::serialize</a></div><div class="ttdeci">void serialize(std::ostream &amp;os, const SerDe &amp;sd=SerDe()) const</div><div class="ttdoc">This method serializes the sketch into a given stream in a binary form.</div><div class="ttdef"><b>Def [...]
+<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a5a2b7a58dc85678d08752945ff655362"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a5a2b7a58dc85678d08752945ff655362">datasketches::compact_tuple_sketch::is_empty</a></div><div class="ttdeci">virtual bool is_empty() const</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:329</div></div>
+<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a5f5b393314c0c1819f79b73232a506e8"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a5f5b393314c0c1819f79b73232a506e8">datasketches::compact_tuple_sketch::is_ordered</a></div><div class="ttdeci">virtual bool is_ordered() const</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:334</div></div>
+<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a6f69b50bc13da11d255d0e583e2376ba"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a6f69b50bc13da11d255d0e583e2376ba">datasketches::compact_tuple_sketch::get_seed_hash</a></div><div class="ttdeci">virtual uint16_t get_seed_hash() const</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:349</div></div>
+<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a7727305d5e1ec66a181e22c43af9a581"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a7727305d5e1ec66a181e22c43af9a581">datasketches::compact_tuple_sketch::end</a></div><div class="ttdeci">virtual iterator end()</div><div class="ttdoc">Iterator pointing past the valid range.</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:602</div></div>
+<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a919843136e9bb921acd40bfea4ed5aef"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a919843136e9bb921acd40bfea4ed5aef">datasketches::compact_tuple_sketch::compact_tuple_sketch</a></div><div class="ttdeci">compact_tuple_sketch(const Base &amp;other, bool ordered)</div><div class="ttdoc">Copy constructor.</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:287</div></div>
+<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a9d85cf47c4ecd0580ec623c42006dd1b"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a9d85cf47c4ecd0580ec623c42006dd1b">datasketches::compact_tuple_sketch::get_allocator</a></div><div class="ttdeci">virtual Allocator get_allocator() const</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:324</div></div>
 <div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_aa4654837acac56f89e5c083198374eda"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#aa4654837acac56f89e5c083198374eda">datasketches::compact_tuple_sketch::deserialize</a></div><div class="ttdeci">static compact_tuple_sketch deserialize(std::istream &amp;is, uint64_t seed=DEFAULT_SEED, const SerDe &amp;sd=SerDe(), const Allocator &amp;allocator=Allocator())</div><div class="ttdoc">This meth [...]
-<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_ad950587c89b4306f927b08b5e5cb7e89"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#ad950587c89b4306f927b08b5e5cb7e89">datasketches::compact_tuple_sketch::begin</a></div><div class="ttdeci">virtual iterator begin()</div><div class="ttdoc">Iterator over entries in this sketch.</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:564</div></div>
+<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_ad950587c89b4306f927b08b5e5cb7e89"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#ad950587c89b4306f927b08b5e5cb7e89">datasketches::compact_tuple_sketch::begin</a></div><div class="ttdeci">virtual iterator begin()</div><div class="ttdoc">Iterator over entries in this sketch.</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:597</div></div>
 <div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_ae38beebc4e0badbf382971d635dee089"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#ae38beebc4e0badbf382971d635dee089">datasketches::compact_tuple_sketch::compact_tuple_sketch</a></div><div class="ttdeci">compact_tuple_sketch(const compact_tuple_sketch &amp;other)=default</div><div class="ttdoc">Copy constructor.</div></div>
 <div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_aebe0bd9f97ef071d15ae25b9c3418e65"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#aebe0bd9f97ef071d15ae25b9c3418e65">datasketches::compact_tuple_sketch::get_serialized_size_summaries_bytes</a></div><div class="ttdeci">size_t get_serialized_size_summaries_bytes(const SerDe &amp;sd) const</div><div class="ttdoc">Computes size needed to serialize summaries in the sketch.</div></div>
 <div class="ttc" id="aclassdatasketches_1_1theta__base__builder_html"><div class="ttname"><a href="classdatasketches_1_1theta__base__builder.html">datasketches::theta_base_builder</a></div><div class="ttdoc">Theta base builder.</div><div class="ttdef"><b>Definition:</b> theta_update_sketch_base.hpp:97</div></div>
 <div class="ttc" id="aclassdatasketches_1_1theta__sketch__alloc_html"><div class="ttname"><a href="classdatasketches_1_1theta__sketch__alloc.html">datasketches::theta_sketch_alloc</a></div><div class="ttdoc">Base class for the Theta Sketch, a generalization of the Kth Minimum Value (KMV) sketch.</div><div class="ttdef"><b>Definition:</b> theta_sketch.hpp:127</div></div>
-<div class="ttc" id="aclassdatasketches_1_1tuple__base__builder_html"><div class="ttname"><a href="classdatasketches_1_1tuple__base__builder.html">datasketches::tuple_base_builder</a></div><div class="ttdoc">Tuple base builder.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:587</div></div>
+<div class="ttc" id="aclassdatasketches_1_1tuple__base__builder_html"><div class="ttname"><a href="classdatasketches_1_1tuple__base__builder.html">datasketches::tuple_base_builder</a></div><div class="ttdoc">Tuple base builder.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:614</div></div>
 <div class="ttc" id="aclassdatasketches_1_1tuple__sketch_html"><div class="ttname"><a href="classdatasketches_1_1tuple__sketch.html">datasketches::tuple_sketch</a></div><div class="ttdoc">Base class for Tuple sketch.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:54</div></div>
 <div class="ttc" id="aclassdatasketches_1_1tuple__sketch_html_a0526cde38fc4f1bc32839293567c8717"><div class="ttname"><a href="classdatasketches_1_1tuple__sketch.html#a0526cde38fc4f1bc32839293567c8717">datasketches::tuple_sketch::get_upper_bound</a></div><div class="ttdeci">double get_upper_bound(uint8_t num_std_devs, uint32_t num_subset_entries) const</div><div class="ttdoc">Returns the approximate upper error bound given a number of standard deviations over an arbitrary num...</div><div [...]
 <div class="ttc" id="aclassdatasketches_1_1tuple__sketch_html_a250dc1485aaf4ef61332af5c5fdb4715"><div class="ttname"><a href="classdatasketches_1_1tuple__sketch.html#a250dc1485aaf4ef61332af5c5fdb4715">datasketches::tuple_sketch::begin</a></div><div class="ttdeci">virtual const_iterator begin() const =0</div><div class="ttdoc">Const iterator over entries in this sketch.</div></div>
@@ -449,7 +458,7 @@ $(function() {
 <div class="ttc" id="aclassdatasketches_1_1tuple__sketch_html_ae95a04b1d7dccb3d9b3f3c3d087aa8e6"><div class="ttname"><a href="classdatasketches_1_1tuple__sketch.html#ae95a04b1d7dccb3d9b3f3c3d087aa8e6">datasketches::tuple_sketch::is_estimation_mode</a></div><div class="ttdeci">bool is_estimation_mode() const</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:29</div></div>
 <div class="ttc" id="aclassdatasketches_1_1tuple__sketch_html_ae99d253473075b7c10569d4565d7ee90"><div class="ttname"><a href="classdatasketches_1_1tuple__sketch.html#ae99d253473075b7c10569d4565d7ee90">datasketches::tuple_sketch::get_allocator</a></div><div class="ttdeci">virtual Allocator get_allocator() const =0</div></div>
 <div class="ttc" id="aclassdatasketches_1_1tuple__sketch_html_aef2e47ecd9c33fc2a6a9e905a2a0516a"><div class="ttname"><a href="classdatasketches_1_1tuple__sketch.html#aef2e47ecd9c33fc2a6a9e905a2a0516a">datasketches::tuple_sketch::get_theta64</a></div><div class="ttdeci">virtual uint64_t get_theta64() const =0</div></div>
-<div class="ttc" id="aclassdatasketches_1_1update__tuple__sketch_1_1builder_html"><div class="ttname"><a href="classdatasketches_1_1update__tuple__sketch_1_1builder.html">datasketches::update_tuple_sketch::builder</a></div><div class="ttdoc">Update Tuple sketch builder.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:597</div></div>
+<div class="ttc" id="aclassdatasketches_1_1update__tuple__sketch_1_1builder_html"><div class="ttname"><a href="classdatasketches_1_1update__tuple__sketch_1_1builder.html">datasketches::update_tuple_sketch::builder</a></div><div class="ttdoc">Update Tuple sketch builder.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:624</div></div>
 <div class="ttc" id="aclassdatasketches_1_1update__tuple__sketch_html"><div class="ttname"><a href="classdatasketches_1_1update__tuple__sketch.html">datasketches::update_tuple_sketch</a></div><div class="ttdoc">Update Tuple sketch.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:217</div></div>
 <div class="ttc" id="aclassdatasketches_1_1update__tuple__sketch_html_a0d3921cf5bcfbda1b545b043b0b1b830"><div class="ttname"><a href="classdatasketches_1_1update__tuple__sketch.html#a0d3921cf5bcfbda1b545b043b0b1b830">datasketches::update_tuple_sketch::update</a></div><div class="ttdeci">void update(int16_t key, FwdUpdate &amp;&amp;value)</div><div class="ttdoc">Update this sketch with a given signed 16-bit integer.</div></div>
 <div class="ttc" id="aclassdatasketches_1_1update__tuple__sketch_html_a268ae12a22c9f97b84833e4c39fb2278"><div class="ttname"><a href="classdatasketches_1_1update__tuple__sketch.html#a268ae12a22c9f97b84833e4c39fb2278">datasketches::update_tuple_sketch::trim</a></div><div class="ttdeci">void trim()</div><div class="ttdoc">Remove retained entries in excess of the nominal size k (if any)</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:227</div></div>
@@ -470,6 +479,7 @@ $(function() {
 <div class="ttc" id="aclassdatasketches_1_1update__tuple__sketch_html_a9625343612a687c7eb250cc19d032f6c"><div class="ttname"><a href="classdatasketches_1_1update__tuple__sketch.html#a9625343612a687c7eb250cc19d032f6c">datasketches::update_tuple_sketch::update</a></div><div class="ttdeci">void update(uint8_t key, FwdUpdate &amp;&amp;value)</div><div class="ttdoc">Update this sketch with a given unsigned 8-bit integer.</div></div>
 <div class="ttc" id="aclassdatasketches_1_1update__tuple__sketch_html_a981d2038132151b982935ee7713add7a"><div class="ttname"><a href="classdatasketches_1_1update__tuple__sketch.html#a981d2038132151b982935ee7713add7a">datasketches::update_tuple_sketch::update</a></div><div class="ttdeci">void update(uint32_t key, FwdUpdate &amp;&amp;value)</div><div class="ttdoc">Update this sketch with a given unsigned 32-bit integer.</div></div>
 <div class="ttc" id="aclassdatasketches_1_1update__tuple__sketch_html_a9d85cf47c4ecd0580ec623c42006dd1b"><div class="ttname"><a href="classdatasketches_1_1update__tuple__sketch.html#a9d85cf47c4ecd0580ec623c42006dd1b">datasketches::update_tuple_sketch::get_allocator</a></div><div class="ttdeci">virtual Allocator get_allocator() const</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:105</div></div>
+<div class="ttc" id="aclassdatasketches_1_1update__tuple__sketch_html_aa37bb6b08780486ee17d59be552db371"><div class="ttname"><a href="classdatasketches_1_1update__tuple__sketch.html#aa37bb6b08780486ee17d59be552db371">datasketches::update_tuple_sketch::filter</a></div><div class="ttdeci">compact_tuple_sketch&lt; Summary, Allocator &gt; filter(const Predicate &amp;predicate) const</div><div class="ttdoc">Produces a Compact Tuple sketch from this sketch by applying a given predicate to each [...]
 <div class="ttc" id="aclassdatasketches_1_1update__tuple__sketch_html_ad02f663b02e9c1668141eece1c4adc33"><div class="ttname"><a href="classdatasketches_1_1update__tuple__sketch.html#ad02f663b02e9c1668141eece1c4adc33">datasketches::update_tuple_sketch::update</a></div><div class="ttdeci">void update(int64_t key, FwdUpdate &amp;&amp;value)</div><div class="ttdoc">Update this sketch with a given signed 64-bit integer.</div></div>
 <div class="ttc" id="aclassdatasketches_1_1update__tuple__sketch_html_ad20897c5c8bd47f5d4005989bead0e55"><div class="ttname"><a href="classdatasketches_1_1update__tuple__sketch.html#ad20897c5c8bd47f5d4005989bead0e55">datasketches::update_tuple_sketch::reset</a></div><div class="ttdeci">void reset()</div><div class="ttdoc">Reset the sketch to the initial empty state.</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:232</div></div>
 <div class="ttc" id="aclassdatasketches_1_1update__tuple__sketch_html_ad91de65acdf8e8908a7697e716b06147"><div class="ttname"><a href="classdatasketches_1_1update__tuple__sketch.html#ad91de65acdf8e8908a7697e716b06147">datasketches::update_tuple_sketch::update</a></div><div class="ttdeci">void update(const void *key, size_t length, FwdUpdate &amp;&amp;value)</div><div class="ttdoc">Update this sketch with given data of any type.</div></div>
diff --git a/docs/master/tuple__sketch__impl_8hpp_source.html b/docs/master/tuple__sketch__impl_8hpp_source.html
index ecda649..eee03ba 100644
--- a/docs/master/tuple__sketch__impl_8hpp_source.html
+++ b/docs/master/tuple__sketch__impl_8hpp_source.html
@@ -330,362 +330,396 @@ $(function() {
 <div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;}</div>
 <div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160; </div>
 <div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> U, <span class="keyword">typename</span> P, <span class="keyword">typename</span> A&gt;</div>
-<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;<span class="keywordtype">void</span> <a class="code" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt;S, U, P, A&gt;::print_specifics</a>(std::ostringstream&amp; os)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;  os &lt;&lt; <span class="stringliteral">&quot;   lg nominal size      : &quot;</span> &lt;&lt; (int) map_.lg_nom_size_ &lt;&lt; std::endl;</div>
-<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;  os &lt;&lt; <span class="stringliteral">&quot;   lg current size      : &quot;</span> &lt;&lt; (<span class="keywordtype">int</span>) map_.lg_cur_size_ &lt;&lt; std::endl;</div>
-<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;  os &lt;&lt; <span class="stringliteral">&quot;   resize factor        : &quot;</span> &lt;&lt; (1 &lt;&lt; map_.rf_) &lt;&lt; std::endl;</div>
-<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;}</div>
-<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160; </div>
-<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;<span class="comment">// compact sketch</span></div>
-<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160; </div>
-<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
-<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;compact_tuple_sketch&lt;S, A&gt;::compact_tuple_sketch(<span class="keywordtype">bool</span> is_empty, <span class="keywordtype">bool</span> is_ordered, uint16_t seed_hash, uint64_t theta,</div>
-<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;    std::vector&lt;Entry, AllocEntry&gt;&amp;&amp; entries):</div>
-<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;is_empty_(is_empty),</div>
-<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;is_ordered_(is_ordered || (entries.size() &lt;= 1ULL)),</div>
-<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;seed_hash_(seed_hash),</div>
-<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;theta_(theta),</div>
-<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;entries_(std::move(entries))</div>
-<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;{}</div>
-<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160; </div>
-<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
-<div class="line"><a name="l00281"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a919843136e9bb921acd40bfea4ed5aef">  281</a></span>&#160;<a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a919843136e9bb921acd40bfea4ed5aef">compact_tuple_sketch&lt;S, A&gt;::compact_tuple_sketch</a>(<span class="keyword">const</span> <a class="code" href="classdatasketches_1_1tuple__sketch.html">Base</a>&amp; other, <span class="keyword [...]
-<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;is_empty_(other.is_empty()),</div>
-<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;is_ordered_(other.is_ordered() || ordered),</div>
-<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;seed_hash_(other.get_seed_hash()),</div>
-<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;theta_(other.get_theta64()),</div>
-<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;entries_(other.get_allocator())</div>
-<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;{</div>
-<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;  entries_.reserve(other.<a class="code" href="classdatasketches_1_1tuple__sketch.html#a9c71f891e4b0d3d3dc6a6f4b30ed9261">get_num_retained</a>());</div>
-<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;  std::copy(other.<a class="code" href="classdatasketches_1_1tuple__sketch.html#ad1d91335a83907ae2ef026786e12ba0c">begin</a>(), other.<a class="code" href="classdatasketches_1_1tuple__sketch.html#aa7f5423261c0a178f37911746353c0b7">end</a>(), std::back_inserter(entries_));</div>
-<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;  <span class="keywordflow">if</span> (ordered &amp;&amp; !other.<a class="code" href="classdatasketches_1_1tuple__sketch.html#a358923431da50e8d43651795e2515c01">is_ordered</a>()) std::sort(entries_.begin(), entries_.end(), comparator());</div>
-<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;}</div>
-<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160; </div>
-<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
-<div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a35916bac524f4ff4ff02739553bd4622">  294</a></span>&#160;<a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a919843136e9bb921acd40bfea4ed5aef">compact_tuple_sketch&lt;S, A&gt;::compact_tuple_sketch</a>(<a class="code" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a>&amp;&amp; other) noexcept:</div>
-<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;is_empty_(other.is_empty()),</div>
-<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;is_ordered_(other.is_ordered()),</div>
-<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;seed_hash_(other.get_seed_hash()),</div>
-<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;theta_(other.get_theta64()),</div>
-<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;entries_(std::move(other.entries_))</div>
-<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;{}</div>
-<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160; </div>
-<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
-<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;<a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a919843136e9bb921acd40bfea4ed5aef">compact_tuple_sketch&lt;S, A&gt;::compact_tuple_sketch</a>(<span class="keyword">const</span> <a class="code" href="classdatasketches_1_1theta__sketch__alloc.html">theta_sketch_alloc&lt;AllocU64&gt;</a>&amp; other, <span class="keyword">const</span> S&amp; summary, <span class="keywordtype">bool</span> orde [...]
-<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;is_empty_(other.is_empty()),</div>
-<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;is_ordered_(other.is_ordered() || ordered),</div>
-<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;seed_hash_(other.get_seed_hash()),</div>
-<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;theta_(other.get_theta64()),</div>
-<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;entries_(other.get_allocator())</div>
-<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;{</div>
-<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;  entries_.reserve(other.<a class="code" href="classdatasketches_1_1base__theta__sketch__alloc.html#a9c71f891e4b0d3d3dc6a6f4b30ed9261">get_num_retained</a>());</div>
-<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;  <span class="keywordflow">for</span> (uint64_t hash: other) {</div>
-<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;    entries_.push_back(Entry(hash, summary));</div>
-<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;  }</div>
-<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;  <span class="keywordflow">if</span> (ordered &amp;&amp; !other.is_ordered()) std::sort(entries_.begin(), entries_.end(), comparator());</div>
-<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;}</div>
-<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160; </div>
-<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
-<div class="line"><a name="l00318"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a9d85cf47c4ecd0580ec623c42006dd1b">  318</a></span>&#160;A <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a9d85cf47c4ecd0580ec623c42006dd1b">compact_tuple_sketch&lt;S, A&gt;::get_allocator</a>()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;  <span class="keywordflow">return</span> entries_.get_allocator();</div>
-<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;}</div>
-<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160; </div>
-<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
-<div class="line"><a name="l00323"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a5a2b7a58dc85678d08752945ff655362">  323</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a5a2b7a58dc85678d08752945ff655362">compact_tuple_sketch&lt;S, A&gt;::is_empty</a>()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;  <span class="keywordflow">return</span> is_empty_;</div>
-<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;}</div>
-<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160; </div>
-<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
-<div class="line"><a name="l00328"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a5f5b393314c0c1819f79b73232a506e8">  328</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a5f5b393314c0c1819f79b73232a506e8">compact_tuple_sketch&lt;S, A&gt;::is_ordered</a>()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;  <span class="keywordflow">return</span> is_ordered_;</div>
-<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;}</div>
-<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160; </div>
-<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
-<div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a2b072fe55377eb51a6ee477827fc3b95">  333</a></span>&#160;uint64_t <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a2b072fe55377eb51a6ee477827fc3b95">compact_tuple_sketch&lt;S, A&gt;::get_theta64</a>()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;  <span class="keywordflow">return</span> theta_;</div>
-<div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;}</div>
-<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160; </div>
-<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
-<div class="line"><a name="l00338"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a31fa76458d81a17dbebfcb828e531f14">  338</a></span>&#160;uint32_t <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a31fa76458d81a17dbebfcb828e531f14">compact_tuple_sketch&lt;S, A&gt;::get_num_retained</a>()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>uint32_t<span class="keyword">&gt;</span>(entries_.size());</div>
-<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;}</div>
-<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160; </div>
-<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
-<div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a6f69b50bc13da11d255d0e583e2376ba">  343</a></span>&#160;uint16_t <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a6f69b50bc13da11d255d0e583e2376ba">compact_tuple_sketch&lt;S, A&gt;::get_seed_hash</a>()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;  <span class="keywordflow">return</span> seed_hash_;</div>
-<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;}</div>
-<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160; </div>
-<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;<span class="comment">// implementation for fixed-size arithmetic types (integral and floating point)</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> Predicate&gt;</div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;<a class="code" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch&lt;S, A&gt;</a> <a class="code" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch&lt;S, U, P, A&gt;::filter</a>(<span class="keyword">const</span> Predicate&amp; predicate)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch&lt;S, A&gt;::filter</a>(*<span class="keyword">this</span>, predicate);</div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;}</div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160; </div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> U, <span class="keyword">typename</span> P, <span class="keyword">typename</span> A&gt;</div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;<span class="keywordtype">void</span> update_tuple_sketch&lt;S, U, P, A&gt;::print_specifics(std::ostringstream&amp; os)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;  os &lt;&lt; <span class="stringliteral">&quot;   lg nominal size      : &quot;</span> &lt;&lt; (int) map_.lg_nom_size_ &lt;&lt; std::endl;</div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;  os &lt;&lt; <span class="stringliteral">&quot;   lg current size      : &quot;</span> &lt;&lt; (<span class="keywordtype">int</span>) map_.lg_cur_size_ &lt;&lt; std::endl;</div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;  os &lt;&lt; <span class="stringliteral">&quot;   resize factor        : &quot;</span> &lt;&lt; (1 &lt;&lt; map_.rf_) &lt;&lt; std::endl;</div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;}</div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160; </div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;<span class="comment">// compact sketch</span></div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160; </div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;compact_tuple_sketch&lt;S, A&gt;::compact_tuple_sketch(<span class="keywordtype">bool</span> is_empty, <span class="keywordtype">bool</span> is_ordered, uint16_t seed_hash, uint64_t theta,</div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;    std::vector&lt;Entry, AllocEntry&gt;&amp;&amp; entries):</div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;is_empty_(is_empty),</div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;is_ordered_(is_ordered || (entries.size() &lt;= 1ULL)),</div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;seed_hash_(seed_hash),</div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;theta_(theta),</div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;entries_(std::move(entries))</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;{}</div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160; </div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
+<div class="line"><a name="l00287"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a919843136e9bb921acd40bfea4ed5aef">  287</a></span>&#160;<a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a919843136e9bb921acd40bfea4ed5aef">compact_tuple_sketch&lt;S, A&gt;::compact_tuple_sketch</a>(<span class="keyword">const</span> <a class="code" href="classdatasketches_1_1tuple__sketch.html">Base</a>&amp; other, <span class="keyword [...]
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;is_empty_(other.is_empty()),</div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;is_ordered_(other.is_ordered() || ordered),</div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;seed_hash_(other.get_seed_hash()),</div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;theta_(other.get_theta64()),</div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;entries_(other.get_allocator())</div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;{</div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;  entries_.reserve(other.<a class="code" href="classdatasketches_1_1tuple__sketch.html#a9c71f891e4b0d3d3dc6a6f4b30ed9261">get_num_retained</a>());</div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;  std::copy(other.<a class="code" href="classdatasketches_1_1tuple__sketch.html#ad1d91335a83907ae2ef026786e12ba0c">begin</a>(), other.<a class="code" href="classdatasketches_1_1tuple__sketch.html#aa7f5423261c0a178f37911746353c0b7">end</a>(), std::back_inserter(entries_));</div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;  <span class="keywordflow">if</span> (ordered &amp;&amp; !other.<a class="code" href="classdatasketches_1_1tuple__sketch.html#a358923431da50e8d43651795e2515c01">is_ordered</a>()) std::sort(entries_.begin(), entries_.end(), comparator());</div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;}</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160; </div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
+<div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a35916bac524f4ff4ff02739553bd4622">  300</a></span>&#160;<a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a919843136e9bb921acd40bfea4ed5aef">compact_tuple_sketch&lt;S, A&gt;::compact_tuple_sketch</a>(<a class="code" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a>&amp;&amp; other) noexcept:</div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;is_empty_(other.is_empty()),</div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;is_ordered_(other.is_ordered()),</div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;seed_hash_(other.get_seed_hash()),</div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;theta_(other.get_theta64()),</div>
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;entries_(std::move(other.entries_))</div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;{}</div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160; </div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;<a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a919843136e9bb921acd40bfea4ed5aef">compact_tuple_sketch&lt;S, A&gt;::compact_tuple_sketch</a>(<span class="keyword">const</span> <a class="code" href="classdatasketches_1_1theta__sketch__alloc.html">theta_sketch_alloc&lt;AllocU64&gt;</a>&amp; other, <span class="keyword">const</span> S&amp; summary, <span class="keywordtype">bool</span> orde [...]
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;is_empty_(other.is_empty()),</div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;is_ordered_(other.is_ordered() || ordered),</div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;seed_hash_(other.get_seed_hash()),</div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;theta_(other.get_theta64()),</div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;entries_(other.get_allocator())</div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;{</div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;  entries_.reserve(other.<a class="code" href="classdatasketches_1_1base__theta__sketch__alloc.html#a9c71f891e4b0d3d3dc6a6f4b30ed9261">get_num_retained</a>());</div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;  <span class="keywordflow">for</span> (uint64_t hash: other) {</div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;    entries_.push_back(Entry(hash, summary));</div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;  }</div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;  <span class="keywordflow">if</span> (ordered &amp;&amp; !other.is_ordered()) std::sort(entries_.begin(), entries_.end(), comparator());</div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;}</div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160; </div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
+<div class="line"><a name="l00324"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a9d85cf47c4ecd0580ec623c42006dd1b">  324</a></span>&#160;A <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a9d85cf47c4ecd0580ec623c42006dd1b">compact_tuple_sketch&lt;S, A&gt;::get_allocator</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;  <span class="keywordflow">return</span> entries_.get_allocator();</div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;}</div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160; </div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
+<div class="line"><a name="l00329"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a5a2b7a58dc85678d08752945ff655362">  329</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a5a2b7a58dc85678d08752945ff655362">compact_tuple_sketch&lt;S, A&gt;::is_empty</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;  <span class="keywordflow">return</span> is_empty_;</div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;}</div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160; </div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
+<div class="line"><a name="l00334"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a5f5b393314c0c1819f79b73232a506e8">  334</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a5f5b393314c0c1819f79b73232a506e8">compact_tuple_sketch&lt;S, A&gt;::is_ordered</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;  <span class="keywordflow">return</span> is_ordered_;</div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;}</div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160; </div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
+<div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a2b072fe55377eb51a6ee477827fc3b95">  339</a></span>&#160;uint64_t <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a2b072fe55377eb51a6ee477827fc3b95">compact_tuple_sketch&lt;S, A&gt;::get_theta64</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;  <span class="keywordflow">return</span> theta_;</div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;}</div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160; </div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
+<div class="line"><a name="l00344"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a31fa76458d81a17dbebfcb828e531f14">  344</a></span>&#160;uint32_t <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a31fa76458d81a17dbebfcb828e531f14">compact_tuple_sketch&lt;S, A&gt;::get_num_retained</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>uint32_t<span class="keyword">&gt;</span>(entries_.size());</div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;}</div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160; </div>
 <div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
-<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;template&lt;typename SD, typename SS, typename std::enable_if&lt;std::is_arithmetic&lt;SS&gt;::value, <span class="keywordtype">int</span>&gt;::type&gt;</div>
-<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#aebe0bd9f97ef071d15ae25b9c3418e65">compact_tuple_sketch&lt;S, A&gt;::get_serialized_size_summaries_bytes</a>(<span class="keyword">const</span> SD&amp; sd)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;  unused(sd);</div>
-<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;  <span class="keywordflow">return</span> entries_.size() * <span class="keyword">sizeof</span>(SS);</div>
-<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;}</div>
-<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160; </div>
-<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;<span class="comment">// implementation for all other types (non-arithmetic)</span></div>
-<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
-<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;template&lt;typename SD, typename SS, typename std::enable_if&lt;!std::is_arithmetic&lt;SS&gt;::value, <span class="keywordtype">int</span>&gt;::type&gt;</div>
-<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#aebe0bd9f97ef071d15ae25b9c3418e65">compact_tuple_sketch&lt;S, A&gt;::get_serialized_size_summaries_bytes</a>(<span class="keyword">const</span> SD&amp; sd)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;  <span class="keywordtype">size_t</span> size = 0;</div>
-<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; it: entries_) {</div>
-<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;    size += sd.size_of_item(it.second);</div>
-<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;  }</div>
-<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;  <span class="keywordflow">return</span> size;</div>
-<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;}</div>
-<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160; </div>
-<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
-<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> SerDe&gt;</div>
-<div class="line"><a name="l00368"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a538940c100e4353b3671ad452d3d3056">  368</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a538940c100e4353b3671ad452d3d3056">compact_tuple_sketch&lt;S, A&gt;::serialize</a>(std::ostream&amp; os, <span class="keyword">const</span> SerDe&amp; sd)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;  <span class="keyword">const</span> uint8_t preamble_longs = this-&gt;is_estimation_mode() ? 3 : this-&gt;is_empty() || entries_.size() == 1 ? 1 : 2;</div>
-<div class="line"><a name="l00370"></a><span class="lineno"><a class="line" href="classdatasketches_1_1update__tuple__sketch.html#a268ae12a22c9f97b84833e4c39fb2278">  370</a></span>&#160;  write(os, preamble_longs);</div>
-<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;  <span class="keyword">const</span> uint8_t serial_version = SERIAL_VERSION;</div>
-<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;  write(os, serial_version);</div>
-<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;  <span class="keyword">const</span> uint8_t family = SKETCH_FAMILY;</div>
-<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;  write(os, family);</div>
-<div class="line"><a name="l00375"></a><span class="lineno"><a class="line" href="classdatasketches_1_1update__tuple__sketch.html#ad20897c5c8bd47f5d4005989bead0e55">  375</a></span>&#160;  <span class="keyword">const</span> uint8_t type = SKETCH_TYPE;</div>
-<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;  write(os, type);</div>
-<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;  <span class="keyword">const</span> uint8_t unused8 = 0;</div>
-<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;  write(os, unused8);</div>
-<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;  <span class="keyword">const</span> uint8_t flags_byte(</div>
-<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;    (1 &lt;&lt; flags::IS_COMPACT) |</div>
-<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;    (1 &lt;&lt; flags::IS_READ_ONLY) |</div>
-<div class="line"><a name="l00382"></a><span class="lineno"><a class="line" href="classdatasketches_1_1update__tuple__sketch.html#a8adfe3908612dc77d3708cecddb65515">  382</a></span>&#160;    (this-&gt;is_empty() ? 1 &lt;&lt; flags::IS_EMPTY : 0) |</div>
-<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;    (this-&gt;is_ordered() ? 1 &lt;&lt; flags::IS_ORDERED : 0)</div>
-<div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="classdatasketches_1_1update__tuple__sketch.html#ad950587c89b4306f927b08b5e5cb7e89">  384</a></span>&#160;  );</div>
-<div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="classdatasketches_1_1update__tuple__sketch.html#a7727305d5e1ec66a181e22c43af9a581">  385</a></span>&#160;  write(os, flags_byte);</div>
-<div class="line"><a name="l00386"></a><span class="lineno"><a class="line" href="classdatasketches_1_1update__tuple__sketch.html#ad5c959a538216a09ab28c5283585956c">  386</a></span>&#160;  <span class="keyword">const</span> uint16_t seed_hash = get_seed_hash();</div>
-<div class="line"><a name="l00387"></a><span class="lineno"><a class="line" href="classdatasketches_1_1update__tuple__sketch.html#ae11e60e117300685401961e36f196f7a">  387</a></span>&#160;  write(os, seed_hash);</div>
-<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;  <span class="keywordflow">if</span> (preamble_longs &gt; 1) {</div>
-<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;    <span class="keyword">const</span> uint32_t num_entries = <span class="keyword">static_cast&lt;</span>uint32_t<span class="keyword">&gt;</span>(entries_.size());</div>
-<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;    write(os, num_entries);</div>
-<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;    <span class="keyword">const</span> uint32_t unused32 = 0;</div>
-<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;    write(os, unused32);</div>
-<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;  }</div>
-<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;  <span class="keywordflow">if</span> (this-&gt;is_estimation_mode()) {</div>
-<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;    write(os, this-&gt;theta_);</div>
-<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;  }</div>
-<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; it: entries_) {</div>
-<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;    write(os, it.first);</div>
-<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;    sd.serialize(os, &amp;it.second, 1);</div>
-<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;  }</div>
-<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;}</div>
-<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160; </div>
-<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
-<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> SerDe&gt;</div>
-<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;<span class="keyword">auto</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a538940c100e4353b3671ad452d3d3056">compact_tuple_sketch&lt;S, A&gt;::serialize</a>(<span class="keywordtype">unsigned</span> header_size_bytes, <span class="keyword">const</span> SerDe&amp; sd) <span class="keyword">const</span> -&gt; vector_bytes {</div>
-<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;  <span class="keyword">const</span> uint8_t preamble_longs = this-&gt;is_estimation_mode() ? 3 : this-&gt;is_empty() || entries_.size() == 1 ? 1 : 2;</div>
-<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">size_t</span> size = header_size_bytes + <span class="keyword">sizeof</span>(uint64_t) * preamble_longs</div>
-<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;      + <span class="keyword">sizeof</span>(uint64_t) * entries_.size() + get_serialized_size_summaries_bytes(sd);</div>
-<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;  vector_bytes bytes(size, 0, entries_.get_allocator());</div>
-<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;  uint8_t* ptr = bytes.data() + header_size_bytes;</div>
-<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;  <span class="keyword">const</span> uint8_t* end_ptr = ptr + size;</div>
-<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160; </div>
-<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;  ptr += copy_to_mem(preamble_longs, ptr);</div>
-<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;  <span class="keyword">const</span> uint8_t serial_version = SERIAL_VERSION;</div>
-<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;  ptr += copy_to_mem(serial_version, ptr);</div>
-<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;  <span class="keyword">const</span> uint8_t family = SKETCH_FAMILY;</div>
-<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;  ptr += copy_to_mem(family, ptr);</div>
-<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;  <span class="keyword">const</span> uint8_t type = SKETCH_TYPE;</div>
-<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;  ptr += copy_to_mem(type, ptr);</div>
-<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;  ptr += <span class="keyword">sizeof</span>(uint8_t); <span class="comment">// unused</span></div>
-<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;  <span class="keyword">const</span> uint8_t flags_byte(</div>
-<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;    (1 &lt;&lt; flags::IS_COMPACT) |</div>
-<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;    (1 &lt;&lt; flags::IS_READ_ONLY) |</div>
-<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;    (this-&gt;is_empty() ? 1 &lt;&lt; flags::IS_EMPTY : 0) |</div>
-<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;    (this-&gt;is_ordered() ? 1 &lt;&lt; flags::IS_ORDERED : 0)</div>
-<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;  );</div>
-<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;  ptr += copy_to_mem(flags_byte, ptr);</div>
-<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;  <span class="keyword">const</span> uint16_t seed_hash = get_seed_hash();</div>
-<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;  ptr += copy_to_mem(seed_hash, ptr);</div>
-<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;  <span class="keywordflow">if</span> (preamble_longs &gt; 1) {</div>
-<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;    <span class="keyword">const</span> uint32_t num_entries = <span class="keyword">static_cast&lt;</span>uint32_t<span class="keyword">&gt;</span>(entries_.size());</div>
-<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;    ptr += copy_to_mem(num_entries, ptr);</div>
-<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;    ptr += <span class="keyword">sizeof</span>(uint32_t); <span class="comment">// unused</span></div>
-<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;  }</div>
-<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;  <span class="keywordflow">if</span> (this-&gt;is_estimation_mode()) {</div>
-<div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;    ptr += copy_to_mem(theta_, ptr);</div>
-<div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;  }</div>
-<div class="line"><a name="l00438"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a919843136e9bb921acd40bfea4ed5aef">  438</a></span>&#160;  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; it: entries_) {</div>
-<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;    ptr += copy_to_mem(it.first, ptr);</div>
-<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;    ptr += sd.serialize(ptr, end_ptr - ptr, &amp;it.second, 1);</div>
-<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;  }</div>
-<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;  <span class="keywordflow">return</span> bytes;</div>
-<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;}</div>
-<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160; </div>
-<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
-<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> SerDe&gt;</div>
-<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;compact_tuple_sketch&lt;S, A&gt; <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#aa4654837acac56f89e5c083198374eda">compact_tuple_sketch&lt;S, A&gt;::deserialize</a>(std::istream&amp; is, uint64_t seed, <span class="keyword">const</span> SerDe&amp; sd, <span class="keyword">const</span> A&amp; allocator) {</div>
-<div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;  <span class="keyword">const</span> <span class="keyword">auto</span> preamble_longs = read&lt;uint8_t&gt;(is);</div>
-<div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;  <span class="keyword">const</span> <span class="keyword">auto</span> serial_version = read&lt;uint8_t&gt;(is);</div>
-<div class="line"><a name="l00450"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a35916bac524f4ff4ff02739553bd4622">  450</a></span>&#160;  <span class="keyword">const</span> <span class="keyword">auto</span> family = read&lt;uint8_t&gt;(is);</div>
-<div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;  <span class="keyword">const</span> <span class="keyword">auto</span> type = read&lt;uint8_t&gt;(is);</div>
-<div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;  read&lt;uint8_t&gt;(is); <span class="comment">// unused</span></div>
-<div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;  <span class="keyword">const</span> <span class="keyword">auto</span> flags_byte = read&lt;uint8_t&gt;(is);</div>
-<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;  <span class="keyword">const</span> <span class="keyword">auto</span> seed_hash = read&lt;uint16_t&gt;(is);</div>
-<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;  <span class="keywordflow">if</span> (serial_version != SERIAL_VERSION &amp;&amp; serial_version != SERIAL_VERSION_LEGACY) {</div>
-<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;    <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;serial version mismatch: expected &quot;</span> + std::to_string(SERIAL_VERSION) + <span class="stringliteral">&quot; or &quot;</span></div>
-<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;        + std::to_string(SERIAL_VERSION_LEGACY) + <span class="stringliteral">&quot;, actual &quot;</span> + std::to_string(serial_version));</div>
-<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;  }</div>
-<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;  checker&lt;true&gt;::check_sketch_family(family, SKETCH_FAMILY);</div>
-<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;  <span class="keywordflow">if</span> (type != SKETCH_TYPE &amp;&amp; type != SKETCH_TYPE_LEGACY) {</div>
-<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;    <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;sketch type mismatch: expected &quot;</span> + std::to_string(SKETCH_TYPE) + <span class="stringliteral">&quot; or &quot;</span></div>
-<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;        + std::to_string(SKETCH_TYPE_LEGACY) + <span class="stringliteral">&quot;, actual &quot;</span> + std::to_string(type));</div>
-<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;  }</div>
-<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">bool</span> is_empty = flags_byte &amp; (1 &lt;&lt; flags::IS_EMPTY);</div>
-<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;  <span class="keywordflow">if</span> (!is_empty) checker&lt;true&gt;::check_seed_hash(seed_hash, compute_seed_hash(seed));</div>
-<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160; </div>
-<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;  uint64_t theta = <a class="code" href="namespacedatasketches_1_1theta__constants.html#ae3243c6bd90c8d8577c32b86100d97ad">theta_constants::MAX_THETA</a>;</div>
-<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;  uint32_t num_entries = 0;</div>
-<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;  <span class="keywordflow">if</span> (!is_empty) {</div>
-<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;    <span class="keywordflow">if</span> (preamble_longs == 1) {</div>
-<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;      num_entries = 1;</div>
-<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;    } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;      num_entries = read&lt;uint32_t&gt;(is);</div>
-<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;      read&lt;uint32_t&gt;(is); <span class="comment">// unused</span></div>
-<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;      <span class="keywordflow">if</span> (preamble_longs &gt; 2) {</div>
-<div class="line"><a name="l00476"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a9d85cf47c4ecd0580ec623c42006dd1b">  476</a></span>&#160;        theta = read&lt;uint64_t&gt;(is);</div>
-<div class="line"><a name="l00477"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a5a2b7a58dc85678d08752945ff655362">  477</a></span>&#160;      }</div>
-<div class="line"><a name="l00478"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a5f5b393314c0c1819f79b73232a506e8">  478</a></span>&#160;    }</div>
-<div class="line"><a name="l00479"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a2b072fe55377eb51a6ee477827fc3b95">  479</a></span>&#160;  }</div>
-<div class="line"><a name="l00480"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a31fa76458d81a17dbebfcb828e531f14">  480</a></span>&#160;  A alloc(allocator);</div>
-<div class="line"><a name="l00481"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a6f69b50bc13da11d255d0e583e2376ba">  481</a></span>&#160;  std::vector&lt;Entry, AllocEntry&gt; entries(alloc);</div>
-<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;  <span class="keywordflow">if</span> (!is_empty) {</div>
-<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;    entries.reserve(num_entries);</div>
-<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;    std::unique_ptr&lt;S, deleter_of_summaries&gt; summary(alloc.allocate(1), deleter_of_summaries(1, <span class="keyword">false</span>, allocator));</div>
-<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; num_entries; ++i) {</div>
-<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;      <span class="keyword">const</span> <span class="keyword">auto</span> key = read&lt;uint64_t&gt;(is);</div>
-<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;      sd.deserialize(is, summary.get(), 1);</div>
-<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;      entries.push_back(Entry(key, std::move(*summary)));</div>
-<div class="line"><a name="l00489"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a538940c100e4353b3671ad452d3d3056">  489</a></span>&#160;      (*summary).~S();</div>
-<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;    }</div>
+<div class="line"><a name="l00349"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a6f69b50bc13da11d255d0e583e2376ba">  349</a></span>&#160;uint16_t <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a6f69b50bc13da11d255d0e583e2376ba">compact_tuple_sketch&lt;S, A&gt;::get_seed_hash</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;  <span class="keywordflow">return</span> seed_hash_;</div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;}</div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160; </div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> Predicate&gt;</div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;<a class="code" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch&lt;S, A&gt;</a> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a45b4c825a3545299d8bfeeadc70708c3">compact_tuple_sketch&lt;S, A&gt;::filter</a>(<span class="keyword">const</span> Predicate&amp; predicate)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;  <span class="keywordflow">return</span> filter(*<span class="keyword">this</span>, predicate);</div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;}</div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160; </div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> Sketch, <span class="keyword">typename</span> Predicate&gt;</div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;compact_tuple_sketch&lt;S, A&gt; <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a45b4c825a3545299d8bfeeadc70708c3">compact_tuple_sketch&lt;S, A&gt;::filter</a>(<span class="keyword">const</span> Sketch&amp; sketch, <span class="keyword">const</span> Predicate&amp; predicate) {</div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;  std::vector&lt;Entry, AllocEntry&gt; entries(sketch.get_allocator());</div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;  entries.reserve(sketch.get_num_retained());</div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;  std::copy_if(</div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;    sketch.begin(),</div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;    sketch.end(),</div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;    std::back_inserter(entries),</div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;    [&amp;predicate](<span class="keyword">const</span> Entry&amp; e) {return predicate(e.second);}</div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;  );</div>
+<div class="line"><a name="l00370"></a><span class="lineno"><a class="line" href="classdatasketches_1_1update__tuple__sketch.html#a268ae12a22c9f97b84833e4c39fb2278">  370</a></span>&#160;  entries.shrink_to_fit();</div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch</a>(</div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;    !sketch.is_estimation_mode() &amp;&amp; entries.empty(),</div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;    sketch.is_ordered(),</div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;    sketch.get_seed_hash(),</div>
+<div class="line"><a name="l00375"></a><span class="lineno"><a class="line" href="classdatasketches_1_1update__tuple__sketch.html#ad20897c5c8bd47f5d4005989bead0e55">  375</a></span>&#160;    sketch.get_theta64(),</div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;    std::move(entries)</div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;  );</div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;}</div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160; </div>
+<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;<span class="comment">// implementation for fixed-size arithmetic types (integral and floating point)</span></div>
+<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
+<div class="line"><a name="l00382"></a><span class="lineno"><a class="line" href="classdatasketches_1_1update__tuple__sketch.html#a8adfe3908612dc77d3708cecddb65515">  382</a></span>&#160;template&lt;typename SD, typename SS, typename std::enable_if&lt;std::is_arithmetic&lt;SS&gt;::value, <span class="keywordtype">int</span>&gt;::type&gt;</div>
+<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#aebe0bd9f97ef071d15ae25b9c3418e65">compact_tuple_sketch&lt;S, A&gt;::get_serialized_size_summaries_bytes</a>(<span class="keyword">const</span> SD&amp; sd)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;  unused(sd);</div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;  <span class="keywordflow">return</span> entries_.size() * <span class="keyword">sizeof</span>(SS);</div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;}</div>
+<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160; </div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;<span class="comment">// implementation for all other types (non-arithmetic)</span></div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;template&lt;typename SD, typename SS, typename std::enable_if&lt;!std::is_arithmetic&lt;SS&gt;::value, <span class="keywordtype">int</span>&gt;::type&gt;</div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#aebe0bd9f97ef071d15ae25b9c3418e65">compact_tuple_sketch&lt;S, A&gt;::get_serialized_size_summaries_bytes</a>(<span class="keyword">const</span> SD&amp; sd)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;  <span class="keywordtype">size_t</span> size = 0;</div>
+<div class="line"><a name="l00393"></a><span class="lineno"><a class="line" href="classdatasketches_1_1update__tuple__sketch.html#ad950587c89b4306f927b08b5e5cb7e89">  393</a></span>&#160;  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; it: entries_) {</div>
+<div class="line"><a name="l00394"></a><span class="lineno"><a class="line" href="classdatasketches_1_1update__tuple__sketch.html#a7727305d5e1ec66a181e22c43af9a581">  394</a></span>&#160;    size += sd.size_of_item(it.second);</div>
+<div class="line"><a name="l00395"></a><span class="lineno"><a class="line" href="classdatasketches_1_1update__tuple__sketch.html#ad5c959a538216a09ab28c5283585956c">  395</a></span>&#160;  }</div>
+<div class="line"><a name="l00396"></a><span class="lineno"><a class="line" href="classdatasketches_1_1update__tuple__sketch.html#ae11e60e117300685401961e36f196f7a">  396</a></span>&#160;  <span class="keywordflow">return</span> size;</div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;}</div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160; </div>
+<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
+<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> SerDe&gt;</div>
+<div class="line"><a name="l00401"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a538940c100e4353b3671ad452d3d3056">  401</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a538940c100e4353b3671ad452d3d3056">compact_tuple_sketch&lt;S, A&gt;::serialize</a>(std::ostream&amp; os, <span class="keyword">const</span> SerDe&amp; sd)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;  <span class="keyword">const</span> uint8_t preamble_longs = this-&gt;is_estimation_mode() ? 3 : this-&gt;is_empty() || entries_.size() == 1 ? 1 : 2;</div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;  write(os, preamble_longs);</div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;  <span class="keyword">const</span> uint8_t serial_version = SERIAL_VERSION;</div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;  write(os, serial_version);</div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;  <span class="keyword">const</span> uint8_t family = SKETCH_FAMILY;</div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;  write(os, family);</div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;  <span class="keyword">const</span> uint8_t type = SKETCH_TYPE;</div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;  write(os, type);</div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;  <span class="keyword">const</span> uint8_t unused8 = 0;</div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;  write(os, unused8);</div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;  <span class="keyword">const</span> uint8_t flags_byte(</div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;    (1 &lt;&lt; flags::IS_COMPACT) |</div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;    (1 &lt;&lt; flags::IS_READ_ONLY) |</div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;    (this-&gt;is_empty() ? 1 &lt;&lt; flags::IS_EMPTY : 0) |</div>
+<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;    (this-&gt;is_ordered() ? 1 &lt;&lt; flags::IS_ORDERED : 0)</div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;  );</div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;  write(os, flags_byte);</div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;  <span class="keyword">const</span> uint16_t seed_hash = get_seed_hash();</div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;  write(os, seed_hash);</div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;  <span class="keywordflow">if</span> (preamble_longs &gt; 1) {</div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;    <span class="keyword">const</span> uint32_t num_entries = <span class="keyword">static_cast&lt;</span>uint32_t<span class="keyword">&gt;</span>(entries_.size());</div>
+<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;    write(os, num_entries);</div>
+<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;    <span class="keyword">const</span> uint32_t unused32 = 0;</div>
+<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;    write(os, unused32);</div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;  }</div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;  <span class="keywordflow">if</span> (this-&gt;is_estimation_mode()) {</div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;    write(os, this-&gt;theta_);</div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;  }</div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; it: entries_) {</div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;    write(os, it.first);</div>
+<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;    sd.serialize(os, &amp;it.second, 1);</div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;  }</div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;}</div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160; </div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> SerDe&gt;</div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;<span class="keyword">auto</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a538940c100e4353b3671ad452d3d3056">compact_tuple_sketch&lt;S, A&gt;::serialize</a>(<span class="keywordtype">unsigned</span> header_size_bytes, <span class="keyword">const</span> SerDe&amp; sd) <span class="keyword">const</span> -&gt; vector_bytes {</div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;  <span class="keyword">const</span> uint8_t preamble_longs = this-&gt;is_estimation_mode() ? 3 : this-&gt;is_empty() || entries_.size() == 1 ? 1 : 2;</div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">size_t</span> size = header_size_bytes + <span class="keyword">sizeof</span>(uint64_t) * preamble_longs</div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;      + <span class="keyword">sizeof</span>(uint64_t) * entries_.size() + get_serialized_size_summaries_bytes(sd);</div>
+<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;  vector_bytes bytes(size, 0, entries_.get_allocator());</div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;  uint8_t* ptr = bytes.data() + header_size_bytes;</div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;  <span class="keyword">const</span> uint8_t* end_ptr = ptr + size;</div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160; </div>
+<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;  ptr += copy_to_mem(preamble_longs, ptr);</div>
+<div class="line"><a name="l00447"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a919843136e9bb921acd40bfea4ed5aef">  447</a></span>&#160;  <span class="keyword">const</span> uint8_t serial_version = SERIAL_VERSION;</div>
+<div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;  ptr += copy_to_mem(serial_version, ptr);</div>
+<div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;  <span class="keyword">const</span> uint8_t family = SKETCH_FAMILY;</div>
+<div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;  ptr += copy_to_mem(family, ptr);</div>
+<div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;  <span class="keyword">const</span> uint8_t type = SKETCH_TYPE;</div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;  ptr += copy_to_mem(type, ptr);</div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;  ptr += <span class="keyword">sizeof</span>(uint8_t); <span class="comment">// unused</span></div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;  <span class="keyword">const</span> uint8_t flags_byte(</div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;    (1 &lt;&lt; flags::IS_COMPACT) |</div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;    (1 &lt;&lt; flags::IS_READ_ONLY) |</div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;    (this-&gt;is_empty() ? 1 &lt;&lt; flags::IS_EMPTY : 0) |</div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;    (this-&gt;is_ordered() ? 1 &lt;&lt; flags::IS_ORDERED : 0)</div>
+<div class="line"><a name="l00459"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a35916bac524f4ff4ff02739553bd4622">  459</a></span>&#160;  );</div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;  ptr += copy_to_mem(flags_byte, ptr);</div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;  <span class="keyword">const</span> uint16_t seed_hash = get_seed_hash();</div>
+<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;  ptr += copy_to_mem(seed_hash, ptr);</div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;  <span class="keywordflow">if</span> (preamble_longs &gt; 1) {</div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;    <span class="keyword">const</span> uint32_t num_entries = <span class="keyword">static_cast&lt;</span>uint32_t<span class="keyword">&gt;</span>(entries_.size());</div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;    ptr += copy_to_mem(num_entries, ptr);</div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;    ptr += <span class="keyword">sizeof</span>(uint32_t); <span class="comment">// unused</span></div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;  }</div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;  <span class="keywordflow">if</span> (this-&gt;is_estimation_mode()) {</div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;    ptr += copy_to_mem(theta_, ptr);</div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;  }</div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; it: entries_) {</div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;    ptr += copy_to_mem(it.first, ptr);</div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;    ptr += sd.serialize(ptr, end_ptr - ptr, &amp;it.second, 1);</div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;  }</div>
+<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;  <span class="keywordflow">return</span> bytes;</div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;}</div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160; </div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> SerDe&gt;</div>
+<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;compact_tuple_sketch&lt;S, A&gt; <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#aa4654837acac56f89e5c083198374eda">compact_tuple_sketch&lt;S, A&gt;::deserialize</a>(std::istream&amp; is, uint64_t seed, <span class="keyword">const</span> SerDe&amp; sd, <span class="keyword">const</span> A&amp; allocator) {</div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;  <span class="keyword">const</span> <span class="keyword">auto</span> preamble_longs = read&lt;uint8_t&gt;(is);</div>
+<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;  <span class="keyword">const</span> <span class="keyword">auto</span> serial_version = read&lt;uint8_t&gt;(is);</div>
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;  <span class="keyword">const</span> <span class="keyword">auto</span> family = read&lt;uint8_t&gt;(is);</div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;  <span class="keyword">const</span> <span class="keyword">auto</span> type = read&lt;uint8_t&gt;(is);</div>
+<div class="line"><a name="l00485"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a9d85cf47c4ecd0580ec623c42006dd1b">  485</a></span>&#160;  read&lt;uint8_t&gt;(is); <span class="comment">// unused</span></div>
+<div class="line"><a name="l00486"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a5a2b7a58dc85678d08752945ff655362">  486</a></span>&#160;  <span class="keyword">const</span> <span class="keyword">auto</span> flags_byte = read&lt;uint8_t&gt;(is);</div>
+<div class="line"><a name="l00487"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a5f5b393314c0c1819f79b73232a506e8">  487</a></span>&#160;  <span class="keyword">const</span> <span class="keyword">auto</span> seed_hash = read&lt;uint16_t&gt;(is);</div>
+<div class="line"><a name="l00488"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a2b072fe55377eb51a6ee477827fc3b95">  488</a></span>&#160;  <span class="keywordflow">if</span> (serial_version != SERIAL_VERSION &amp;&amp; serial_version != SERIAL_VERSION_LEGACY) {</div>
+<div class="line"><a name="l00489"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a31fa76458d81a17dbebfcb828e531f14">  489</a></span>&#160;    <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;serial version mismatch: expected &quot;</span> + std::to_string(SERIAL_VERSION) + <span class="stringliteral">&quot; or &quot;</span></div>
+<div class="line"><a name="l00490"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a6f69b50bc13da11d255d0e583e2376ba">  490</a></span>&#160;        + std::to_string(SERIAL_VERSION_LEGACY) + <span class="stringliteral">&quot;, actual &quot;</span> + std::to_string(serial_version));</div>
 <div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;  }</div>
-<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;  <span class="keywordflow">if</span> (!is.good()) <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;error reading from std::istream&quot;</span>);</div>
-<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">bool</span> is_ordered = flags_byte &amp; (1 &lt;&lt; flags::IS_ORDERED);</div>
-<div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;  <span class="keywordflow">return</span> compact_tuple_sketch(is_empty, is_ordered, seed_hash, theta, std::move(entries));</div>
-<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;}</div>
-<div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160; </div>
-<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
-<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> SerDe&gt;</div>
-<div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;compact_tuple_sketch&lt;S, A&gt; <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#aa4654837acac56f89e5c083198374eda">compact_tuple_sketch&lt;S, A&gt;::deserialize</a>(<span class="keyword">const</span> <span class="keywordtype">void</span>* bytes, <span class="keywordtype">size_t</span> size, uint64_t seed, <span class="keyword">const</span> SerDe&amp; sd, <span class="keyword">const</span [...]
-<div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;  ensure_minimum_memory(size, 8);</div>
-<div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">char</span>* ptr = <span class="keyword">static_cast&lt;</span><span class="keyword">const </span><span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(bytes);</div>
-<div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">char</span>* base = ptr;</div>
-<div class="line"><a name="l00503"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#ad950587c89b4306f927b08b5e5cb7e89">  503</a></span>&#160;  uint8_t preamble_longs;</div>
-<div class="line"><a name="l00504"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a7727305d5e1ec66a181e22c43af9a581">  504</a></span>&#160;  ptr += copy_from_mem(ptr, preamble_longs);</div>
-<div class="line"><a name="l00505"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#ad5c959a538216a09ab28c5283585956c">  505</a></span>&#160;  uint8_t serial_version;</div>
-<div class="line"><a name="l00506"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#ae11e60e117300685401961e36f196f7a">  506</a></span>&#160;  ptr += copy_from_mem(ptr, serial_version);</div>
-<div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;  uint8_t family;</div>
-<div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;  ptr += copy_from_mem(ptr, family);</div>
-<div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;  uint8_t type;</div>
-<div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;  ptr += copy_from_mem(ptr, type);</div>
-<div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;  ptr += <span class="keyword">sizeof</span>(uint8_t); <span class="comment">// unused</span></div>
-<div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;  uint8_t flags_byte;</div>
-<div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;  ptr += copy_from_mem(ptr, flags_byte);</div>
-<div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;  uint16_t seed_hash;</div>
-<div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;  ptr += copy_from_mem(ptr, seed_hash);</div>
-<div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;  <span class="keywordflow">if</span> (serial_version != SERIAL_VERSION &amp;&amp; serial_version != SERIAL_VERSION_LEGACY) {</div>
-<div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;    <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;serial version mismatch: expected &quot;</span> + std::to_string(SERIAL_VERSION) + <span class="stringliteral">&quot; or &quot;</span></div>
-<div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;        + std::to_string(SERIAL_VERSION_LEGACY) + <span class="stringliteral">&quot;, actual &quot;</span> + std::to_string(serial_version));</div>
-<div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;  }</div>
-<div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;  checker&lt;true&gt;::check_sketch_family(family, SKETCH_FAMILY);</div>
-<div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;  <span class="keywordflow">if</span> (type != SKETCH_TYPE &amp;&amp; type != SKETCH_TYPE_LEGACY) {</div>
-<div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;    <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;sketch type mismatch: expected &quot;</span> + std::to_string(SKETCH_TYPE) + <span class="stringliteral">&quot; or &quot;</span></div>
-<div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;        + std::to_string(SKETCH_TYPE_LEGACY) + <span class="stringliteral">&quot;, actual &quot;</span> + std::to_string(type));</div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;  checker&lt;true&gt;::check_sketch_family(family, SKETCH_FAMILY);</div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;  <span class="keywordflow">if</span> (type != SKETCH_TYPE &amp;&amp; type != SKETCH_TYPE_LEGACY) {</div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;    <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;sketch type mismatch: expected &quot;</span> + std::to_string(SKETCH_TYPE) + <span class="stringliteral">&quot; or &quot;</span></div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;        + std::to_string(SKETCH_TYPE_LEGACY) + <span class="stringliteral">&quot;, actual &quot;</span> + std::to_string(type));</div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;  }</div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">bool</span> is_empty = flags_byte &amp; (1 &lt;&lt; flags::IS_EMPTY);</div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;  <span class="keywordflow">if</span> (!is_empty) checker&lt;true&gt;::check_seed_hash(seed_hash, compute_seed_hash(seed));</div>
+<div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160; </div>
+<div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;  uint64_t theta = <a class="code" href="namespacedatasketches_1_1theta__constants.html#ae3243c6bd90c8d8577c32b86100d97ad">theta_constants::MAX_THETA</a>;</div>
+<div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;  uint32_t num_entries = 0;</div>
+<div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;  <span class="keywordflow">if</span> (!is_empty) {</div>
+<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;    <span class="keywordflow">if</span> (preamble_longs == 1) {</div>
+<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;      num_entries = 1;</div>
+<div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;    } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;      num_entries = read&lt;uint32_t&gt;(is);</div>
+<div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;      read&lt;uint32_t&gt;(is); <span class="comment">// unused</span></div>
+<div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;      <span class="keywordflow">if</span> (preamble_longs &gt; 2) {</div>
+<div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;        theta = read&lt;uint64_t&gt;(is);</div>
+<div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;      }</div>
+<div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;    }</div>
+<div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;  }</div>
+<div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;  A alloc(allocator);</div>
+<div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;  std::vector&lt;Entry, AllocEntry&gt; entries(alloc);</div>
+<div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;  <span class="keywordflow">if</span> (!is_empty) {</div>
+<div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;    entries.reserve(num_entries);</div>
+<div class="line"><a name="l00517"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a538940c100e4353b3671ad452d3d3056">  517</a></span>&#160;    std::unique_ptr&lt;S, deleter_of_summaries&gt; summary(alloc.allocate(1), deleter_of_summaries(1, <span class="keyword">false</span>, allocator));</div>
+<div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; num_entries; ++i) {</div>
+<div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;      <span class="keyword">const</span> <span class="keyword">auto</span> key = read&lt;uint64_t&gt;(is);</div>
+<div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;      sd.deserialize(is, summary.get(), 1);</div>
+<div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;      entries.push_back(Entry(key, std::move(*summary)));</div>
+<div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;      (*summary).~S();</div>
+<div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;    }</div>
 <div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;  }</div>
-<div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">bool</span> is_empty = flags_byte &amp; (1 &lt;&lt; flags::IS_EMPTY);</div>
-<div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;  <span class="keywordflow">if</span> (!is_empty) checker&lt;true&gt;::check_seed_hash(seed_hash, compute_seed_hash(seed));</div>
-<div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160; </div>
-<div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;  uint64_t theta = <a class="code" href="namespacedatasketches_1_1theta__constants.html#ae3243c6bd90c8d8577c32b86100d97ad">theta_constants::MAX_THETA</a>;</div>
-<div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;  uint32_t num_entries = 0;</div>
-<div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160; </div>
-<div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;  <span class="keywordflow">if</span> (!is_empty) {</div>
-<div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;    <span class="keywordflow">if</span> (preamble_longs == 1) {</div>
-<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;      num_entries = 1;</div>
-<div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;    } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;      ensure_minimum_memory(size, 8); <span class="comment">// read the first prelong before this method</span></div>
-<div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;      ptr += copy_from_mem(ptr, num_entries);</div>
-<div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;      ptr += <span class="keyword">sizeof</span>(uint32_t); <span class="comment">// unused</span></div>
-<div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;      <span class="keywordflow">if</span> (preamble_longs &gt; 2) {</div>
-<div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;        ensure_minimum_memory(size, (preamble_longs - 1) &lt;&lt; 3);</div>
-<div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;        ptr += copy_from_mem(ptr, theta);</div>
-<div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;      }</div>
-<div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;    }</div>
-<div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;  }</div>
-<div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">size_t</span> keys_size_bytes = <span class="keyword">sizeof</span>(uint64_t) * num_entries;</div>
-<div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;  ensure_minimum_memory(size, ptr - base + keys_size_bytes);</div>
-<div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;  A alloc(allocator);</div>
-<div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;  std::vector&lt;Entry, AllocEntry&gt; entries(alloc);</div>
-<div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;  <span class="keywordflow">if</span> (!is_empty) {</div>
-<div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;    entries.reserve(num_entries);</div>
-<div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;    std::unique_ptr&lt;S, deleter_of_summaries&gt; summary(alloc.allocate(1), deleter_of_summaries(1, <span class="keyword">false</span>, allocator));</div>
-<div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; num_entries; ++i) {</div>
-<div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;      uint64_t key;</div>
-<div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;      ptr += copy_from_mem(ptr, key);</div>
-<div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;      ptr += sd.deserialize(ptr, base + size - ptr, summary.get(), 1);</div>
-<div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;      entries.push_back(Entry(key, std::move(*summary)));</div>
-<div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;      (*summary).~S();</div>
-<div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;    }</div>
-<div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;  }</div>
-<div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">bool</span> is_ordered = flags_byte &amp; (1 &lt;&lt; flags::IS_ORDERED);</div>
-<div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;  <span class="keywordflow">return</span> compact_tuple_sketch(is_empty, is_ordered, seed_hash, theta, std::move(entries));</div>
-<div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;}</div>
-<div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160; </div>
-<div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
-<div class="line"><a name="l00564"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#ad950587c89b4306f927b08b5e5cb7e89">  564</a></span>&#160;<span class="keyword">auto</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#ad950587c89b4306f927b08b5e5cb7e89">compact_tuple_sketch&lt;S, A&gt;::begin</a>() -&gt; iterator {</div>
-<div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;  <span class="keywordflow">return</span> iterator(entries_.data(), <span class="keyword">static_cast&lt;</span>uint32_t<span class="keyword">&gt;</span>(entries_.size()), 0);</div>
-<div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;}</div>
-<div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160; </div>
-<div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
-<div class="line"><a name="l00569"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a7727305d5e1ec66a181e22c43af9a581">  569</a></span>&#160;<span class="keyword">auto</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a7727305d5e1ec66a181e22c43af9a581">compact_tuple_sketch&lt;S, A&gt;::end</a>() -&gt; iterator {</div>
-<div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;  <span class="keywordflow">return</span> iterator(<span class="keyword">nullptr</span>, 0, <span class="keyword">static_cast&lt;</span>uint32_t<span class="keyword">&gt;</span>(entries_.size()));</div>
-<div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;}</div>
-<div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160; </div>
-<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
-<div class="line"><a name="l00574"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#ad5c959a538216a09ab28c5283585956c">  574</a></span>&#160;<span class="keyword">auto</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#ad950587c89b4306f927b08b5e5cb7e89">compact_tuple_sketch&lt;S, A&gt;::begin</a>() const -&gt; const_iterator {</div>
-<div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;  <span class="keywordflow">return</span> const_iterator(entries_.data(), <span class="keyword">static_cast&lt;</span>uint32_t<span class="keyword">&gt;</span>(entries_.size()), 0);</div>
-<div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;}</div>
-<div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160; </div>
-<div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
-<div class="line"><a name="l00579"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#ae11e60e117300685401961e36f196f7a">  579</a></span>&#160;<span class="keyword">auto</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a7727305d5e1ec66a181e22c43af9a581">compact_tuple_sketch&lt;S, A&gt;::end</a>() const -&gt; const_iterator {</div>
-<div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;  <span class="keywordflow">return</span> const_iterator(<span class="keyword">nullptr</span>, 0, <span class="keyword">static_cast&lt;</span>uint32_t<span class="keyword">&gt;</span>(entries_.size()));</div>
-<div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;}</div>
-<div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160; </div>
-<div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
-<div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;<span class="keywordtype">void</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch&lt;S, A&gt;::print_specifics</a>(std::ostringstream&amp;)<span class="keyword"> const </span>{}</div>
-<div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160; </div>
-<div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;<span class="comment">// builder</span></div>
-<div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160; </div>
-<div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> D, <span class="keyword">typename</span> P, <span class="keyword">typename</span> A&gt;</div>
-<div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;tuple_base_builder&lt;D, P, A&gt;::tuple_base_builder(<span class="keyword">const</span> P&amp; policy, <span class="keyword">const</span> A&amp; allocator):</div>
-<div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;theta_base_builder&lt;D, A&gt;(allocator), policy_(policy) {}</div>
-<div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160; </div>
-<div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> U, <span class="keyword">typename</span> P, <span class="keyword">typename</span> A&gt;</div>
-<div class="line"><a name="l00593"></a><span class="lineno"><a class="line" href="classdatasketches_1_1update__tuple__sketch_1_1builder.html#a4939c16cc8f9c221b2f796eda6db7a81">  593</a></span>&#160;<a class="code" href="classdatasketches_1_1update__tuple__sketch_1_1builder.html#a4939c16cc8f9c221b2f796eda6db7a81">update_tuple_sketch&lt;S, U, P, A&gt;::builder::builder</a>(<span class="keyword">const</span> P&amp; policy, <span class="keyword">const</span> A&amp; allocator):</div>
-<div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;<a class="code" href="classdatasketches_1_1tuple__base__builder.html">tuple_base_builder</a>&lt;<a class="code" href="classdatasketches_1_1update__tuple__sketch_1_1builder.html">builder</a>, P, A&gt;(policy, allocator) {}</div>
+<div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;  <span class="keywordflow">if</span> (!is.good()) <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;error reading from std::istream&quot;</span>);</div>
+<div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">bool</span> is_ordered = flags_byte &amp; (1 &lt;&lt; flags::IS_ORDERED);</div>
+<div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;  <span class="keywordflow">return</span> compact_tuple_sketch(is_empty, is_ordered, seed_hash, theta, std::move(entries));</div>
+<div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;}</div>
+<div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160; </div>
+<div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
+<div class="line"><a name="l00531"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#ad950587c89b4306f927b08b5e5cb7e89">  531</a></span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> SerDe&gt;</div>
+<div class="line"><a name="l00532"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a7727305d5e1ec66a181e22c43af9a581">  532</a></span>&#160;<a class="code" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch&lt;S, A&gt;</a> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#aa4654837acac56f89e5c083198374eda">compact_tuple_sketch&lt;S, A&gt;::deserialize</a>(<span class="keyword">const</span> <spa [...]
+<div class="line"><a name="l00533"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#ad5c959a538216a09ab28c5283585956c">  533</a></span>&#160;  ensure_minimum_memory(size, 8);</div>
+<div class="line"><a name="l00534"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#ae11e60e117300685401961e36f196f7a">  534</a></span>&#160;  <span class="keyword">const</span> <span class="keywordtype">char</span>* ptr = <span class="keyword">static_cast&lt;</span><span class="keyword">const </span><span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(bytes);</div>
+<div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">char</span>* base = ptr;</div>
+<div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;  uint8_t preamble_longs;</div>
+<div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;  ptr += copy_from_mem(ptr, preamble_longs);</div>
+<div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;  uint8_t serial_version;</div>
+<div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;  ptr += copy_from_mem(ptr, serial_version);</div>
+<div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;  uint8_t family;</div>
+<div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;  ptr += copy_from_mem(ptr, family);</div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;  uint8_t type;</div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;  ptr += copy_from_mem(ptr, type);</div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;  ptr += <span class="keyword">sizeof</span>(uint8_t); <span class="comment">// unused</span></div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;  uint8_t flags_byte;</div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;  ptr += copy_from_mem(ptr, flags_byte);</div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;  uint16_t seed_hash;</div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;  ptr += copy_from_mem(ptr, seed_hash);</div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;  <span class="keywordflow">if</span> (serial_version != SERIAL_VERSION &amp;&amp; serial_version != SERIAL_VERSION_LEGACY) {</div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;    <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;serial version mismatch: expected &quot;</span> + std::to_string(SERIAL_VERSION) + <span class="stringliteral">&quot; or &quot;</span></div>
+<div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;        + std::to_string(SERIAL_VERSION_LEGACY) + <span class="stringliteral">&quot;, actual &quot;</span> + std::to_string(serial_version));</div>
+<div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;  }</div>
+<div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;  checker&lt;true&gt;::check_sketch_family(family, SKETCH_FAMILY);</div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;  <span class="keywordflow">if</span> (type != SKETCH_TYPE &amp;&amp; type != SKETCH_TYPE_LEGACY) {</div>
+<div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;    <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;sketch type mismatch: expected &quot;</span> + std::to_string(SKETCH_TYPE) + <span class="stringliteral">&quot; or &quot;</span></div>
+<div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;        + std::to_string(SKETCH_TYPE_LEGACY) + <span class="stringliteral">&quot;, actual &quot;</span> + std::to_string(type));</div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;  }</div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">bool</span> is_empty = flags_byte &amp; (1 &lt;&lt; flags::IS_EMPTY);</div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;  <span class="keywordflow">if</span> (!is_empty) checker&lt;true&gt;::check_seed_hash(seed_hash, compute_seed_hash(seed));</div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160; </div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;  uint64_t theta = <a class="code" href="namespacedatasketches_1_1theta__constants.html#ae3243c6bd90c8d8577c32b86100d97ad">theta_constants::MAX_THETA</a>;</div>
+<div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;  uint32_t num_entries = 0;</div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160; </div>
+<div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;  <span class="keywordflow">if</span> (!is_empty) {</div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;    <span class="keywordflow">if</span> (preamble_longs == 1) {</div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;      num_entries = 1;</div>
+<div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;    } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;      ensure_minimum_memory(size, 8); <span class="comment">// read the first prelong before this method</span></div>
+<div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;      ptr += copy_from_mem(ptr, num_entries);</div>
+<div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;      ptr += <span class="keyword">sizeof</span>(uint32_t); <span class="comment">// unused</span></div>
+<div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;      <span class="keywordflow">if</span> (preamble_longs &gt; 2) {</div>
+<div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;        ensure_minimum_memory(size, (preamble_longs - 1) &lt;&lt; 3);</div>
+<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;        ptr += copy_from_mem(ptr, theta);</div>
+<div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;      }</div>
+<div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;    }</div>
+<div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;  }</div>
+<div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">size_t</span> keys_size_bytes = <span class="keyword">sizeof</span>(uint64_t) * num_entries;</div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;  ensure_minimum_memory(size, ptr - base + keys_size_bytes);</div>
+<div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;  A alloc(allocator);</div>
+<div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;  std::vector&lt;Entry, AllocEntry&gt; entries(alloc);</div>
+<div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;  <span class="keywordflow">if</span> (!is_empty) {</div>
+<div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;    entries.reserve(num_entries);</div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;    std::unique_ptr&lt;S, deleter_of_summaries&gt; summary(alloc.allocate(1), deleter_of_summaries(1, <span class="keyword">false</span>, allocator));</div>
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; num_entries; ++i) {</div>
+<div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;      uint64_t key;</div>
+<div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;      ptr += copy_from_mem(ptr, key);</div>
+<div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;      ptr += sd.deserialize(ptr, base + size - ptr, summary.get(), 1);</div>
+<div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;      entries.push_back(Entry(key, std::move(*summary)));</div>
+<div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;      (*summary).~S();</div>
+<div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;    }</div>
+<div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;  }</div>
+<div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">bool</span> is_ordered = flags_byte &amp; (1 &lt;&lt; flags::IS_ORDERED);</div>
+<div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;  <span class="keywordflow">return</span> compact_tuple_sketch(is_empty, is_ordered, seed_hash, theta, std::move(entries));</div>
+<div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;}</div>
 <div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160; </div>
-<div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> U, <span class="keyword">typename</span> P, <span class="keyword">typename</span> A&gt;</div>
-<div class="line"><a name="l00597"></a><span class="lineno"><a class="line" href="classdatasketches_1_1update__tuple__sketch_1_1builder.html#a5641adbacdefd99f6833e1c8de16be43">  597</a></span>&#160;<span class="keyword">auto</span> <a class="code" href="classdatasketches_1_1update__tuple__sketch_1_1builder.html#a5641adbacdefd99f6833e1c8de16be43">update_tuple_sketch&lt;S, U, P, A&gt;::builder::build</a>() const -&gt; <a class="code" href="classdatasketches_1_1update__tuple__sketch.html">u [...]
-<div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch</a>(this-&gt;starting_lg_size(), this-&gt;lg_k_, this-&gt;rf_, this-&gt;p_, this-&gt;starting_theta(), this-&gt;seed_, this-&gt;policy_, this-&gt;allocator_);</div>
+<div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
+<div class="line"><a name="l00597"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#ad950587c89b4306f927b08b5e5cb7e89">  597</a></span>&#160;<span class="keyword">auto</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#ad950587c89b4306f927b08b5e5cb7e89">compact_tuple_sketch&lt;S, A&gt;::begin</a>() -&gt; iterator {</div>
+<div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;  <span class="keywordflow">return</span> iterator(entries_.data(), <span class="keyword">static_cast&lt;</span>uint32_t<span class="keyword">&gt;</span>(entries_.size()), 0);</div>
 <div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;}</div>
 <div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160; </div>
-<div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;} <span class="comment">/* namespace datasketches */</span></div>
+<div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
+<div class="line"><a name="l00602"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#a7727305d5e1ec66a181e22c43af9a581">  602</a></span>&#160;<span class="keyword">auto</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a7727305d5e1ec66a181e22c43af9a581">compact_tuple_sketch&lt;S, A&gt;::end</a>() -&gt; iterator {</div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;  <span class="keywordflow">return</span> iterator(<span class="keyword">nullptr</span>, 0, <span class="keyword">static_cast&lt;</span>uint32_t<span class="keyword">&gt;</span>(entries_.size()));</div>
+<div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;}</div>
+<div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160; </div>
+<div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
+<div class="line"><a name="l00607"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#ad5c959a538216a09ab28c5283585956c">  607</a></span>&#160;<span class="keyword">auto</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#ad950587c89b4306f927b08b5e5cb7e89">compact_tuple_sketch&lt;S, A&gt;::begin</a>() const -&gt; const_iterator {</div>
+<div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;  <span class="keywordflow">return</span> const_iterator(entries_.data(), <span class="keyword">static_cast&lt;</span>uint32_t<span class="keyword">&gt;</span>(entries_.size()), 0);</div>
+<div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;}</div>
+<div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160; </div>
+<div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
+<div class="line"><a name="l00612"></a><span class="lineno"><a class="line" href="classdatasketches_1_1compact__tuple__sketch.html#ae11e60e117300685401961e36f196f7a">  612</a></span>&#160;<span class="keyword">auto</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html#a7727305d5e1ec66a181e22c43af9a581">compact_tuple_sketch&lt;S, A&gt;::end</a>() const -&gt; const_iterator {</div>
+<div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;  <span class="keywordflow">return</span> const_iterator(<span class="keyword">nullptr</span>, 0, <span class="keyword">static_cast&lt;</span>uint32_t<span class="keyword">&gt;</span>(entries_.size()));</div>
+<div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;}</div>
+<div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160; </div>
+<div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> A&gt;</div>
+<div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;<span class="keywordtype">void</span> <a class="code" href="classdatasketches_1_1compact__tuple__sketch.html">compact_tuple_sketch&lt;S, A&gt;::print_specifics</a>(std::ostringstream&amp;)<span class="keyword"> const </span>{}</div>
+<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160; </div>
+<div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;<span class="comment">// builder</span></div>
+<div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160; </div>
+<div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> D, <span class="keyword">typename</span> P, <span class="keyword">typename</span> A&gt;</div>
+<div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;tuple_base_builder&lt;D, P, A&gt;::tuple_base_builder(<span class="keyword">const</span> P&amp; policy, <span class="keyword">const</span> A&amp; allocator):</div>
+<div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;theta_base_builder&lt;D, A&gt;(allocator), policy_(policy) {}</div>
+<div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160; </div>
+<div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> U, <span class="keyword">typename</span> P, <span class="keyword">typename</span> A&gt;</div>
+<div class="line"><a name="l00626"></a><span class="lineno"><a class="line" href="classdatasketches_1_1update__tuple__sketch_1_1builder.html#a4939c16cc8f9c221b2f796eda6db7a81">  626</a></span>&#160;<a class="code" href="classdatasketches_1_1update__tuple__sketch_1_1builder.html#a4939c16cc8f9c221b2f796eda6db7a81">update_tuple_sketch&lt;S, U, P, A&gt;::builder::builder</a>(<span class="keyword">const</span> P&amp; policy, <span class="keyword">const</span> A&amp; allocator):</div>
+<div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;<a class="code" href="classdatasketches_1_1tuple__base__builder.html">tuple_base_builder</a>&lt;<a class="code" href="classdatasketches_1_1update__tuple__sketch_1_1builder.html">builder</a>, P, A&gt;(policy, allocator) {}</div>
+<div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160; </div>
+<div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> S, <span class="keyword">typename</span> U, <span class="keyword">typename</span> P, <span class="keyword">typename</span> A&gt;</div>
+<div class="line"><a name="l00630"></a><span class="lineno"><a class="line" href="classdatasketches_1_1update__tuple__sketch_1_1builder.html#a5641adbacdefd99f6833e1c8de16be43">  630</a></span>&#160;<span class="keyword">auto</span> <a class="code" href="classdatasketches_1_1update__tuple__sketch_1_1builder.html#a5641adbacdefd99f6833e1c8de16be43">update_tuple_sketch&lt;S, U, P, A&gt;::builder::build</a>() const -&gt; <a class="code" href="classdatasketches_1_1update__tuple__sketch.html">u [...]
+<div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="classdatasketches_1_1update__tuple__sketch.html">update_tuple_sketch</a>(this-&gt;starting_lg_size(), this-&gt;lg_k_, this-&gt;rf_, this-&gt;p_, this-&gt;starting_theta(), this-&gt;seed_, this-&gt;policy_, this-&gt;allocator_);</div>
+<div class="line"><a name="l00632"></a><span class="lineno"><a class="line" href="classdatasketches_1_1update__tuple__sketch_1_1builder.html#a4939c16cc8f9c221b2f796eda6db7a81">  632</a></span>&#160;}</div>
+<div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160; </div>
+<div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;} <span class="comment">/* namespace datasketches */</span></div>
 <div class="ttc" id="aclassdatasketches_1_1base__theta__sketch__alloc_html_a9c71f891e4b0d3d3dc6a6f4b30ed9261"><div class="ttname"><a href="classdatasketches_1_1base__theta__sketch__alloc.html#a9c71f891e4b0d3d3dc6a6f4b30ed9261">datasketches::base_theta_sketch_alloc::get_num_retained</a></div><div class="ttdeci">virtual uint32_t get_num_retained() const =0</div></div>
-<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html">datasketches::compact_tuple_sketch</a></div><div class="ttdoc">Compact Tuple sketch.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:407</div></div>
-<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a2b072fe55377eb51a6ee477827fc3b95"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a2b072fe55377eb51a6ee477827fc3b95">datasketches::compact_tuple_sketch::get_theta64</a></div><div class="ttdeci">virtual uint64_t get_theta64() const</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:333</div></div>
-<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a31fa76458d81a17dbebfcb828e531f14"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a31fa76458d81a17dbebfcb828e531f14">datasketches::compact_tuple_sketch::get_num_retained</a></div><div class="ttdeci">virtual uint32_t get_num_retained() const</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:338</div></div>
-<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a538940c100e4353b3671ad452d3d3056"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a538940c100e4353b3671ad452d3d3056">datasketches::compact_tuple_sketch::serialize</a></div><div class="ttdeci">void serialize(std::ostream &amp;os, const SerDe &amp;sd=SerDe()) const</div><div class="ttdoc">This method serializes the sketch into a given stream in a binary form.</div><div class="ttdef"><b>Def [...]
-<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a5a2b7a58dc85678d08752945ff655362"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a5a2b7a58dc85678d08752945ff655362">datasketches::compact_tuple_sketch::is_empty</a></div><div class="ttdeci">virtual bool is_empty() const</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:323</div></div>
-<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a5f5b393314c0c1819f79b73232a506e8"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a5f5b393314c0c1819f79b73232a506e8">datasketches::compact_tuple_sketch::is_ordered</a></div><div class="ttdeci">virtual bool is_ordered() const</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:328</div></div>
-<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a6f69b50bc13da11d255d0e583e2376ba"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a6f69b50bc13da11d255d0e583e2376ba">datasketches::compact_tuple_sketch::get_seed_hash</a></div><div class="ttdeci">virtual uint16_t get_seed_hash() const</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:343</div></div>
-<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a7727305d5e1ec66a181e22c43af9a581"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a7727305d5e1ec66a181e22c43af9a581">datasketches::compact_tuple_sketch::end</a></div><div class="ttdeci">virtual iterator end()</div><div class="ttdoc">Iterator pointing past the valid range.</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:569</div></div>
-<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a919843136e9bb921acd40bfea4ed5aef"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a919843136e9bb921acd40bfea4ed5aef">datasketches::compact_tuple_sketch::compact_tuple_sketch</a></div><div class="ttdeci">compact_tuple_sketch(const Base &amp;other, bool ordered)</div><div class="ttdoc">Copy constructor.</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:281</div></div>
-<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a9d85cf47c4ecd0580ec623c42006dd1b"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a9d85cf47c4ecd0580ec623c42006dd1b">datasketches::compact_tuple_sketch::get_allocator</a></div><div class="ttdeci">virtual Allocator get_allocator() const</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:318</div></div>
+<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html">datasketches::compact_tuple_sketch</a></div><div class="ttdoc">Compact Tuple sketch.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:416</div></div>
+<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a2b072fe55377eb51a6ee477827fc3b95"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a2b072fe55377eb51a6ee477827fc3b95">datasketches::compact_tuple_sketch::get_theta64</a></div><div class="ttdeci">virtual uint64_t get_theta64() const</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:339</div></div>
+<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a31fa76458d81a17dbebfcb828e531f14"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a31fa76458d81a17dbebfcb828e531f14">datasketches::compact_tuple_sketch::get_num_retained</a></div><div class="ttdeci">virtual uint32_t get_num_retained() const</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:344</div></div>
+<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a45b4c825a3545299d8bfeeadc70708c3"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a45b4c825a3545299d8bfeeadc70708c3">datasketches::compact_tuple_sketch::filter</a></div><div class="ttdeci">compact_tuple_sketch filter(const Predicate &amp;predicate) const</div><div class="ttdoc">Produces a Compact Tuple sketch from this sketch by applying a given predicate to each entry.</div></div>
+<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a538940c100e4353b3671ad452d3d3056"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a538940c100e4353b3671ad452d3d3056">datasketches::compact_tuple_sketch::serialize</a></div><div class="ttdeci">void serialize(std::ostream &amp;os, const SerDe &amp;sd=SerDe()) const</div><div class="ttdoc">This method serializes the sketch into a given stream in a binary form.</div><div class="ttdef"><b>Def [...]
+<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a5a2b7a58dc85678d08752945ff655362"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a5a2b7a58dc85678d08752945ff655362">datasketches::compact_tuple_sketch::is_empty</a></div><div class="ttdeci">virtual bool is_empty() const</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:329</div></div>
+<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a5f5b393314c0c1819f79b73232a506e8"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a5f5b393314c0c1819f79b73232a506e8">datasketches::compact_tuple_sketch::is_ordered</a></div><div class="ttdeci">virtual bool is_ordered() const</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:334</div></div>
+<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a6f69b50bc13da11d255d0e583e2376ba"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a6f69b50bc13da11d255d0e583e2376ba">datasketches::compact_tuple_sketch::get_seed_hash</a></div><div class="ttdeci">virtual uint16_t get_seed_hash() const</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:349</div></div>
+<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a7727305d5e1ec66a181e22c43af9a581"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a7727305d5e1ec66a181e22c43af9a581">datasketches::compact_tuple_sketch::end</a></div><div class="ttdeci">virtual iterator end()</div><div class="ttdoc">Iterator pointing past the valid range.</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:602</div></div>
+<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a919843136e9bb921acd40bfea4ed5aef"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a919843136e9bb921acd40bfea4ed5aef">datasketches::compact_tuple_sketch::compact_tuple_sketch</a></div><div class="ttdeci">compact_tuple_sketch(const Base &amp;other, bool ordered)</div><div class="ttdoc">Copy constructor.</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:287</div></div>
+<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_a9d85cf47c4ecd0580ec623c42006dd1b"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#a9d85cf47c4ecd0580ec623c42006dd1b">datasketches::compact_tuple_sketch::get_allocator</a></div><div class="ttdeci">virtual Allocator get_allocator() const</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:324</div></div>
 <div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_aa4654837acac56f89e5c083198374eda"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#aa4654837acac56f89e5c083198374eda">datasketches::compact_tuple_sketch::deserialize</a></div><div class="ttdeci">static compact_tuple_sketch deserialize(std::istream &amp;is, uint64_t seed=DEFAULT_SEED, const SerDe &amp;sd=SerDe(), const Allocator &amp;allocator=Allocator())</div><div class="ttdoc">This meth [...]
-<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_ad950587c89b4306f927b08b5e5cb7e89"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#ad950587c89b4306f927b08b5e5cb7e89">datasketches::compact_tuple_sketch::begin</a></div><div class="ttdeci">virtual iterator begin()</div><div class="ttdoc">Iterator over entries in this sketch.</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:564</div></div>
+<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_ad950587c89b4306f927b08b5e5cb7e89"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#ad950587c89b4306f927b08b5e5cb7e89">datasketches::compact_tuple_sketch::begin</a></div><div class="ttdeci">virtual iterator begin()</div><div class="ttdoc">Iterator over entries in this sketch.</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:597</div></div>
 <div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html_aebe0bd9f97ef071d15ae25b9c3418e65"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html#aebe0bd9f97ef071d15ae25b9c3418e65">datasketches::compact_tuple_sketch::get_serialized_size_summaries_bytes</a></div><div class="ttdeci">size_t get_serialized_size_summaries_bytes(const SerDe &amp;sd) const</div><div class="ttdoc">Computes size needed to serialize summaries in the sketch.</div></div>
 <div class="ttc" id="aclassdatasketches_1_1theta__sketch__alloc_html"><div class="ttname"><a href="classdatasketches_1_1theta__sketch__alloc.html">datasketches::theta_sketch_alloc</a></div><div class="ttdoc">Base class for the Theta Sketch, a generalization of the Kth Minimum Value (KMV) sketch.</div><div class="ttdef"><b>Definition:</b> theta_sketch.hpp:127</div></div>
-<div class="ttc" id="aclassdatasketches_1_1tuple__base__builder_html"><div class="ttname"><a href="classdatasketches_1_1tuple__base__builder.html">datasketches::tuple_base_builder</a></div><div class="ttdoc">Tuple base builder.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:587</div></div>
+<div class="ttc" id="aclassdatasketches_1_1tuple__base__builder_html"><div class="ttname"><a href="classdatasketches_1_1tuple__base__builder.html">datasketches::tuple_base_builder</a></div><div class="ttdoc">Tuple base builder.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:614</div></div>
 <div class="ttc" id="aclassdatasketches_1_1tuple__sketch_html"><div class="ttname"><a href="classdatasketches_1_1tuple__sketch.html">datasketches::tuple_sketch</a></div><div class="ttdoc">Base class for Tuple sketch.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:54</div></div>
 <div class="ttc" id="aclassdatasketches_1_1tuple__sketch_html_a0526cde38fc4f1bc32839293567c8717"><div class="ttname"><a href="classdatasketches_1_1tuple__sketch.html#a0526cde38fc4f1bc32839293567c8717">datasketches::tuple_sketch::get_upper_bound</a></div><div class="ttdeci">double get_upper_bound(uint8_t num_std_devs, uint32_t num_subset_entries) const</div><div class="ttdoc">Returns the approximate upper error bound given a number of standard deviations over an arbitrary num...</div><div [...]
 <div class="ttc" id="aclassdatasketches_1_1tuple__sketch_html_a2afb71f2ef2d82290be4c8eafc08f2a2"><div class="ttname"><a href="classdatasketches_1_1tuple__sketch.html#a2afb71f2ef2d82290be4c8eafc08f2a2">datasketches::tuple_sketch::get_estimate</a></div><div class="ttdeci">double get_estimate() const</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:40</div></div>
@@ -697,9 +731,9 @@ $(function() {
 <div class="ttc" id="aclassdatasketches_1_1tuple__sketch_html_aa7f5423261c0a178f37911746353c0b7"><div class="ttname"><a href="classdatasketches_1_1tuple__sketch.html#aa7f5423261c0a178f37911746353c0b7">datasketches::tuple_sketch::end</a></div><div class="ttdeci">virtual iterator end()=0</div><div class="ttdoc">Iterator pointing past the valid range.</div></div>
 <div class="ttc" id="aclassdatasketches_1_1tuple__sketch_html_ad1d91335a83907ae2ef026786e12ba0c"><div class="ttname"><a href="classdatasketches_1_1tuple__sketch.html#ad1d91335a83907ae2ef026786e12ba0c">datasketches::tuple_sketch::begin</a></div><div class="ttdeci">virtual iterator begin()=0</div><div class="ttdoc">Iterator over entries in this sketch.</div></div>
 <div class="ttc" id="aclassdatasketches_1_1tuple__sketch_html_ae95a04b1d7dccb3d9b3f3c3d087aa8e6"><div class="ttname"><a href="classdatasketches_1_1tuple__sketch.html#ae95a04b1d7dccb3d9b3f3c3d087aa8e6">datasketches::tuple_sketch::is_estimation_mode</a></div><div class="ttdeci">bool is_estimation_mode() const</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:29</div></div>
-<div class="ttc" id="aclassdatasketches_1_1update__tuple__sketch_1_1builder_html"><div class="ttname"><a href="classdatasketches_1_1update__tuple__sketch_1_1builder.html">datasketches::update_tuple_sketch::builder</a></div><div class="ttdoc">Update Tuple sketch builder.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:597</div></div>
-<div class="ttc" id="aclassdatasketches_1_1update__tuple__sketch_1_1builder_html_a4939c16cc8f9c221b2f796eda6db7a81"><div class="ttname"><a href="classdatasketches_1_1update__tuple__sketch_1_1builder.html#a4939c16cc8f9c221b2f796eda6db7a81">datasketches::update_tuple_sketch::builder::builder</a></div><div class="ttdeci">builder(const P &amp;policy=P(), const A &amp;allocator=A())</div><div class="ttdoc">Constructor Creates and instance of the builder with default parameters.</div><div clas [...]
-<div class="ttc" id="aclassdatasketches_1_1update__tuple__sketch_1_1builder_html_a5641adbacdefd99f6833e1c8de16be43"><div class="ttname"><a href="classdatasketches_1_1update__tuple__sketch_1_1builder.html#a5641adbacdefd99f6833e1c8de16be43">datasketches::update_tuple_sketch::builder::build</a></div><div class="ttdeci">update_tuple_sketch&lt; S, U, P, A &gt; build() const</div><div class="ttdoc">This is to create an instance of the sketch with predefined parameters.</div><div class="ttdef"> [...]
+<div class="ttc" id="aclassdatasketches_1_1update__tuple__sketch_1_1builder_html"><div class="ttname"><a href="classdatasketches_1_1update__tuple__sketch_1_1builder.html">datasketches::update_tuple_sketch::builder</a></div><div class="ttdoc">Update Tuple sketch builder.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:624</div></div>
+<div class="ttc" id="aclassdatasketches_1_1update__tuple__sketch_1_1builder_html_a4939c16cc8f9c221b2f796eda6db7a81"><div class="ttname"><a href="classdatasketches_1_1update__tuple__sketch_1_1builder.html#a4939c16cc8f9c221b2f796eda6db7a81">datasketches::update_tuple_sketch::builder::builder</a></div><div class="ttdeci">builder(const P &amp;policy=P(), const A &amp;allocator=A())</div><div class="ttdoc">Constructor Creates and instance of the builder with default parameters.</div><div clas [...]
+<div class="ttc" id="aclassdatasketches_1_1update__tuple__sketch_1_1builder_html_a5641adbacdefd99f6833e1c8de16be43"><div class="ttname"><a href="classdatasketches_1_1update__tuple__sketch_1_1builder.html#a5641adbacdefd99f6833e1c8de16be43">datasketches::update_tuple_sketch::builder::build</a></div><div class="ttdeci">update_tuple_sketch&lt; S, U, P, A &gt; build() const</div><div class="ttdoc">This is to create an instance of the sketch with predefined parameters.</div><div class="ttdef"> [...]
 <div class="ttc" id="aclassdatasketches_1_1update__tuple__sketch_html"><div class="ttname"><a href="classdatasketches_1_1update__tuple__sketch.html">datasketches::update_tuple_sketch</a></div><div class="ttdoc">Update Tuple sketch.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:217</div></div>
 <div class="ttc" id="aclassdatasketches_1_1update__tuple__sketch_html_a268ae12a22c9f97b84833e4c39fb2278"><div class="ttname"><a href="classdatasketches_1_1update__tuple__sketch.html#a268ae12a22c9f97b84833e4c39fb2278">datasketches::update_tuple_sketch::trim</a></div><div class="ttdeci">void trim()</div><div class="ttdoc">Remove retained entries in excess of the nominal size k (if any)</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:227</div></div>
 <div class="ttc" id="aclassdatasketches_1_1update__tuple__sketch_html_ad20897c5c8bd47f5d4005989bead0e55"><div class="ttname"><a href="classdatasketches_1_1update__tuple__sketch.html#ad20897c5c8bd47f5d4005989bead0e55">datasketches::update_tuple_sketch::reset</a></div><div class="ttdeci">void reset()</div><div class="ttdoc">Reset the sketch to the initial empty state.</div><div class="ttdef"><b>Definition:</b> tuple_sketch_impl.hpp:232</div></div>
diff --git a/docs/master/tuple__union_8hpp_source.html b/docs/master/tuple__union_8hpp_source.html
index 7f67fbb..9024eb0 100644
--- a/docs/master/tuple__union_8hpp_source.html
+++ b/docs/master/tuple__union_8hpp_source.html
@@ -164,8 +164,8 @@ $(function() {
 <div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;<span class="preprocessor">#include &quot;tuple_union_impl.hpp&quot;</span></div>
 <div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160; </div>
 <div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html">datasketches::compact_tuple_sketch</a></div><div class="ttdoc">Compact Tuple sketch.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:407</div></div>
-<div class="ttc" id="aclassdatasketches_1_1tuple__base__builder_html"><div class="ttname"><a href="classdatasketches_1_1tuple__base__builder.html">datasketches::tuple_base_builder</a></div><div class="ttdoc">Tuple base builder.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:587</div></div>
+<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html">datasketches::compact_tuple_sketch</a></div><div class="ttdoc">Compact Tuple sketch.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:416</div></div>
+<div class="ttc" id="aclassdatasketches_1_1tuple__base__builder_html"><div class="ttname"><a href="classdatasketches_1_1tuple__base__builder.html">datasketches::tuple_base_builder</a></div><div class="ttdoc">Tuple base builder.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:614</div></div>
 <div class="ttc" id="aclassdatasketches_1_1tuple__sketch_html"><div class="ttname"><a href="classdatasketches_1_1tuple__sketch.html">datasketches::tuple_sketch</a></div><div class="ttdoc">Base class for Tuple sketch.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:54</div></div>
 <div class="ttc" id="aclassdatasketches_1_1tuple__union_1_1builder_html"><div class="ttname"><a href="classdatasketches_1_1tuple__union_1_1builder.html">datasketches::tuple_union::builder</a></div><div class="ttdoc">Tuple union builder.</div><div class="ttdef"><b>Definition:</b> tuple_union.hpp:101</div></div>
 <div class="ttc" id="aclassdatasketches_1_1tuple__union_html"><div class="ttname"><a href="classdatasketches_1_1tuple__union.html">datasketches::tuple_union</a></div><div class="ttdoc">Tuple Union.</div><div class="ttdef"><b>Definition:</b> tuple_union.hpp:45</div></div>
diff --git a/docs/master/tuple__union__impl_8hpp_source.html b/docs/master/tuple__union__impl_8hpp_source.html
index 2278c33..32ab4b3 100644
--- a/docs/master/tuple__union__impl_8hpp_source.html
+++ b/docs/master/tuple__union__impl_8hpp_source.html
@@ -121,8 +121,8 @@ $(function() {
 <div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;}</div>
 <div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160; </div>
 <div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;} <span class="comment">/* namespace datasketches */</span></div>
-<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html">datasketches::compact_tuple_sketch</a></div><div class="ttdoc">Compact Tuple sketch.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:407</div></div>
-<div class="ttc" id="aclassdatasketches_1_1tuple__base__builder_html"><div class="ttname"><a href="classdatasketches_1_1tuple__base__builder.html">datasketches::tuple_base_builder</a></div><div class="ttdoc">Tuple base builder.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:587</div></div>
+<div class="ttc" id="aclassdatasketches_1_1compact__tuple__sketch_html"><div class="ttname"><a href="classdatasketches_1_1compact__tuple__sketch.html">datasketches::compact_tuple_sketch</a></div><div class="ttdoc">Compact Tuple sketch.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:416</div></div>
+<div class="ttc" id="aclassdatasketches_1_1tuple__base__builder_html"><div class="ttname"><a href="classdatasketches_1_1tuple__base__builder.html">datasketches::tuple_base_builder</a></div><div class="ttdoc">Tuple base builder.</div><div class="ttdef"><b>Definition:</b> tuple_sketch.hpp:614</div></div>
 <div class="ttc" id="aclassdatasketches_1_1tuple__union_1_1builder_html"><div class="ttname"><a href="classdatasketches_1_1tuple__union_1_1builder.html">datasketches::tuple_union::builder</a></div><div class="ttdoc">Tuple union builder.</div><div class="ttdef"><b>Definition:</b> tuple_union.hpp:101</div></div>
 <div class="ttc" id="aclassdatasketches_1_1tuple__union_1_1builder_html_a5641adbacdefd99f6833e1c8de16be43"><div class="ttname"><a href="classdatasketches_1_1tuple__union_1_1builder.html#a5641adbacdefd99f6833e1c8de16be43">datasketches::tuple_union::builder::build</a></div><div class="ttdeci">tuple_union build() const</div><div class="ttdoc">Create an instance of the union with predefined parameters.</div><div class="ttdef"><b>Definition:</b> tuple_union_impl.hpp:48</div></div>
 <div class="ttc" id="aclassdatasketches_1_1tuple__union_html"><div class="ttname"><a href="classdatasketches_1_1tuple__union.html">datasketches::tuple_union</a></div><div class="ttdoc">Tuple Union.</div><div class="ttdef"><b>Definition:</b> tuple_union.hpp:45</div></div>


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datasketches.apache.org
For additional commands, e-mail: commits-help@datasketches.apache.org