return new ECPoint.F2m(curve);
return new ECPoint.F2m(curve, null, null, this.withCompression);
        public ECPoint twice()        {            if (this.isInfinity() || (this.x.toBigInteger().equals(ECConstants.ZERO)))             {                // Twice identity element (point at infinity) is identity                // element, and if x1 == null, then (x1, y1) == (x1, x1 + y1)                // and hence this = -this and thus 2(x1, y1) == infinity                return new ECPoint.F2m(curve);            }            ECFieldElement.F2m lambda                = (ECFieldElement.F2m)this.x.add(this.y.divide(this.x));            ECFieldElement.F2m x3                = (ECFieldElement.F2m)lambda.square().add(lambda).                    add(this.curve.getA());            ECFieldElement.F2m y3                = (ECFieldElement.F2m)this.x.square().add(lambda.multiply(x3)).                    add(x3);            return new ECPoint.F2m(this.curve, x3, y3, withCompression);        }