secp256k1Modinv64MulCmp62 static method
int
secp256k1Modinv64MulCmp62(
- Secp256k1ModinvSigned a,
- int alen,
- Secp256k1ModinvSigned b,
- BigInt factor,
Implementation
static int secp256k1Modinv64MulCmp62(Secp256k1ModinvSigned a, int alen,
Secp256k1ModinvSigned b, BigInt factor) {
int i;
Secp256k1ModinvSigned am = Secp256k1ModinvSigned(),
bm = Secp256k1ModinvSigned();
secp256k1Modinv64Mul62(am, a, alen, BigInt.one);
secp256k1Modinv64Mul62(bm, b, 5, factor);
for (i = 0; i < 4; ++i) {
/// Verify that all but the top limb of a and b are normalized.
_cond(am[i] >> 62 == BigInt.zero, "secp256k1Modinv64MulCmp62");
_cond(bm[i] >> 62 == BigInt.zero, "secp256k1Modinv64MulCmp62");
}
for (i = 4; i >= 0; --i) {
if (am[i] < bm[i]) return -1;
if (am[i] > bm[i]) return 1;
}
return 0;
}