You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datasketches.apache.org by al...@apache.org on 2019/06/10 22:10:51 UTC

[incubator-datasketches-cpp] 01/01: remove duplication

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

alsay pushed a commit to branch theta
in repository https://gitbox.apache.org/repos/asf/incubator-datasketches-cpp.git

commit 693aec691fb7f9a1740c1e08a93182cbb65e23c3
Author: AlexanderSaydakov <Al...@users.noreply.github.com>
AuthorDate: Mon Jun 10 15:10:42 2019 -0700

    remove duplication
---
 theta/include/theta_a_not_b_impl.hpp      | 10 ----------
 theta/include/theta_intersection_impl.hpp | 10 ----------
 theta/include/theta_sketch.hpp            | 12 ++++++++++++
 3 files changed, 12 insertions(+), 20 deletions(-)

diff --git a/theta/include/theta_a_not_b_impl.hpp b/theta/include/theta_a_not_b_impl.hpp
index a794b63..1882b01 100644
--- a/theta/include/theta_a_not_b_impl.hpp
+++ b/theta/include/theta_a_not_b_impl.hpp
@@ -21,16 +21,6 @@ theta_a_not_b_alloc<A>::theta_a_not_b_alloc(uint64_t seed):
 seed_hash_(theta_sketch_alloc<A>::get_seed_hash(seed))
 {}
 
-constexpr uint8_t log2(uint32_t n) {
-  return (n > 1) ? 1 + log2(n >> 1) : 0;
-}
-
-constexpr uint8_t lg_size_from_count(uint32_t n, double load_factor) {
-  uint8_t lg = log2(n) + 1;
-  if (n > (1 << lg) * load_factor) lg++;
-  return lg;
-}
-
 template<typename A>
 compact_theta_sketch_alloc<A> theta_a_not_b_alloc<A>::compute(const theta_sketch_alloc<A>& a, const theta_sketch_alloc<A>& b, bool ordered) const {
   if (a.is_empty()) return compact_theta_sketch_alloc<A>(a, ordered);
diff --git a/theta/include/theta_intersection_impl.hpp b/theta/include/theta_intersection_impl.hpp
index 9174e65..7f26d0c 100644
--- a/theta/include/theta_intersection_impl.hpp
+++ b/theta/include/theta_intersection_impl.hpp
@@ -89,16 +89,6 @@ theta_intersection_alloc<A>& theta_intersection_alloc<A>::operator=(theta_inters
   return *this;
 }
 
-constexpr uint8_t log2(uint32_t n) {
-  return (n > 1) ? 1 + log2(n >> 1) : 0;
-}
-
-constexpr uint8_t lg_size_from_count(uint32_t n, double load_factor) {
-  uint8_t lg = log2(n) + 1;
-  if (n > (1 << lg) * load_factor) lg++;
-  return lg;
-}
-
 template<typename A>
 void theta_intersection_alloc<A>::update(const theta_sketch_alloc<A>& sketch) {
   if (is_empty_) return;
diff --git a/theta/include/theta_sketch.hpp b/theta/include/theta_sketch.hpp
index 3eab496..acb4374 100644
--- a/theta/include/theta_sketch.hpp
+++ b/theta/include/theta_sketch.hpp
@@ -274,6 +274,18 @@ typedef theta_sketch_alloc<std::allocator<void>> theta_sketch;
 typedef update_theta_sketch_alloc<std::allocator<void>> update_theta_sketch;
 typedef compact_theta_sketch_alloc<std::allocator<void>> compact_theta_sketch;
 
+// common helping functions
+
+constexpr uint8_t log2(uint32_t n) {
+  return (n > 1) ? 1 + log2(n >> 1) : 0;
+}
+
+constexpr uint8_t lg_size_from_count(uint32_t n, double load_factor) {
+  uint8_t lg = log2(n) + 1;
+  if (n > (1 << lg) * load_factor) lg++;
+  return lg;
+}
+
 } /* namespace datasketches */
 
 #include "theta_sketch_impl.hpp"


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