datasketches 0.4.0 → 0.4.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: deea49b435964ffbdc1d453f513af8b694a5b81bce8777d48fe3988d7476a538
4
- data.tar.gz: e59c962f8fe1c0b5175a4ef0b076d8e19756de874d0ec300dd91c08f829f73c6
3
+ metadata.gz: 9131edb6c019db8cd0dbb98aaf1321ba213efe5911ea17dd37f4e2a6cd8e7125
4
+ data.tar.gz: dc60612514895814bb7e920d8e66029b10abb820a6a6617e6426cc725482d6e2
5
5
  SHA512:
6
- metadata.gz: 542d7d5976324498d58dc5aeebc66bb9c0fafbe32544a44f0618cb78f2d5957dae947325128075e4c963811adcfa8566acffa280a9c82c23fdbd787d327410be
7
- data.tar.gz: c052d36c667fa9b9638f682e3b71969f1f74009db50a50bf38682adb13122ec1ab6829613ce626233fe06cf787c6d2c473c3359ca183dc565ac1dc3eefa637b9
6
+ metadata.gz: b030673f22e3c02c7a1805a9c8378e305b4878c18c4c92c3cdccaa54ea2ea9a87871b6a858563a02be510f6371bfe1c34e76386ccad975da05a6bd09071c5ee9
7
+ data.tar.gz: 11b1cbd76b5e47547b54ef39c195a2d9caa2a1a2a7ec3b8ed33be87b0e98adfa6cbef1ac8e6f5af6d4b57390731b10949f13620b4f916e15b7c73a449dfdfaa5
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## 0.4.2 (2024-01-13)
2
+
3
+ - Updated DataSketches to 5.0.2
4
+
5
+ ## 0.4.1 (2023-12-23)
6
+
7
+ - Updated DataSketches to 5.0.1
8
+
1
9
  ## 0.4.0 (2023-11-13)
2
10
 
3
11
  - Updated DataSketches to 5.0.0
@@ -1,3 +1,3 @@
1
1
  module DataSketches
2
- VERSION = "0.4.0"
2
+ VERSION = "0.4.2"
3
3
  end
@@ -144,7 +144,7 @@ void density_sketch<T, K, A>::compact_level(unsigned height) {
144
144
  auto& level = levels_[height];
145
145
  std::vector<bool> bits(level.size());
146
146
  bits[0] = random_utils::random_bit();
147
- std::random_shuffle(level.begin(), level.end());
147
+ std::shuffle(level.begin(), level.end(), random_utils::rand);
148
148
  for (unsigned i = 1; i < level.size(); ++i) {
149
149
  T delta = 0;
150
150
  for (unsigned j = 0; j < i; ++j) {
@@ -230,7 +230,8 @@ kll_helper::compress_result kll_helper::general_compress(uint16_t k, uint8_t m,
230
230
  // move level over as is
231
231
  // make sure we are not moving data upwards
232
232
  if (raw_beg < out_levels[current_level]) throw std::logic_error("wrong move");
233
- std::move(items + raw_beg, items + raw_lim, items + out_levels[current_level]);
233
+ if (raw_beg != out_levels[current_level])
234
+ std::move(items + raw_beg, items + raw_lim, items + out_levels[current_level]);
234
235
  out_levels[current_level + 1] = out_levels[current_level] + raw_pop;
235
236
  } else {
236
237
  // The sketch is too full AND this level is too full, so we compact it
@@ -243,7 +244,8 @@ kll_helper::compress_result kll_helper::general_compress(uint16_t k, uint8_t m,
243
244
  const auto half_adj_pop = adj_pop / 2;
244
245
 
245
246
  if (odd_pop) { // move one guy over
246
- items[out_levels[current_level]] = std::move(items[raw_beg]);
247
+ if (out_levels[current_level] != raw_beg)
248
+ items[out_levels[current_level]] = std::move(items[raw_beg]);
247
249
  out_levels[current_level + 1] = out_levels[current_level] + 1;
248
250
  } else { // even number of items
249
251
  out_levels[current_level + 1] = out_levels[current_level];
@@ -178,7 +178,11 @@ string<A> ebpps_sample<T ,A>::to_string() const {
178
178
  uint32_t idx = 0;
179
179
  for (const T& item : data_)
180
180
  oss << "\t" << idx++ << ":\t" << item << std::endl;
181
- oss << " partial: " << (bool(partial_item_) ? (*partial_item_) : "NULL") << std::endl;
181
+ oss << " partial: ";
182
+ if (bool(partial_item_))
183
+ oss << (*partial_item_) << std::endl;
184
+ else
185
+ oss << "NULL" << std::endl;
182
186
 
183
187
  return oss.str();
184
188
  }
@@ -1 +1 @@
1
- 5.0.0
1
+ 5.0.2
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.4.0
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kane
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-11-14 00:00:00.000000000 Z
11
+ date: 2024-01-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rice
@@ -324,7 +324,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
324
324
  - !ruby/object:Gem::Version
325
325
  version: '0'
326
326
  requirements: []
327
- rubygems_version: 3.4.10
327
+ rubygems_version: 3.5.3
328
328
  signing_key:
329
329
  specification_version: 4
330
330
  summary: Sketch data structures for Ruby