void SetCoeff(GF2X& x, long i, long val) { if (i < 0) { LogicError("SetCoeff: negative index"); return; // NOTE: helps the compiler optimize } val = val & 1; if (val) { SetCoeff(x, i); return; } // we want to clear position i long n; n = x.xrep.length(); long wi = i/NTL_BITS_PER_LONG; if (wi >= n) return; long bi = i - wi*NTL_BITS_PER_LONG; x.xrep[wi] &= ~(1UL << bi); if (wi == n-1 && !x.xrep[wi]) x.normalize(); }
void SetCoeff(GF2X& x, long i, long val) { if (i < 0) { Error("SetCoeff: negative index"); return; } val = val & 1; if (val) { SetCoeff(x, i); return; } // we want to clear position i long n; n = x.xrep.length(); long wi = i/newNTL_BITS_PER_LONG; if (wi >= n) return; long bi = i - wi*newNTL_BITS_PER_LONG; x.xrep[wi] &= ~(1UL << bi); if (wi == n-1) x.normalize(); }