public ECFieldElement squarePow(int pow) { if (pow < 1) { return this; } long[] z = Nat256.create64(); SecT239Field.squareN(x, pow, z); return new SecT239FieldElement(z); }
square(t0, t0); multiply(t0, x, t0); squareN(t0, 3, t1); multiply(t1, t0, t1); square(t1, t1); multiply(t1, x, t1); squareN(t1, 7, t0); multiply(t0, t1, t0); squareN(t0, 14, t1); multiply(t1, t0, t1); square(t1, t1); multiply(t1, x, t1); squareN(t1, 29, t0); multiply(t0, t1, t0); square(t0, t0); multiply(t0, x, t0); squareN(t0, 59, t1); multiply(t1, t0, t1); square(t1, t1); multiply(t1, x, t1); squareN(t1, 119, t0); multiply(t0, t1, t0); square(t0, z);