pow22523.q (964B)
1 :name:fe:t0:t1:t2:t3:t4:t5:t6:t7:t8:t9:z:out: 2 fe r:var/r=fe: 3 4 enter f:enter/f:>z1=fe#11: 5 return:nofallthrough:<z_252_3=fe#12:leave: 6 7 h=f*g:<f=fe:<g=fe:>h=fe:asm/fe_mul(>h,<f,<g);: 8 h=f^2^k:<f=fe:>h=fe:#k:asm/fe_sq(>h,<f); for (i = 1;i !lt; #k;++i) fe_sq(>h,>h);: 9 10 : 11 12 fe z1 13 fe z2 14 fe z8 15 fe z9 16 fe z11 17 fe z22 18 fe z_5_0 19 fe z_10_5 20 fe z_10_0 21 fe z_20_10 22 fe z_20_0 23 fe z_40_20 24 fe z_40_0 25 fe z_50_10 26 fe z_50_0 27 fe z_100_50 28 fe z_100_0 29 fe z_200_100 30 fe z_200_0 31 fe z_250_50 32 fe z_250_0 33 fe z_252_2 34 fe z_252_3 35 36 enter pow22523 37 38 z2 = z1^2^1 39 z8 = z2^2^2 40 z9 = z1*z8 41 z11 = z2*z9 42 z22 = z11^2^1 43 z_5_0 = z9*z22 44 z_10_5 = z_5_0^2^5 45 z_10_0 = z_10_5*z_5_0 46 z_20_10 = z_10_0^2^10 47 z_20_0 = z_20_10*z_10_0 48 z_40_20 = z_20_0^2^20 49 z_40_0 = z_40_20*z_20_0 50 z_50_10 = z_40_0^2^10 51 z_50_0 = z_50_10*z_10_0 52 z_100_50 = z_50_0^2^50 53 z_100_0 = z_100_50*z_50_0 54 z_200_100 = z_100_0^2^100 55 z_200_0 = z_200_100*z_100_0 56 z_250_50 = z_200_0^2^50 57 z_250_0 = z_250_50*z_50_0 58 z_252_2 = z_250_0^2^2 59 z_252_3 = z_252_2*z1 60 61 return