multiply method
Implementation
ECPointFp multiply(BigInt k) {
if (isInfinity()) return this;
if (k.sign == 0) return curve.infinity;
final k3 = k * BigInt.from(3);
final neg = negate();
ECPointFp Q = this;
for (int i = k3.bitLength - 2; i > 0; i--) {
Q = Q.twice();
/*final k3Bit = (k3 >> i) & BigInt.one == BigInt.one;
final kBit = (k >> i) & BigInt.one == BigInt.zero;*/
final k3Bit = (k3 >> i).isOdd;
;
final kBit = (k >> i).isOdd;
if (k3Bit != kBit) {
Q = Q.add(k3Bit ? this : neg);
}
}
return Q;
}