1
0

pow225521.q 969 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. :name:fe:t0:t1:t2:t3:t4:t5:t6:t7:t8:t9:z:out:
  2. fe r:var/r=fe:
  3. enter f:enter/f:>z1=fe#11:
  4. return:nofallthrough:<z_255_21=fe#12:leave:
  5. h=f*g:<f=fe:<g=fe:>h=fe:asm/fe_mul(>h,<f,<g);:
  6. 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);:
  7. :
  8. fe z1
  9. fe z2
  10. fe z8
  11. fe z9
  12. fe z11
  13. fe z22
  14. fe z_5_0
  15. fe z_10_5
  16. fe z_10_0
  17. fe z_20_10
  18. fe z_20_0
  19. fe z_40_20
  20. fe z_40_0
  21. fe z_50_10
  22. fe z_50_0
  23. fe z_100_50
  24. fe z_100_0
  25. fe z_200_100
  26. fe z_200_0
  27. fe z_250_50
  28. fe z_250_0
  29. fe z_255_5
  30. fe z_255_21
  31. enter pow225521
  32. z2 = z1^2^1
  33. z8 = z2^2^2
  34. z9 = z1*z8
  35. z11 = z2*z9
  36. z22 = z11^2^1
  37. z_5_0 = z9*z22
  38. z_10_5 = z_5_0^2^5
  39. z_10_0 = z_10_5*z_5_0
  40. z_20_10 = z_10_0^2^10
  41. z_20_0 = z_20_10*z_10_0
  42. z_40_20 = z_20_0^2^20
  43. z_40_0 = z_40_20*z_20_0
  44. z_50_10 = z_40_0^2^10
  45. z_50_0 = z_50_10*z_10_0
  46. z_100_50 = z_50_0^2^50
  47. z_100_0 = z_100_50*z_50_0
  48. z_200_100 = z_100_0^2^100
  49. z_200_0 = z_200_100*z_100_0
  50. z_250_50 = z_200_0^2^50
  51. z_250_0 = z_250_50*z_50_0
  52. z_255_5 = z_250_0^2^5
  53. z_255_21 = z_255_5*z11
  54. return