secp256k1ScalarReduce static method
Implementation
static int secp256k1ScalarReduce(Secp256k1Scalar r, int overflow) {
Secp256k1Uint128 t = Secp256k1Uint128();
_cond(overflow <= 1, "secp256k1ScalarReduce");
secp256k1U128FromU64(t, r[0]);
secp256k1U128AccumU64(t, overflow.toBigInt * Secp256k1Const.secp256k1NC0);
r[0] = secp256k1U128ToU64(t);
secp256k1U128Rshift(t, 64);
secp256k1U128AccumU64(t, r[1]);
secp256k1U128AccumU64(t, overflow.toBigInt * Secp256k1Const.secp256k1NC1);
r[1] = secp256k1U128ToU64(t);
secp256k1U128Rshift(t, 64);
secp256k1U128AccumU64(t, r[2]);
secp256k1U128AccumU64(t, overflow.toBigInt * Secp256k1Const.secp256k1NC2);
r[2] = secp256k1U128ToU64(t);
secp256k1U128Rshift(t, 64);
secp256k1U128AccumU64(t, r[3]);
r[3] = secp256k1U128ToU64(t);
secp256k1ScalarVerify(r);
return overflow;
}