docs: public static Point multiply(Point p, BigInteger k) {
        BigInteger e = k;
        BigInteger h = e.multiply(BigInteger.valueOf(3));
  
        Point neg = p.negate();
        Point R = p;
  
        for (int i = h.bitLength() - 2; i > 0; --i) {
           R = R.twice();
  
           boolean hBit = h.testBit(i);
           boolean eBit = e.testBit(i);
  
           if (hBit != eBit) {
              R = R.add(hBit ? p : neg);
           }
        }
  
        return R;
     }