datasketches 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5 -0
  3. data/ext/datasketches/cpc_wrapper.cpp +12 -13
  4. data/ext/datasketches/ext.cpp +1 -1
  5. data/ext/datasketches/ext.h +4 -0
  6. data/ext/datasketches/extconf.rb +1 -1
  7. data/ext/datasketches/fi_wrapper.cpp +6 -8
  8. data/ext/datasketches/hll_wrapper.cpp +13 -14
  9. data/ext/datasketches/kll_wrapper.cpp +28 -76
  10. data/ext/datasketches/theta_wrapper.cpp +27 -41
  11. data/ext/datasketches/vo_wrapper.cpp +4 -6
  12. data/lib/datasketches/version.rb +1 -1
  13. data/vendor/datasketches-cpp/CMakeLists.txt +1 -0
  14. data/vendor/datasketches-cpp/README.md +4 -4
  15. data/vendor/datasketches-cpp/common/include/MurmurHash3.h +7 -0
  16. data/vendor/datasketches-cpp/common/include/memory_operations.hpp +12 -0
  17. data/vendor/datasketches-cpp/common/test/CMakeLists.txt +24 -0
  18. data/vendor/datasketches-cpp/common/test/integration_test.cpp +77 -0
  19. data/vendor/datasketches-cpp/common/test/test_allocator.hpp +9 -1
  20. data/vendor/datasketches-cpp/cpc/include/cpc_common.hpp +3 -0
  21. data/vendor/datasketches-cpp/cpc/include/cpc_compressor.hpp +2 -2
  22. data/vendor/datasketches-cpp/cpc/include/cpc_compressor_impl.hpp +28 -19
  23. data/vendor/datasketches-cpp/cpc/include/cpc_sketch.hpp +8 -5
  24. data/vendor/datasketches-cpp/cpc/include/cpc_sketch_impl.hpp +19 -14
  25. data/vendor/datasketches-cpp/cpc/include/cpc_union.hpp +2 -2
  26. data/vendor/datasketches-cpp/cpc/include/cpc_union_impl.hpp +6 -6
  27. data/vendor/datasketches-cpp/cpc/include/cpc_util.hpp +0 -6
  28. data/vendor/datasketches-cpp/cpc/include/icon_estimator.hpp +3 -3
  29. data/vendor/datasketches-cpp/cpc/include/u32_table.hpp +3 -3
  30. data/vendor/datasketches-cpp/cpc/include/u32_table_impl.hpp +9 -9
  31. data/vendor/datasketches-cpp/cpc/test/CMakeLists.txt +1 -0
  32. data/vendor/datasketches-cpp/cpc/test/cpc_sketch_allocation_test.cpp +237 -0
  33. data/vendor/datasketches-cpp/fi/include/frequent_items_sketch.hpp +15 -10
  34. data/vendor/datasketches-cpp/fi/include/frequent_items_sketch_impl.hpp +40 -28
  35. data/vendor/datasketches-cpp/fi/include/reverse_purge_hash_map.hpp +19 -13
  36. data/vendor/datasketches-cpp/fi/include/reverse_purge_hash_map_impl.hpp +140 -124
  37. data/vendor/datasketches-cpp/fi/test/frequent_items_sketch_custom_type_test.cpp +15 -12
  38. data/vendor/datasketches-cpp/fi/test/reverse_purge_hash_map_test.cpp +3 -3
  39. data/vendor/datasketches-cpp/hll/CMakeLists.txt +3 -0
  40. data/vendor/datasketches-cpp/hll/include/AuxHashMap-internal.hpp +32 -57
  41. data/vendor/datasketches-cpp/hll/include/AuxHashMap.hpp +9 -8
  42. data/vendor/datasketches-cpp/hll/include/CompositeInterpolationXTable.hpp +2 -2
  43. data/vendor/datasketches-cpp/hll/include/CouponHashSet-internal.hpp +34 -48
  44. data/vendor/datasketches-cpp/hll/include/CouponHashSet.hpp +10 -10
  45. data/vendor/datasketches-cpp/hll/include/CouponList-internal.hpp +45 -77
  46. data/vendor/datasketches-cpp/hll/include/CouponList.hpp +11 -12
  47. data/vendor/datasketches-cpp/hll/include/CubicInterpolation.hpp +2 -2
  48. data/vendor/datasketches-cpp/hll/include/HarmonicNumbers.hpp +2 -2
  49. data/vendor/datasketches-cpp/hll/include/Hll4Array-internal.hpp +15 -14
  50. data/vendor/datasketches-cpp/hll/include/Hll4Array.hpp +1 -1
  51. data/vendor/datasketches-cpp/hll/include/Hll6Array-internal.hpp +10 -21
  52. data/vendor/datasketches-cpp/hll/include/Hll6Array.hpp +2 -3
  53. data/vendor/datasketches-cpp/hll/include/Hll8Array-internal.hpp +10 -21
  54. data/vendor/datasketches-cpp/hll/include/Hll8Array.hpp +2 -3
  55. data/vendor/datasketches-cpp/hll/include/HllArray-internal.hpp +28 -55
  56. data/vendor/datasketches-cpp/hll/include/HllArray.hpp +8 -8
  57. data/vendor/datasketches-cpp/hll/include/HllSketch-internal.hpp +9 -11
  58. data/vendor/datasketches-cpp/hll/include/HllSketchImpl.hpp +2 -1
  59. data/vendor/datasketches-cpp/hll/include/HllSketchImplFactory.hpp +34 -31
  60. data/vendor/datasketches-cpp/hll/include/HllUnion-internal.hpp +3 -28
  61. data/vendor/datasketches-cpp/hll/include/HllUtil.hpp +1 -1
  62. data/vendor/datasketches-cpp/hll/include/RelativeErrorTables.hpp +1 -1
  63. data/vendor/datasketches-cpp/hll/include/hll.hpp +6 -34
  64. data/vendor/datasketches-cpp/hll/test/AuxHashMapTest.cpp +7 -7
  65. data/vendor/datasketches-cpp/hll/test/CouponHashSetTest.cpp +2 -2
  66. data/vendor/datasketches-cpp/hll/test/CouponListTest.cpp +3 -3
  67. data/vendor/datasketches-cpp/hll/test/HllArrayTest.cpp +2 -2
  68. data/vendor/datasketches-cpp/hll/test/HllSketchTest.cpp +46 -50
  69. data/vendor/datasketches-cpp/kll/include/kll_quantile_calculator.hpp +1 -1
  70. data/vendor/datasketches-cpp/kll/include/kll_quantile_calculator_impl.hpp +3 -3
  71. data/vendor/datasketches-cpp/kll/include/kll_sketch.hpp +10 -3
  72. data/vendor/datasketches-cpp/kll/include/kll_sketch_impl.hpp +93 -75
  73. data/vendor/datasketches-cpp/kll/test/kll_sketch_custom_type_test.cpp +11 -10
  74. data/vendor/datasketches-cpp/kll/test/kll_sketch_test.cpp +45 -42
  75. data/vendor/datasketches-cpp/python/CMakeLists.txt +2 -0
  76. data/vendor/datasketches-cpp/python/README.md +6 -3
  77. data/vendor/datasketches-cpp/python/src/datasketches.cpp +2 -0
  78. data/vendor/datasketches-cpp/python/src/hll_wrapper.cpp +0 -2
  79. data/vendor/datasketches-cpp/python/src/kll_wrapper.cpp +3 -1
  80. data/vendor/datasketches-cpp/python/src/req_wrapper.cpp +246 -0
  81. data/vendor/datasketches-cpp/python/src/theta_wrapper.cpp +36 -26
  82. data/vendor/datasketches-cpp/python/tests/hll_test.py +0 -1
  83. data/vendor/datasketches-cpp/python/tests/kll_test.py +3 -3
  84. data/vendor/datasketches-cpp/python/tests/req_test.py +126 -0
  85. data/vendor/datasketches-cpp/python/tests/theta_test.py +28 -3
  86. data/vendor/datasketches-cpp/req/CMakeLists.txt +60 -0
  87. data/vendor/datasketches-cpp/{tuple/include/theta_a_not_b_experimental_impl.hpp → req/include/req_common.hpp} +17 -8
  88. data/vendor/datasketches-cpp/req/include/req_compactor.hpp +137 -0
  89. data/vendor/datasketches-cpp/req/include/req_compactor_impl.hpp +501 -0
  90. data/vendor/datasketches-cpp/req/include/req_quantile_calculator.hpp +69 -0
  91. data/vendor/datasketches-cpp/req/include/req_quantile_calculator_impl.hpp +60 -0
  92. data/vendor/datasketches-cpp/req/include/req_sketch.hpp +395 -0
  93. data/vendor/datasketches-cpp/req/include/req_sketch_impl.hpp +810 -0
  94. data/vendor/datasketches-cpp/req/test/CMakeLists.txt +43 -0
  95. data/vendor/datasketches-cpp/req/test/req_float_empty_from_java.sk +0 -0
  96. data/vendor/datasketches-cpp/req/test/req_float_estimation_from_java.sk +0 -0
  97. data/vendor/datasketches-cpp/req/test/req_float_exact_from_java.sk +0 -0
  98. data/vendor/datasketches-cpp/req/test/req_float_raw_items_from_java.sk +0 -0
  99. data/vendor/datasketches-cpp/req/test/req_float_single_item_from_java.sk +0 -0
  100. data/vendor/datasketches-cpp/req/test/req_sketch_custom_type_test.cpp +128 -0
  101. data/vendor/datasketches-cpp/req/test/req_sketch_test.cpp +494 -0
  102. data/vendor/datasketches-cpp/sampling/include/var_opt_sketch.hpp +10 -9
  103. data/vendor/datasketches-cpp/sampling/include/var_opt_sketch_impl.hpp +82 -70
  104. data/vendor/datasketches-cpp/sampling/include/var_opt_union.hpp +5 -5
  105. data/vendor/datasketches-cpp/sampling/include/var_opt_union_impl.hpp +7 -7
  106. data/vendor/datasketches-cpp/sampling/test/CMakeLists.txt +1 -0
  107. data/vendor/datasketches-cpp/sampling/test/var_opt_allocation_test.cpp +96 -0
  108. data/vendor/datasketches-cpp/sampling/test/var_opt_union_test.cpp +0 -31
  109. data/vendor/datasketches-cpp/setup.py +5 -3
  110. data/vendor/datasketches-cpp/theta/CMakeLists.txt +30 -3
  111. data/vendor/datasketches-cpp/{tuple → theta}/include/bounds_on_ratios_in_sampled_sets.hpp +2 -1
  112. data/vendor/datasketches-cpp/{tuple → theta}/include/bounds_on_ratios_in_theta_sketched_sets.hpp +1 -1
  113. data/vendor/datasketches-cpp/theta/include/theta_a_not_b.hpp +12 -29
  114. data/vendor/datasketches-cpp/theta/include/theta_a_not_b_impl.hpp +5 -46
  115. data/vendor/datasketches-cpp/{tuple → theta}/include/theta_comparators.hpp +0 -0
  116. data/vendor/datasketches-cpp/{tuple → theta}/include/theta_constants.hpp +2 -0
  117. data/vendor/datasketches-cpp/{tuple → theta}/include/theta_helpers.hpp +0 -0
  118. data/vendor/datasketches-cpp/theta/include/theta_intersection.hpp +22 -29
  119. data/vendor/datasketches-cpp/{tuple → theta}/include/theta_intersection_base.hpp +0 -0
  120. data/vendor/datasketches-cpp/{tuple → theta}/include/theta_intersection_base_impl.hpp +0 -0
  121. data/vendor/datasketches-cpp/theta/include/theta_intersection_impl.hpp +8 -90
  122. data/vendor/datasketches-cpp/{tuple/test/theta_union_experimental_test.cpp → theta/include/theta_jaccard_similarity.hpp} +11 -18
  123. data/vendor/datasketches-cpp/{tuple/include/jaccard_similarity.hpp → theta/include/theta_jaccard_similarity_base.hpp} +6 -22
  124. data/vendor/datasketches-cpp/{tuple → theta}/include/theta_set_difference_base.hpp +0 -0
  125. data/vendor/datasketches-cpp/{tuple → theta}/include/theta_set_difference_base_impl.hpp +5 -0
  126. data/vendor/datasketches-cpp/theta/include/theta_sketch.hpp +132 -266
  127. data/vendor/datasketches-cpp/theta/include/theta_sketch_impl.hpp +200 -650
  128. data/vendor/datasketches-cpp/theta/include/theta_union.hpp +27 -60
  129. data/vendor/datasketches-cpp/{tuple → theta}/include/theta_union_base.hpp +1 -1
  130. data/vendor/datasketches-cpp/{tuple → theta}/include/theta_union_base_impl.hpp +5 -0
  131. data/vendor/datasketches-cpp/theta/include/theta_union_impl.hpp +13 -69
  132. data/vendor/datasketches-cpp/{tuple → theta}/include/theta_update_sketch_base.hpp +3 -19
  133. data/vendor/datasketches-cpp/{tuple → theta}/include/theta_update_sketch_base_impl.hpp +6 -1
  134. data/vendor/datasketches-cpp/theta/test/CMakeLists.txt +1 -0
  135. data/vendor/datasketches-cpp/{tuple → theta}/test/theta_jaccard_similarity_test.cpp +2 -3
  136. data/vendor/datasketches-cpp/theta/test/theta_sketch_test.cpp +37 -234
  137. data/vendor/datasketches-cpp/tuple/CMakeLists.txt +3 -35
  138. data/vendor/datasketches-cpp/tuple/include/tuple_jaccard_similarity.hpp +38 -0
  139. data/vendor/datasketches-cpp/tuple/include/tuple_sketch.hpp +28 -13
  140. data/vendor/datasketches-cpp/tuple/include/tuple_sketch_impl.hpp +6 -6
  141. data/vendor/datasketches-cpp/tuple/test/CMakeLists.txt +1 -6
  142. data/vendor/datasketches-cpp/tuple/test/tuple_a_not_b_test.cpp +1 -4
  143. data/vendor/datasketches-cpp/tuple/test/tuple_intersection_test.cpp +1 -4
  144. data/vendor/datasketches-cpp/tuple/test/tuple_jaccard_similarity_test.cpp +2 -1
  145. data/vendor/datasketches-cpp/tuple/test/tuple_sketch_allocation_test.cpp +2 -2
  146. data/vendor/datasketches-cpp/tuple/test/tuple_union_test.cpp +1 -4
  147. metadata +43 -34
  148. data/vendor/datasketches-cpp/tuple/include/theta_a_not_b_experimental.hpp +0 -53
  149. data/vendor/datasketches-cpp/tuple/include/theta_intersection_experimental.hpp +0 -78
  150. data/vendor/datasketches-cpp/tuple/include/theta_intersection_experimental_impl.hpp +0 -43
  151. data/vendor/datasketches-cpp/tuple/include/theta_sketch_experimental.hpp +0 -393
  152. data/vendor/datasketches-cpp/tuple/include/theta_sketch_experimental_impl.hpp +0 -481
  153. data/vendor/datasketches-cpp/tuple/include/theta_union_experimental.hpp +0 -88
  154. data/vendor/datasketches-cpp/tuple/include/theta_union_experimental_impl.hpp +0 -47
  155. data/vendor/datasketches-cpp/tuple/test/theta_a_not_b_experimental_test.cpp +0 -250
  156. data/vendor/datasketches-cpp/tuple/test/theta_compact_empty_from_java.sk +0 -0
  157. data/vendor/datasketches-cpp/tuple/test/theta_compact_estimation_from_java.sk +0 -0
  158. data/vendor/datasketches-cpp/tuple/test/theta_compact_single_item_from_java.sk +0 -0
  159. data/vendor/datasketches-cpp/tuple/test/theta_intersection_experimental_test.cpp +0 -224
  160. data/vendor/datasketches-cpp/tuple/test/theta_sketch_experimental_test.cpp +0 -247
@@ -29,7 +29,7 @@ target_include_directories(tuple
29
29
  $<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>
30
30
  )
31
31
 
32
- target_link_libraries(tuple INTERFACE common)
32
+ target_link_libraries(tuple INTERFACE common theta)
33
33
  target_compile_features(tuple INTERFACE cxx_std_11)
34
34
 
35
35
  set(tuple_HEADERS "")
@@ -37,23 +37,11 @@ list(APPEND tuple_HEADERS "include/tuple_sketch.hpp;include/tuple_sketch_impl.hp
37
37
  list(APPEND tuple_HEADERS "include/tuple_union.hpp;include/tuple_union_impl.hpp")
38
38
  list(APPEND tuple_HEADERS "include/tuple_intersection.hpp;include/tuple_intersection_impl.hpp")
39
39
  list(APPEND tuple_HEADERS "include/tuple_a_not_b.hpp;include/tuple_a_not_b_impl.hpp")
40
+ list(APPEND tuple_HEADERS "include/tuple_jaccard_similarity.hpp")
40
41
  list(APPEND tuple_HEADERS "include/array_of_doubles_sketch.hpp;include/array_of_doubles_sketch_impl.hpp")
41
42
  list(APPEND tuple_HEADERS "include/array_of_doubles_union.hpp;include/array_of_doubles_union_impl.hpp")
42
43
  list(APPEND tuple_HEADERS "include/array_of_doubles_intersection.hpp;include/array_of_doubles_intersection_impl.hpp")
43
44
  list(APPEND tuple_HEADERS "include/array_of_doubles_a_not_b.hpp;include/array_of_doubles_a_not_b_impl.hpp")
44
- list(APPEND tuple_HEADERS "include/theta_update_sketch_base.hpp;include/theta_update_sketch_base_impl.hpp")
45
- list(APPEND tuple_HEADERS "include/theta_union_base.hpp;include/theta_union_base_impl.hpp")
46
- list(APPEND tuple_HEADERS "include/theta_intersection_base.hpp;include/theta_intersection_base_impl.hpp")
47
- list(APPEND tuple_HEADERS "include/theta_set_difference_base.hpp;include/theta_set_difference_base_impl.hpp")
48
- list(APPEND tuple_HEADERS "include/theta_sketch_experimental.hpp;include/theta_sketch_experimental_impl.hpp")
49
- list(APPEND tuple_HEADERS "include/theta_union_experimental.hpp;include/theta_union_experimental_impl.hpp")
50
- list(APPEND tuple_HEADERS "include/theta_intersection_experimental.hpp;include/theta_intersection_experimental_impl.hpp")
51
- list(APPEND tuple_HEADERS "include/theta_a_not_b_experimental.hpp;include/theta_a_not_b_experimental_impl.hpp")
52
- list(APPEND tuple_HEADERS "include/bounds_on_ratios_in_sampled_sets.hpp")
53
- list(APPEND tuple_HEADERS "include/bounds_on_ratios_in_theta_sketched_sets.hpp")
54
- list(APPEND tuple_HEADERS "include/jaccard_similarity.hpp")
55
- list(APPEND tuple_HEADERS "include/theta_comparators.hpp")
56
- list(APPEND tuple_HEADERS "include/theta_cnstants.hpp")
57
45
 
58
46
  install(TARGETS tuple
59
47
  EXPORT ${PROJECT_NAME}
@@ -72,6 +60,7 @@ target_sources(tuple
72
60
  ${CMAKE_CURRENT_SOURCE_DIR}/include/tuple_intersection_impl.hpp
73
61
  ${CMAKE_CURRENT_SOURCE_DIR}/include/tuple_a_not_b.hpp
74
62
  ${CMAKE_CURRENT_SOURCE_DIR}/include/tuple_a_not_b_impl.hpp
63
+ ${CMAKE_CURRENT_SOURCE_DIR}/include/tuple_jaccard_similarity.hpp
75
64
  ${CMAKE_CURRENT_SOURCE_DIR}/include/array_of_doubles_sketch.hpp
76
65
  ${CMAKE_CURRENT_SOURCE_DIR}/include/array_of_doubles_sketch_impl.hpp
77
66
  ${CMAKE_CURRENT_SOURCE_DIR}/include/array_of_doubles_union.hpp
@@ -80,25 +69,4 @@ target_sources(tuple
80
69
  ${CMAKE_CURRENT_SOURCE_DIR}/include/array_of_doubles_intersection_impl.hpp
81
70
  ${CMAKE_CURRENT_SOURCE_DIR}/include/array_of_doubles_a_not_b.hpp
82
71
  ${CMAKE_CURRENT_SOURCE_DIR}/include/array_of_doubles_a_not_b_impl.hpp
83
- ${CMAKE_CURRENT_SOURCE_DIR}/include/theta_update_sketch_base.hpp
84
- ${CMAKE_CURRENT_SOURCE_DIR}/include/theta_update_sketch_base_impl.hpp
85
- ${CMAKE_CURRENT_SOURCE_DIR}/include/theta_union_base.hpp
86
- ${CMAKE_CURRENT_SOURCE_DIR}/include/theta_union_base_impl.hpp
87
- ${CMAKE_CURRENT_SOURCE_DIR}/include/theta_intersection_base.hpp
88
- ${CMAKE_CURRENT_SOURCE_DIR}/include/theta_intersection_base_impl.hpp
89
- ${CMAKE_CURRENT_SOURCE_DIR}/include/theta_set_difference_base.hpp
90
- ${CMAKE_CURRENT_SOURCE_DIR}/include/theta_set_difference_base_impl.hpp
91
- ${CMAKE_CURRENT_SOURCE_DIR}/include/theta_sketch_experimental.hpp
92
- ${CMAKE_CURRENT_SOURCE_DIR}/include/theta_sketch_experimental_impl.hpp
93
- ${CMAKE_CURRENT_SOURCE_DIR}/include/theta_union_experimental.hpp
94
- ${CMAKE_CURRENT_SOURCE_DIR}/include/theta_union_experimental_impl.hpp
95
- ${CMAKE_CURRENT_SOURCE_DIR}/include/theta_intersection_experimental.hpp
96
- ${CMAKE_CURRENT_SOURCE_DIR}/include/theta_intersection_experimental_impl.hpp
97
- ${CMAKE_CURRENT_SOURCE_DIR}/include/theta_a_not_b_experimental.hpp
98
- ${CMAKE_CURRENT_SOURCE_DIR}/include/theta_a_not_b_experimental_impl.hpp
99
- ${CMAKE_CURRENT_SOURCE_DIR}/include/bounds_on_ratios_in_sampled_sets.hpp
100
- ${CMAKE_CURRENT_SOURCE_DIR}/include/bounds_on_ratios_in_theta_sketched_sets.hpp
101
- ${CMAKE_CURRENT_SOURCE_DIR}/include/jaccard_similarity.hpp
102
- ${CMAKE_CURRENT_SOURCE_DIR}/include/theta_comparators.hpp
103
- ${CMAKE_CURRENT_SOURCE_DIR}/include/theta_constants.hpp
104
72
  )
@@ -0,0 +1,38 @@
1
+ /*
2
+ * Licensed to the Apache Software Foundation (ASF) under one
3
+ * or more contributor license agreements. See the NOTICE file
4
+ * distributed with this work for additional information
5
+ * regarding copyright ownership. The ASF licenses this file
6
+ * to you under the Apache License, Version 2.0 (the
7
+ * "License"); you may not use this file except in compliance
8
+ * with the License. You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing,
13
+ * software distributed under the License is distributed on an
14
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
+ * KIND, either express or implied. See the License for the
16
+ * specific language governing permissions and limitations
17
+ * under the License.
18
+ */
19
+
20
+ #ifndef TUPLE_JACCARD_SIMILARITY_HPP_
21
+ #define TUPLE_JACCARD_SIMILARITY_HPP_
22
+
23
+ #include "theta_jaccard_similarity_base.hpp"
24
+ #include "tuple_union.hpp"
25
+ #include "tuple_intersection.hpp"
26
+
27
+ namespace datasketches {
28
+
29
+ template<
30
+ typename Summary,
31
+ typename IntersectionPolicy,
32
+ typename UnionPolicy = default_union_policy<Summary>,
33
+ typename Allocator = std::allocator<Summary>>
34
+ using tuple_jaccard_similarity = jaccard_similarity_base<tuple_union<Summary, UnionPolicy, Allocator>, tuple_intersection<Summary, IntersectionPolicy, Allocator>, pair_extract_key<uint64_t, Summary>>;
35
+
36
+ } /* namespace datasketches */
37
+
38
+ # endif
@@ -31,7 +31,17 @@ namespace datasketches {
31
31
  template<typename S, typename A> class tuple_sketch;
32
32
  template<typename S, typename U, typename P, typename A> class update_tuple_sketch;
33
33
  template<typename S, typename A> class compact_tuple_sketch;
34
- template<typename A> class theta_sketch_experimental;
34
+ template<typename A> class theta_sketch_alloc;
35
+
36
+ template<typename K, typename V>
37
+ struct pair_extract_key {
38
+ K& operator()(std::pair<K, V>& entry) const {
39
+ return entry.first;
40
+ }
41
+ const K& operator()(const std::pair<K, V>& entry) const {
42
+ return entry.first;
43
+ }
44
+ };
35
45
 
36
46
  template<
37
47
  typename Summary,
@@ -143,7 +153,8 @@ public:
143
153
  virtual const_iterator end() const = 0;
144
154
 
145
155
  protected:
146
- virtual void print_specifics(std::basic_ostream<char>& os) const = 0;
156
+ using ostrstream = std::basic_ostringstream<char, std::char_traits<char>, AllocChar<Allocator>>;
157
+ virtual void print_specifics(ostrstream& os) const = 0;
147
158
 
148
159
  static uint16_t get_seed_hash(uint64_t seed);
149
160
 
@@ -333,7 +344,8 @@ protected:
333
344
  // for builder
334
345
  update_tuple_sketch(uint8_t lg_cur_size, uint8_t lg_nom_size, resize_factor rf, uint64_t theta, uint64_t seed, const Policy& policy, const Allocator& allocator);
335
346
 
336
- virtual void print_specifics(std::basic_ostream<char>& os) const;
347
+ using ostrstream = typename Base::ostrstream;
348
+ virtual void print_specifics(ostrstream& os) const;
337
349
  };
338
350
 
339
351
  // compact sketch
@@ -372,7 +384,7 @@ public:
372
384
  compact_tuple_sketch& operator=(const compact_tuple_sketch&) = default;
373
385
  compact_tuple_sketch& operator=(compact_tuple_sketch&&) = default;
374
386
 
375
- compact_tuple_sketch(const theta_sketch_experimental<AllocU64>& other, const Summary& summary, bool ordered = true);
387
+ compact_tuple_sketch(const theta_sketch_alloc<AllocU64>& other, const Summary& summary, bool ordered = true);
376
388
 
377
389
  virtual Allocator get_allocator() const;
378
390
  virtual bool is_empty() const;
@@ -444,22 +456,25 @@ protected:
444
456
  // for deserialize
445
457
  class deleter_of_summaries {
446
458
  public:
447
- deleter_of_summaries(uint32_t num, bool destroy): num(num), destroy(destroy) {}
448
- void set_destroy(bool destroy) { this->destroy = destroy; }
449
- void operator() (Summary* ptr) const {
459
+ deleter_of_summaries(uint32_t num, bool destroy, const Allocator& allocator):
460
+ allocator_(allocator), num_(num), destroy_(destroy) {}
461
+ void set_destroy(bool destroy) { destroy_ = destroy; }
462
+ void operator() (Summary* ptr) {
450
463
  if (ptr != nullptr) {
451
- if (destroy) {
452
- for (uint32_t i = 0; i < num; ++i) ptr[i].~Summary();
464
+ if (destroy_) {
465
+ for (uint32_t i = 0; i < num_; ++i) ptr[i].~Summary();
453
466
  }
454
- Allocator().deallocate(ptr, num);
467
+ allocator_.deallocate(ptr, num_);
455
468
  }
456
469
  }
457
470
  private:
458
- uint32_t num;
459
- bool destroy;
471
+ Allocator allocator_;
472
+ uint32_t num_;
473
+ bool destroy_;
460
474
  };
461
475
 
462
- virtual void print_specifics(std::basic_ostream<char>& os) const;
476
+ using ostrstream = typename Base::ostrstream;
477
+ virtual void print_specifics(ostrstream& os) const;
463
478
 
464
479
  };
465
480
 
@@ -53,7 +53,7 @@ double tuple_sketch<S, A>::get_upper_bound(uint8_t num_std_devs) const {
53
53
 
54
54
  template<typename S, typename A>
55
55
  string<A> tuple_sketch<S, A>::to_string(bool detail) const {
56
- std::basic_ostringstream<char, std::char_traits<char>, AllocChar<A>> os;
56
+ ostrstream os;
57
57
  os << "### Tuple sketch summary:" << std::endl;
58
58
  os << " num retained entries : " << get_num_retained() << std::endl;
59
59
  os << " seed hash : " << get_seed_hash() << std::endl;
@@ -238,7 +238,7 @@ compact_tuple_sketch<S, A> update_tuple_sketch<S, U, P, A>::compact(bool ordered
238
238
  }
239
239
 
240
240
  template<typename S, typename U, typename P, typename A>
241
- void update_tuple_sketch<S, U, P, A>::print_specifics(std::basic_ostream<char>& os) const {
241
+ void update_tuple_sketch<S, U, P, A>::print_specifics(ostrstream& os) const {
242
242
  os << " lg nominal size : " << (int) map_.lg_nom_size_ << std::endl;
243
243
  os << " lg current size : " << (int) map_.lg_cur_size_ << std::endl;
244
244
  os << " resize factor : " << (1 << map_.rf_) << std::endl;
@@ -279,7 +279,7 @@ entries_(std::move(other.entries_))
279
279
  {}
280
280
 
281
281
  template<typename S, typename A>
282
- compact_tuple_sketch<S, A>::compact_tuple_sketch(const theta_sketch_experimental<AllocU64>& other, const S& summary, bool ordered):
282
+ compact_tuple_sketch<S, A>::compact_tuple_sketch(const theta_sketch_alloc<AllocU64>& other, const S& summary, bool ordered):
283
283
  is_empty_(other.is_empty()),
284
284
  is_ordered_(other.is_ordered() || ordered),
285
285
  seed_hash_(other.get_seed_hash()),
@@ -470,7 +470,7 @@ compact_tuple_sketch<S, A> compact_tuple_sketch<S, A>::deserialize(std::istream&
470
470
  std::vector<Entry, AllocEntry> entries(alloc);
471
471
  if (!is_empty) {
472
472
  entries.reserve(num_entries);
473
- std::unique_ptr<S, deleter_of_summaries> summary(alloc.allocate(1), deleter_of_summaries(1, false));
473
+ std::unique_ptr<S, deleter_of_summaries> summary(alloc.allocate(1), deleter_of_summaries(1, false, allocator));
474
474
  for (size_t i = 0; i < num_entries; ++i) {
475
475
  uint64_t key;
476
476
  is.read(reinterpret_cast<char*>(&key), sizeof(uint64_t));
@@ -533,7 +533,7 @@ compact_tuple_sketch<S, A> compact_tuple_sketch<S, A>::deserialize(const void* b
533
533
  std::vector<Entry, AllocEntry> entries(alloc);
534
534
  if (!is_empty) {
535
535
  entries.reserve(num_entries);
536
- std::unique_ptr<S, deleter_of_summaries> summary(alloc.allocate(1), deleter_of_summaries(1, false));
536
+ std::unique_ptr<S, deleter_of_summaries> summary(alloc.allocate(1), deleter_of_summaries(1, false, allocator));
537
537
  for (size_t i = 0; i < num_entries; ++i) {
538
538
  uint64_t key;
539
539
  ptr += copy_from_mem(ptr, &key, sizeof(key));
@@ -567,7 +567,7 @@ auto compact_tuple_sketch<S, A>::end() const -> const_iterator {
567
567
  }
568
568
 
569
569
  template<typename S, typename A>
570
- void compact_tuple_sketch<S, A>::print_specifics(std::basic_ostream<char>&) const {}
570
+ void compact_tuple_sketch<S, A>::print_specifics(ostrstream&) const {}
571
571
 
572
572
  // builder
573
573
 
@@ -43,11 +43,6 @@ target_sources(tuple_test
43
43
  tuple_union_test.cpp
44
44
  tuple_intersection_test.cpp
45
45
  tuple_a_not_b_test.cpp
46
- array_of_doubles_sketch_test.cpp
47
- theta_sketch_experimental_test.cpp
48
- theta_union_experimental_test.cpp
49
- theta_intersection_experimental_test.cpp
50
- theta_a_not_b_experimental_test.cpp
51
- theta_jaccard_similarity_test.cpp
52
46
  tuple_jaccard_similarity_test.cpp
47
+ array_of_doubles_sketch_test.cpp
53
48
  )
@@ -21,7 +21,7 @@
21
21
 
22
22
  #include <catch.hpp>
23
23
  #include <tuple_a_not_b.hpp>
24
- #include <theta_sketch_experimental.hpp>
24
+ #include <theta_sketch.hpp>
25
25
 
26
26
  namespace datasketches {
27
27
 
@@ -102,9 +102,6 @@ TEST_CASE("tuple a-not-b: exact mode half overlap", "[tuple_a_not_b]") {
102
102
  REQUIRE(result.get_estimate() == 500.0);
103
103
  }
104
104
 
105
- // needed until promotion of experimental to replace existing theta sketch
106
- using update_theta_sketch = update_theta_sketch_experimental<>;
107
-
108
105
  TEST_CASE("mixed a-not-b: exact mode half overlap", "[tuple_a_not_b]") {
109
106
  auto a = update_tuple_sketch<float>::builder().build();
110
107
  int value = 0;
@@ -21,7 +21,7 @@
21
21
 
22
22
  #include <catch.hpp>
23
23
  #include <tuple_intersection.hpp>
24
- #include <theta_sketch_experimental.hpp>
24
+ #include <theta_sketch.hpp>
25
25
 
26
26
  namespace datasketches {
27
27
 
@@ -136,9 +136,6 @@ TEST_CASE("tuple intersection: exact mode disjoint", "[tuple_intersection]") {
136
136
  }
137
137
  }
138
138
 
139
- // needed until promotion of experimental to replace existing theta sketch
140
- using update_theta_sketch = update_theta_sketch_experimental<>;
141
-
142
139
  TEST_CASE("mixed intersection: exact mode half overlap", "[tuple_intersection]") {
143
140
  auto sketch1 = update_tuple_sketch<float>::builder().build();
144
141
  int value = 0;
@@ -20,7 +20,8 @@
20
20
  #include <iostream>
21
21
 
22
22
  #include <catch.hpp>
23
- #include <jaccard_similarity.hpp>
23
+
24
+ #include "tuple_jaccard_similarity.hpp"
24
25
 
25
26
  namespace datasketches {
26
27
 
@@ -51,7 +51,7 @@ TEST_CASE("tuple sketch with test allocator: estimation mode", "[tuple_sketch]")
51
51
  test_allocator_total_bytes = 0;
52
52
  test_allocator_net_allocations = 0;
53
53
  {
54
- auto update_sketch = update_tuple_sketch_test::builder().build();
54
+ auto update_sketch = update_tuple_sketch_test::builder(test_type_replace_policy(), test_allocator<test_type>(0)).build();
55
55
  for (int i = 0; i < 10000; ++i) update_sketch.update(i, 1);
56
56
  for (int i = 0; i < 10000; ++i) update_sketch.update(i, 2);
57
57
  REQUIRE(!update_sketch.is_empty());
@@ -77,7 +77,7 @@ TEST_CASE("tuple sketch with test allocator: estimation mode", "[tuple_sketch]")
77
77
  REQUIRE(count == update_sketch.get_num_retained());
78
78
 
79
79
  auto bytes = compact_sketch.serialize(0, test_type_serde());
80
- auto deserialized_sketch = compact_tuple_sketch_test::deserialize(bytes.data(), bytes.size(), DEFAULT_SEED, test_type_serde());
80
+ auto deserialized_sketch = compact_tuple_sketch_test::deserialize(bytes.data(), bytes.size(), DEFAULT_SEED, test_type_serde(), test_allocator<test_type>(0));
81
81
  REQUIRE(deserialized_sketch.get_estimate() == compact_sketch.get_estimate());
82
82
 
83
83
  // update sketch copy
@@ -21,7 +21,7 @@
21
21
 
22
22
  #include <catch.hpp>
23
23
  #include <tuple_union.hpp>
24
- #include <theta_sketch_experimental.hpp>
24
+ #include <theta_sketch.hpp>
25
25
 
26
26
  namespace datasketches {
27
27
 
@@ -37,9 +37,6 @@ TEST_CASE("tuple_union float: empty", "[tuple union]") {
37
37
  REQUIRE(result.get_estimate() == 0);
38
38
  }
39
39
 
40
- // needed until promotion of experimental to replace existing theta sketch
41
- using update_theta_sketch = update_theta_sketch_experimental<>;
42
-
43
40
  TEST_CASE("tupe_union float: empty theta sketch", "[tuple union]") {
44
41
  auto update_sketch = update_theta_sketch::builder().build();
45
42
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datasketches
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kane
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-01-22 00:00:00.000000000 Z
11
+ date: 2021-05-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rice
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '2.2'
19
+ version: 4.0.2
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '2.2'
26
+ version: 4.0.2
27
27
  description:
28
28
  email: andrew@chartkick.com
29
29
  executables: []
@@ -37,6 +37,7 @@ files:
37
37
  - README.md
38
38
  - ext/datasketches/cpc_wrapper.cpp
39
39
  - ext/datasketches/ext.cpp
40
+ - ext/datasketches/ext.h
40
41
  - ext/datasketches/extconf.rb
41
42
  - ext/datasketches/fi_wrapper.cpp
42
43
  - ext/datasketches/hll_wrapper.cpp
@@ -65,6 +66,7 @@ files:
65
66
  - vendor/datasketches-cpp/common/test/CMakeLists.txt
66
67
  - vendor/datasketches-cpp/common/test/catch.hpp
67
68
  - vendor/datasketches-cpp/common/test/catch_runner.cpp
69
+ - vendor/datasketches-cpp/common/test/integration_test.cpp
68
70
  - vendor/datasketches-cpp/common/test/test_allocator.cpp
69
71
  - vendor/datasketches-cpp/common/test/test_allocator.hpp
70
72
  - vendor/datasketches-cpp/common/test/test_runner.cpp
@@ -86,6 +88,7 @@ files:
86
88
  - vendor/datasketches-cpp/cpc/include/u32_table_impl.hpp
87
89
  - vendor/datasketches-cpp/cpc/test/CMakeLists.txt
88
90
  - vendor/datasketches-cpp/cpc/test/compression_test.cpp
91
+ - vendor/datasketches-cpp/cpc/test/cpc_sketch_allocation_test.cpp
89
92
  - vendor/datasketches-cpp/cpc/test/cpc_sketch_test.cpp
90
93
  - vendor/datasketches-cpp/cpc/test/cpc_union_test.cpp
91
94
  - vendor/datasketches-cpp/fi/CMakeLists.txt
@@ -177,6 +180,7 @@ files:
177
180
  - vendor/datasketches-cpp/python/src/fi_wrapper.cpp
178
181
  - vendor/datasketches-cpp/python/src/hll_wrapper.cpp
179
182
  - vendor/datasketches-cpp/python/src/kll_wrapper.cpp
183
+ - vendor/datasketches-cpp/python/src/req_wrapper.cpp
180
184
  - vendor/datasketches-cpp/python/src/theta_wrapper.cpp
181
185
  - vendor/datasketches-cpp/python/src/vector_of_kll.cpp
182
186
  - vendor/datasketches-cpp/python/src/vo_wrapper.cpp
@@ -185,9 +189,26 @@ files:
185
189
  - vendor/datasketches-cpp/python/tests/fi_test.py
186
190
  - vendor/datasketches-cpp/python/tests/hll_test.py
187
191
  - vendor/datasketches-cpp/python/tests/kll_test.py
192
+ - vendor/datasketches-cpp/python/tests/req_test.py
188
193
  - vendor/datasketches-cpp/python/tests/theta_test.py
189
194
  - vendor/datasketches-cpp/python/tests/vector_of_kll_test.py
190
195
  - vendor/datasketches-cpp/python/tests/vo_test.py
196
+ - vendor/datasketches-cpp/req/CMakeLists.txt
197
+ - vendor/datasketches-cpp/req/include/req_common.hpp
198
+ - vendor/datasketches-cpp/req/include/req_compactor.hpp
199
+ - vendor/datasketches-cpp/req/include/req_compactor_impl.hpp
200
+ - vendor/datasketches-cpp/req/include/req_quantile_calculator.hpp
201
+ - vendor/datasketches-cpp/req/include/req_quantile_calculator_impl.hpp
202
+ - vendor/datasketches-cpp/req/include/req_sketch.hpp
203
+ - vendor/datasketches-cpp/req/include/req_sketch_impl.hpp
204
+ - vendor/datasketches-cpp/req/test/CMakeLists.txt
205
+ - vendor/datasketches-cpp/req/test/req_float_empty_from_java.sk
206
+ - vendor/datasketches-cpp/req/test/req_float_estimation_from_java.sk
207
+ - vendor/datasketches-cpp/req/test/req_float_exact_from_java.sk
208
+ - vendor/datasketches-cpp/req/test/req_float_raw_items_from_java.sk
209
+ - vendor/datasketches-cpp/req/test/req_float_single_item_from_java.sk
210
+ - vendor/datasketches-cpp/req/test/req_sketch_custom_type_test.cpp
211
+ - vendor/datasketches-cpp/req/test/req_sketch_test.cpp
191
212
  - vendor/datasketches-cpp/sampling/CMakeLists.txt
192
213
  - vendor/datasketches-cpp/sampling/include/var_opt_sketch.hpp
193
214
  - vendor/datasketches-cpp/sampling/include/var_opt_sketch_impl.hpp
@@ -195,6 +216,7 @@ files:
195
216
  - vendor/datasketches-cpp/sampling/include/var_opt_union_impl.hpp
196
217
  - vendor/datasketches-cpp/sampling/test/CMakeLists.txt
197
218
  - vendor/datasketches-cpp/sampling/test/binaries_from_java.txt
219
+ - vendor/datasketches-cpp/sampling/test/var_opt_allocation_test.cpp
198
220
  - vendor/datasketches-cpp/sampling/test/var_opt_sketch_test.cpp
199
221
  - vendor/datasketches-cpp/sampling/test/var_opt_union_test.cpp
200
222
  - vendor/datasketches-cpp/sampling/test/varopt_sketch_long_sampling.sk
@@ -202,20 +224,36 @@ files:
202
224
  - vendor/datasketches-cpp/sampling/test/varopt_union_double_sampling.sk
203
225
  - vendor/datasketches-cpp/setup.py
204
226
  - vendor/datasketches-cpp/theta/CMakeLists.txt
227
+ - vendor/datasketches-cpp/theta/include/bounds_on_ratios_in_sampled_sets.hpp
228
+ - vendor/datasketches-cpp/theta/include/bounds_on_ratios_in_theta_sketched_sets.hpp
205
229
  - vendor/datasketches-cpp/theta/include/theta_a_not_b.hpp
206
230
  - vendor/datasketches-cpp/theta/include/theta_a_not_b_impl.hpp
231
+ - vendor/datasketches-cpp/theta/include/theta_comparators.hpp
232
+ - vendor/datasketches-cpp/theta/include/theta_constants.hpp
233
+ - vendor/datasketches-cpp/theta/include/theta_helpers.hpp
207
234
  - vendor/datasketches-cpp/theta/include/theta_intersection.hpp
235
+ - vendor/datasketches-cpp/theta/include/theta_intersection_base.hpp
236
+ - vendor/datasketches-cpp/theta/include/theta_intersection_base_impl.hpp
208
237
  - vendor/datasketches-cpp/theta/include/theta_intersection_impl.hpp
238
+ - vendor/datasketches-cpp/theta/include/theta_jaccard_similarity.hpp
239
+ - vendor/datasketches-cpp/theta/include/theta_jaccard_similarity_base.hpp
240
+ - vendor/datasketches-cpp/theta/include/theta_set_difference_base.hpp
241
+ - vendor/datasketches-cpp/theta/include/theta_set_difference_base_impl.hpp
209
242
  - vendor/datasketches-cpp/theta/include/theta_sketch.hpp
210
243
  - vendor/datasketches-cpp/theta/include/theta_sketch_impl.hpp
211
244
  - vendor/datasketches-cpp/theta/include/theta_union.hpp
245
+ - vendor/datasketches-cpp/theta/include/theta_union_base.hpp
246
+ - vendor/datasketches-cpp/theta/include/theta_union_base_impl.hpp
212
247
  - vendor/datasketches-cpp/theta/include/theta_union_impl.hpp
248
+ - vendor/datasketches-cpp/theta/include/theta_update_sketch_base.hpp
249
+ - vendor/datasketches-cpp/theta/include/theta_update_sketch_base_impl.hpp
213
250
  - vendor/datasketches-cpp/theta/test/CMakeLists.txt
214
251
  - vendor/datasketches-cpp/theta/test/theta_a_not_b_test.cpp
215
252
  - vendor/datasketches-cpp/theta/test/theta_compact_empty_from_java.sk
216
253
  - vendor/datasketches-cpp/theta/test/theta_compact_estimation_from_java.sk
217
254
  - vendor/datasketches-cpp/theta/test/theta_compact_single_item_from_java.sk
218
255
  - vendor/datasketches-cpp/theta/test/theta_intersection_test.cpp
256
+ - vendor/datasketches-cpp/theta/test/theta_jaccard_similarity_test.cpp
219
257
  - vendor/datasketches-cpp/theta/test/theta_sketch_test.cpp
220
258
  - vendor/datasketches-cpp/theta/test/theta_union_test.cpp
221
259
  - vendor/datasketches-cpp/theta/test/theta_update_empty_from_java.sk
@@ -229,32 +267,11 @@ files:
229
267
  - vendor/datasketches-cpp/tuple/include/array_of_doubles_sketch_impl.hpp
230
268
  - vendor/datasketches-cpp/tuple/include/array_of_doubles_union.hpp
231
269
  - vendor/datasketches-cpp/tuple/include/array_of_doubles_union_impl.hpp
232
- - vendor/datasketches-cpp/tuple/include/bounds_on_ratios_in_sampled_sets.hpp
233
- - vendor/datasketches-cpp/tuple/include/bounds_on_ratios_in_theta_sketched_sets.hpp
234
- - vendor/datasketches-cpp/tuple/include/jaccard_similarity.hpp
235
- - vendor/datasketches-cpp/tuple/include/theta_a_not_b_experimental.hpp
236
- - vendor/datasketches-cpp/tuple/include/theta_a_not_b_experimental_impl.hpp
237
- - vendor/datasketches-cpp/tuple/include/theta_comparators.hpp
238
- - vendor/datasketches-cpp/tuple/include/theta_constants.hpp
239
- - vendor/datasketches-cpp/tuple/include/theta_helpers.hpp
240
- - vendor/datasketches-cpp/tuple/include/theta_intersection_base.hpp
241
- - vendor/datasketches-cpp/tuple/include/theta_intersection_base_impl.hpp
242
- - vendor/datasketches-cpp/tuple/include/theta_intersection_experimental.hpp
243
- - vendor/datasketches-cpp/tuple/include/theta_intersection_experimental_impl.hpp
244
- - vendor/datasketches-cpp/tuple/include/theta_set_difference_base.hpp
245
- - vendor/datasketches-cpp/tuple/include/theta_set_difference_base_impl.hpp
246
- - vendor/datasketches-cpp/tuple/include/theta_sketch_experimental.hpp
247
- - vendor/datasketches-cpp/tuple/include/theta_sketch_experimental_impl.hpp
248
- - vendor/datasketches-cpp/tuple/include/theta_union_base.hpp
249
- - vendor/datasketches-cpp/tuple/include/theta_union_base_impl.hpp
250
- - vendor/datasketches-cpp/tuple/include/theta_union_experimental.hpp
251
- - vendor/datasketches-cpp/tuple/include/theta_union_experimental_impl.hpp
252
- - vendor/datasketches-cpp/tuple/include/theta_update_sketch_base.hpp
253
- - vendor/datasketches-cpp/tuple/include/theta_update_sketch_base_impl.hpp
254
270
  - vendor/datasketches-cpp/tuple/include/tuple_a_not_b.hpp
255
271
  - vendor/datasketches-cpp/tuple/include/tuple_a_not_b_impl.hpp
256
272
  - vendor/datasketches-cpp/tuple/include/tuple_intersection.hpp
257
273
  - vendor/datasketches-cpp/tuple/include/tuple_intersection_impl.hpp
274
+ - vendor/datasketches-cpp/tuple/include/tuple_jaccard_similarity.hpp
258
275
  - vendor/datasketches-cpp/tuple/include/tuple_sketch.hpp
259
276
  - vendor/datasketches-cpp/tuple/include/tuple_sketch_impl.hpp
260
277
  - vendor/datasketches-cpp/tuple/include/tuple_union.hpp
@@ -266,14 +283,6 @@ files:
266
283
  - vendor/datasketches-cpp/tuple/test/aod_2_compact_exact_from_java.sk
267
284
  - vendor/datasketches-cpp/tuple/test/aod_3_compact_empty_from_java.sk
268
285
  - vendor/datasketches-cpp/tuple/test/array_of_doubles_sketch_test.cpp
269
- - vendor/datasketches-cpp/tuple/test/theta_a_not_b_experimental_test.cpp
270
- - vendor/datasketches-cpp/tuple/test/theta_compact_empty_from_java.sk
271
- - vendor/datasketches-cpp/tuple/test/theta_compact_estimation_from_java.sk
272
- - vendor/datasketches-cpp/tuple/test/theta_compact_single_item_from_java.sk
273
- - vendor/datasketches-cpp/tuple/test/theta_intersection_experimental_test.cpp
274
- - vendor/datasketches-cpp/tuple/test/theta_jaccard_similarity_test.cpp
275
- - vendor/datasketches-cpp/tuple/test/theta_sketch_experimental_test.cpp
276
- - vendor/datasketches-cpp/tuple/test/theta_union_experimental_test.cpp
277
286
  - vendor/datasketches-cpp/tuple/test/tuple_a_not_b_test.cpp
278
287
  - vendor/datasketches-cpp/tuple/test/tuple_intersection_test.cpp
279
288
  - vendor/datasketches-cpp/tuple/test/tuple_jaccard_similarity_test.cpp