| ... | ... | @@ -307,12 +307,14 @@ pub const Fe = struct { |
| 307 | 307 | } |
| 308 | 308 | |
| 309 | 309 | pub fn pow2523(a: Fe) Fe { |
| 310 | | var c = a; |
| 311 | | var i: usize = 0; |
| 312 | | while (i < 249) : (i += 1) { |
| 313 | | c = c.sq().mul(a); |
| 314 | | } |
| 315 | | return c.sq().sq().mul(a); |
| 310 | var t0 = a.mul(a.sq()); |
| 311 | var t1 = t0.mul(t0.sqn(2)).sq().mul(a); |
| 312 | t0 = t1.sqn(5).mul(t1); |
| 313 | var t2 = t0.sqn(5).mul(t1); |
| 314 | t1 = t2.sqn(15).mul(t2); |
| 315 | t2 = t1.sqn(30).mul(t1); |
| 316 | t1 = t2.sqn(60).mul(t2); |
| 317 | return t1.sqn(120).mul(t1).sqn(10).mul(t0).sqn(2).mul(a); |
| 316 | 318 | } |
| 317 | 319 | |
| 318 | 320 | pub fn abs(a: Fe) Fe { |