zhjwpku commented on code in PR #755:
URL: https://github.com/apache/iceberg-cpp/pull/755#discussion_r3435423945
##########
src/iceberg/util/truncate_util.h:
##########
@@ -84,7 +86,15 @@ class ICEBERG_EXPORT TruncateUtils {
template <typename T>
requires std::is_same_v<T, int32_t> || std::is_same_v<T, int64_t>
static inline T TruncateInteger(T v, int32_t W) {
- return v - (((v % W) + W) % W);
Review Comment:
This was from the spec:
```
The remainder, v % W, must be positive. For languages where % can produce
negative values, the correct truncate function is: v - (((v % W) + W) % W)
```
I don't think we need to use int128_t since W is alway a int32_t and greater
than 0.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]