__inline void vexp1251()

in FourQ_32bit/generic/fp.h [265:299]


__inline void vexp1251(felm_t a, felm_t af)
{ // Exponentiation over GF(p), af = a^(125-1)
	int i;
	velm_t t1, t2, t3, t4, t5;

	vsqr1271(a, t2);
	vmul1271(a, t2, t2);
	vsqr1271(t2, t3);
	vsqr1271(t3, t3);
	vmul1271(t2, t3, t3);
	vsqr1271(t3, t4);
	vsqr1271(t4, t4);
	vsqr1271(t4, t4);
	vsqr1271(t4, t4);
	vmul1271(t3, t4, t4);
	vsqr1271(t4, t5);
	for (i = 0; i<7; i++) vsqr1271(t5, t5);
	vmul1271(t4, t5, t5);
	vsqr1271(t5, t2);
	for (i = 0; i<15; i++) vsqr1271(t2, t2);
	vmul1271(t5, t2, t2);
	vsqr1271(t2, t1);
	for (i = 0; i<31; i++) vsqr1271(t1, t1);
	vmul1271(t2, t1, t1);
	for (i = 0; i<32; i++) vsqr1271(t1, t1);
	vmul1271(t1, t2, t1);
	for (i = 0; i<16; i++) vsqr1271(t1, t1);
	vmul1271(t5, t1, t1);
	for (i = 0; i<8; i++) vsqr1271(t1, t1);
	vmul1271(t4, t1, t1);
	for (i = 0; i<4; i++) vsqr1271(t1, t1);
	vmul1271(t3, t1, t1);
	vsqr1271(t1, t1);
	vmul1271(a, t1, af);
}