select static method

void select(
  1. GroupElementPrecomp t,
  2. int pos,
  3. int b
)

Implementation

static void select(GroupElementPrecomp t, int pos, int b) {
  final GroupElementPrecomp minust = GroupElementPrecomp();
  final int bnegative = negative(b);
  final int babs = b - (((-bnegative) & b) << 1);
  gePrecompZero(t);
  gePrecompCmov(t, CryptoOpsConst.geBase[pos][0], equal(babs, 1));

  gePrecompCmov(t, CryptoOpsConst.geBase[pos][1], equal(babs, 2));

  gePrecompCmov(t, CryptoOpsConst.geBase[pos][2], equal(babs, 3));

  gePrecompCmov(t, CryptoOpsConst.geBase[pos][3], equal(babs, 4));

  gePrecompCmov(t, CryptoOpsConst.geBase[pos][4], equal(babs, 5));

  gePrecompCmov(t, CryptoOpsConst.geBase[pos][5], equal(babs, 6));

  gePrecompCmov(t, CryptoOpsConst.geBase[pos][6], equal(babs, 7));
  gePrecompCmov(t, CryptoOpsConst.geBase[pos][7], equal(babs, 8));

  feCopy(minust.yplusx, t.yminusx);
  feCopy(minust.yminusx, t.yplusx);
  feNeg(minust.xy2d, t.xy2d);
  gePrecompCmov(t, minust, bnegative);
}