s_mp_clamp(a);
mp_err mpl_set_bit(mp_int *a, unsigned int bitNum, unsigned int value){  unsigned int ix;  mp_err       rv;  mp_digit     mask;  ARGCHK(a != NULL, MP_BADARG);  ix = bitNum / MP_DIGIT_BIT;  if (value && (ix > MP_USED(a) - 1)) {    rv = s_mp_pad(a, ix);    if (rv != MP_OKAY)      return rv;  }  bitNum = bitNum % MP_DIGIT_BIT;  mask = (mp_digit)1 << bitNum;  if (value)    MP_DIGIT(a,ix) |= mask;  else    MP_DIGIT(a,ix) &= ~mask;  return MP_OKAY;}