fix: bug in GetInv

This commit is contained in:
2023-11-01 18:10:25 +08:00
parent 5a67934594
commit 29a50a3ac5

View File

@ -657,8 +657,14 @@ int2048 GetInv(const int2048 &B, int n) {
for (int i = 64; i > 0; i >>= 1) {
int2048 tmp_B(current_B);
tmp_B.UnsignedMultiplyByInt(i);
res -= i;
if (UnsignedCmp(sub_soluton_copy_1, tmp_B) >= 0) {
res -= i;
UnsignedMinus(sub_soluton_copy_1, &tmp_B);
}
}
int2048 tmp_zero(0);
if (UnsignedCmp(sub_soluton_copy_1, tmp_zero) != 0) res -= 1;
return std::move(res);
}
}
inline void UnsignedDivide(int2048 &A, const int2048 *pB) {