aboutsummaryrefslogtreecommitdiff
path: root/src/Specific/solinas32_2e216m2e108m1_10limbs/fesquare.c
blob: f38e5623d749fac1c2a0374e44d662e792140201 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
static void fesquare(uint32_t out[10], const uint32_t in1[10]) {
  { const uint32_t x17 = in1[9];
  { const uint32_t x18 = in1[8];
  { const uint32_t x16 = in1[7];
  { const uint32_t x14 = in1[6];
  { const uint32_t x12 = in1[5];
  { const uint32_t x10 = in1[4];
  { const uint32_t x8 = in1[3];
  { const uint32_t x6 = in1[2];
  { const uint32_t x4 = in1[1];
  { const uint32_t x2 = in1[0];
  { uint64_t x19 = ((0x2 * ((uint64_t)(x10 + x17) * (x10 + x17))) - (0x2 * ((uint64_t)x10 * x10)));
  { uint64_t x20 = ((((uint64_t)(x8 + x18) * (x10 + x17)) + ((uint64_t)(x10 + x17) * (x8 + x18))) - (((uint64_t)x8 * x10) + ((uint64_t)x10 * x8)));
  { uint64_t x21 = (((0x2 * ((uint64_t)(x6 + x16) * (x10 + x17))) + (((uint64_t)(x8 + x18) * (x8 + x18)) + (0x2 * ((uint64_t)(x10 + x17) * (x6 + x16))))) - ((0x2 * ((uint64_t)x6 * x10)) + (((uint64_t)x8 * x8) + (0x2 * ((uint64_t)x10 * x6)))));
  { uint64_t x22 = (((0x2 * ((uint64_t)(x4 + x14) * (x10 + x17))) + ((0x2 * ((uint64_t)(x6 + x16) * (x8 + x18))) + ((0x2 * ((uint64_t)(x8 + x18) * (x6 + x16))) + (0x2 * ((uint64_t)(x10 + x17) * (x4 + x14)))))) - ((0x2 * ((uint64_t)x4 * x10)) + ((0x2 * ((uint64_t)x6 * x8)) + ((0x2 * ((uint64_t)x8 * x6)) + (0x2 * ((uint64_t)x10 * x4))))));
  { uint64_t x23 = ((((uint64_t)(x2 + x12) * (x10 + x17)) + (((uint64_t)(x4 + x14) * (x8 + x18)) + ((0x2 * ((uint64_t)(x6 + x16) * (x6 + x16))) + (((uint64_t)(x8 + x18) * (x4 + x14)) + ((uint64_t)(x10 + x17) * (x2 + x12)))))) - (((uint64_t)x2 * x10) + (((uint64_t)x4 * x8) + ((0x2 * ((uint64_t)x6 * x6)) + (((uint64_t)x8 * x4) + ((uint64_t)x10 * x2))))));
  { uint64_t x24 = ((((uint64_t)(x2 + x12) * (x8 + x18)) + ((0x2 * ((uint64_t)(x4 + x14) * (x6 + x16))) + ((0x2 * ((uint64_t)(x6 + x16) * (x4 + x14))) + ((uint64_t)(x8 + x18) * (x2 + x12))))) - (((uint64_t)x2 * x8) + ((0x2 * ((uint64_t)x4 * x6)) + ((0x2 * ((uint64_t)x6 * x4)) + ((uint64_t)x8 * x2)))));
  { uint64_t x25 = ((((uint64_t)(x2 + x12) * (x6 + x16)) + (((uint64_t)(x4 + x14) * (x4 + x14)) + ((uint64_t)(x6 + x16) * (x2 + x12)))) - (((uint64_t)x2 * x6) + (((uint64_t)x4 * x4) + ((uint64_t)x6 * x2))));
  { uint64_t x26 = ((((uint64_t)(x2 + x12) * (x4 + x14)) + ((uint64_t)(x4 + x14) * (x2 + x12))) - (((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)));
  { uint64_t x27 = (((uint64_t)(x2 + x12) * (x2 + x12)) - ((uint64_t)x2 * x2));
  { uint64_t x28 = ((((0x2 * ((uint64_t)x10 * x10)) + (0x2 * ((uint64_t)x17 * x17))) + x24) + x19);
  { uint64_t x29 = ((((((uint64_t)x8 * x10) + ((uint64_t)x10 * x8)) + (((uint64_t)x18 * x17) + ((uint64_t)x17 * x18))) + x25) + x20);
  { uint64_t x30 = (((((0x2 * ((uint64_t)x6 * x10)) + (((uint64_t)x8 * x8) + (0x2 * ((uint64_t)x10 * x6)))) + ((0x2 * ((uint64_t)x16 * x17)) + (((uint64_t)x18 * x18) + (0x2 * ((uint64_t)x17 * x16))))) + x26) + x21);
  { uint64_t x31 = (((((0x2 * ((uint64_t)x4 * x10)) + ((0x2 * ((uint64_t)x6 * x8)) + ((0x2 * ((uint64_t)x8 * x6)) + (0x2 * ((uint64_t)x10 * x4))))) + ((0x2 * ((uint64_t)x14 * x17)) + ((0x2 * ((uint64_t)x16 * x18)) + ((0x2 * ((uint64_t)x18 * x16)) + (0x2 * ((uint64_t)x17 * x14)))))) + x27) + x22);
  { uint64_t x32 = ((((uint64_t)x2 * x10) + (((uint64_t)x4 * x8) + ((0x2 * ((uint64_t)x6 * x6)) + (((uint64_t)x8 * x4) + ((uint64_t)x10 * x2))))) + (((uint64_t)x12 * x17) + (((uint64_t)x14 * x18) + ((0x2 * ((uint64_t)x16 * x16)) + (((uint64_t)x18 * x14) + ((uint64_t)x17 * x12))))));
  { uint64_t x33 = (((((uint64_t)x2 * x8) + ((0x2 * ((uint64_t)x4 * x6)) + ((0x2 * ((uint64_t)x6 * x4)) + ((uint64_t)x8 * x2)))) + (((uint64_t)x12 * x18) + ((0x2 * ((uint64_t)x14 * x16)) + ((0x2 * ((uint64_t)x16 * x14)) + ((uint64_t)x18 * x12))))) + x19);
  { uint64_t x34 = (((((uint64_t)x2 * x6) + (((uint64_t)x4 * x4) + ((uint64_t)x6 * x2))) + (((uint64_t)x12 * x16) + (((uint64_t)x14 * x14) + ((uint64_t)x16 * x12)))) + x20);
  { uint64_t x35 = (((((uint64_t)x2 * x4) + ((uint64_t)x4 * x2)) + (((uint64_t)x12 * x14) + ((uint64_t)x14 * x12))) + x21);
  { uint64_t x36 = ((((uint64_t)x2 * x2) + ((uint64_t)x12 * x12)) + x22);
  { uint32_t x37 = (uint32_t) (x32 >> 0x15);
  { uint32_t x38 = ((uint32_t)x32 & 0x1fffff);
  { uint32_t x39 = (uint32_t) (x23 >> 0x15);
  { uint32_t x40 = ((uint32_t)x23 & 0x1fffff);
  { uint64_t x41 = (((uint64_t)0x200000 * x39) + x40);
  { uint32_t x42 = (uint32_t) (x41 >> 0x15);
  { uint32_t x43 = ((uint32_t)x41 & 0x1fffff);
  { uint64_t x44 = ((x37 + x31) + x42);
  { uint32_t x45 = (uint32_t) (x44 >> 0x16);
  { uint32_t x46 = ((uint32_t)x44 & 0x3fffff);
  { uint64_t x47 = (x36 + x42);
  { uint32_t x48 = (uint32_t) (x47 >> 0x16);
  { uint32_t x49 = ((uint32_t)x47 & 0x3fffff);
  { uint64_t x50 = (x45 + x30);
  { uint32_t x51 = (uint32_t) (x50 >> 0x16);
  { uint32_t x52 = ((uint32_t)x50 & 0x3fffff);
  { uint64_t x53 = (x48 + x35);
  { uint32_t x54 = (uint32_t) (x53 >> 0x16);
  { uint32_t x55 = ((uint32_t)x53 & 0x3fffff);
  { uint64_t x56 = (x51 + x29);
  { uint32_t x57 = (uint32_t) (x56 >> 0x15);
  { uint32_t x58 = ((uint32_t)x56 & 0x1fffff);
  { uint64_t x59 = (x54 + x34);
  { uint32_t x60 = (uint32_t) (x59 >> 0x15);
  { uint32_t x61 = ((uint32_t)x59 & 0x1fffff);
  { uint64_t x62 = (x57 + x28);
  { uint32_t x63 = (uint32_t) (x62 >> 0x16);
  { uint32_t x64 = ((uint32_t)x62 & 0x3fffff);
  { uint64_t x65 = (x60 + x33);
  { uint32_t x66 = (uint32_t) (x65 >> 0x16);
  { uint32_t x67 = ((uint32_t)x65 & 0x3fffff);
  { uint32_t x68 = (x63 + x43);
  { uint32_t x69 = (x68 >> 0x15);
  { uint32_t x70 = (x68 & 0x1fffff);
  { uint32_t x71 = (x66 + x38);
  { uint32_t x72 = (x71 >> 0x15);
  { uint32_t x73 = (x71 & 0x1fffff);
  { uint32_t x74 = ((0x200000 * x69) + x70);
  { uint32_t x75 = (x74 >> 0x15);
  { uint32_t x76 = (x74 & 0x1fffff);
  { uint32_t x77 = ((x72 + x46) + x75);
  { uint32_t x78 = (x77 >> 0x16);
  { uint32_t x79 = (x77 & 0x3fffff);
  { uint32_t x80 = (x49 + x75);
  { uint32_t x81 = (x80 >> 0x16);
  { uint32_t x82 = (x80 & 0x3fffff);
  out[0] = x82;
  out[1] = (x81 + x55);
  out[2] = x61;
  out[3] = x67;
  out[4] = x73;
  out[5] = x79;
  out[6] = (x78 + x52);
  out[7] = x58;
  out[8] = x64;
  out[9] = x76;
  }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
}