Skip to content

Commit

Permalink
Merge pull request #408 from jmalkin/ebpps_serialize_fix
Browse files Browse the repository at this point in the history
Fixes for python, especially nanobind
  • Loading branch information
jmalkin authored Dec 4, 2023
2 parents e116172 + fe5f09e commit 38657c3
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 3 deletions.
6 changes: 4 additions & 2 deletions kll/include/kll_helper_impl.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,8 @@ kll_helper::compress_result kll_helper::general_compress(uint16_t k, uint8_t m,
// move level over as is
// make sure we are not moving data upwards
if (raw_beg < out_levels[current_level]) throw std::logic_error("wrong move");
std::move(items + raw_beg, items + raw_lim, items + out_levels[current_level]);
if (raw_beg != out_levels[current_level])
std::move(items + raw_beg, items + raw_lim, items + out_levels[current_level]);
out_levels[current_level + 1] = out_levels[current_level] + raw_pop;
} else {
// The sketch is too full AND this level is too full, so we compact it
Expand All @@ -243,7 +244,8 @@ kll_helper::compress_result kll_helper::general_compress(uint16_t k, uint8_t m,
const auto half_adj_pop = adj_pop / 2;

if (odd_pop) { // move one guy over
items[out_levels[current_level]] = std::move(items[raw_beg]);
if (out_levels[current_level] != raw_beg)
items[out_levels[current_level]] = std::move(items[raw_beg]);
out_levels[current_level + 1] = out_levels[current_level] + 1;
} else { // even number of items
out_levels[current_level + 1] = out_levels[current_level];
Expand Down
6 changes: 5 additions & 1 deletion sampling/include/ebpps_sample_impl.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,11 @@ string<A> ebpps_sample<T ,A>::to_string() const {
uint32_t idx = 0;
for (const T& item : data_)
oss << "\t" << idx++ << ":\t" << item << std::endl;
oss << " partial: " << (bool(partial_item_) ? (*partial_item_) : "NULL") << std::endl;
oss << " partial: ";
if (bool(partial_item_))
oss << (*partial_item_) << std::endl;
else
oss << "NULL" << std::endl;

return oss.str();
}
Expand Down

0 comments on commit 38657c3

Please sign in to comment.