apache / apache/datasketches-cpp
Theta sketch output doesn't match between Java and CPP
- Ngôn ngữ chính
- C++
- Star
- 273
- Fork
- 88
- Merge trung bình
- 2 ngày 2 giờ
- Pull request đã merge (30 ngày)
- 8
Mô tả
I have run a simple theta sketch computation as below in Java and CPP
```
Union union = Union.builder().buildUnion();
union.update(1);
union.update(2);
CompactSketch compactSketch = union.getResult();
byte[] bytes = union.getResult().toByteArray()
```
Java output:
02 03 03 00 00 1a cc 93 02 00 00 00 00 00 **80 3f**
15 f9 7d cb bd 86 a1 05 c3 97 fc 12 81 70 9d 1e
CPP :
```
updateThetaSketch update_sketch = updateThetaSketch::builder().build();
update_sketch.update(1);
update_sketch.update(2);
auto bytes = update_sketch.compact().serialize();
```
CPP output:
02 03 03 00 00 1a cc 93 02 00 00 00 00 00 **00 00**
15 f9 7d cb bd 86 a1 05 c3 97 fc 12 81 70 9d 1e
The output seems to not match, as we see in bold at the end of first line, 4 bytes "80 3f" is missing in CPP.
Can anyone share why this is so?
Hướng dẫn đóng góp
Hướng nghiên cứu
Bắt đầu bằng cách tái hiện các ví dụ Java Union và C++ updateThetaSketch được hiển thị trong issue, sau đó so sánh bố cục byte đã tuần tự hóa của chúng xung quanh các byte được đánh dấu. Truy vết các điểm vào của quá trình tuần tự hóa và giải tuần tự được cả hai phần triển khai sử dụng; công việc được coi là hoàn tất khi các byte khác nhau đã được giải thích và đầu ra tương thích hoặc hành vi định dạng được tài liệu hóa đã được xác lập.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- cpp, java
- Lĩnh vực
- data
- Loại issue
- Lỗi
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Sôi nổi
- Độ rõ ràng
- Cần làm rõ
- Mức phù hợp với người mới
- 45/100