public ECFieldElement squarePow(int pow) { if (pow < 1) { return this; } long[] z = Nat576.create64(); SecT571Field.squareN(x, pow, z); return new SecT571FieldElement(z); }
square(t0, t1); multiply(t0, t1, t0); squareN(t0, 2, t1); multiply(t0, t1, t0); multiply(t0, t2, t0); squareN(t0, 5, t1); multiply(t0, t1, t0); squareN(t1, 5, t1); multiply(t0, t1, t0); squareN(t0, 15, t1); multiply(t0, t1, t2); squareN(t2, 30, t0); squareN(t0, 30, t1); multiply(t0, t1, t0); squareN(t0, 60, t1); multiply(t0, t1, t0); squareN(t1, 60, t1); multiply(t0, t1, t0); squareN(t0, 180, t1); multiply(t0, t1, t0); squareN(t1, 180, t1); multiply(t0, t1, t0);