mulByX method

G1Projective mulByX()

Multiply this point by BLS_X using double-and-add

Implementation

G1Projective mulByX() {
  G1Projective result = G1Projective.identity();

  BigInt x = BigInt.parse("0xd201000000010000") >> 1; // skip the first bit
  G1Projective tmp = this;

  while (x != BigInt.zero) {
    tmp = tmp.double();

    if ((x & BigInt.one) == BigInt.one) {
      result = result + tmp;
    }
    x >>= 1;
  }
  return -result;
}