return null;
if (!(curve.equals(b.getCurve()))) { throw new IllegalArgumentException("Only points on the same " + "curve can be added"); }  if (isInfinity()) { if (b.isInfinity()) { return new ECPoint.F2m(curve); } return new ECPoint.F2m(b.getCurve(), b.getX(), b.getY()); }  if (b.isInfinity()) { return new ECPoint.F2m(curve, x, y); }  ECFieldElement.F2m.checkFieldElements(x, b.getX()); ECFieldElement.F2m x2 = (ECFieldElement.F2m)b.getX(); ECFieldElement.F2m y2 = (ECFieldElement.F2m)b.getY();   if (x.equals(x2)) { if (y.equals(y2)) {  return this.twice(); } else {  return new ECPoint.F2m(curve); } }  ECFieldElement.F2m lambda = (ECFieldElement.F2m)(y.add(y2)).divide(x.add(x2));  ECFieldElement.F2m x3 = (ECFieldElement.F2m)lambda.square().add(lambda).add(x).add(x2).add(curve.getA());  ECFieldElement.F2m y3 = (ECFieldElement.F2m)lambda.multiply(x.add(x3)).add(x3).add(y);  return new ECPoint.F2m(curve, x3, y3);
        public ECPoint add(ECPoint b)        {            // TODO Auto-generated method stub            return null;        }