mirror of
https://github.com/fmtlib/fmt.git
synced 2025-11-28 13:19:48 +01:00
Implement 128-bit constant mul in bigint
This commit is contained in:
@@ -362,9 +362,11 @@ class uint128_fallback {
|
||||
result += rhs;
|
||||
return result;
|
||||
}
|
||||
friend auto operator*(const uint128_fallback&, uint32_t) -> uint128_fallback {
|
||||
FMT_ASSERT(false, "");
|
||||
return {};
|
||||
friend auto operator*(const uint128_fallback& lhs, uint32_t rhs)
|
||||
-> uint128_fallback {
|
||||
FMT_ASSERT(lhs.hi_ == 0, "");
|
||||
uint64_t hi = (lhs.lo_ >> 32) * rhs;
|
||||
return {hi >> 32, (hi << 32) + (lhs.lo_ & ~uint32_t()) * rhs};
|
||||
}
|
||||
friend auto operator-(const uint128_fallback& lhs, uint64_t rhs)
|
||||
-> uint128_fallback {
|
||||
|
||||
Reference in New Issue
Block a user