/* this-=Q */ public void Sub(ECP Q) { ECP NQ = new ECP(Q); NQ.Neg(); Add(NQ); }
/* Constant time select from pre-computed table */ private void Select(ECP[] W, int b) { ECP MP = new ECP(); int m = b >> 31; int babs = (b ^ m) - m; babs = (babs - 1) / 2; CMove(W[0], Teq(babs, 0)); // conditional move CMove(W[1], Teq(babs, 1)); CMove(W[2], Teq(babs, 2)); CMove(W[3], Teq(babs, 3)); CMove(W[4], Teq(babs, 4)); CMove(W[5], Teq(babs, 5)); CMove(W[6], Teq(babs, 6)); CMove(W[7], Teq(babs, 7)); MP.Copy(this); MP.Neg(); CMove(MP, (int)(m & 1)); }