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 2025/01/28 18:55:44 UTC
(datasketches-cpp) branch gh-pages updated: deploy: c9bdc91ab41e5c41f0b35397bd99776e74dfea3b
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 b825256 deploy: c9bdc91ab41e5c41f0b35397bd99776e74dfea3b
b825256 is described below
commit b825256627b873e2663db4fab01ac21b08808897
Author: AlexanderSaydakov <Al...@users.noreply.github.com>
AuthorDate: Tue Jan 28 18:55:39 2025 +0000
deploy: c9bdc91ab41e5c41f0b35397bd99776e74dfea3b
---
docs/master/theta__sketch_8hpp_source.html | 18 +--
docs/master/theta__sketch__impl_8hpp_source.html | 174 +++++++++++------------
2 files changed, 96 insertions(+), 96 deletions(-)
diff --git a/docs/master/theta__sketch_8hpp_source.html b/docs/master/theta__sketch_8hpp_source.html
index 2780327..e981b5b 100644
--- a/docs/master/theta__sketch_8hpp_source.html
+++ b/docs/master/theta__sketch_8hpp_source.html
@@ -422,16 +422,18 @@ $(document).ready(function() { init_codefold(0); });
<div class="line"><a id="l00609" name="l00609"></a><span class="lineno"> 609</span> uint32_t index_;</div>
<div class="line"><a id="l00610" name="l00610"></a><span class="lineno"> 610</span> uint64_t previous_;</div>
<div class="line"><a id="l00611" name="l00611"></a><span class="lineno"> 611</span> <span class="keywordtype">bool</span> is_block_mode_;</div>
-<div class="line"><a id="l00612" name="l00612"></a><span class="lineno"> 612</span> uint8_t buf_i_;</div>
-<div class="line"><a id="l00613" name="l00613"></a><span class="lineno"> 613</span> uint8_t offset_;</div>
-<div class="line"><a id="l00614" name="l00614"></a><span class="lineno"> 614</span> uint64_t buffer_[8];</div>
-<div class="line"><a id="l00615" name="l00615"></a><span class="lineno"> 615</span>};</div>
-<div class="line"><a id="l00616" name="l00616"></a><span class="lineno"> 616</span> </div>
-<div class="line"><a id="l00617" name="l00617"></a><span class="lineno"> 617</span>} <span class="comment">/* namespace datasketches */</span></div>
+<div class="line"><a id="l00612" name="l00612"></a><span class="lineno"> 612</span> uint8_t offset_;</div>
+<div class="line"><a id="l00613" name="l00613"></a><span class="lineno"> 613</span> uint64_t buffer_[8];</div>
+<div class="line"><a id="l00614" name="l00614"></a><span class="lineno"> 614</span> </div>
+<div class="line"><a id="l00615" name="l00615"></a><span class="lineno"> 615</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> unpack1();</div>
+<div class="line"><a id="l00616" name="l00616"></a><span class="lineno"> 616</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> unpack8();</div>
+<div class="line"><a id="l00617" name="l00617"></a><span class="lineno"> 617</span>};</div>
<div class="line"><a id="l00618" name="l00618"></a><span class="lineno"> 618</span> </div>
-<div class="line"><a id="l00619" name="l00619"></a><span class="lineno"> 619</span><span class="preprocessor">#include "theta_sketch_impl.hpp"</span></div>
+<div class="line"><a id="l00619" name="l00619"></a><span class="lineno"> 619</span>} <span class="comment">/* namespace datasketches */</span></div>
<div class="line"><a id="l00620" name="l00620"></a><span class="lineno"> 620</span> </div>
-<div class="line"><a id="l00621" name="l00621"></a><span class="lineno"> 621</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00621" name="l00621"></a><span class="lineno"> 621</span><span class="preprocessor">#include "theta_sketch_impl.hpp"</span></div>
+<div class="line"><a id="l00622" name="l00622"></a><span class="lineno"> 622</span> </div>
+<div class="line"><a id="l00623" name="l00623"></a><span class="lineno"> 623</span><span class="preprocessor">#endif</span></div>
<div class="ttc" id="aclassdatasketches_1_1base__theta__sketch__alloc_html"><div class="ttname"><a href="classdatasketches_1_1base__theta__sketch__alloc.html">datasketches::base_theta_sketch_alloc</a></div><div class="ttdoc">Abstract base class for Theta sketch.</div><div class="ttdef"><b>Definition</b> theta_sketch.hpp:45</div></div>
<div class="ttc" id="aclassdatasketches_1_1base__theta__sketch__alloc_html_a2afb71f2ef2d82290be4c8eafc08f2a2"><div class="ttname"><a href="classdatasketches_1_1base__theta__sketch__alloc.html#a2afb71f2ef2d82290be4c8eafc08f2a2">datasketches::base_theta_sketch_alloc::get_estimate</a></div><div class="ttdeci">double get_estimate() const</div><div class="ttdef"><b>Definition</b> theta_sketch_impl.hpp:47</div></div>
<div class="ttc" id="aclassdatasketches_1_1base__theta__sketch__alloc_html_a2e5c990494331d901c3b38cd4eb316e6"><div class="ttname"><a href="classdatasketches_1_1base__theta__sketch__alloc.html#a2e5c990494331d901c3b38cd4eb316e6">datasketches::base_theta_sketch_alloc::get_lower_bound</a></div><div class="ttdeci">double get_lower_bound(uint8_t num_std_devs) const</div><div class="ttdoc">Returns the approximate lower error bound given a number of standard deviations.</div><div class="ttdef">< [...]
diff --git a/docs/master/theta__sketch__impl_8hpp_source.html b/docs/master/theta__sketch__impl_8hpp_source.html
index b13b291..3fc4605 100644
--- a/docs/master/theta__sketch__impl_8hpp_source.html
+++ b/docs/master/theta__sketch__impl_8hpp_source.html
@@ -1024,96 +1024,94 @@ $(document).ready(function() { init_codefold(0); });
<div class="line"><a id="l00817" name="l00817"></a><span class="lineno"> 817</span>index_(index),</div>
<div class="line"><a id="l00818" name="l00818"></a><span class="lineno"> 818</span>previous_(0),</div>
<div class="line"><a id="l00819" name="l00819"></a><span class="lineno"> 819</span>is_block_mode_(num_entries_ >= 8),</div>
-<div class="line"><a id="l00820" name="l00820"></a><span class="lineno"> 820</span>buf_i_(0),</div>
-<div class="line"><a id="l00821" name="l00821"></a><span class="lineno"> 821</span>offset_(0)</div>
-<div class="line"><a id="l00822" name="l00822"></a><span class="lineno"> 822</span>{</div>
-<div class="line"><a id="l00823" name="l00823"></a><span class="lineno"> 823</span> <span class="keywordflow">if</span> (entry_bits == 64) { <span class="comment">// no compression</span></div>
-<div class="line"><a id="l00824" name="l00824"></a><span class="lineno"> 824</span> ptr_ = <span class="keyword">reinterpret_cast<</span><span class="keyword">const </span>uint64_t*<span class="keyword">></span>(ptr) + index;</div>
-<div class="line"><a id="l00825" name="l00825"></a><span class="lineno"> 825</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (index < num_entries) {</div>
-<div class="line"><a id="l00826" name="l00826"></a><span class="lineno"> 826</span> <span class="keywordflow">if</span> (is_block_mode_) {</div>
-<div class="line"><a id="l00827" name="l00827"></a><span class="lineno"> 827</span> unpack_bits_block8(buffer_, <span class="keyword">reinterpret_cast<</span><span class="keyword">const </span>uint8_t*<span class="keyword">></span>(ptr_), entry_bits_);</div>
-<div class="line"><a id="l00828" name="l00828"></a><span class="lineno"> 828</span> ptr_ = <span class="keyword">reinterpret_cast<</span><span class="keyword">const </span>uint8_t*<span class="keyword">></span>(ptr_) + entry_bits_;</div>
-<div class="line"><a id="l00829" name="l00829"></a><span class="lineno"> 829</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < 8; ++i) {</div>
-<div class="line"><a id="l00830" name="l00830"></a><span class="lineno"> 830</span> buffer_[i] += previous_;</div>
-<div class="line"><a id="l00831" name="l00831"></a><span class="lineno"> 831</span> previous_ = buffer_[i];</div>
-<div class="line"><a id="l00832" name="l00832"></a><span class="lineno"> 832</span> }</div>
-<div class="line"><a id="l00833" name="l00833"></a><span class="lineno"> 833</span> } <span class="keywordflow">else</span> {</div>
-<div class="line"><a id="l00834" name="l00834"></a><span class="lineno"> 834</span> offset_ = unpack_bits(buffer_[0], entry_bits_, <span class="keyword">reinterpret_cast<</span><span class="keyword">const </span>uint8_t*&<span class="keyword">></span>(ptr_), offset_);</div>
-<div class="line"><a id="l00835" name="l00835"></a><span class="lineno"> 835</span> buffer_[0] += previous_;</div>
-<div class="line"><a id="l00836" name="l00836"></a><span class="lineno"> 836</span> previous_ = buffer_[0];</div>
-<div class="line"><a id="l00837" name="l00837"></a><span class="lineno"> 837</span> }</div>
+<div class="line"><a id="l00820" name="l00820"></a><span class="lineno"> 820</span>offset_(0)</div>
+<div class="line"><a id="l00821" name="l00821"></a><span class="lineno"> 821</span>{</div>
+<div class="line"><a id="l00822" name="l00822"></a><span class="lineno"> 822</span> <span class="keywordflow">if</span> (entry_bits == 64) { <span class="comment">// no compression</span></div>
+<div class="line"><a id="l00823" name="l00823"></a><span class="lineno"> 823</span> ptr_ = <span class="keyword">reinterpret_cast<</span><span class="keyword">const </span>uint64_t*<span class="keyword">></span>(ptr) + index;</div>
+<div class="line"><a id="l00824" name="l00824"></a><span class="lineno"> 824</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (index < num_entries) {</div>
+<div class="line"><a id="l00825" name="l00825"></a><span class="lineno"> 825</span> <span class="keywordflow">if</span> (is_block_mode_) {</div>
+<div class="line"><a id="l00826" name="l00826"></a><span class="lineno"> 826</span> unpack8();</div>
+<div class="line"><a id="l00827" name="l00827"></a><span class="lineno"> 827</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a id="l00828" name="l00828"></a><span class="lineno"> 828</span> unpack1();</div>
+<div class="line"><a id="l00829" name="l00829"></a><span class="lineno"> 829</span> }</div>
+<div class="line"><a id="l00830" name="l00830"></a><span class="lineno"> 830</span> }</div>
+<div class="line"><a id="l00831" name="l00831"></a><span class="lineno"> 831</span>}</div>
+<div class="line"><a id="l00832" name="l00832"></a><span class="lineno"> 832</span> </div>
+<div class="line"><a id="l00833" name="l00833"></a><span class="lineno"> 833</span><span class="keyword">template</span><<span class="keyword">typename</span> Allocator></div>
+<div class="line"><a id="l00834" name="l00834"></a><span class="lineno"> 834</span><span class="keyword">auto</span> wrapped_compact_theta_sketch_alloc<Allocator>::const_iterator::operator++() -> const_iterator& {</div>
+<div class="line"><a id="l00835" name="l00835"></a><span class="lineno"> 835</span> <span class="keywordflow">if</span> (entry_bits_ == 64) { <span class="comment">// no compression</span></div>
+<div class="line"><a id="l00836" name="l00836"></a><span class="lineno"> 836</span> ptr_ = <span class="keyword">reinterpret_cast<</span><span class="keyword">const </span>uint64_t*<span class="keyword">></span>(ptr_) + 1;</div>
+<div class="line"><a id="l00837" name="l00837"></a><span class="lineno"> 837</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00838" name="l00838"></a><span class="lineno"> 838</span> }</div>
-<div class="line"><a id="l00839" name="l00839"></a><span class="lineno"> 839</span>}</div>
-<div class="line"><a id="l00840" name="l00840"></a><span class="lineno"> 840</span> </div>
-<div class="line"><a id="l00841" name="l00841"></a><span class="lineno"> 841</span><span class="keyword">template</span><<span class="keyword">typename</span> Allocator></div>
-<div class="line"><a id="l00842" name="l00842"></a><span class="lineno"> 842</span><span class="keyword">auto</span> wrapped_compact_theta_sketch_alloc<Allocator>::const_iterator::operator++() -> const_iterator& {</div>
-<div class="line"><a id="l00843" name="l00843"></a><span class="lineno"> 843</span> <span class="keywordflow">if</span> (entry_bits_ == 64) { <span class="comment">// no compression</span></div>
-<div class="line"><a id="l00844" name="l00844"></a><span class="lineno"> 844</span> ptr_ = <span class="keyword">reinterpret_cast<</span><span class="keyword">const </span>uint64_t*<span class="keyword">></span>(ptr_) + 1;</div>
-<div class="line"><a id="l00845" name="l00845"></a><span class="lineno"> 845</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a id="l00846" name="l00846"></a><span class="lineno"> 846</span> }</div>
-<div class="line"><a id="l00847" name="l00847"></a><span class="lineno"> 847</span> ++index_;</div>
-<div class="line"><a id="l00848" name="l00848"></a><span class="lineno"> 848</span> <span class="keywordflow">if</span> (index_ < num_entries_) {</div>
-<div class="line"><a id="l00849" name="l00849"></a><span class="lineno"> 849</span> <span class="keywordflow">if</span> (is_block_mode_) {</div>
-<div class="line"><a id="l00850" name="l00850"></a><span class="lineno"> 850</span> ++buf_i_;</div>
-<div class="line"><a id="l00851" name="l00851"></a><span class="lineno"> 851</span> <span class="keywordflow">if</span> (buf_i_ == 8) {</div>
-<div class="line"><a id="l00852" name="l00852"></a><span class="lineno"> 852</span> buf_i_ = 0;</div>
-<div class="line"><a id="l00853" name="l00853"></a><span class="lineno"> 853</span> <span class="keywordflow">if</span> (index_ + 8 < num_entries_) {</div>
-<div class="line"><a id="l00854" name="l00854"></a><span class="lineno"> 854</span> unpack_bits_block8(buffer_, <span class="keyword">reinterpret_cast<</span><span class="keyword">const </span>uint8_t*<span class="keyword">></span>(ptr_), entry_bits_);</div>
-<div class="line"><a id="l00855" name="l00855"></a><span class="lineno"> 855</span> ptr_ = <span class="keyword">reinterpret_cast<</span><span class="keyword">const </span>uint8_t*<span class="keyword">></span>(ptr_) + entry_bits_;</div>
-<div class="line"><a id="l00856" name="l00856"></a><span class="lineno"> 856</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < 8; ++i) {</div>
-<div class="line"><a id="l00857" name="l00857"></a><span class="lineno"> 857</span> buffer_[i] += previous_;</div>
-<div class="line"><a id="l00858" name="l00858"></a><span class="lineno"> 858</span> previous_ = buffer_[i];</div>
-<div class="line"><a id="l00859" name="l00859"></a><span class="lineno"> 859</span> }</div>
-<div class="line"><a id="l00860" name="l00860"></a><span class="lineno"> 860</span> } <span class="keywordflow">else</span> {</div>
-<div class="line"><a id="l00861" name="l00861"></a><span class="lineno"> 861</span> is_block_mode_ = <span class="keyword">false</span>;</div>
-<div class="line"><a id="l00862" name="l00862"></a><span class="lineno"> 862</span> offset_ = unpack_bits(buffer_[0], entry_bits_, <span class="keyword">reinterpret_cast<</span><span class="keyword">const </span>uint8_t*&<span class="keyword">></span>(ptr_), offset_);</div>
-<div class="line"><a id="l00863" name="l00863"></a><span class="lineno"> 863</span> buffer_[0] += previous_;</div>
-<div class="line"><a id="l00864" name="l00864"></a><span class="lineno"> 864</span> previous_ = buffer_[0];</div>
-<div class="line"><a id="l00865" name="l00865"></a><span class="lineno"> 865</span> }</div>
-<div class="line"><a id="l00866" name="l00866"></a><span class="lineno"> 866</span> }</div>
-<div class="line"><a id="l00867" name="l00867"></a><span class="lineno"> 867</span> } <span class="keywordflow">else</span> {</div>
-<div class="line"><a id="l00868" name="l00868"></a><span class="lineno"> 868</span> offset_ = unpack_bits(buffer_[0], entry_bits_, <span class="keyword">reinterpret_cast<</span><span class="keyword">const </span>uint8_t*&<span class="keyword">></span>(ptr_), offset_);</div>
-<div class="line"><a id="l00869" name="l00869"></a><span class="lineno"> 869</span> buffer_[0] += previous_;</div>
-<div class="line"><a id="l00870" name="l00870"></a><span class="lineno"> 870</span> previous_ = buffer_[0];</div>
-<div class="line"><a id="l00871" name="l00871"></a><span class="lineno"> 871</span> }</div>
-<div class="line"><a id="l00872" name="l00872"></a><span class="lineno"> 872</span> }</div>
-<div class="line"><a id="l00873" name="l00873"></a><span class="lineno"> 873</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a id="l00874" name="l00874"></a><span class="lineno"> 874</span>}</div>
-<div class="line"><a id="l00875" name="l00875"></a><span class="lineno"> 875</span> </div>
-<div class="line"><a id="l00876" name="l00876"></a><span class="lineno"> 876</span><span class="keyword">template</span><<span class="keyword">typename</span> Allocator></div>
-<div class="line"><a id="l00877" name="l00877"></a><span class="lineno"> 877</span><span class="keyword">auto</span> wrapped_compact_theta_sketch_alloc<Allocator>::const_iterator::operator++(<span class="keywordtype">int</span>) -> const_iterator {</div>
-<div class="line"><a id="l00878" name="l00878"></a><span class="lineno"> 878</span> const_iterator tmp(*<span class="keyword">this</span>);</div>
-<div class="line"><a id="l00879" name="l00879"></a><span class="lineno"> 879</span> operator++();</div>
-<div class="line"><a id="l00880" name="l00880"></a><span class="lineno"> 880</span> <span class="keywordflow">return</span> tmp;</div>
-<div class="line"><a id="l00881" name="l00881"></a><span class="lineno"> 881</span>}</div>
-<div class="line"><a id="l00882" name="l00882"></a><span class="lineno"> 882</span> </div>
-<div class="line"><a id="l00883" name="l00883"></a><span class="lineno"> 883</span><span class="keyword">template</span><<span class="keyword">typename</span> Allocator></div>
-<div class="line"><a id="l00884" name="l00884"></a><span class="lineno"> 884</span><span class="keywordtype">bool</span> wrapped_compact_theta_sketch_alloc<Allocator>::const_iterator::operator!=(<span class="keyword">const</span> const_iterator& other)<span class="keyword"> const </span>{</div>
-<div class="line"><a id="l00885" name="l00885"></a><span class="lineno"> 885</span> <span class="keywordflow">if</span> (entry_bits_ == 64) <span class="keywordflow">return</span> ptr_ != other.ptr_;</div>
-<div class="line"><a id="l00886" name="l00886"></a><span class="lineno"> 886</span> <span class="keywordflow">return</span> index_ != other.index_;</div>
-<div class="line"><a id="l00887" name="l00887"></a><span class="lineno"> 887</span>}</div>
-<div class="line"><a id="l00888" name="l00888"></a><span class="lineno"> 888</span> </div>
-<div class="line"><a id="l00889" name="l00889"></a><span class="lineno"> 889</span><span class="keyword">template</span><<span class="keyword">typename</span> Allocator></div>
-<div class="line"><a id="l00890" name="l00890"></a><span class="lineno"> 890</span><span class="keywordtype">bool</span> wrapped_compact_theta_sketch_alloc<Allocator>::const_iterator::operator==(<span class="keyword">const</span> const_iterator& other)<span class="keyword"> const </span>{</div>
-<div class="line"><a id="l00891" name="l00891"></a><span class="lineno"> 891</span> <span class="keywordflow">if</span> (entry_bits_ == 64) <span class="keywordflow">return</span> ptr_ == other.ptr_;</div>
-<div class="line"><a id="l00892" name="l00892"></a><span class="lineno"> 892</span> <span class="keywordflow">return</span> index_ == other.index_;</div>
-<div class="line"><a id="l00893" name="l00893"></a><span class="lineno"> 893</span>}</div>
-<div class="line"><a id="l00894" name="l00894"></a><span class="lineno"> 894</span> </div>
-<div class="line"><a id="l00895" name="l00895"></a><span class="lineno"> 895</span><span class="keyword">template</span><<span class="keyword">typename</span> Allocator></div>
-<div class="line"><a id="l00896" name="l00896"></a><span class="lineno"> 896</span><span class="keyword">auto</span> wrapped_compact_theta_sketch_alloc<Allocator>::const_iterator::operator*() const -> reference {</div>
-<div class="line"><a id="l00897" name="l00897"></a><span class="lineno"> 897</span> <span class="keywordflow">if</span> (entry_bits_ == 64) <span class="keywordflow">return</span> *<span class="keyword">reinterpret_cast<</span><span class="keyword">const </span>uint64_t*<span class="keyword">></span>(ptr_);</div>
-<div class="line"><a id="l00898" name="l00898"></a><span class="lineno"> 898</span> <span class="keywordflow">return</span> buffer_[buf_i_];</div>
-<div class="line"><a id="l00899" name="l00899"></a><span class="lineno"> 899</span>}</div>
-<div class="line"><a id="l00900" name="l00900"></a><span class="lineno"> 900</span> </div>
-<div class="line"><a id="l00901" name="l00901"></a><span class="lineno"> 901</span><span class="keyword">template</span><<span class="keyword">typename</span> Allocator></div>
-<div class="line"><a id="l00902" name="l00902"></a><span class="lineno"> 902</span><span class="keyword">auto</span> wrapped_compact_theta_sketch_alloc<Allocator>::const_iterator::operator->() const -> pointer {</div>
-<div class="line"><a id="l00903" name="l00903"></a><span class="lineno"> 903</span> <span class="keywordflow">if</span> (entry_bits_ == 64) <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast<</span><span class="keyword">const </span>uint64_t*<span class="keyword">></span>(ptr_);</div>
-<div class="line"><a id="l00904" name="l00904"></a><span class="lineno"> 904</span> <span class="keywordflow">return</span> buffer_ + buf_i_;</div>
-<div class="line"><a id="l00905" name="l00905"></a><span class="lineno"> 905</span>}</div>
+<div class="line"><a id="l00839" name="l00839"></a><span class="lineno"> 839</span> <span class="keywordflow">if</span> (++index_ < num_entries_) {</div>
+<div class="line"><a id="l00840" name="l00840"></a><span class="lineno"> 840</span> <span class="keywordflow">if</span> (is_block_mode_) {</div>
+<div class="line"><a id="l00841" name="l00841"></a><span class="lineno"> 841</span> <span class="keywordflow">if</span> ((index_ & 7) == 0) {</div>
+<div class="line"><a id="l00842" name="l00842"></a><span class="lineno"> 842</span> <span class="keywordflow">if</span> (num_entries_ - index_ >= 8) {</div>
+<div class="line"><a id="l00843" name="l00843"></a><span class="lineno"> 843</span> unpack8();</div>
+<div class="line"><a id="l00844" name="l00844"></a><span class="lineno"> 844</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a id="l00845" name="l00845"></a><span class="lineno"> 845</span> is_block_mode_ = <span class="keyword">false</span>;</div>
+<div class="line"><a id="l00846" name="l00846"></a><span class="lineno"> 846</span> unpack1();</div>
+<div class="line"><a id="l00847" name="l00847"></a><span class="lineno"> 847</span> }</div>
+<div class="line"><a id="l00848" name="l00848"></a><span class="lineno"> 848</span> }</div>
+<div class="line"><a id="l00849" name="l00849"></a><span class="lineno"> 849</span> } <span class="keywordflow">else</span> {</div>
+<div class="line"><a id="l00850" name="l00850"></a><span class="lineno"> 850</span> unpack1();</div>
+<div class="line"><a id="l00851" name="l00851"></a><span class="lineno"> 851</span> }</div>
+<div class="line"><a id="l00852" name="l00852"></a><span class="lineno"> 852</span> }</div>
+<div class="line"><a id="l00853" name="l00853"></a><span class="lineno"> 853</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a id="l00854" name="l00854"></a><span class="lineno"> 854</span>}</div>
+<div class="line"><a id="l00855" name="l00855"></a><span class="lineno"> 855</span> </div>
+<div class="line"><a id="l00856" name="l00856"></a><span class="lineno"> 856</span><span class="keyword">template</span><<span class="keyword">typename</span> Allocator></div>
+<div class="line"><a id="l00857" name="l00857"></a><span class="lineno"> 857</span><span class="keywordtype">void</span> wrapped_compact_theta_sketch_alloc<Allocator>::const_iterator::unpack1() {</div>
+<div class="line"><a id="l00858" name="l00858"></a><span class="lineno"> 858</span> <span class="keyword">const</span> uint32_t i = index_ & 7;</div>
+<div class="line"><a id="l00859" name="l00859"></a><span class="lineno"> 859</span> offset_ = unpack_bits(buffer_[i], entry_bits_, <span class="keyword">reinterpret_cast<</span><span class="keyword">const </span>uint8_t*&<span class="keyword">></span>(ptr_), offset_);</div>
+<div class="line"><a id="l00860" name="l00860"></a><span class="lineno"> 860</span> buffer_[i] += previous_;</div>
+<div class="line"><a id="l00861" name="l00861"></a><span class="lineno"> 861</span> previous_ = buffer_[i];</div>
+<div class="line"><a id="l00862" name="l00862"></a><span class="lineno"> 862</span>}</div>
+<div class="line"><a id="l00863" name="l00863"></a><span class="lineno"> 863</span> </div>
+<div class="line"><a id="l00864" name="l00864"></a><span class="lineno"> 864</span><span class="keyword">template</span><<span class="keyword">typename</span> Allocator></div>
+<div class="line"><a id="l00865" name="l00865"></a><span class="lineno"> 865</span><span class="keywordtype">void</span> wrapped_compact_theta_sketch_alloc<Allocator>::const_iterator::unpack8() {</div>
+<div class="line"><a id="l00866" name="l00866"></a><span class="lineno"> 866</span> unpack_bits_block8(buffer_, <span class="keyword">reinterpret_cast<</span><span class="keyword">const </span>uint8_t*<span class="keyword">></span>(ptr_), entry_bits_);</div>
+<div class="line"><a id="l00867" name="l00867"></a><span class="lineno"> 867</span> ptr_ = <span class="keyword">reinterpret_cast<</span><span class="keyword">const </span>uint8_t*<span class="keyword">></span>(ptr_) + entry_bits_;</div>
+<div class="line"><a id="l00868" name="l00868"></a><span class="lineno"> 868</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < 8; ++i) {</div>
+<div class="line"><a id="l00869" name="l00869"></a><span class="lineno"> 869</span> buffer_[i] += previous_;</div>
+<div class="line"><a id="l00870" name="l00870"></a><span class="lineno"> 870</span> previous_ = buffer_[i];</div>
+<div class="line"><a id="l00871" name="l00871"></a><span class="lineno"> 871</span> }</div>
+<div class="line"><a id="l00872" name="l00872"></a><span class="lineno"> 872</span>}</div>
+<div class="line"><a id="l00873" name="l00873"></a><span class="lineno"> 873</span> </div>
+<div class="line"><a id="l00874" name="l00874"></a><span class="lineno"> 874</span><span class="keyword">template</span><<span class="keyword">typename</span> Allocator></div>
+<div class="line"><a id="l00875" name="l00875"></a><span class="lineno"> 875</span><span class="keyword">auto</span> wrapped_compact_theta_sketch_alloc<Allocator>::const_iterator::operator++(<span class="keywordtype">int</span>) -> const_iterator {</div>
+<div class="line"><a id="l00876" name="l00876"></a><span class="lineno"> 876</span> const_iterator tmp(*<span class="keyword">this</span>);</div>
+<div class="line"><a id="l00877" name="l00877"></a><span class="lineno"> 877</span> operator++();</div>
+<div class="line"><a id="l00878" name="l00878"></a><span class="lineno"> 878</span> <span class="keywordflow">return</span> tmp;</div>
+<div class="line"><a id="l00879" name="l00879"></a><span class="lineno"> 879</span>}</div>
+<div class="line"><a id="l00880" name="l00880"></a><span class="lineno"> 880</span> </div>
+<div class="line"><a id="l00881" name="l00881"></a><span class="lineno"> 881</span><span class="keyword">template</span><<span class="keyword">typename</span> Allocator></div>
+<div class="line"><a id="l00882" name="l00882"></a><span class="lineno"> 882</span><span class="keywordtype">bool</span> wrapped_compact_theta_sketch_alloc<Allocator>::const_iterator::operator!=(<span class="keyword">const</span> const_iterator& other)<span class="keyword"> const </span>{</div>
+<div class="line"><a id="l00883" name="l00883"></a><span class="lineno"> 883</span> <span class="keywordflow">if</span> (entry_bits_ == 64) <span class="keywordflow">return</span> ptr_ != other.ptr_;</div>
+<div class="line"><a id="l00884" name="l00884"></a><span class="lineno"> 884</span> <span class="keywordflow">return</span> index_ != other.index_;</div>
+<div class="line"><a id="l00885" name="l00885"></a><span class="lineno"> 885</span>}</div>
+<div class="line"><a id="l00886" name="l00886"></a><span class="lineno"> 886</span> </div>
+<div class="line"><a id="l00887" name="l00887"></a><span class="lineno"> 887</span><span class="keyword">template</span><<span class="keyword">typename</span> Allocator></div>
+<div class="line"><a id="l00888" name="l00888"></a><span class="lineno"> 888</span><span class="keywordtype">bool</span> wrapped_compact_theta_sketch_alloc<Allocator>::const_iterator::operator==(<span class="keyword">const</span> const_iterator& other)<span class="keyword"> const </span>{</div>
+<div class="line"><a id="l00889" name="l00889"></a><span class="lineno"> 889</span> <span class="keywordflow">if</span> (entry_bits_ == 64) <span class="keywordflow">return</span> ptr_ == other.ptr_;</div>
+<div class="line"><a id="l00890" name="l00890"></a><span class="lineno"> 890</span> <span class="keywordflow">return</span> index_ == other.index_;</div>
+<div class="line"><a id="l00891" name="l00891"></a><span class="lineno"> 891</span>}</div>
+<div class="line"><a id="l00892" name="l00892"></a><span class="lineno"> 892</span> </div>
+<div class="line"><a id="l00893" name="l00893"></a><span class="lineno"> 893</span><span class="keyword">template</span><<span class="keyword">typename</span> Allocator></div>
+<div class="line"><a id="l00894" name="l00894"></a><span class="lineno"> 894</span><span class="keyword">auto</span> wrapped_compact_theta_sketch_alloc<Allocator>::const_iterator::operator*() const -> reference {</div>
+<div class="line"><a id="l00895" name="l00895"></a><span class="lineno"> 895</span> <span class="keywordflow">if</span> (entry_bits_ == 64) <span class="keywordflow">return</span> *<span class="keyword">reinterpret_cast<</span><span class="keyword">const </span>uint64_t*<span class="keyword">></span>(ptr_);</div>
+<div class="line"><a id="l00896" name="l00896"></a><span class="lineno"> 896</span> <span class="keywordflow">return</span> buffer_[index_ & 7];</div>
+<div class="line"><a id="l00897" name="l00897"></a><span class="lineno"> 897</span>}</div>
+<div class="line"><a id="l00898" name="l00898"></a><span class="lineno"> 898</span> </div>
+<div class="line"><a id="l00899" name="l00899"></a><span class="lineno"> 899</span><span class="keyword">template</span><<span class="keyword">typename</span> Allocator></div>
+<div class="line"><a id="l00900" name="l00900"></a><span class="lineno"> 900</span><span class="keyword">auto</span> wrapped_compact_theta_sketch_alloc<Allocator>::const_iterator::operator->() const -> pointer {</div>
+<div class="line"><a id="l00901" name="l00901"></a><span class="lineno"> 901</span> <span class="keywordflow">if</span> (entry_bits_ == 64) <span class="keywordflow">return</span> <span class="keyword">reinterpret_cast<</span><span class="keyword">const </span>uint64_t*<span class="keyword">></span>(ptr_);</div>
+<div class="line"><a id="l00902" name="l00902"></a><span class="lineno"> 902</span> <span class="keywordflow">return</span> buffer_ + (index_ & 7);</div>
+<div class="line"><a id="l00903" name="l00903"></a><span class="lineno"> 903</span>}</div>
+<div class="line"><a id="l00904" name="l00904"></a><span class="lineno"> 904</span> </div>
+<div class="line"><a id="l00905" name="l00905"></a><span class="lineno"> 905</span>} <span class="comment">/* namespace datasketches */</span></div>
<div class="line"><a id="l00906" name="l00906"></a><span class="lineno"> 906</span> </div>
-<div class="line"><a id="l00907" name="l00907"></a><span class="lineno"> 907</span>} <span class="comment">/* namespace datasketches */</span></div>
-<div class="line"><a id="l00908" name="l00908"></a><span class="lineno"> 908</span> </div>
-<div class="line"><a id="l00909" name="l00909"></a><span class="lineno"> 909</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00907" name="l00907"></a><span class="lineno"> 907</span><span class="preprocessor">#endif</span></div>
</div>
</div>
</div>
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datasketches.apache.org
For additional commands, e-mail: commits-help@datasketches.apache.org