secp256k1FeCmov static method

void secp256k1FeCmov(
  1. Secp256k1Fe r,
  2. Secp256k1Fe a,
  3. int flag
)

Implementation

static void secp256k1FeCmov(Secp256k1Fe r, Secp256k1Fe a, int flag) {
  _cond(flag == 0 || flag == 1, "secp256k1FeCmov");
  BigInt mask0, mask1;
  int vflag = flag;
  // SECP256K1_CHECKMEM_CHECK_VERIFY(r.n, sizeof(r.n));
  mask0 = vflag.toBigInt + ~(BigInt.zero);
  mask1 = ~mask0;
  r[0] = (r[0] & mask0) | (a[0] & mask1);
  r[1] = (r[1] & mask0) | (a[1] & mask1);
  r[2] = (r[2] & mask0) | (a[2] & mask1);
  r[3] = (r[3] & mask0) | (a[3] & mask1);
  r[4] = (r[4] & mask0) | (a[4] & mask1);
}