fePow22523 function
Implementation
void fePow22523(FieldElement out, FieldElement z) {
var t0 = FieldElement();
var t1 = FieldElement();
var t2 = FieldElement();
var i = 0;
FeSquare(t0, z);
for (i = 1; i < 1; i++) {
FeSquare(t0, t0);
}
FeSquare(t1, t0);
for (i = 1; i < 2; i++) {
FeSquare(t1, t1);
}
FeMul(t1, z, t1);
FeMul(t0, t0, t1);
FeSquare(t0, t0);
for (i = 1; i < 1; i++) {
FeSquare(t0, t0);
}
FeMul(t0, t1, t0);
FeSquare(t1, t0);
for (i = 1; i < 5; i++) {
FeSquare(t1, t1);
}
FeMul(t0, t1, t0);
FeSquare(t1, t0);
for (i = 1; i < 10; i++) {
FeSquare(t1, t1);
}
FeMul(t1, t1, t0);
FeSquare(t2, t1);
for (i = 1; i < 20; i++) {
FeSquare(t2, t2);
}
FeMul(t1, t2, t1);
FeSquare(t1, t1);
for (i = 1; i < 10; i++) {
FeSquare(t1, t1);
}
FeMul(t0, t1, t0);
FeSquare(t1, t0);
for (i = 1; i < 50; i++) {
FeSquare(t1, t1);
}
FeMul(t1, t1, t0);
FeSquare(t2, t1);
for (i = 1; i < 100; i++) {
FeSquare(t2, t2);
}
FeMul(t1, t2, t1);
FeSquare(t1, t1);
for (i = 1; i < 50; i++) {
FeSquare(t1, t1);
}
FeMul(t0, t1, t0);
FeSquare(t0, t0);
for (i = 1; i < 2; i++) {
FeSquare(t0, t0);
}
FeMul(out, t0, z);
}