public virtual AbstractF2mPoint TauPow(int pow) { if (base.IsInfinity) { return(this); } ECCurve curve = Curve; int coordinateSystem = curve.CoordinateSystem; ECFieldElement rawXCoord = base.RawXCoord; switch (coordinateSystem) { case 0: case 5: { ECFieldElement rawYCoord2 = base.RawYCoord; return((AbstractF2mPoint)curve.CreateRawPoint(rawXCoord.SquarePow(pow), rawYCoord2.SquarePow(pow), base.IsCompressed)); } case 1: case 6: { ECFieldElement rawYCoord = base.RawYCoord; ECFieldElement eCFieldElement = base.RawZCoords[0]; return((AbstractF2mPoint)curve.CreateRawPoint(rawXCoord.SquarePow(pow), rawYCoord.SquarePow(pow), new ECFieldElement[1] { eCFieldElement.SquarePow(pow) }, base.IsCompressed)); } default: throw new InvalidOperationException("unsupported coordinate system"); } }